{"version":3,"file":"index-DmCZ5waP.js","sources":["../../node_modules/solid-js/dist/solid.js","../../node_modules/solid-js/web/dist/web.js","../../node_modules/d3-array/src/ascending.js","../../node_modules/d3-array/src/descending.js","../../node_modules/d3-array/src/bisector.js","../../node_modules/d3-array/src/number.js","../../node_modules/d3-array/src/bisect.js","../../node_modules/d3-array/src/ticks.js","../../node_modules/d3-array/src/max.js","../../node_modules/d3-array/src/min.js","../../node_modules/d3-axis/src/identity.js","../../node_modules/d3-axis/src/axis.js","../../node_modules/d3-dispatch/src/dispatch.js","../../node_modules/d3-selection/src/namespaces.js","../../node_modules/d3-selection/src/namespace.js","../../node_modules/d3-selection/src/creator.js","../../node_modules/d3-selection/src/selector.js","../../node_modules/d3-selection/src/selection/select.js","../../node_modules/d3-selection/src/array.js","../../node_modules/d3-selection/src/selectorAll.js","../../node_modules/d3-selection/src/selection/selectAll.js","../../node_modules/d3-selection/src/matcher.js","../../node_modules/d3-selection/src/selection/selectChild.js","../../node_modules/d3-selection/src/selection/selectChildren.js","../../node_modules/d3-selection/src/selection/filter.js","../../node_modules/d3-selection/src/selection/sparse.js","../../node_modules/d3-selection/src/selection/enter.js","../../node_modules/d3-selection/src/constant.js","../../node_modules/d3-selection/src/selection/data.js","../../node_modules/d3-selection/src/selection/exit.js","../../node_modules/d3-selection/src/selection/join.js","../../node_modules/d3-selection/src/selection/merge.js","../../node_modules/d3-selection/src/selection/order.js","../../node_modules/d3-selection/src/selection/sort.js","../../node_modules/d3-selection/src/selection/call.js","../../node_modules/d3-selection/src/selection/nodes.js","../../node_modules/d3-selection/src/selection/node.js","../../node_modules/d3-selection/src/selection/size.js","../../node_modules/d3-selection/src/selection/empty.js","../../node_modules/d3-selection/src/selection/each.js","../../node_modules/d3-selection/src/selection/attr.js","../../node_modules/d3-selection/src/window.js","../../node_modules/d3-selection/src/selection/style.js","../../node_modules/d3-selection/src/selection/property.js","../../node_modules/d3-selection/src/selection/classed.js","../../node_modules/d3-selection/src/selection/text.js","../../node_modules/d3-selection/src/selection/html.js","../../node_modules/d3-selection/src/selection/raise.js","../../node_modules/d3-selection/src/selection/lower.js","../../node_modules/d3-selection/src/selection/append.js","../../node_modules/d3-selection/src/selection/insert.js","../../node_modules/d3-selection/src/selection/remove.js","../../node_modules/d3-selection/src/selection/clone.js","../../node_modules/d3-selection/src/selection/datum.js","../../node_modules/d3-selection/src/selection/on.js","../../node_modules/d3-selection/src/selection/dispatch.js","../../node_modules/d3-selection/src/selection/iterator.js","../../node_modules/d3-selection/src/selection/index.js","../../node_modules/d3-selection/src/select.js","../../node_modules/d3-color/src/define.js","../../node_modules/d3-color/src/color.js","../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/d3-interpolate/src/transform/decompose.js","../../node_modules/d3-interpolate/src/transform/parse.js","../../node_modules/d3-interpolate/src/transform/index.js","../../node_modules/d3-timer/src/timer.js","../../node_modules/d3-timer/src/timeout.js","../../node_modules/d3-transition/src/transition/schedule.js","../../node_modules/d3-transition/src/interrupt.js","../../node_modules/d3-transition/src/selection/interrupt.js","../../node_modules/d3-transition/src/transition/tween.js","../../node_modules/d3-transition/src/transition/interpolate.js","../../node_modules/d3-transition/src/transition/attr.js","../../node_modules/d3-transition/src/transition/attrTween.js","../../node_modules/d3-transition/src/transition/delay.js","../../node_modules/d3-transition/src/transition/duration.js","../../node_modules/d3-transition/src/transition/ease.js","../../node_modules/d3-transition/src/transition/easeVarying.js","../../node_modules/d3-transition/src/transition/filter.js","../../node_modules/d3-transition/src/transition/merge.js","../../node_modules/d3-transition/src/transition/on.js","../../node_modules/d3-transition/src/transition/remove.js","../../node_modules/d3-transition/src/transition/select.js","../../node_modules/d3-transition/src/transition/selectAll.js","../../node_modules/d3-transition/src/transition/selection.js","../../node_modules/d3-transition/src/transition/style.js","../../node_modules/d3-transition/src/transition/styleTween.js","../../node_modules/d3-transition/src/transition/text.js","../../node_modules/d3-transition/src/transition/textTween.js","../../node_modules/d3-transition/src/transition/transition.js","../../node_modules/d3-transition/src/transition/end.js","../../node_modules/d3-transition/src/transition/index.js","../../node_modules/d3-ease/src/cubic.js","../../node_modules/d3-transition/src/selection/transition.js","../../node_modules/d3-transition/src/selection/index.js","../../node_modules/d3-path/src/path.js","../../node_modules/d3-format/src/formatDecimal.js","../../node_modules/d3-format/src/exponent.js","../../node_modules/d3-format/src/formatGroup.js","../../node_modules/d3-format/src/formatNumerals.js","../../node_modules/d3-format/src/formatSpecifier.js","../../node_modules/d3-format/src/formatTrim.js","../../node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/d3-format/src/formatRounded.js","../../node_modules/d3-format/src/formatTypes.js","../../node_modules/d3-format/src/identity.js","../../node_modules/d3-format/src/locale.js","../../node_modules/d3-format/src/defaultLocale.js","../../node_modules/d3-format/src/precisionFixed.js","../../node_modules/d3-format/src/precisionPrefix.js","../../node_modules/d3-format/src/precisionRound.js","../../node_modules/d3-scale/src/init.js","../../node_modules/d3-scale/src/constant.js","../../node_modules/d3-scale/src/number.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-scale/src/linear.js","../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/path.js","../../node_modules/d3-shape/src/array.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-zoom/src/transform.js","../../src/Modal.tsx","../../src/swarm.api.tsx","../../src/Swarm.tsx","../../src/index.tsx"],"sourcesContent":["let taskIdCounter = 1,\n isCallbackScheduled = false,\n isPerformingWork = false,\n taskQueue = [],\n currentTask = null,\n shouldYieldToHost = null,\n yieldInterval = 5,\n deadline = 0,\n maxYieldInterval = 300,\n scheduleCallback = null,\n scheduledCallback = null;\nconst maxSigned31BitInt = 1073741823;\nfunction setupScheduler() {\n const channel = new MessageChannel(),\n port = channel.port2;\n scheduleCallback = () => port.postMessage(null);\n channel.port1.onmessage = () => {\n if (scheduledCallback !== null) {\n const currentTime = performance.now();\n deadline = currentTime + yieldInterval;\n const hasTimeRemaining = true;\n try {\n const hasMoreWork = scheduledCallback(hasTimeRemaining, currentTime);\n if (!hasMoreWork) {\n scheduledCallback = null;\n } else port.postMessage(null);\n } catch (error) {\n port.postMessage(null);\n throw error;\n }\n }\n };\n if (navigator && navigator.scheduling && navigator.scheduling.isInputPending) {\n const scheduling = navigator.scheduling;\n shouldYieldToHost = () => {\n const currentTime = performance.now();\n if (currentTime >= deadline) {\n if (scheduling.isInputPending()) {\n return true;\n }\n return currentTime >= maxYieldInterval;\n } else {\n return false;\n }\n };\n } else {\n shouldYieldToHost = () => performance.now() >= deadline;\n }\n}\nfunction enqueue(taskQueue, task) {\n function findIndex() {\n let m = 0;\n let n = taskQueue.length - 1;\n while (m <= n) {\n const k = (n + m) >> 1;\n const cmp = task.expirationTime - taskQueue[k].expirationTime;\n if (cmp > 0) m = k + 1;\n else if (cmp < 0) n = k - 1;\n else return k;\n }\n return m;\n }\n taskQueue.splice(findIndex(), 0, task);\n}\nfunction requestCallback(fn, options) {\n if (!scheduleCallback) setupScheduler();\n let startTime = performance.now(),\n timeout = maxSigned31BitInt;\n if (options && options.timeout) timeout = options.timeout;\n const newTask = {\n id: taskIdCounter++,\n fn,\n startTime,\n expirationTime: startTime + timeout\n };\n enqueue(taskQueue, newTask);\n if (!isCallbackScheduled && !isPerformingWork) {\n isCallbackScheduled = true;\n scheduledCallback = flushWork;\n scheduleCallback();\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n task.fn = null;\n}\nfunction flushWork(hasTimeRemaining, initialTime) {\n isCallbackScheduled = false;\n isPerformingWork = true;\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } finally {\n currentTask = null;\n isPerformingWork = false;\n }\n}\nfunction workLoop(hasTimeRemaining, initialTime) {\n let currentTime = initialTime;\n currentTask = taskQueue[0] || null;\n while (currentTask !== null) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n break;\n }\n const callback = currentTask.fn;\n if (callback !== null) {\n currentTask.fn = null;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n callback(didUserCallbackTimeout);\n currentTime = performance.now();\n if (currentTask === taskQueue[0]) {\n taskQueue.shift();\n }\n } else taskQueue.shift();\n currentTask = taskQueue[0] || null;\n }\n return currentTask !== null;\n}\n\nconst sharedConfig = {\n context: undefined,\n registry: undefined,\n effects: undefined,\n done: false,\n getContextId() {\n return getContextId(this.context.count);\n },\n getNextContextId() {\n return getContextId(this.context.count++);\n }\n};\nfunction getContextId(count) {\n const num = String(count),\n len = num.length - 1;\n return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : \"\") + num;\n}\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nfunction nextHydrateContext() {\n return {\n ...sharedConfig.context,\n id: sharedConfig.getNextContextId(),\n count: 0\n };\n}\n\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst SUPPORTS_PROXY = typeof Proxy === \"function\";\nconst $TRACK = Symbol(\"solid-track\");\nconst $DEVCOMP = Symbol(\"solid-dev-component\");\nconst signalOptions = {\n equals: equalFn\n};\nlet ERROR = null;\nlet runEffects = runQueue;\nconst STALE = 1;\nconst PENDING = 2;\nconst UNOWNED = {\n owned: null,\n cleanups: null,\n context: null,\n owner: null\n};\nconst NO_INIT = {};\nvar Owner = null;\nlet Transition = null;\nlet Scheduler = null;\nlet ExternalSourceConfig = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener,\n owner = Owner,\n unowned = fn.length === 0,\n current = detachedOwner === undefined ? owner : detachedOwner,\n root = unowned\n ? UNOWNED\n : {\n owned: null,\n cleanups: null,\n context: current ? current.context : null,\n owner: current\n },\n updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));\n Owner = root;\n Listener = null;\n try {\n return runUpdates(updateFn, true);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n}\nfunction createSignal(value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const s = {\n value,\n observers: null,\n observerSlots: null,\n comparator: options.equals || undefined\n };\n const setter = value => {\n if (typeof value === \"function\") {\n if (Transition && Transition.running && Transition.sources.has(s)) value = value(s.tValue);\n else value = value(s.value);\n }\n return writeSignal(s, value);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);\n else updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);\n else updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n if (!options || !options.render) c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createReaction(onInvalidate, options) {\n let fn;\n const c = createComputation(\n () => {\n fn ? fn() : untrack(onInvalidate);\n fn = undefined;\n },\n undefined,\n false,\n 0\n ),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n c.user = true;\n return tracking => {\n fn = tracking;\n updateComputation(c);\n };\n}\nfunction createMemo(fn, value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const c = createComputation(fn, value, true, 0);\n c.observers = null;\n c.observerSlots = null;\n c.comparator = options.equals || undefined;\n if (Scheduler && Transition && Transition.running) {\n c.tState = STALE;\n Updates.push(c);\n } else updateComputation(c);\n return readSignal.bind(c);\n}\nfunction isPromise(v) {\n return v && typeof v === \"object\" && \"then\" in v;\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n if (typeof pFetcher === \"function\") {\n source = pSource;\n fetcher = pFetcher;\n options = pOptions || {};\n } else {\n source = true;\n fetcher = pSource;\n options = pFetcher || {};\n }\n let pr = null,\n initP = NO_INIT,\n id = null,\n loadedUnderTransition = false,\n scheduled = false,\n resolved = \"initialValue\" in options,\n dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = new Set(),\n [value, setValue] = (options.storage || createSignal)(options.initialValue),\n [error, setError] = createSignal(undefined),\n [track, trigger] = createSignal(undefined, {\n equals: false\n }),\n [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = sharedConfig.getNextContextId();\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;\n else if (sharedConfig.load && sharedConfig.has(id)) initP = sharedConfig.load(id);\n }\n function loadEnd(p, v, error, key) {\n if (pr === p) {\n pr = null;\n key !== undefined && (resolved = true);\n if ((p === initP || v === initP) && options.onHydrated)\n queueMicrotask(() =>\n options.onHydrated(key, {\n value: v\n })\n );\n initP = NO_INIT;\n if (Transition && p && loadedUnderTransition) {\n Transition.promises.delete(p);\n loadedUnderTransition = false;\n runUpdates(() => {\n Transition.running = true;\n completeLoad(v, error);\n }, false);\n } else completeLoad(v, error);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === undefined) setValue(() => v);\n setState(err !== undefined ? \"errored\" : resolved ? \"ready\" : \"unresolved\");\n setError(err);\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n }, false);\n }\n function read() {\n const c = SuspenseContext && useContext(SuspenseContext),\n v = value(),\n err = error();\n if (err !== undefined && !pr) throw err;\n if (Listener && !Listener.user && c) {\n createComputed(() => {\n track();\n if (pr) {\n if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);\n else if (!contexts.has(c)) {\n c.increment();\n contexts.add(c);\n }\n }\n });\n }\n return v;\n }\n function load(refetching = true) {\n if (refetching !== false && scheduled) return;\n scheduled = false;\n const lookup = dynamic ? dynamic() : source;\n loadedUnderTransition = Transition && Transition.running;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n if (Transition && pr) Transition.promises.delete(pr);\n const p =\n initP !== NO_INIT\n ? initP\n : untrack(() =>\n fetcher(lookup, {\n value: value(),\n refetching\n })\n );\n if (!isPromise(p)) {\n loadEnd(pr, p, undefined, lookup);\n return p;\n }\n pr = p;\n if (\"value\" in p) {\n if (p.status === \"success\") loadEnd(pr, p.value, undefined, lookup);\n else loadEnd(pr, undefined, castError(p.value), lookup);\n return p;\n }\n scheduled = true;\n queueMicrotask(() => (scheduled = false));\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(\n v => loadEnd(p, v, undefined, lookup),\n e => loadEnd(p, undefined, castError(e), lookup)\n );\n }\n Object.defineProperties(read, {\n state: {\n get: () => state()\n },\n error: {\n get: () => error()\n },\n loading: {\n get() {\n const s = state();\n return s === \"pending\" || s === \"refreshing\";\n }\n },\n latest: {\n get() {\n if (!resolved) return read();\n const err = error();\n if (err && !pr) throw err;\n return value();\n }\n }\n });\n if (dynamic) createComputed(() => load(false));\n else load(false);\n return [\n read,\n {\n refetch: load,\n mutate: setValue\n }\n ];\n}\nfunction createDeferred(source, options) {\n let t,\n timeout = options ? options.timeoutMs : undefined;\n const node = createComputation(\n () => {\n if (!t || !t.fn)\n t = requestCallback(\n () => setDeferred(() => node.value),\n timeout !== undefined\n ? {\n timeout\n }\n : undefined\n );\n return source();\n },\n undefined,\n true\n );\n const [deferred, setDeferred] = createSignal(\n Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value,\n options\n );\n updateComputation(node);\n setDeferred(() =>\n Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value\n );\n return deferred;\n}\nfunction createSelector(source, fn = equalFn, options) {\n const subs = new Map();\n const node = createComputation(\n p => {\n const v = source();\n for (const [key, val] of subs.entries())\n if (fn(key, v) !== fn(key, p)) {\n for (const c of val.values()) {\n c.state = STALE;\n if (c.pure) Updates.push(c);\n else Effects.push(c);\n }\n }\n return v;\n },\n undefined,\n true,\n STALE\n );\n updateComputation(node);\n return key => {\n const listener = Listener;\n if (listener) {\n let l;\n if ((l = subs.get(key))) l.add(listener);\n else subs.set(key, (l = new Set([listener])));\n onCleanup(() => {\n l.delete(listener);\n !l.size && subs.delete(key);\n });\n }\n return fn(\n key,\n Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value\n );\n };\n}\nfunction batch(fn) {\n return runUpdates(fn, false);\n}\nfunction untrack(fn) {\n if (!ExternalSourceConfig && Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n if (ExternalSourceConfig) return ExternalSourceConfig.untrack(fn);\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction on(deps, fn, options) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let defer = options && options.defer;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++) input[i] = deps[i]();\n } else input = deps();\n if (defer) {\n defer = false;\n return prevValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nfunction onMount(fn) {\n createEffect(() => untrack(fn));\n}\nfunction onCleanup(fn) {\n if (Owner === null);\n else if (Owner.cleanups === null) Owner.cleanups = [fn];\n else Owner.cleanups.push(fn);\n return fn;\n}\nfunction catchError(fn, handler) {\n ERROR || (ERROR = Symbol(\"error\"));\n Owner = createComputation(undefined, undefined, true);\n Owner.context = {\n ...Owner.context,\n [ERROR]: [handler]\n };\n if (Transition && Transition.running) Transition.sources.add(Owner);\n try {\n return fn();\n } catch (err) {\n handleError(err);\n } finally {\n Owner = Owner.owner;\n }\n}\nfunction getListener() {\n return Listener;\n}\nfunction getOwner() {\n return Owner;\n}\nfunction runWithOwner(o, fn) {\n const prev = Owner;\n const prevListener = Listener;\n Owner = o;\n Listener = null;\n try {\n return runUpdates(fn, true);\n } catch (err) {\n handleError(err);\n } finally {\n Owner = prev;\n Listener = prevListener;\n }\n}\nfunction enableScheduling(scheduler = requestCallback) {\n Scheduler = scheduler;\n}\nfunction startTransition(fn) {\n if (Transition && Transition.running) {\n fn();\n return Transition.done;\n }\n const l = Listener;\n const o = Owner;\n return Promise.resolve().then(() => {\n Listener = l;\n Owner = o;\n let t;\n if (Scheduler || SuspenseContext) {\n t =\n Transition ||\n (Transition = {\n sources: new Set(),\n effects: [],\n promises: new Set(),\n disposed: new Set(),\n queue: new Set(),\n running: true\n });\n t.done || (t.done = new Promise(res => (t.resolve = res)));\n t.running = true;\n }\n runUpdates(fn, false);\n Listener = Owner = null;\n return t ? t.done : undefined;\n });\n}\nconst [transPending, setTransPending] = /*@__PURE__*/ createSignal(false);\nfunction useTransition() {\n return [transPending, startTransition];\n}\nfunction resumeEffects(e) {\n Effects.push.apply(Effects, e);\n e.length = 0;\n}\nfunction createContext(defaultValue, options) {\n const id = Symbol(\"context\");\n return {\n id,\n Provider: createProvider(id),\n defaultValue\n };\n}\nfunction useContext(context) {\n let value;\n return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined\n ? value\n : context.defaultValue;\n}\nfunction children(fn) {\n const children = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction getSuspenseContext() {\n return SuspenseContext || (SuspenseContext = createContext());\n}\nfunction enableExternalSource(factory, untrack = fn => fn()) {\n if (ExternalSourceConfig) {\n const { factory: oldFactory, untrack: oldUntrack } = ExternalSourceConfig;\n ExternalSourceConfig = {\n factory: (fn, trigger) => {\n const oldSource = oldFactory(fn, trigger);\n const source = factory(x => oldSource.track(x), trigger);\n return {\n track: x => source.track(x),\n dispose() {\n source.dispose();\n oldSource.dispose();\n }\n };\n },\n untrack: fn => oldUntrack(() => untrack(fn))\n };\n } else {\n ExternalSourceConfig = {\n factory,\n untrack\n };\n }\n}\nfunction readSignal() {\n const runningTransition = Transition && Transition.running;\n if (this.sources && (runningTransition ? this.tState : this.state)) {\n if ((runningTransition ? this.tState : this.state) === STALE) updateComputation(this);\n else {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(this), false);\n Updates = updates;\n }\n }\n if (Listener) {\n const sSlot = this.observers ? this.observers.length : 0;\n if (!Listener.sources) {\n Listener.sources = [this];\n Listener.sourceSlots = [sSlot];\n } else {\n Listener.sources.push(this);\n Listener.sourceSlots.push(sSlot);\n }\n if (!this.observers) {\n this.observers = [Listener];\n this.observerSlots = [Listener.sources.length - 1];\n } else {\n this.observers.push(Listener);\n this.observerSlots.push(Listener.sources.length - 1);\n }\n }\n if (runningTransition && Transition.sources.has(this)) return this.tValue;\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current =\n Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n if (Transition) {\n const TransitionRunning = Transition.running;\n if (TransitionRunning || (!isComp && Transition.sources.has(node))) {\n Transition.sources.add(node);\n node.tValue = value;\n }\n if (!TransitionRunning) node.value = value;\n } else node.value = value;\n if (node.observers && node.observers.length) {\n runUpdates(() => {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n const TransitionRunning = Transition && Transition.running;\n if (TransitionRunning && Transition.disposed.has(o)) continue;\n if (TransitionRunning ? !o.tState : !o.state) {\n if (o.pure) Updates.push(o);\n else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (!TransitionRunning) o.state = STALE;\n else o.tState = STALE;\n }\n if (Updates.length > 10e5) {\n Updates = [];\n if (false);\n throw new Error();\n }\n }, false);\n }\n }\n return value;\n}\nfunction updateComputation(node) {\n if (!node.fn) return;\n cleanNode(node);\n const time = ExecCount;\n runComputation(\n node,\n Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value,\n time\n );\n if (Transition && !Transition.running && Transition.sources.has(node)) {\n queueMicrotask(() => {\n runUpdates(() => {\n Transition && (Transition.running = true);\n Listener = Owner = node;\n runComputation(node, node.tValue, time);\n Listener = Owner = null;\n }, false);\n });\n }\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n const owner = Owner,\n listener = Listener;\n Listener = Owner = node;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n if (Transition && Transition.running) {\n node.tState = STALE;\n node.tOwned && node.tOwned.forEach(cleanNode);\n node.tOwned = undefined;\n } else {\n node.state = STALE;\n node.owned && node.owned.forEach(cleanNode);\n node.owned = null;\n }\n }\n node.updatedAt = time + 1;\n return handleError(err);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue, true);\n } else if (Transition && Transition.running && node.pure) {\n Transition.sources.add(node);\n node.tValue = nextValue;\n } else node.value = nextValue;\n node.updatedAt = time;\n }\n}\nfunction createComputation(fn, init, pure, state = STALE, options) {\n const c = {\n fn,\n state: state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: Owner ? Owner.context : null,\n pure\n };\n if (Transition && Transition.running) {\n c.state = 0;\n c.tState = state;\n }\n if (Owner === null);\n else if (Owner !== UNOWNED) {\n if (Transition && Transition.running && Owner.pure) {\n if (!Owner.tOwned) Owner.tOwned = [c];\n else Owner.tOwned.push(c);\n } else {\n if (!Owner.owned) Owner.owned = [c];\n else Owner.owned.push(c);\n }\n }\n if (ExternalSourceConfig && c.fn) {\n const [track, trigger] = createSignal(undefined, {\n equals: false\n });\n const ordinary = ExternalSourceConfig.factory(c.fn, trigger);\n onCleanup(() => ordinary.dispose());\n const triggerInTransition = () => startTransition(trigger).then(() => inTransition.dispose());\n const inTransition = ExternalSourceConfig.factory(c.fn, triggerInTransition);\n c.fn = x => {\n track();\n return Transition && Transition.running ? inTransition.track(x) : ordinary.track(x);\n };\n }\n return c;\n}\nfunction runTop(node) {\n const runningTransition = Transition && Transition.running;\n if ((runningTransition ? node.tState : node.state) === 0) return;\n if ((runningTransition ? node.tState : node.state) === PENDING) return lookUpstream(node);\n if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);\n const ancestors = [node];\n while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {\n if (runningTransition && Transition.disposed.has(node)) return;\n if (runningTransition ? node.tState : node.state) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (runningTransition) {\n let top = node,\n prev = ancestors[i + 1];\n while ((top = top.owner) && top !== prev) {\n if (Transition.disposed.has(top)) return;\n }\n }\n if ((runningTransition ? node.tState : node.state) === STALE) {\n updateComputation(node);\n } else if ((runningTransition ? node.tState : node.state) === PENDING) {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(node, ancestors[0]), false);\n Updates = updates;\n }\n }\n}\nfunction runUpdates(fn, init) {\n if (Updates) return fn();\n let wait = false;\n if (!init) Updates = [];\n if (Effects) wait = true;\n else Effects = [];\n ExecCount++;\n try {\n const res = fn();\n completeUpdates(wait);\n return res;\n } catch (err) {\n if (!wait) Effects = null;\n Updates = null;\n handleError(err);\n }\n}\nfunction completeUpdates(wait) {\n if (Updates) {\n if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);\n else runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n let res;\n if (Transition) {\n if (!Transition.promises.size && !Transition.queue.size) {\n const sources = Transition.sources;\n const disposed = Transition.disposed;\n Effects.push.apply(Effects, Transition.effects);\n res = Transition.resolve;\n for (const e of Effects) {\n \"tState\" in e && (e.state = e.tState);\n delete e.tState;\n }\n Transition = null;\n runUpdates(() => {\n for (const d of disposed) cleanNode(d);\n for (const v of sources) {\n v.value = v.tValue;\n if (v.owned) {\n for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);\n }\n if (v.tOwned) v.owned = v.tOwned;\n delete v.tValue;\n delete v.tOwned;\n v.tState = 0;\n }\n setTransPending(false);\n }, false);\n } else if (Transition.running) {\n Transition.running = false;\n Transition.effects.push.apply(Transition.effects, Effects);\n Effects = null;\n setTransPending(true);\n return;\n }\n }\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n if (res) res();\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction scheduleQueue(queue) {\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n const tasks = Transition.queue;\n if (!tasks.has(item)) {\n tasks.add(item);\n Scheduler(() => {\n tasks.delete(item);\n runUpdates(() => {\n Transition.running = true;\n runTop(item);\n }, false);\n Transition && (Transition.running = false);\n });\n }\n }\n}\nfunction runUserEffects(queue) {\n let i,\n userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);\n else queue[userLength++] = e;\n }\n if (sharedConfig.context) {\n if (sharedConfig.count) {\n sharedConfig.effects || (sharedConfig.effects = []);\n sharedConfig.effects.push(...queue.slice(0, userLength));\n return;\n }\n setHydrateContext();\n }\n if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) {\n queue = [...sharedConfig.effects, ...queue];\n userLength += sharedConfig.effects.length;\n delete sharedConfig.effects;\n }\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n const runningTransition = Transition && Transition.running;\n if (runningTransition) node.tState = 0;\n else node.state = 0;\n for (let i = 0; i < node.sources.length; i += 1) {\n const source = node.sources[i];\n if (source.sources) {\n const state = runningTransition ? source.tState : source.state;\n if (state === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount))\n runTop(source);\n } else if (state === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n const runningTransition = Transition && Transition.running;\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (runningTransition ? !o.tState : !o.state) {\n if (runningTransition) o.tState = PENDING;\n else o.state = PENDING;\n if (o.pure) Updates.push(o);\n else Effects.push(o);\n o.observers && markDownstream(o);\n }\n }\n}\nfunction cleanNode(node) {\n let i;\n if (node.sources) {\n while (node.sources.length) {\n const source = node.sources.pop(),\n index = node.sourceSlots.pop(),\n obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(),\n s = source.observerSlots.pop();\n if (index < obs.length) {\n n.sourceSlots[s] = index;\n obs[index] = n;\n source.observerSlots[index] = s;\n }\n }\n }\n }\n if (node.tOwned) {\n for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n if (Transition && Transition.running && node.pure) {\n reset(node, true);\n } else if (node.owned) {\n for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();\n node.cleanups = null;\n }\n if (Transition && Transition.running) node.tState = 0;\n else node.state = 0;\n}\nfunction reset(node, top) {\n if (!top) {\n node.tState = 0;\n Transition.disposed.add(node);\n }\n if (node.owned) {\n for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);\n }\n}\nfunction castError(err) {\n if (err instanceof Error) return err;\n return new Error(typeof err === \"string\" ? err : \"Unknown error\", {\n cause: err\n });\n}\nfunction runErrors(err, fns, owner) {\n try {\n for (const f of fns) f(err);\n } catch (e) {\n handleError(e, (owner && owner.owner) || null);\n }\n}\nfunction handleError(err, owner = Owner) {\n const fns = ERROR && owner && owner.context && owner.context[ERROR];\n const error = castError(err);\n if (!fns) throw error;\n if (Effects)\n Effects.push({\n fn() {\n runErrors(error, fns, owner);\n },\n state: STALE\n });\n else runErrors(error, fns, owner);\n}\nfunction resolveChildren(children) {\n if (typeof children === \"function\" && !children.length) return resolveChildren(children());\n if (Array.isArray(children)) {\n const results = [];\n for (let i = 0; i < children.length; i++) {\n const result = resolveChildren(children[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(\n () =>\n (res = untrack(() => {\n Owner.context = {\n ...Owner.context,\n [id]: props.value\n };\n return children(() => props.children);\n })),\n undefined\n );\n return res;\n };\n}\nfunction onError(fn) {\n ERROR || (ERROR = Symbol(\"error\"));\n if (Owner === null);\n else if (Owner.context === null || !Owner.context[ERROR]) {\n Owner.context = {\n ...Owner.context,\n [ERROR]: [fn]\n };\n mutateContext(Owner, ERROR, [fn]);\n } else Owner.context[ERROR].push(fn);\n}\nfunction mutateContext(o, key, value) {\n if (o.owned) {\n for (let i = 0; i < o.owned.length; i++) {\n if (o.owned[i].context === o.context) mutateContext(o.owned[i], key, value);\n if (!o.owned[i].context) {\n o.owned[i].context = o.context;\n mutateContext(o.owned[i], key, value);\n } else if (!o.owned[i].context[key]) {\n o.owned[i].context[key] = value;\n mutateContext(o.owned[i], key, value);\n }\n }\n }\n}\n\nfunction observable(input) {\n return {\n subscribe(observer) {\n if (!(observer instanceof Object) || observer == null) {\n throw new TypeError(\"Expected the observer to be an object.\");\n }\n const handler =\n typeof observer === \"function\" ? observer : observer.next && observer.next.bind(observer);\n if (!handler) {\n return {\n unsubscribe() {}\n };\n }\n const dispose = createRoot(disposer => {\n createEffect(() => {\n const v = input();\n untrack(() => handler(v));\n });\n return disposer;\n });\n if (getOwner()) onCleanup(dispose);\n return {\n unsubscribe() {\n dispose();\n }\n };\n },\n [Symbol.observable || \"@@observable\"]() {\n return this;\n }\n };\n}\nfunction from(producer) {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n if (\"subscribe\" in producer) {\n const unsub = producer.subscribe(v => set(() => v));\n onCleanup(() => (\"unsubscribe\" in unsub ? unsub.unsubscribe() : unsub()));\n } else {\n const clean = producer(set);\n onCleanup(clean);\n }\n return s;\n}\n\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(d) {\n for (let i = 0; i < d.length; i++) d[i]();\n}\nfunction mapArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n len = 0,\n indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [],\n newLen = newItems.length,\n i,\n j;\n newItems[$TRACK];\n return untrack(() => {\n let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n indexes && (indexes = []);\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n } else if (len === 0) {\n mapped = new Array(newLen);\n for (j = 0; j < newLen; j++) {\n items[j] = newItems[j];\n mapped[j] = createRoot(mapper);\n }\n len = newLen;\n } else {\n temp = new Array(newLen);\n tempdisposers = new Array(newLen);\n indexes && (tempIndexes = new Array(newLen));\n for (\n start = 0, end = Math.min(len, newLen);\n start < end && items[start] === newItems[start];\n start++\n );\n for (\n end = len - 1, newEnd = newLen - 1;\n end >= start && newEnd >= start && items[end] === newItems[newEnd];\n end--, newEnd--\n ) {\n temp[newEnd] = mapped[end];\n tempdisposers[newEnd] = disposers[end];\n indexes && (tempIndexes[newEnd] = indexes[end]);\n }\n newIndices = new Map();\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = newItems[j];\n i = newIndices.get(item);\n newIndicesNext[j] = i === undefined ? -1 : i;\n newIndices.set(item, j);\n }\n for (i = start; i <= end; i++) {\n item = items[i];\n j = newIndices.get(item);\n if (j !== undefined && j !== -1) {\n temp[j] = mapped[i];\n tempdisposers[j] = disposers[i];\n indexes && (tempIndexes[j] = indexes[i]);\n j = newIndicesNext[j];\n newIndices.set(item, j);\n } else disposers[i]();\n }\n for (j = start; j < newLen; j++) {\n if (j in temp) {\n mapped[j] = temp[j];\n disposers[j] = tempdisposers[j];\n if (indexes) {\n indexes[j] = tempIndexes[j];\n indexes[j](j);\n }\n } else mapped[j] = createRoot(mapper);\n }\n mapped = mapped.slice(0, (len = newLen));\n items = newItems.slice(0);\n }\n return mapped;\n });\n function mapper(disposer) {\n disposers[j] = disposer;\n if (indexes) {\n const [s, set] = createSignal(j);\n indexes[j] = set;\n return mapFn(newItems[j], s);\n }\n return mapFn(newItems[j]);\n }\n };\n}\nfunction indexArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n signals = [],\n len = 0,\n i;\n onCleanup(() => dispose(disposers));\n return () => {\n const newItems = list() || [],\n newLen = newItems.length;\n newItems[$TRACK];\n return untrack(() => {\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n signals = [];\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n return mapped;\n }\n if (items[0] === FALLBACK) {\n disposers[0]();\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n }\n for (i = 0; i < newLen; i++) {\n if (i < items.length && items[i] !== newItems[i]) {\n signals[i](() => newItems[i]);\n } else if (i >= items.length) {\n mapped[i] = createRoot(mapper);\n }\n }\n for (; i < items.length; i++) {\n disposers[i]();\n }\n len = signals.length = disposers.length = newLen;\n items = newItems.slice(0);\n return (mapped = mapped.slice(0, len));\n });\n function mapper(disposer) {\n disposers[i] = disposer;\n const [s, set] = createSignal(newItems[i]);\n signals[i] = set;\n return mapFn(s, i);\n }\n };\n}\n\nlet hydrationEnabled = false;\nfunction enableHydration() {\n hydrationEnabled = true;\n}\nfunction createComponent(Comp, props) {\n if (hydrationEnabled) {\n if (sharedConfig.context) {\n const c = sharedConfig.context;\n setHydrateContext(nextHydrateContext());\n const r = untrack(() => Comp(props || {}));\n setHydrateContext(c);\n return r;\n }\n }\n return untrack(() => Comp(props || {}));\n}\nfunction trueFn() {\n return true;\n}\nconst propTraps = {\n get(_, property, receiver) {\n if (property === $PROXY) return receiver;\n return _.get(property);\n },\n has(_, property) {\n if (property === $PROXY) return true;\n return _.has(property);\n },\n set: trueFn,\n deleteProperty: trueFn,\n getOwnPropertyDescriptor(_, property) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return _.get(property);\n },\n set: trueFn,\n deleteProperty: trueFn\n };\n },\n ownKeys(_) {\n return _.keys();\n }\n};\nfunction resolveSource(s) {\n return !(s = typeof s === \"function\" ? s() : s) ? {} : s;\n}\nfunction resolveSources() {\n for (let i = 0, length = this.length; i < length; ++i) {\n const v = this[i]();\n if (v !== undefined) return v;\n }\n}\nfunction mergeProps(...sources) {\n let proxy = false;\n for (let i = 0; i < sources.length; i++) {\n const s = sources[i];\n proxy = proxy || (!!s && $PROXY in s);\n sources[i] = typeof s === \"function\" ? ((proxy = true), createMemo(s)) : s;\n }\n if (SUPPORTS_PROXY && proxy) {\n return new Proxy(\n {\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== undefined) return v;\n }\n },\n has(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n if (property in resolveSource(sources[i])) return true;\n }\n return false;\n },\n keys() {\n const keys = [];\n for (let i = 0; i < sources.length; i++)\n keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n },\n propTraps\n );\n }\n const sourcesMap = {};\n const defined = Object.create(null);\n for (let i = sources.length - 1; i >= 0; i--) {\n const source = sources[i];\n if (!source) continue;\n const sourceKeys = Object.getOwnPropertyNames(source);\n for (let i = sourceKeys.length - 1; i >= 0; i--) {\n const key = sourceKeys[i];\n if (key === \"__proto__\" || key === \"constructor\") continue;\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!defined[key]) {\n defined[key] = desc.get\n ? {\n enumerable: true,\n configurable: true,\n get: resolveSources.bind((sourcesMap[key] = [desc.get.bind(source)]))\n }\n : desc.value !== undefined\n ? desc\n : undefined;\n } else {\n const sources = sourcesMap[key];\n if (sources) {\n if (desc.get) sources.push(desc.get.bind(source));\n else if (desc.value !== undefined) sources.push(() => desc.value);\n }\n }\n }\n }\n const target = {};\n const definedKeys = Object.keys(defined);\n for (let i = definedKeys.length - 1; i >= 0; i--) {\n const key = definedKeys[i],\n desc = defined[key];\n if (desc && desc.get) Object.defineProperty(target, key, desc);\n else target[key] = desc ? desc.value : undefined;\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n if (SUPPORTS_PROXY && $PROXY in props) {\n const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);\n const res = keys.map(k => {\n return new Proxy(\n {\n get(property) {\n return k.includes(property) ? props[property] : undefined;\n },\n has(property) {\n return k.includes(property) && property in props;\n },\n keys() {\n return k.filter(property => property in props);\n }\n },\n propTraps\n );\n });\n res.push(\n new Proxy(\n {\n get(property) {\n return blocked.has(property) ? undefined : props[property];\n },\n has(property) {\n return blocked.has(property) ? false : property in props;\n },\n keys() {\n return Object.keys(props).filter(k => !blocked.has(k));\n }\n },\n propTraps\n )\n );\n return res;\n }\n const otherObject = {};\n const objects = keys.map(() => ({}));\n for (const propName of Object.getOwnPropertyNames(props)) {\n const desc = Object.getOwnPropertyDescriptor(props, propName);\n const isDefaultDesc =\n !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;\n let blocked = false;\n let objectIndex = 0;\n for (const k of keys) {\n if (k.includes(propName)) {\n blocked = true;\n isDefaultDesc\n ? (objects[objectIndex][propName] = desc.value)\n : Object.defineProperty(objects[objectIndex], propName, desc);\n }\n ++objectIndex;\n }\n if (!blocked) {\n isDefaultDesc\n ? (otherObject[propName] = desc.value)\n : Object.defineProperty(otherObject, propName, desc);\n }\n }\n return [...objects, otherObject];\n}\nfunction lazy(fn) {\n let comp;\n let p;\n const wrap = props => {\n const ctx = sharedConfig.context;\n if (ctx) {\n const [s, set] = createSignal();\n sharedConfig.count || (sharedConfig.count = 0);\n sharedConfig.count++;\n (p || (p = fn())).then(mod => {\n !sharedConfig.done && setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => mod.default);\n setHydrateContext();\n });\n comp = s;\n } else if (!comp) {\n const [s] = createResource(() => (p || (p = fn())).then(mod => mod.default));\n comp = s;\n }\n let Comp;\n return createMemo(() =>\n (Comp = comp())\n ? untrack(() => {\n if (false);\n if (!ctx || sharedConfig.done) return Comp(props);\n const c = sharedConfig.context;\n setHydrateContext(ctx);\n const r = Comp(props);\n setHydrateContext(c);\n return r;\n })\n : \"\"\n );\n };\n wrap.preload = () => p || ((p = fn()).then(mod => (comp = () => mod.default)), p);\n return wrap;\n}\nlet counter = 0;\nfunction createUniqueId() {\n const ctx = sharedConfig.context;\n return ctx ? sharedConfig.getNextContextId() : `cl-${counter++}`;\n}\n\nconst narrowedError = name => `Stale read from <${name}>.`;\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Index(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(indexArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Show(props) {\n const keyed = props.keyed;\n const condition = createMemo(() => props.when, undefined, {\n equals: (a, b) => (keyed ? a === b : !a === !b)\n });\n return createMemo(\n () => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn\n ? untrack(() =>\n child(\n keyed\n ? c\n : () => {\n if (!untrack(condition)) throw narrowedError(\"Show\");\n return props.when;\n }\n )\n )\n : child;\n }\n return props.fallback;\n },\n undefined,\n undefined\n );\n}\nfunction Switch(props) {\n let keyed = false;\n const equals = (a, b) => (keyed ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];\n const conditions = children(() => props.children),\n evalConditions = createMemo(\n () => {\n let conds = conditions();\n if (!Array.isArray(conds)) conds = [conds];\n for (let i = 0; i < conds.length; i++) {\n const c = conds[i].when;\n if (c) {\n keyed = !!conds[i].keyed;\n return [i, c, conds[i]];\n }\n }\n return [-1];\n },\n undefined,\n {\n equals\n }\n );\n return createMemo(\n () => {\n const [index, when, cond] = evalConditions();\n if (index < 0) return props.fallback;\n const c = cond.children;\n const fn = typeof c === \"function\" && c.length > 0;\n return fn\n ? untrack(() =>\n c(\n keyed\n ? when\n : () => {\n if (untrack(evalConditions)[0] !== index) throw narrowedError(\"Match\");\n return cond.when;\n }\n )\n )\n : c;\n },\n undefined,\n undefined\n );\n}\nfunction Match(props) {\n return props;\n}\nlet Errors;\nfunction resetErrorBoundaries() {\n Errors && [...Errors].forEach(fn => fn());\n}\nfunction ErrorBoundary(props) {\n let err;\n if (sharedConfig.context && sharedConfig.load)\n err = sharedConfig.load(sharedConfig.getContextId());\n const [errored, setErrored] = createSignal(err, undefined);\n Errors || (Errors = new Set());\n Errors.add(setErrored);\n onCleanup(() => Errors.delete(setErrored));\n return createMemo(\n () => {\n let e;\n if ((e = errored())) {\n const f = props.fallback;\n return typeof f === \"function\" && f.length ? untrack(() => f(e, () => setErrored())) : f;\n }\n return catchError(() => props.children, setErrored);\n },\n undefined,\n undefined\n );\n}\n\nconst suspenseListEquals = (a, b) =>\n a.showContent === b.showContent && a.showFallback === b.showFallback;\nconst SuspenseListContext = /* #__PURE__ */ createContext();\nfunction SuspenseList(props) {\n let [wrapper, setWrapper] = createSignal(() => ({\n inFallback: false\n })),\n show;\n const listContext = useContext(SuspenseListContext);\n const [registry, setRegistry] = createSignal([]);\n if (listContext) {\n show = listContext.register(createMemo(() => wrapper()().inFallback));\n }\n const resolved = createMemo(\n prev => {\n const reveal = props.revealOrder,\n tail = props.tail,\n { showContent = true, showFallback = true } = show ? show() : {},\n reg = registry(),\n reverse = reveal === \"backwards\";\n if (reveal === \"together\") {\n const all = reg.every(inFallback => !inFallback());\n const res = reg.map(() => ({\n showContent: all && showContent,\n showFallback\n }));\n res.inFallback = !all;\n return res;\n }\n let stop = false;\n let inFallback = prev.inFallback;\n const res = [];\n for (let i = 0, len = reg.length; i < len; i++) {\n const n = reverse ? len - i - 1 : i,\n s = reg[n]();\n if (!stop && !s) {\n res[n] = {\n showContent,\n showFallback\n };\n } else {\n const next = !stop;\n if (next) inFallback = true;\n res[n] = {\n showContent: next,\n showFallback: !tail || (next && tail === \"collapsed\") ? showFallback : false\n };\n stop = true;\n }\n }\n if (!stop) inFallback = false;\n res.inFallback = inFallback;\n return res;\n },\n {\n inFallback: false\n }\n );\n setWrapper(() => resolved);\n return createComponent(SuspenseListContext.Provider, {\n value: {\n register: inFallback => {\n let index;\n setRegistry(registry => {\n index = registry.length;\n return [...registry, inFallback];\n });\n return createMemo(() => resolved()[index], undefined, {\n equals: suspenseListEquals\n });\n }\n },\n get children() {\n return props.children;\n }\n });\n}\nfunction Suspense(props) {\n let counter = 0,\n show,\n ctx,\n p,\n flicker,\n error;\n const [inFallback, setFallback] = createSignal(false),\n SuspenseContext = getSuspenseContext(),\n store = {\n increment: () => {\n if (++counter === 1) setFallback(true);\n },\n decrement: () => {\n if (--counter === 0) setFallback(false);\n },\n inFallback,\n effects: [],\n resolved: false\n },\n owner = getOwner();\n if (sharedConfig.context && sharedConfig.load) {\n const key = sharedConfig.getContextId();\n let ref = sharedConfig.load(key);\n if (ref) {\n if (typeof ref !== \"object\" || ref.status !== \"success\") p = ref;\n else sharedConfig.gather(key);\n }\n if (p && p !== \"$$f\") {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n flicker = s;\n p.then(\n () => {\n if (sharedConfig.done) return set();\n sharedConfig.gather(key);\n setHydrateContext(ctx);\n set();\n setHydrateContext();\n },\n err => {\n error = err;\n set();\n }\n );\n }\n }\n const listContext = useContext(SuspenseListContext);\n if (listContext) show = listContext.register(store.inFallback);\n let dispose;\n onCleanup(() => dispose && dispose());\n return createComponent(SuspenseContext.Provider, {\n value: store,\n get children() {\n return createMemo(() => {\n if (error) throw error;\n ctx = sharedConfig.context;\n if (flicker) {\n flicker();\n return (flicker = undefined);\n }\n if (ctx && p === \"$$f\") setHydrateContext();\n const rendered = createMemo(() => props.children);\n return createMemo(prev => {\n const inFallback = store.inFallback(),\n { showContent = true, showFallback = true } = show ? show() : {};\n if ((!inFallback || (p && p !== \"$$f\")) && showContent) {\n store.resolved = true;\n dispose && dispose();\n dispose = ctx = p = undefined;\n resumeEffects(store.effects);\n return rendered();\n }\n if (!showFallback) return;\n if (dispose) return prev;\n return createRoot(disposer => {\n dispose = disposer;\n if (ctx) {\n setHydrateContext({\n id: ctx.id + \"F\",\n count: 0\n });\n ctx = undefined;\n }\n return props.fallback;\n }, owner);\n });\n });\n }\n });\n}\n\nconst DEV = undefined;\n\nexport {\n $DEVCOMP,\n $PROXY,\n $TRACK,\n DEV,\n ErrorBoundary,\n For,\n Index,\n Match,\n Show,\n Suspense,\n SuspenseList,\n Switch,\n batch,\n cancelCallback,\n catchError,\n children,\n createComponent,\n createComputed,\n createContext,\n createDeferred,\n createEffect,\n createMemo,\n createReaction,\n createRenderEffect,\n createResource,\n createRoot,\n createSelector,\n createSignal,\n createUniqueId,\n enableExternalSource,\n enableHydration,\n enableScheduling,\n equalFn,\n from,\n getListener,\n getOwner,\n indexArray,\n lazy,\n mapArray,\n mergeProps,\n observable,\n on,\n onCleanup,\n onError,\n onMount,\n requestCallback,\n resetErrorBoundaries,\n runWithOwner,\n sharedConfig,\n splitProps,\n startTransition,\n untrack,\n useContext,\n useTransition\n};\n","import {\n createRoot,\n createRenderEffect,\n untrack,\n sharedConfig,\n enableHydration,\n getOwner,\n createEffect,\n runWithOwner,\n createMemo,\n createSignal,\n onCleanup,\n splitProps\n} from \"solid-js\";\nexport {\n ErrorBoundary,\n For,\n Index,\n Match,\n Show,\n Suspense,\n SuspenseList,\n Switch,\n createComponent,\n createRenderEffect as effect,\n getOwner,\n createMemo as memo,\n mergeProps,\n untrack\n} from \"solid-js\";\n\nconst booleans = [\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"indeterminate\",\n \"inert\",\n \"ismap\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"seamless\",\n \"selected\"\n];\nconst Properties = /*#__PURE__*/ new Set([\n \"className\",\n \"value\",\n \"readOnly\",\n \"formNoValidate\",\n \"isMap\",\n \"noModule\",\n \"playsInline\",\n ...booleans\n]);\nconst ChildProperties = /*#__PURE__*/ new Set([\n \"innerHTML\",\n \"textContent\",\n \"innerText\",\n \"children\"\n]);\nconst Aliases = /*#__PURE__*/ Object.assign(Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {\n class: \"className\",\n formnovalidate: {\n $: \"formNoValidate\",\n BUTTON: 1,\n INPUT: 1\n },\n ismap: {\n $: \"isMap\",\n IMG: 1\n },\n nomodule: {\n $: \"noModule\",\n SCRIPT: 1\n },\n playsinline: {\n $: \"playsInline\",\n VIDEO: 1\n },\n readonly: {\n $: \"readOnly\",\n INPUT: 1,\n TEXTAREA: 1\n }\n});\nfunction getPropAlias(prop, tagName) {\n const a = PropAliases[prop];\n return typeof a === \"object\" ? (a[tagName] ? a[\"$\"] : undefined) : a;\n}\nconst DelegatedEvents = /*#__PURE__*/ new Set([\n \"beforeinput\",\n \"click\",\n \"dblclick\",\n \"contextmenu\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"mouseup\",\n \"pointerdown\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"pointerup\",\n \"touchend\",\n \"touchmove\",\n \"touchstart\"\n]);\nconst SVGElements = /*#__PURE__*/ new Set([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animate\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"circle\",\n \"clipPath\",\n \"color-profile\",\n \"cursor\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"filter\",\n \"font\",\n \"font-face\",\n \"font-face-format\",\n \"font-face-name\",\n \"font-face-src\",\n \"font-face-uri\",\n \"foreignObject\",\n \"g\",\n \"glyph\",\n \"glyphRef\",\n \"hkern\",\n \"image\",\n \"line\",\n \"linearGradient\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"missing-glyph\",\n \"mpath\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialGradient\",\n \"rect\",\n \"set\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"textPath\",\n \"tref\",\n \"tspan\",\n \"use\",\n \"view\",\n \"vkern\"\n]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nconst DOMElements = /*#__PURE__*/ new Set([\n \"html\",\n \"base\",\n \"head\",\n \"link\",\n \"meta\",\n \"style\",\n \"title\",\n \"body\",\n \"address\",\n \"article\",\n \"aside\",\n \"footer\",\n \"header\",\n \"main\",\n \"nav\",\n \"section\",\n \"body\",\n \"blockquote\",\n \"dd\",\n \"div\",\n \"dl\",\n \"dt\",\n \"figcaption\",\n \"figure\",\n \"hr\",\n \"li\",\n \"ol\",\n \"p\",\n \"pre\",\n \"ul\",\n \"a\",\n \"abbr\",\n \"b\",\n \"bdi\",\n \"bdo\",\n \"br\",\n \"cite\",\n \"code\",\n \"data\",\n \"dfn\",\n \"em\",\n \"i\",\n \"kbd\",\n \"mark\",\n \"q\",\n \"rp\",\n \"rt\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"time\",\n \"u\",\n \"var\",\n \"wbr\",\n \"area\",\n \"audio\",\n \"img\",\n \"map\",\n \"track\",\n \"video\",\n \"embed\",\n \"iframe\",\n \"object\",\n \"param\",\n \"picture\",\n \"portal\",\n \"source\",\n \"svg\",\n \"math\",\n \"canvas\",\n \"noscript\",\n \"script\",\n \"del\",\n \"ins\",\n \"caption\",\n \"col\",\n \"colgroup\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"tr\",\n \"button\",\n \"datalist\",\n \"fieldset\",\n \"form\",\n \"input\",\n \"label\",\n \"legend\",\n \"meter\",\n \"optgroup\",\n \"option\",\n \"output\",\n \"progress\",\n \"select\",\n \"textarea\",\n \"details\",\n \"dialog\",\n \"menu\",\n \"summary\",\n \"details\",\n \"slot\",\n \"template\",\n \"acronym\",\n \"applet\",\n \"basefont\",\n \"bgsound\",\n \"big\",\n \"blink\",\n \"center\",\n \"content\",\n \"dir\",\n \"font\",\n \"frame\",\n \"frameset\",\n \"hgroup\",\n \"image\",\n \"keygen\",\n \"marquee\",\n \"menuitem\",\n \"nobr\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"rb\",\n \"rtc\",\n \"shadow\",\n \"spacer\",\n \"strike\",\n \"tt\",\n \"xmp\",\n \"a\",\n \"abbr\",\n \"acronym\",\n \"address\",\n \"applet\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"base\",\n \"basefont\",\n \"bdi\",\n \"bdo\",\n \"bgsound\",\n \"big\",\n \"blink\",\n \"blockquote\",\n \"body\",\n \"br\",\n \"button\",\n \"canvas\",\n \"caption\",\n \"center\",\n \"cite\",\n \"code\",\n \"col\",\n \"colgroup\",\n \"content\",\n \"data\",\n \"datalist\",\n \"dd\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"embed\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"font\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"head\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"html\",\n \"i\",\n \"iframe\",\n \"image\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"keygen\",\n \"label\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"map\",\n \"mark\",\n \"marquee\",\n \"menu\",\n \"menuitem\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"nobr\",\n \"noembed\",\n \"noframes\",\n \"noscript\",\n \"object\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"output\",\n \"p\",\n \"param\",\n \"picture\",\n \"plaintext\",\n \"portal\",\n \"pre\",\n \"progress\",\n \"q\",\n \"rb\",\n \"rp\",\n \"rt\",\n \"rtc\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"section\",\n \"select\",\n \"shadow\",\n \"slot\",\n \"small\",\n \"source\",\n \"spacer\",\n \"span\",\n \"strike\",\n \"strong\",\n \"style\",\n \"sub\",\n \"summary\",\n \"sup\",\n \"table\",\n \"tbody\",\n \"td\",\n \"template\",\n \"textarea\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"time\",\n \"title\",\n \"tr\",\n \"track\",\n \"tt\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\",\n \"xmp\",\n \"input\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\"\n]);\n\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = a[aEnd - 1].nextSibling,\n map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? (bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart]) : after;\n while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) a[aStart].remove();\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = a[--aEnd].nextSibling;\n parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling);\n parentNode.insertBefore(b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart,\n sequence = 1,\n t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) parentNode.insertBefore(b[bStart++], node);\n } else parentNode.replaceChild(b[bStart++], a[aStart++]);\n } else aStart++;\n } else a[aStart++].remove();\n }\n }\n}\n\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n element === document\n ? code()\n : insert(element, code(), element.firstChild ? null : undefined, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, isImportNode, isSVG) {\n let node;\n const create = () => {\n const t = document.createElement(\"template\");\n t.innerHTML = html;\n return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;\n };\n const fn = isImportNode\n ? () => untrack(() => document.importNode(node || (node = create()), true))\n : () => (node || (node = create())).cloneNode(true);\n fn.cloneNode = fn;\n return fn;\n}\nfunction delegateEvents(eventNames, document = window.document) {\n const e = document[$$EVENTS] || (document[$$EVENTS] = new Set());\n for (let i = 0, l = eventNames.length; i < l; i++) {\n const name = eventNames[i];\n if (!e.has(name)) {\n e.add(name);\n document.addEventListener(name, eventHandler);\n }\n }\n}\nfunction clearDelegatedEvents(document = window.document) {\n if (document[$$EVENTS]) {\n for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);\n delete document[$$EVENTS];\n }\n}\nfunction setProperty(node, name, value) {\n if (isHydrating(node)) return;\n node[name] = value;\n}\nfunction setAttribute(node, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(name);\n else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttributeNS(namespace, name);\n else node.setAttributeNS(namespace, name, value);\n}\nfunction setBoolAttribute(node, name, value) {\n if (isHydrating(node)) return;\n value ? node.setAttribute(name, \"\") : node.removeAttribute(name);\n}\nfunction className(node, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(\"class\");\n else node.className = value;\n}\nfunction addEventListener(node, name, handler, delegate) {\n if (delegate) {\n if (Array.isArray(handler)) {\n node[`$$${name}`] = handler[0];\n node[`$$${name}Data`] = handler[1];\n } else node[`$$${name}`] = handler;\n } else if (Array.isArray(handler)) {\n const handlerFn = handler[0];\n node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e)));\n } else node.addEventListener(name, handler, typeof handler !== \"function\" && handler);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}),\n prevKeys = Object.keys(prev);\n let i, len;\n for (i = 0, len = prevKeys.length; i < len; i++) {\n const key = prevKeys[i];\n if (!key || key === \"undefined\" || value[key]) continue;\n toggleClassKey(node, key, false);\n delete prev[key];\n }\n for (i = 0, len = classKeys.length; i < len; i++) {\n const key = classKeys[i],\n classValue = !!value[key];\n if (!key || key === \"undefined\" || prev[key] === classValue || !classValue) continue;\n toggleClassKey(node, key, true);\n prev[key] = classValue;\n }\n return prev;\n}\nfunction style(node, value, prev) {\n if (!value) return prev ? setAttribute(node, \"style\") : value;\n const nodeStyle = node.style;\n if (typeof value === \"string\") return (nodeStyle.cssText = value);\n typeof prev === \"string\" && (nodeStyle.cssText = prev = undefined);\n prev || (prev = {});\n value || (value = {});\n let v, s;\n for (s in prev) {\n value[s] == null && nodeStyle.removeProperty(s);\n delete prev[s];\n }\n for (s in value) {\n v = value[s];\n if (v !== prev[s]) {\n nodeStyle.setProperty(s, v);\n prev[s] = v;\n }\n }\n return prev;\n}\nfunction spread(node, props = {}, isSVG, skipChildren) {\n const prevProps = {};\n if (!skipChildren) {\n createRenderEffect(\n () => (prevProps.children = insertExpression(node, props.children, prevProps.children))\n );\n }\n createRenderEffect(() => typeof props.ref === \"function\" && use(props.ref, node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction dynamicProperty(props, key) {\n const src = props[key];\n Object.defineProperty(props, key, {\n get() {\n return src();\n },\n enumerable: true\n });\n return props;\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);\n}\nfunction assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {\n props || (props = {});\n for (const prop in prevProps) {\n if (!(prop in props)) {\n if (prop === \"children\") continue;\n prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef, props);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n if (!skipChildren) insertExpression(node, props.children);\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef, props);\n }\n}\nfunction hydrate$1(code, element, options = {}) {\n if (globalThis._$HY.done) return render(code, element, [...element.childNodes], options);\n sharedConfig.completed = globalThis._$HY.completed;\n sharedConfig.events = globalThis._$HY.events;\n sharedConfig.load = id => globalThis._$HY.r[id];\n sharedConfig.has = id => id in globalThis._$HY.r;\n sharedConfig.gather = root => gatherHydratable(element, root);\n sharedConfig.registry = new Map();\n sharedConfig.context = {\n id: options.renderId || \"\",\n count: 0\n };\n try {\n gatherHydratable(element, options.renderId);\n return render(code, element, [...element.childNodes], options);\n } finally {\n sharedConfig.context = null;\n }\n}\nfunction getNextElement(template) {\n let node,\n key,\n hydrating = isHydrating();\n if (!hydrating || !(node = sharedConfig.registry.get((key = getHydrationKey())))) {\n return template();\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction getNextMatch(el, nodeName) {\n while (el && el.localName !== nodeName) el = el.nextSibling;\n return el;\n}\nfunction getNextMarker(start) {\n let end = start,\n count = 0,\n current = [];\n if (isHydrating(start)) {\n while (end) {\n if (end.nodeType === 8) {\n const v = end.nodeValue;\n if (v === \"$\") count++;\n else if (v === \"/\") {\n if (count === 0) return [end, current];\n count--;\n }\n }\n current.push(end);\n end = end.nextSibling;\n }\n }\n return [end, current];\n}\nfunction runHydrationEvents() {\n if (sharedConfig.events && !sharedConfig.events.queued) {\n queueMicrotask(() => {\n const { completed, events } = sharedConfig;\n if (!events) return;\n events.queued = false;\n while (events.length) {\n const [el, e] = events[0];\n if (!completed.has(el)) return;\n events.shift();\n eventHandler(e);\n }\n if (sharedConfig.done) {\n sharedConfig.events = _$HY.events = null;\n sharedConfig.completed = _$HY.completed = null;\n }\n });\n sharedConfig.events.queued = true;\n }\n}\nfunction isHydrating(node) {\n return !!sharedConfig.context && !sharedConfig.done && (!node || node.isConnected);\n}\nfunction toPropertyName(name) {\n return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase());\n}\nfunction toggleClassKey(node, key, value) {\n const classNames = key.trim().split(/\\s+/);\n for (let i = 0, nameLen = classNames.length; i < nameLen; i++)\n node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef, props) {\n let isCE, isProp, isChildProp, propAlias, forceProp;\n if (prop === \"style\") return style(node, value, prev);\n if (prop === \"classList\") return classList(node, value, prev);\n if (value === prev) return prev;\n if (prop === \"ref\") {\n if (!skipRef) value(node);\n } else if (prop.slice(0, 3) === \"on:\") {\n const e = prop.slice(3);\n prev && node.removeEventListener(e, prev, typeof prev !== \"function\" && prev);\n value && node.addEventListener(e, value, typeof value !== \"function\" && value);\n } else if (prop.slice(0, 10) === \"oncapture:\") {\n const e = prop.slice(10);\n prev && node.removeEventListener(e, prev, true);\n value && node.addEventListener(e, value, true);\n } else if (prop.slice(0, 2) === \"on\") {\n const name = prop.slice(2).toLowerCase();\n const delegate = DelegatedEvents.has(name);\n if (!delegate && prev) {\n const h = Array.isArray(prev) ? prev[0] : prev;\n node.removeEventListener(name, h);\n }\n if (delegate || value) {\n addEventListener(node, name, value, delegate);\n delegate && delegateEvents([name]);\n }\n } else if (prop.slice(0, 5) === \"attr:\") {\n setAttribute(node, prop.slice(5), value);\n } else if (prop.slice(0, 5) === \"bool:\") {\n setBoolAttribute(node, prop.slice(5), value);\n } else if (\n (forceProp = prop.slice(0, 5) === \"prop:\") ||\n (isChildProp = ChildProperties.has(prop)) ||\n (!isSVG &&\n ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop)))) ||\n (isCE = node.nodeName.includes(\"-\") || \"is\" in props)\n ) {\n if (forceProp) {\n prop = prop.slice(5);\n isProp = true;\n } else if (isHydrating(node)) return value;\n if (prop === \"class\" || prop === \"className\") className(node, value);\n else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;\n else node[propAlias || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);\n else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n if (sharedConfig.registry && sharedConfig.events) {\n if (sharedConfig.events.find(([el, ev]) => ev === e)) return;\n }\n let node = e.target;\n const key = `$$${e.type}`;\n const oriTarget = e.target;\n const oriCurrentTarget = e.currentTarget;\n const retarget = value =>\n Object.defineProperty(e, \"target\", {\n configurable: true,\n value\n });\n const handleNode = () => {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== undefined ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node.host &&\n typeof node.host !== \"string\" &&\n !node.host._$host &&\n node.contains(e.target) &&\n retarget(node.host);\n return true;\n };\n const walkUpTree = () => {\n while (handleNode() && (node = node._$host || node.parentNode || node.host));\n };\n Object.defineProperty(e, \"currentTarget\", {\n configurable: true,\n get() {\n return node || document;\n }\n });\n if (sharedConfig.registry && !sharedConfig.done) sharedConfig.done = _$HY.done = true;\n if (e.composedPath) {\n const path = e.composedPath();\n retarget(path[0]);\n for (let i = 0; i < path.length - 2; i++) {\n node = path[i];\n if (!handleNode()) break;\n if (node._$host) {\n node = node._$host;\n walkUpTree();\n break;\n }\n if (node.parentNode === oriCurrentTarget) {\n break;\n }\n }\n } else walkUpTree();\n retarget(oriTarget);\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n const hydrating = isHydrating(parent);\n if (hydrating) {\n !current && (current = [...parent.childNodes]);\n let cleaned = [];\n for (let i = 0; i < current.length; i++) {\n const node = current[i];\n if (node.nodeType === 8 && node.data.slice(0, 2) === \"!$\") node.remove();\n else cleaned.push(node);\n }\n current = cleaned;\n }\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value,\n multi = marker !== undefined;\n parent = (multi && current[0] && current[0].parentNode) || parent;\n if (t === \"string\" || t === \"number\") {\n if (hydrating) return current;\n if (t === \"number\") {\n value = value.toString();\n if (value === current) return current;\n }\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n node.data !== value && (node.data = value);\n } else node = document.createTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n current = parent.firstChild.data = value;\n } else current = parent.textContent = value;\n }\n } else if (value == null || t === \"boolean\") {\n if (hydrating) return current;\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n const currentArray = current && Array.isArray(current);\n if (normalizeIncomingArray(array, value, current, unwrapArray)) {\n createRenderEffect(() => (current = insertExpression(parent, array, current, marker, true)));\n return () => current;\n }\n if (hydrating) {\n if (!array.length) return current;\n if (marker === undefined) return (current = [...parent.childNodes]);\n let node = array[0];\n if (node.parentNode !== parent) return current;\n const nodes = [node];\n while ((node = node.nextSibling) !== marker) nodes.push(node);\n return (current = nodes);\n }\n if (array.length === 0) {\n current = cleanChildren(parent, current, marker);\n if (multi) return current;\n } else if (currentArray) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else {\n current && cleanChildren(parent);\n appendNodes(parent, array);\n }\n current = array;\n } else if (value.nodeType) {\n if (hydrating && value.parentNode) return (current = multi ? [value] : value);\n if (Array.isArray(current)) {\n if (multi) return (current = cleanChildren(parent, current, marker, value));\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !parent.firstChild) {\n parent.appendChild(value);\n } else parent.replaceChild(value, parent.firstChild);\n current = value;\n } else;\n return current;\n}\nfunction normalizeIncomingArray(normalized, array, current, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i],\n prev = current && current[normalized.length],\n t;\n if (item == null || item === true || item === false);\n else if ((t = typeof item) === \"object\" && item.nodeType) {\n normalized.push(item);\n } else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic =\n normalizeIncomingArray(\n normalized,\n Array.isArray(item) ? item : [item],\n Array.isArray(prev) ? prev : [prev]\n ) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);\n else normalized.push(document.createTextNode(value));\n }\n }\n return dynamic;\n}\nfunction appendNodes(parent, array, marker = null) {\n for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);\n}\nfunction cleanChildren(parent, current, marker, replacement) {\n if (marker === undefined) return (parent.textContent = \"\");\n const node = replacement || document.createTextNode(\"\");\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = el.parentNode === parent;\n if (!inserted && !i)\n isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);\n else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction gatherHydratable(element, root) {\n const templates = element.querySelectorAll(`*[data-hk]`);\n for (let i = 0; i < templates.length; i++) {\n const node = templates[i];\n const key = node.getAttribute(\"data-hk\");\n if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))\n sharedConfig.registry.set(key, node);\n }\n}\nfunction getHydrationKey() {\n return sharedConfig.getNextContextId();\n}\nfunction NoHydration(props) {\n return sharedConfig.context ? undefined : props.children;\n}\nfunction Hydration(props) {\n return props.children;\n}\nconst voidFn = () => undefined;\nconst RequestContext = Symbol();\nfunction innerHTML(parent, content) {\n !sharedConfig.context && (parent.innerHTML = content);\n}\n\nfunction throwInBrowser(func) {\n const err = new Error(`${func.name} is not supported in the browser, returning undefined`);\n console.error(err);\n}\nfunction renderToString(fn, options) {\n throwInBrowser(renderToString);\n}\nfunction renderToStringAsync(fn, options) {\n throwInBrowser(renderToStringAsync);\n}\nfunction renderToStream(fn, options) {\n throwInBrowser(renderToStream);\n}\nfunction ssr(template, ...nodes) {}\nfunction ssrElement(name, props, children, needsId) {}\nfunction ssrClassList(value) {}\nfunction ssrStyle(value) {}\nfunction ssrAttribute(key, value) {}\nfunction ssrHydrationKey() {}\nfunction resolveSSRNode(node) {}\nfunction escape(html) {}\nfunction ssrSpread(props, isSVG, skipChildren) {}\n\nconst isServer = false;\nconst isDev = false;\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nfunction createElement(tagName, isSVG = false) {\n return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName);\n}\nconst hydrate = (...args) => {\n enableHydration();\n return hydrate$1(...args);\n};\nfunction Portal(props) {\n const { useShadow } = props,\n marker = document.createTextNode(\"\"),\n mount = () => props.mount || document.body,\n owner = getOwner();\n let content;\n let hydrating = !!sharedConfig.context;\n createEffect(\n () => {\n if (hydrating) getOwner().user = hydrating = false;\n content || (content = runWithOwner(owner, () => createMemo(() => props.children)));\n const el = mount();\n if (el instanceof HTMLHeadElement) {\n const [clean, setClean] = createSignal(false);\n const cleanup = () => setClean(true);\n createRoot(dispose => insert(el, () => (!clean() ? content() : dispose()), null));\n onCleanup(cleanup);\n } else {\n const container = createElement(props.isSVG ? \"g\" : \"div\", props.isSVG),\n renderRoot =\n useShadow && container.attachShadow\n ? container.attachShadow({\n mode: \"open\"\n })\n : container;\n Object.defineProperty(container, \"_$host\", {\n get() {\n return marker.parentNode;\n },\n configurable: true\n });\n insert(renderRoot, content);\n el.appendChild(container);\n props.ref && props.ref(container);\n onCleanup(() => el.removeChild(container));\n }\n },\n undefined,\n {\n render: !hydrating\n }\n );\n return marker;\n}\nfunction Dynamic(props) {\n const [p, others] = splitProps(props, [\"component\"]);\n const cached = createMemo(() => p.component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n return untrack(() => component(others));\n case \"string\":\n const isSvg = SVGElements.has(component);\n const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg);\n spread(el, others, isSvg);\n return el;\n }\n });\n}\n\nexport {\n Aliases,\n voidFn as Assets,\n ChildProperties,\n DOMElements,\n DelegatedEvents,\n Dynamic,\n Hydration,\n voidFn as HydrationScript,\n NoHydration,\n Portal,\n Properties,\n RequestContext,\n SVGElements,\n SVGNamespace,\n addEventListener,\n assign,\n classList,\n className,\n clearDelegatedEvents,\n delegateEvents,\n dynamicProperty,\n escape,\n voidFn as generateHydrationScript,\n voidFn as getAssets,\n getHydrationKey,\n getNextElement,\n getNextMarker,\n getNextMatch,\n getPropAlias,\n voidFn as getRequestEvent,\n hydrate,\n innerHTML,\n insert,\n isDev,\n isServer,\n render,\n renderToStream,\n renderToString,\n renderToStringAsync,\n resolveSSRNode,\n runHydrationEvents,\n setAttribute,\n setAttributeNS,\n setBoolAttribute,\n setProperty,\n spread,\n ssr,\n ssrAttribute,\n ssrClassList,\n ssrElement,\n ssrHydrationKey,\n ssrSpread,\n ssrStyle,\n style,\n template,\n use,\n voidFn as useAssets\n};\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import { JSXElement } from \"solid-js\"\n\ntype ModalProps = {\n open: boolean\n message: string | JSXElement\n}\n\nexport default function Modal(props: ModalProps) {\n return (\n \n )\n}","export type LeaderboardResponse = {\n leaders: {\n id: string,\n values: { x: number, y : number }[], // Not using this right now.\n score: number,\n }[],\n}\n\ntype GossipRequest = {\n since: number,\n}\n\nexport type GossipResponse = {\n messages: {\n id: string,\n message: string,\n node: string,\n }[],\n currentRound: number,\n currentStage: number,\n}\n\nexport async function getLeaderboard(): Promise {\n try {\n const res = await fetch('/api/leaderboard')\n const json = await res.json()\n\n if (res.status > 499) {\n console.error('5xx error fetching leaderboard details')\n throw new Error('could not get leaderboard: internal server error')\n }\n\n // Clear the `values` from the api response since we aren't using it.\n // The UI is accumulating the response scores into the values in the swarm component.\n const lbres = json as LeaderboardResponse\n\n if (lbres === null || lbres === undefined) {\n return {\n leaders: []\n }\n }\n\n // Truncate to 10, though this should be done server side as well.\n lbres.leaders = lbres.leaders.slice(0, 10)\n\n lbres.leaders?.forEach((leader) => {\n leader.score = parseFloat(leader.score.toFixed(2))\n if (leader.id.toLowerCase() === \"gensyn\") {\n leader.id = \"INITIAL PEER\"\n }\n leader.values = []\n })\n\n return json\n } catch (e) {\n console.error('error fetching leaderboard details', e)\n if (e instanceof Error) {\n throw new Error(`could not get leaderboard: ${e.message}`)\n } else {\n throw new Error('could not get leaderboard')\n }\n }\n}\n\nexport async function getGossip(req: GossipRequest): Promise {\n try {\n const res = await fetch(`/api/gossip?since_round=${req.since}`)\n const json = await res.json()\n\n if (res.status > 499) {\n console.error('5xx error fetching gossip')\n throw new Error('could not get gossip: internal server error')\n }\n\n const gres = json as GossipResponse\n\n if (gres === null || gres === undefined) {\n return {\n messages: [],\n currentRound: -1,\n currentStage: -1,\n }\n }\n\n gres.messages.forEach((message) => {\n if (message.node.toLocaleLowerCase() === \"gensyn\") {\n message.node = \"INITIAL PEER\"\n }\n })\n return json\n } catch (e) {\n console.error('error fetching gossip details', e)\n if (e instanceof Error) {\n throw new Error(`could not get gossip: ${e.message}`)\n } else {\n throw new Error('could not get gossip')\n }\n }\n}","import { children, createEffect, createMemo, createResource, createSignal, JSXElement, onCleanup, onMount, ParentProps, untrack } from 'solid-js'\nimport * as d3 from 'd3'\nimport Modal from './Modal'\nimport { getGossip, getLeaderboard, GossipResponse, LeaderboardResponse } from './swarm.api'\n\nasync function fetchLeaderboardData(): Promise {\n try {\n const response = await getLeaderboard()\n return response\n } catch (e) {\n return undefined\n }\n}\n\nasync function fetchGossipData(since: number): Promise {\n try {\n const response = await getGossip({ since })\n return response\n } catch (e) {\n return undefined\n }\n}\n\n/**\n * mergeLeaderboardData constructs the datapoints needed by the graphing library to render a node's score change over time.\n * The backend returns a snapshot of the current cumulative reward, so the client must build the history when polling.\n * \n * It is exported only for testing.\n * \n * @param xVal the current poll iteration\n * @param apiRes the leaderboard response\n * @param accumulator accumulated leaders data, stores old values\n * @returns A new accumulator with the updated values.\n */\nexport function mergeLeaderboardData(xVal: number, apiRes: LeaderboardResponse | undefined, accumulator: LeaderboardResponse | null | undefined): LeaderboardResponse | null | undefined {\n if (apiRes === undefined) {\n return accumulator\n }\n\n // If this is the first poll, then no accumulator will have been created yet.\n if (accumulator === undefined || accumulator === null) {\n apiRes.leaders.forEach((leader) => {\n leader.values = [{ x: xVal, y: leader.score }]\n })\n return apiRes\n }\n\n const output = {...apiRes}\n\n const accumLeadersById: Record = {}\n accumulator.leaders.forEach((leader) => {\n accumLeadersById[leader.id] = {...leader}\n })\n\n // The values stored are capped at 100 (arbitrarily chosen).\n output.leaders.forEach((leader) => {\n const prevVals = accumLeadersById[leader.id]?.values ?? []\n const nextVals = [...prevVals, { x: xVal, y: leader.score }].slice(-100)\n leader.values = nextVals\n })\n\n return output\n}\n\nexport default function Swarm() {\n // The UI tracks the latest round seen so it can query only for new data.\n // When the training loop resets on the backend, we expect to receive round=-1 back in the response.\n // Otherwise the backend will report its current round.\n const [lastGossipRound, setLastGossipRound] = createSignal(0)\n const [lastGossipStage, setLastGossipStage] = createSignal(0)\n\n const leaderboardSubtitle = createMemo(() => {\n let out = ''\n if (lastGossipRound() >= 0) {\n out = out + `: Round ${lastGossipRound()}`\n\n if (lastGossipStage() >= 0) {\n out = out + `, stage ${lastGossipStage()}`\n }\n }\n\n return out\n })\n\n // The UI also maintains a state for how many leaderboard polls we've done.\n // Currently just a side-effect of how the API/DHT is constructed.\n // This value is increased with each leaderboard poll as a way to show time.\n const [rewardXValue, setRewardXValue] = createSignal(0)\n\n // TODO: fill in UI with leaderboardData.loading, leaderboardData.error\n //\n // `leaderboardData` data represents the snapshot of leaderboard data at a given polling interval.\n // `leaders` is the accumulator for all previous values.\n // `leaderBoardTimer` is a timer id of the current poll iteration.\n const [leaderboardData, { refetch: refetchLeaderboard }] = createResource(fetchLeaderboardData)\n const [leaders, setLeaders] = createSignal(null, {\n // Prevents the leaders data from updating if there are no changes in the data.\n // It's not stupid if it works. JSON.stringify is a little spooky, but we know the data is: 1) not large, and 2) not circular.\n equals: (oldData, newData) => {\n return JSON.stringify(oldData) === JSON.stringify(newData)\n }\n })\n\n // A derived value based on the leaderboard data.\n // If no leaders are coming in the response, then it's the signal of a new round.\n const showNewRoundModal = createMemo(() => {\n const leaders = leaderboardData()?.leaders ?? []\n return leaders.length <= 0\n })\n\n let leaderboardTimer: number | undefined = undefined\n\n // TODO: fill in UI with gossipData.loading, gossipData.error\n // \n // `gossipData` is the raw gossip response from the API, which includes current round information.\n // `seenMessageIds` is used as a mechanism to de-duplicate the gossip messages since last poll.\n // `gossipMessages` is an accumulation of all prior gossip messages deduplicated.\n // `gossipTimer` is a timer id of the current poll iteration.\n const [gossipData, { refetch: refetchGossip }] = createResource(lastGossipRound, fetchGossipData)\n let seenMessageIds = new Set()\n const [gossipMessages, setGossipMessages] = createSignal<{id: string, message: string, node: string}[]>([])\n let gossipTimer: number | undefined = undefined\n let gossipContainerRef: HTMLDivElement | undefined\n\n // Note that for the pollers below, rather than use a setInterval, a timeout is used to ensure\n // that the next poll only happens *after* the request resolves.\n\n // pollGossip fetches the latest gossip messages for the current round.\n const pollGossip = async () => {\n const nextGossip = await refetchGossip()\n\n if (nextGossip && nextGossip.currentRound) {\n setLastGossipRound(nextGossip?.currentRound)\n }\n\n if (nextGossip && nextGossip.currentStage) {\n setLastGossipStage(nextGossip?.currentStage)\n }\n\n if (gossipTimer !== undefined) {\n clearTimeout(gossipTimer)\n }\n\n gossipTimer = setTimeout(pollGossip, 10_000)\n }\n\n // pollLeaderboard fetches the latest leaderboard snapshot.\n const pollLeaderboard = async () => {\n await refetchLeaderboard()\n\n if (leaderboardTimer !== undefined) {\n clearTimeout(leaderboardTimer)\n }\n leaderboardTimer = setTimeout(pollLeaderboard, 10_000)\n }\n\n // leaderboardData listener.\n // Every time the leaderboard data is refetched, merge the new results with the old.\n createEffect(() => {\n if (!leaderboardData()) {\n setRewardXValue(0)\n setLeaders(undefined)\n return\n }\n\n // When the leaderboard data resets, we reset the cumulative rewards.\n // Reset the x-axis to indicate the next stage has started as well.\n if (leaderboardData()?.leaders.length === 0) {\n setRewardXValue(0)\n setLeaders(undefined)\n return\n }\n\n // We're going to plot some new data, so increment the x-axis value.\n // Untrack so the create effect is not re-triggered when this updates. We don't care about this value in that way.\n setRewardXValue(untrack(rewardXValue) + 1)\n\n // Multiply by 10 as an approximation of seconds.\n const xVal = rewardXValue() * 10\n const next = mergeLeaderboardData(xVal, leaderboardData(), leaders())\n setLeaders(next)\n })\n\n // gossip listener.\n // Filters and dedupes messages to render on the client.\n createEffect(() => {\n const g = gossipData();\n if (!g || !g.messages || g.messages.length <= 0) {\n return\n }\n\n // Only get new messages from the response, and mark them seen.\n const msgs = g.messages\n .filter((msg) => !seenMessageIds.has(msg.id))\n .map((msg) => {\n seenMessageIds.add(msg.id)\n return msg\n })\n\n setGossipMessages([...untrack(gossipMessages), ...msgs].slice(-200))\n setLastGossipRound(g.currentRound)\n\n // Avoid the seenMessageIds growing unbounded.\n // Sets preserve insertion order, so the latest values can be preserved safely.\n // The size here is arbitrarily chosen.\n if (seenMessageIds.size > 2000) {\n const temp = Array.from(seenMessageIds).slice(-2000)\n seenMessageIds = new Set(temp)\n }\n\n // Scroll to the latest messages\n if (gossipContainerRef) {\n gossipContainerRef.scrollTop = gossipContainerRef.scrollHeight\n }\n })\n\n onMount(() => {\n // Wait 10s before firing, since we already fetch once on mount.\n const lt = setTimeout(pollLeaderboard, 10_000)\n const gt = setTimeout(pollGossip, 10_000)\n\n onCleanup(() => {\n clearInterval(lt)\n clearInterval(gt)\n })\n })\n\n const LeaderboardTooltipMessage = () => (\n <>\n

Models in the swarm receive rewards based on the following criteria:

\n
    \n
  • Formatted → does the model generate output matching the specified format?
  • \n
  • Correct → is the final answer mathematically correct and formatted correctly?
  • \n
  • Insightful → in stages requiring reference to best messages from prior rounds, does the model reference those messages, and do they meet the reward criteria for that round?
  • \n
\n

* * *

\n

\n This graph displays the cumulative reward for each node from the moment the page is loaded, not the full history from the start of a round.\n

\n \n )\n\n return (\n
\n \n
\n

Gensyn: RL Swarm Client Interface

\n \n

\n \n A peer-to-peer system for collaborative reinforcement learning over the internet, running on consumer hardware.\n \n

\n
\n
\n\n
\n
\n
\n } />\n {leaders() ? : < FETCHING LEADERS >}\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n
\n \n
\n
    \n {gossipMessages()?.length > 0 ? gossipMessages().map((msg) => {\n return (\n
  • \n )\n }) : < FETCHING GOSSIP >}\n
\n
\n
\n
\n\n \n \n \n
\n )\n}\n\nfunction SectionHeader(props: { title: string, tooltip?: string | JSXElement }) {\n return (\n
\n
{props.title}
\n\n {props.tooltip ? : null}\n
\n )\n}\n\nfunction Tooltip(props: {message: string | JSXElement}) {\n let detailsRef: HTMLDetailsElement | undefined = undefined\n\n const close = (_: MouseEvent) => {\n if (detailsRef === undefined) {\n return\n }\n\n (detailsRef as HTMLDetailsElement).removeAttribute('open')\n }\n\n onMount(() => {\n document.addEventListener('click', close)\n })\n\n onCleanup(() => {\n document.removeEventListener('click', close)\n })\n\n return (\n
\n
\n [+]\n
\n
\n
\n \n
\n
e.stopPropagation()}>{props.message}
\n
\n
\n
\n
\n )\n}\n\nfunction Banner(props: ParentProps) {\n const resolvedChildren = children(() => props.children)\n return (\n <>\n
\n {resolvedChildren()}\n
\n \n )\n}\n\nfunction NodeMessage(props: { id: string, message: string }) {\n const reAnswer = new RegExp(/Answer:.+$/)\n const match = props.message.match(reAnswer)\n\n let mainText = props.message\n let answer = ''\n\n if (match) {\n mainText = mainText.slice(0, props.message.length - match[0].length)\n answer = match[0]\n }\n\n return (\n

\n [{props.id}] {mainText} {answer}\n

\n )\n}\n\nconst MultiLineChart = (props: { data: LeaderboardResponse }) => {\n let svgRef: SVGSVGElement | undefined\n\n // Props aren't automatically reactive, so we need to turn the props into a signal.\n // createMemo automatically updates when props.data changes, opposed to createSignal which is manually reactive.\n const chartData = createMemo(() => props.data)\n\n // TODO: Set dimensions magically\n const margin = { top: 10, right: 10, bottom: 30, left: 50 }\n const width = 400 - margin.left - margin.right\n const height = 300 - margin.top - margin.bottom\n\n onMount(() => {\n drawChart()\n })\n\n createEffect(() => {\n updateChart()\n })\n\n function drawChart() {\n if (!svgRef) {\n return\n }\n\n const svg = d3.select(svgRef)\n .attr('width', width + margin.left + margin.right)\n .attr('height', height + margin.top + margin.bottom)\n .append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`) // push the chart a bit to account for labels/legends\n\n // Define scales.\n // Scales map data space into SVG space.\n const xScale = d3.scaleLinear().domain([0, 0]).range([0, width])\n const yScale = d3.scaleLinear().domain([0, 0]).range([height, 0])\n\n // Set scales based on data.\n const allXs = chartData().leaders.flatMap((leader) => leader.values.map((d) => d.x))\n const allYs = chartData().leaders.flatMap((leader) => leader.values.map((d) => d.y))\n yScale.domain([d3.min(allYs)!, d3.max(allYs)!])\n xScale.domain([d3.min(allXs)!, d3.max(allXs)!])\n\n const xTicksCount = Math.min(5, allXs.length)\n\n // Horizontal grid lines\n // Setting a tick size to a negative width here extends the ticks across the chart.\n svg.append('g')\n .attr('class', 'grid')\n .call(d3.axisLeft(yScale).tickSize(-width).tickFormat(() => '').ticks(5))\n .selectAll('.tick line')\n .attr('stroke', () => 'rgba(0, 0, 0, 0.3)')\n .attr('stroke-dasharray', '3,3')\n .filter((_, i, _nodes) => i === 6)\n .attr('stroke', 'none')\n\n // Vertical grid lines\n svg.append('g')\n .attr('class', 'grid')\n .attr('transform', `translate(0,${height})`)\n .call(d3.axisBottom(xScale).tickSize(-height).tickFormat(() => '').ticks(xTicksCount))\n .selectAll('line')\n .attr('stroke', () => 'rgba(0, 0, 0, 0.3)')\n .attr('stroke-dasharray', '3,3')\n\n // Define color scale\n const color = (i: number) => {\n const cs = ['#2A0D04', '#14BD4A', '#B800C4', '#FF6600', '#00A8F3', '#FFD700', '#8B4513', '#FF1493', '#7FFF00', '#9400D3']\n return cs[i % cs.length]\n }\n\n // Define line generator.\n // Given data points, it generates an SVG path.\n const line = d3.line<{ x: number; y: number }>()\n .x(d => xScale(d.x))\n .y(d => yScale(d.y))\n\n // Draw data.\n svg.selectAll('.line')\n .data(chartData().leaders)\n .enter()\n .append('path')\n .attr('class', 'line')\n .attr('fill', 'none')\n .attr('stroke', (_, i) => color(i))\n .attr('stroke-width', 2)\n .attr('stroke-dasharray', '2 2')\n .attr('stroke-linejoin', 'round')\n .attr('d', d => line(d.values) as string)\n\n\n // Add X and Y axis\n svg.append('g')\n .attr(\"class\", \"x-axis\")\n .attr('transform', `translate(0,${height})`)\n .call(d3.axisBottom(xScale).tickSize(0).tickPadding(10))\n .call(d3.axisBottom(xScale).tickSize(0).tickFormat((d) => `${Math.round(d.valueOf())}`).ticks(xTicksCount))\n .attr('stroke-width', 2)\n .selectAll('text')\n .style('font-size', '12px')\n .style('font-family', 'monospace')\n\n svg.append('g')\n .attr(\"class\", \"y-axis\")\n .attr('stroke-width', 2)\n .call(d3.axisLeft(yScale).tickSize(0).tickPadding(10))\n .selectAll('text')\n .style('font-size', '12px')\n .style('font-family', 'monospace')\n\n // Removes the top-most and right-most borders of the chart\n svg.selectAll('.domain')\n .filter((_, i, _nodes) => i == 0 || i == 1)\n .attr('stroke', 'none')\n\n // Add X-axis label\n svg.append('text')\n .attr('class', 'x-axis-label')\n .attr('x', width / 2) // Center it horizontally\n .attr('y', height + margin.bottom) // Position it below the X-axis\n .attr('text-anchor', 'middle') // Center the text\n .style('font-size', '10px')\n .style('font-family', 'Aux Mono')\n .text('SECONDS ELAPSED');\n }\n\n function updateChart() {\n if (!svgRef) {\n return\n }\n // Remove previous chart before re-adding\n // This makes the chart update less smooth, but removes any issues with re-rendering.\n d3.select(svgRef).selectAll(\"*\").remove()\n drawChart()\n }\n\n return ;\n};\n\nfunction Leaderboard(props: { leaders: { id: string, score: number}[] }) {\n return (\n <>\n
    \n {props.leaders.map((leader, i) => {\n return (\n
  • \n [{i}] \n {leader.id} [{leader.score}]\n
  • \n )\n })}\n
\n \n )\n}\n","/* @refresh reload */\nimport { render } from 'solid-js/web'\nimport './index.css'\nimport Swarm from './Swarm.tsx'\n\nconst root = document.getElementById('root')\n\nrender(() => , root!)\n"],"names":["Transition","root","value","error","children","init","map","create","document","array","ascending","x","zero","left","right","center","number","start","ticks","max","min","epsilon","y","tickFormat","axis","format","identity","selection","line","parseTypenames","get","set","copy","selector","select","Selection","datum","constant","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","styleFunction","textConstant","textFunction","window","linear","color","rgb","colorRgb","i","string","timeout","now","id","schedule","empty","interpolate","interpolateTransform","inherit","style","remove","easeCubicInOut","exponent","locale","formatPrefix","bisect","interpolateValue","pointX","pointY","Modal","props","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","_el$6","nextSibling","_$insert","message","_$className","open","getLeaderboard","res","fetch","json","status","console","Error","lbres","undefined","leaders","slice","forEach","leader","score","parseFloat","toFixed","toLowerCase","values","e","getGossip","req","since","gres","messages","currentRound","currentStage","node","toLocaleLowerCase","fetchLeaderboardData","response","fetchGossipData","mergeLeaderboardData","xVal","apiRes","accumulator","output","accumLeadersById","prevVals","nextVals","Swarm","lastGossipRound","setLastGossipRound","createSignal","lastGossipStage","setLastGossipStage","leaderboardSubtitle","createMemo","out","rewardXValue","setRewardXValue","leaderboardData","refetch","refetchLeaderboard","createResource","setLeaders","equals","oldData","newData","JSON","stringify","showNewRoundModal","length","leaderboardTimer","gossipData","refetchGossip","seenMessageIds","Set","gossipMessages","setGossipMessages","gossipTimer","gossipContainerRef","pollGossip","nextGossip","clearTimeout","setTimeout","pollLeaderboard","createEffect","untrack","next","g","msgs","filter","msg","has","add","size","temp","Array","from","scrollTop","scrollHeight","onMount","lt","gt","onCleanup","clearInterval","LeaderboardTooltipMessage","_tmpl$2","_tmpl$3","_tmpl$4","_el$5","_tmpl$7","_el$9","_el$10","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_$createComponent","Banner","_tmpl$5","SectionHeader","title","tooltip","_c$","_$memo","MultiLineChart","data","_tmpl$8","Leaderboard","_ref$","_$use","_c$2","_el$19","_tmpl$9","NodeMessage","_tmpl$10","_tmpl$6","_el$21","_tmpl$11","_el$22","_el$23","_c$3","Tooltip","detailsRef","close","_","removeAttribute","addEventListener","removeEventListener","_el$24","_tmpl$12","_el$25","_el$26","_el$27","_el$28","_el$29","_el$30","_el$31","_ref$2","$$click","stopPropagation","resolvedChildren","_tmpl$13","_tmpl$14","reAnswer","RegExp","match","mainText","answer","_el$34","_tmpl$15","_el$35","_el$36","_el$38","_el$39","_el$42","_el$40","_el$41","svgRef","chartData","margin","top","bottom","width","height","drawChart","svg","d3","attr","append","xScale","domain","range","yScale","allXs","flatMap","d","allYs","xTicksCount","Math","call","tickSize","selectAll","_nodes","cs","enter","tickPadding","round","valueOf","text","updateChart","_el$43","_tmpl$16","_ref$3","_el$44","_tmpl$17","_el$45","_tmpl$18","_el$46","_el$47","_el$49","_el$50","_el$51","_el$52","_el$54","_$setAttribute","_$delegateEvents","getElementById","render"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133]}