From 123f4cf93b7177986f83d189b21b798b18168ad4 Mon Sep 17 00:00:00 2001 From: Nikita Rokotyan Date: Wed, 18 Oct 2023 14:21:04 -0700 Subject: [PATCH] Misc: Enabling noImplicitAny checks in tsconfig --- .eslintrc | 2 +- package-lock.json | 26 + .../src/components/axis/axis.component.ts | 2 +- packages/ts/declaration.d.ts | 2 + packages/ts/global.d.ts | 21 + packages/ts/licences.txt | 2 + packages/ts/package.json | 2 + packages/ts/src/components/axis/config.ts | 2 +- packages/ts/src/components/axis/index.ts | 4 +- .../ts/src/components/chord-diagram/config.ts | 8 +- .../ts/src/components/chord-diagram/index.ts | 2 +- packages/ts/src/components/donut/config.ts | 5 +- .../ts/src/components/free-brush/index.ts | 16 +- packages/ts/src/components/graph/config.ts | 13 +- packages/ts/src/components/graph/index.ts | 7 +- .../ts/src/components/graph/modules/layout.ts | 19 +- .../components/graph/modules/link/index.ts | 2 +- .../components/graph/modules/node/helper.ts | 3 +- .../components/graph/modules/node/index.ts | 20 +- .../ts/src/components/graph/modules/shape.ts | 7 +- .../ts/src/components/grouped-bar/index.ts | 12 +- .../src/components/leaflet-flow-map/config.ts | 8 +- .../ts/src/components/leaflet-map/config.ts | 12 +- .../ts/src/components/leaflet-map/index.ts | 5 +- .../leaflet-map/modules/clusterBackground.ts | 13 +- .../src/components/leaflet-map/modules/map.ts | 17 +- .../components/leaflet-map/modules/node.ts | 26 +- .../components/leaflet-map/modules/utils.ts | 2 +- .../leaflet-map/renderer/mapboxgl-layer.ts | 10 +- .../leaflet-map/renderer/mapboxgl-utils.ts | 15 +- .../ts/src/components/leaflet-map/style.ts | 2 +- .../ts/src/components/leaflet-map/types.ts | 7 +- packages/ts/src/components/line/index.ts | 4 +- .../ts/src/components/nested-donut/index.ts | 6 +- .../ts/src/components/nested-donut/style.ts | 2 +- packages/ts/src/components/sankey/config.ts | 16 +- packages/ts/src/components/sankey/index.ts | 10 +- .../ts/src/components/sankey/modules/link.ts | 22 +- packages/ts/src/components/scatter/config.ts | 5 +- packages/ts/src/components/scatter/index.ts | 6 +- .../src/components/scatter/modules/point.ts | 4 +- packages/ts/src/components/timeline/config.ts | 9 +- .../components/tooltip/{style.js => style.ts} | 0 .../ts/src/components/topojson-map/config.ts | 27 +- .../ts/src/components/topojson-map/index.ts | 5 +- .../ts/src/components/xy-labels/config.ts | 3 +- .../ts/src/containers/xy-container/config.ts | 1 + .../ts/src/containers/xy-container/index.ts | 7 +- packages/ts/src/core/component/index.ts | 10 +- packages/ts/src/core/component/types.ts | 2 +- packages/ts/src/core/xy-component/config.ts | 6 +- packages/ts/src/data-models/map-graph.ts | 9 +- packages/ts/src/types/accessor.ts | 10 +- packages/ts/src/types/component.ts | 2 + packages/ts/src/utils/d3.ts | 15 +- packages/ts/src/utils/data.ts | 15 +- packages/ts/src/utils/text.ts | 10 +- packages/ts/tsconfig.json | 4 +- packages/website/package-lock.json | 3375 +++++++++++++++-- packages/website/package.json | 1 - 60 files changed, 3436 insertions(+), 444 deletions(-) create mode 100644 packages/ts/global.d.ts rename packages/ts/src/components/tooltip/{style.js => style.ts} (100%) diff --git a/.eslintrc b/.eslintrc index 789c1cd2f..1dca97c2f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -69,7 +69,7 @@ "@typescript-eslint/indent": ["error", 2], "@typescript-eslint/no-unused-expressions": ["error"], "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/explicit-module-boundary-types": ["warn"], + "@typescript-eslint/explicit-module-boundary-types": ["error"], "@typescript-eslint/explicit-member-accessibility": "off", "@typescript-eslint/type-annotation-spacing": ["error"], "@typescript-eslint/member-delimiter-style": ["error", { diff --git a/package-lock.json b/package-lock.json index 9761bdc82..52207abc3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5108,6 +5108,11 @@ "@types/d3-selection": "*" } }, + "node_modules/@types/dagre": { + "version": "0.7.50", + "resolved": "https://registry.npmjs.org/@types/dagre/-/dagre-0.7.50.tgz", + "integrity": "sha512-3HxPUil6GwbcO+q3WxZhM6XMSXYaiXjjzKUDYsGk2tqP5Ko2WpN71I8g1kXLgX5nUkKg00+LlCTuaverWVADGA==" + }, "node_modules/@types/eslint": { "version": "8.4.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", @@ -5302,6 +5307,12 @@ "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-5.0.0.tgz", "integrity": "sha512-Pb7k35iCGFcGPECoNE4DYp3Oyf2xcTd3FbFQxXUI9hEYKUl6YX+KLf7HrBmgVcD05nl50LIH6i+80js4iYmWbw==" }, + "node_modules/@types/to-px": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/to-px/-/to-px-1.1.2.tgz", + "integrity": "sha512-O3OkxRVcfcrAW2wH8bCVDhs1RCGwHI77l+wDNQ8KlX0HCCwBtShKkqQByKlzIirR72D36JHNgJhYb9B69iJ2PA==", + "dev": true + }, "node_modules/@types/topojson": { "version": "3.2.3", "license": "MIT", @@ -24843,6 +24854,7 @@ "@types/d3": "^7.4.0", "@types/d3-collection": "^1.0.10", "@types/d3-sankey": "^0.11.2", + "@types/dagre": "^0.7.50", "@types/geojson": "^7946.0.8", "@types/leaflet": "1.7.6", "@types/supercluster": "^5.0.2", @@ -24872,6 +24884,7 @@ }, "devDependencies": { "@rollup/plugin-json": "^4.1.0", + "@types/to-px": "^1.1.2", "@zerollup/ts-transform-paths": "^1.7.18", "rimraf": "^3.0.2", "rollup": "^2.61.1", @@ -28706,6 +28719,11 @@ "@types/d3-selection": "*" } }, + "@types/dagre": { + "version": "0.7.50", + "resolved": "https://registry.npmjs.org/@types/dagre/-/dagre-0.7.50.tgz", + "integrity": "sha512-3HxPUil6GwbcO+q3WxZhM6XMSXYaiXjjzKUDYsGk2tqP5Ko2WpN71I8g1kXLgX5nUkKg00+LlCTuaverWVADGA==" + }, "@types/eslint": { "version": "8.4.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", @@ -28883,6 +28901,12 @@ "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-5.0.0.tgz", "integrity": "sha512-Pb7k35iCGFcGPECoNE4DYp3Oyf2xcTd3FbFQxXUI9hEYKUl6YX+KLf7HrBmgVcD05nl50LIH6i+80js4iYmWbw==" }, + "@types/to-px": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/to-px/-/to-px-1.1.2.tgz", + "integrity": "sha512-O3OkxRVcfcrAW2wH8bCVDhs1RCGwHI77l+wDNQ8KlX0HCCwBtShKkqQByKlzIirR72D36JHNgJhYb9B69iJ2PA==", + "dev": true + }, "@types/topojson": { "version": "3.2.3", "requires": { @@ -29425,11 +29449,13 @@ "@types/d3": "^7.4.0", "@types/d3-collection": "^1.0.10", "@types/d3-sankey": "^0.11.2", + "@types/dagre": "^0.7.50", "@types/geojson": "^7946.0.8", "@types/leaflet": "1.7.6", "@types/supercluster": "^5.0.2", "@types/three": "^0.135.0", "@types/throttle-debounce": "^5.0.0", + "@types/to-px": "^1.1.2", "@types/topojson": "^3.2.3", "@types/topojson-client": "^3.0.0", "@types/topojson-specification": "^1.0.2", diff --git a/packages/angular/src/components/axis/axis.component.ts b/packages/angular/src/components/axis/axis.component.ts index 14e28c887..132bedec3 100644 --- a/packages/angular/src/components/axis/axis.component.ts +++ b/packages/angular/src/components/axis/axis.component.ts @@ -105,7 +105,7 @@ export class VisAxisComponent implements AxisConfigInterface, Afte @Input() minMaxTicksOnly?: boolean /** Tick label formatter function. Default: `undefined` */ - @Input() tickFormat?: ((tick: number, i: number, ticks: number[] | Date[]) => string) + @Input() tickFormat?: ((tick: number | Date, i: number, ticks: number[] | Date[]) => string) /** Explicitly set tick values. Default: `undefined` */ @Input() tickValues?: number[] diff --git a/packages/ts/declaration.d.ts b/packages/ts/declaration.d.ts index 35306c6fc..096311261 100644 --- a/packages/ts/declaration.d.ts +++ b/packages/ts/declaration.d.ts @@ -1 +1,3 @@ declare module '*.css'; +declare module 'd3-geo-projection' +declare module 'd3-interpolate-path' diff --git a/packages/ts/global.d.ts b/packages/ts/global.d.ts new file mode 100644 index 000000000..2fa678c1d --- /dev/null +++ b/packages/ts/global.d.ts @@ -0,0 +1,21 @@ +/* eslint-disable no-var */ +export {} + +declare global { + namespace globalThis { + var UNOVIS_COLORS: string[] + var UNOVIS_COLORS_DARK: string[] + var UNOVIS_ICON_FONT_FAMILY: string + var UNOVIS_FONT_W2H_RATIO_DEFAULT: number + var UNOVIS_TEXT_SEPARATOR_DEFAULT: string[] + var UNOVIS_TEXT_HYPHEN_CHARACTER_DEFAULT: string + var UNOVIS_TEXT_DEFAULT: { + text: string; + fontSize: number; + fontFamily: string; + lineHeight: number; + marginTop: number; + marginBottom: number; + } + } +} diff --git a/packages/ts/licences.txt b/packages/ts/licences.txt index 1e60722d5..068d42c8c 100644 --- a/packages/ts/licences.txt +++ b/packages/ts/licences.txt @@ -5,6 +5,7 @@ name license period license type installed versi @types/d3 perpetual MIT 7.4.0 n/a @types/d3-collection perpetual MIT 1.0.10 n/a @types/d3-sankey perpetual MIT 0.11.2 n/a +@types/dagre perpetual MIT 0.7.50 n/a @types/geojson perpetual MIT 7946.0.8 n/a @types/leaflet perpetual MIT 1.7.6 n/a @types/supercluster perpetual MIT 5.0.2 n/a @@ -32,6 +33,7 @@ to-px perpetual MIT 1.1.0 topojson-client perpetual ISC 3.1.0 Mike Bostock https://bost.ocks.org/mike tslib perpetual 0BSD 2.4.1 Microsoft Corp. @rollup/plugin-json perpetual MIT 4.1.0 rollup +@types/to-px perpetual MIT 1.1.2 n/a @zerollup/ts-transform-paths perpetual MIT 1.7.18 Stefan Zerkalica zerkalica@gmail.com rimraf perpetual ISC 3.0.2 Isaac Z. Schlueter (http://blog.izs.me/) rollup perpetual MIT 2.75.5 Rich Harris diff --git a/packages/ts/package.json b/packages/ts/package.json index 573a24f27..93e339a25 100644 --- a/packages/ts/package.json +++ b/packages/ts/package.json @@ -39,6 +39,7 @@ }, "devDependencies": { "@rollup/plugin-json": "^4.1.0", + "@types/to-px": "^1.1.2", "@zerollup/ts-transform-paths": "^1.7.18", "rimraf": "^3.0.2", "rollup": "^2.61.1", @@ -56,6 +57,7 @@ "@types/d3": "^7.4.0", "@types/d3-collection": "^1.0.10", "@types/d3-sankey": "^0.11.2", + "@types/dagre": "^0.7.50", "@types/geojson": "^7946.0.8", "@types/leaflet": "1.7.6", "@types/supercluster": "^5.0.2", diff --git a/packages/ts/src/components/axis/config.ts b/packages/ts/src/components/axis/config.ts index 6aa583387..d91553c39 100644 --- a/packages/ts/src/components/axis/config.ts +++ b/packages/ts/src/components/axis/config.ts @@ -30,7 +30,7 @@ export interface AxisConfigInterface extends Partial string); + tickFormat?: ((tick: number | Date, i: number, ticks: number[] | Date[]) => string); /** Explicitly set tick values. Default: `undefined` */ tickValues?: number[]; /** Set the approximate number of axis ticks (will be passed to D3's axis constructor). Default: `undefined` */ diff --git a/packages/ts/src/components/axis/index.ts b/packages/ts/src/components/axis/index.ts index d319453c9..e9073ecbd 100644 --- a/packages/ts/src/components/axis/index.ts +++ b/packages/ts/src/components/axis/index.ts @@ -208,7 +208,7 @@ export class Axis extends XYComponentCore elements of the ticks to apply formatting. By default, this selection // will include exiting elements, so we're filtering them out. const tickText = selection.selectAll('g.tick > text') - .filter(tickValue => tickValues.some(t => isEqual(tickValue, t))) // We use isEqual to compare Dates + .filter(tickValue => tickValues.some((t: number | Date) => isEqual(tickValue, t))) // We use isEqual to compare Dates .classed(s.tickLabel, true) .style('fill', config.tickTextColor) as Selection | Selection @@ -216,7 +216,7 @@ export class Axis extends XYComponentCore to make it 'wrappable' tickText.nodes().forEach(node => interrupt(node)) - tickText.each((value, i, elements) => { + tickText.each((value: number | Date, i: number, elements: ArrayLike) => { const text = config.tickFormat?.(value, i, tickValues) ?? `${value}` const textElement = elements[i] as SVGTextElement const textMaxWidth = config.tickTextWidth || (config.type === AxisType.X ? this._containerWidth / (ticks.size() + 1) : this._containerWidth / 5) diff --git a/packages/ts/src/components/chord-diagram/config.ts b/packages/ts/src/components/chord-diagram/config.ts index 9a4e5852b..0d86622a7 100644 --- a/packages/ts/src/components/chord-diagram/config.ts +++ b/packages/ts/src/components/chord-diagram/config.ts @@ -1,5 +1,3 @@ -/* eslint-disable dot-notation */ - // Core import { ComponentConfigInterface, ComponentDefaultConfig } from 'core/component/config' @@ -46,11 +44,11 @@ export const ChordDiagramDefaultConfig: ChordDiagramConfigInterface(d: L): number => d['value'], + linkValue: (d: ChordInputNode): number => (d as { value: number }).value, nodeLevels: [], nodeWidth: 15, - nodeColor: (d: ChordNodeDatum): string => d['color'], - nodeLabel: (d: ChordNodeDatum): string => d['label'] ?? d['key'], + nodeColor: (d: unknown): string => (d as { color: string }).color, + nodeLabel: (d: unknown): string => (d as { label: string }).label ?? (d as { key: string }).key, nodeLabelColor: undefined, nodeLabelAlignment: ChordLabelAlignment.Along, padAngle: 0.02, diff --git a/packages/ts/src/components/chord-diagram/index.ts b/packages/ts/src/components/chord-diagram/index.ts index b2ea496c6..5245e5f9a 100644 --- a/packages/ts/src/components/chord-diagram/index.ts +++ b/packages/ts/src/components/chord-diagram/index.ts @@ -235,7 +235,7 @@ export class ChordDiagram< // TODO: Replace with d3-group const nestGen = nest() config.nodeLevels.forEach(levelAccessor => { - nestGen.key(d => d[levelAccessor]) + nestGen.key((d) => (d as unknown as Record)[levelAccessor]) }) const root = { key: 'root', values: nestGen.entries(nodes) } const hierarchyNodes = hierarchy(root, d => d.values) diff --git a/packages/ts/src/components/donut/config.ts b/packages/ts/src/components/donut/config.ts index 946df5917..ed3b5e807 100644 --- a/packages/ts/src/components/donut/config.ts +++ b/packages/ts/src/components/donut/config.ts @@ -6,7 +6,7 @@ import { ColorAccessor, NumericAccessor } from 'types/accessor' export interface DonutConfigInterface extends ComponentConfigInterface { /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */ - id?: ((d: Datum, i: number, ...any) => string | number); + id?: ((d: Datum, i: number, ...any: unknown[]) => string | number); /** Value accessor function. Default: `undefined` */ value: NumericAccessor; /** Diagram angle range. Default: `[0, 2 * Math.PI]` */ @@ -46,8 +46,7 @@ export interface DonutConfigInterface extends ComponentConfigInterface { export const DonutDefaultConfig: DonutConfigInterface = { ...ComponentDefaultConfig, - // eslint-disable-next-line dot-notation - id: (d: Datum, i: number): string | number => d['id'] ?? i, + id: (d: unknown, i: number): string | number => (d as { id: string }).id ?? i, value: undefined, angleRange: [0, 2 * Math.PI], padAngle: 0, diff --git a/packages/ts/src/components/free-brush/index.ts b/packages/ts/src/components/free-brush/index.ts index da709a686..ea57202f1 100644 --- a/packages/ts/src/components/free-brush/index.ts +++ b/packages/ts/src/components/free-brush/index.ts @@ -1,7 +1,7 @@ import { Selection } from 'd3-selection' import { brush, BrushBehavior, brushX, brushY, D3BrushEvent } from 'd3-brush' import { XYComponentCore } from 'core/xy-component' -import { clamp, isNumber } from 'utils/data' +import { clamp, isArray, isNumber } from 'utils/data' import { smartTransition } from 'utils/d3' // Types @@ -71,8 +71,9 @@ export class FreeBrush extends XYComponentCore extends XYComponentCore extends XYComponentCore n['group'], - layoutParallelNodeSubGroup: (n: GraphInputNode): string => n['subgroup'], + layoutNodeGroup: (n: GraphInputNode): string => (n as { group: string }).group, + layoutParallelNodeSubGroup: (n: GraphInputNode): string => (n as { subgroup: string }).subgroup, forceLayoutSettings: { linkDistance: 60, @@ -254,9 +253,9 @@ export const GraphDefaultConfig: GraphConfigInterface n['icon'], + nodeIcon: (n: GraphInputNode): string => (n as { icon: string }).icon, nodeIconSize: undefined, - nodeLabel: (n: GraphInputNode): string => n['label'], + nodeLabel: (n: GraphInputNode): string => (n as { label: string }).label, nodeLabelTrim: true, nodeLabelTrimLength: 15, nodeLabelTrimMode: TrimMode.Middle, @@ -267,9 +266,9 @@ export const GraphDefaultConfig: GraphConfigInterface n['fill'], + nodeFill: (n: GraphInputNode): string => (n as { fill: string }).fill, nodeGaugeFill: undefined, - nodeStroke: (n: GraphInputNode): string => n['stroke'], + nodeStroke: (n: GraphInputNode): string => (n as { stroke: string }).stroke, nodeEnterPosition: undefined, nodeEnterScale: 0.75, nodeExitPosition: undefined, diff --git a/packages/ts/src/components/graph/index.ts b/packages/ts/src/components/graph/index.ts index 8b92a964e..028cfec03 100644 --- a/packages/ts/src/components/graph/index.ts +++ b/packages/ts/src/components/graph/index.ts @@ -94,7 +94,7 @@ export class Graph< private _zoomBehavior: ZoomBehavior private _isAutoFitDisabled = false private _scale: number - private _initialTransform + private _initialTransform: ZoomTransform private _isDragging = false events = { @@ -587,8 +587,9 @@ export class Graph< // refit the layout after recalculation (e.g. on container resize) if (event?.sourceEvent) { const diff = Object.keys(transform).reduce((acc, prop) => { - const val = transform[prop] - const dVal = Math.abs(val - this._initialTransform[prop]) + const propVal = transform[prop as keyof ZoomTransform] as number + const initialPropVal = this._initialTransform[prop as keyof ZoomTransform] as number + const dVal = Math.abs(propVal - initialPropVal) return prop === 'k' ? 2 * dVal : dVal / 50 }, 0) diff --git a/packages/ts/src/components/graph/modules/layout.ts b/packages/ts/src/components/graph/modules/layout.ts index 5d978cf62..094c2817e 100644 --- a/packages/ts/src/components/graph/modules/layout.ts +++ b/packages/ts/src/components/graph/modules/layout.ts @@ -1,6 +1,7 @@ import { min, max, group } from 'd3-array' import type { SimulationNodeDatum } from 'd3-force' import type { ElkNode } from 'elkjs/lib/elk.bundled.js' +import type { graphlib, Node } from 'dagre' // Core import { GraphDataModel } from 'data-models/graph' @@ -106,7 +107,7 @@ export function applyLayoutParallel g.name === layoutParallelSortConnectionsByGroup) if (group) { - const sortMap = {} + const sortMap: Record = {} let idx = 0 group.subgroups.forEach(subgroup => { subgroup.nodes.forEach(node => { @@ -282,12 +283,17 @@ export async function applyLayoutDagre> // Set an object for the graph label dagreGraph.setGraph(dagreLayoutSettings) @@ -301,7 +307,7 @@ export async function applyLayoutDagre { - dagreGraph.setNode(node._index, { + dagreGraph.setNode(`${node._index}`, { label: getString(node, nodeLabel, node._index), width: getNumber(node, nodeSize, node._index) * 1.5 + getNumber(node, nodeStrokeWidth, node._index), height: labelApprxHeight + getNumber(node, nodeSize, node._index) * 1.5, @@ -311,7 +317,10 @@ export async function applyLayoutDagre { - dagreGraph.setEdge((link.source as GraphNode)._index, (link.target as GraphNode)._index) + dagreGraph.setEdge( + `${link.source._index}`, + `${link.target._index}` + ) }) // Calculate the layout @@ -319,7 +328,7 @@ export async function applyLayoutDagre { - const node = dagreGraph.node(d) + const node = dagreGraph.node(d) as Node> & { originalNode: GraphNode} node.originalNode.x = node.x // width * d.x / dagreGraph._label.width node.originalNode.y = node.y // height * d.y / dagreGraph._label.height }) diff --git a/packages/ts/src/components/graph/modules/link/index.ts b/packages/ts/src/components/graph/modules/link/index.ts index 1f0553c68..cf9db7862 100644 --- a/packages/ts/src/components/graph/modules/link/index.ts +++ b/packages/ts/src/components/graph/modules/link/index.ts @@ -69,7 +69,7 @@ export function updateSelectedLinks, scale: number ): void { - const isGreyedOut = (d, i): boolean => getBoolean(d, config.linkDisabled, i) || d._state.greyout + const isGreyedOut = (d: GraphLink, i: number): boolean => getBoolean(d, config.linkDisabled, i) || d._state.greyout selection .classed(linkSelectors.greyout, (d, i) => isGreyedOut(d, i)) diff --git a/packages/ts/src/components/graph/modules/node/helper.ts b/packages/ts/src/components/graph/modules/node/helper.ts index a1346967b..dae6856df 100644 --- a/packages/ts/src/components/graph/modules/node/helper.ts +++ b/packages/ts/src/components/graph/modules/node/helper.ts @@ -60,7 +60,8 @@ export function arcTween ( export function polyTween ( d: GraphNode, - config: GraphConfigInterface, polygonConstructor, + config: GraphConfigInterface, + polygonConstructor: (nodeSize: number, nEdges?: number, endAngle?: number, isOpen?: boolean) => string, el: GraphNodeAnimatedElement ): (t: number) => string { const { nodeShape, nodeGaugeValue } = config diff --git a/packages/ts/src/components/graph/modules/node/index.ts b/packages/ts/src/components/graph/modules/node/index.ts index aff470eaf..91dfc6d6f 100644 --- a/packages/ts/src/components/graph/modules/node/index.ts +++ b/packages/ts/src/components/graph/modules/node/index.ts @@ -11,6 +11,7 @@ import { trimString } from 'utils/text' import { polygon } from 'utils/path' import { smartTransition } from 'utils/d3' import { getBoolean, getNumber, getString, getValue, throttle } from 'utils/data' +import { getColor } from 'utils/color' // Local Types import { GraphNode, GraphCircleLabel, GraphNodeAnimationState, GraphNodeAnimatedElement, GraphNodeShape } from '../../types' @@ -40,6 +41,10 @@ import * as nodeSelectors from './style' const SIDE_LABEL_DEFAULT_RADIUS = 10 +export interface GraphNodeSVGGElement extends SVGGElement { + nodeShape?: string; +} + export function createNodes ( selection: Selection, SVGGElement, unknown>, config: GraphConfigInterface @@ -47,7 +52,7 @@ export function createNodes const { nodeShape } = config selection.each((d, i, elements) => { - const element = elements[i] + const element = elements[i] as GraphNodeSVGGElement const group = select>(element) group .attr('transform', (d: GraphNode, i) => { @@ -61,8 +66,7 @@ export function createNodes const shape = getString(d, nodeShape, d._index) /** Todo: The 'nodeShape' storing logic below it a temporary fix, needs a cleaner implementation */ - // eslint-disable-next-line dot-notation - element['nodeShape'] = shape + element.nodeShape = shape appendShape(group, shape, nodeSelectors.node, nodeSelectors.customNode, d._index) appendShape(group, shape, nodeSelectors.nodeSelection, nodeSelectors.customNode, d._index) group.append('path').attr('class', nodeSelectors.nodeGauge) @@ -127,18 +131,16 @@ export function updateNodes // Re-create nodes to update shapes if they were changes selection.each((d, i, elements) => { - const element = elements[i] + const element = elements[i] as GraphNodeSVGGElement const group = select>(element) const shape = getString(d, nodeShape, d._index) - // eslint-disable-next-line dot-notation - if (element['nodeShape'] !== shape) { + if (element.nodeShape !== shape) { group.select(`.${nodeSelectors.node}`).remove() appendShape(group, nodeShape, nodeSelectors.node, nodeSelectors.customNode, d._index, `.${nodeSelectors.nodeSelection}`) group.select(`.${nodeSelectors.nodeSelection}`).remove() appendShape(group, shape, nodeSelectors.nodeSelection, null, d._index, `.${nodeSelectors.nodeGauge}`) - // eslint-disable-next-line dot-notation - element['nodeShape'] = shape + element.nodeShape = shape } }) @@ -179,7 +181,7 @@ export function updateNodes .call(updateShape, nodeShape, nodeSize, d._index) .attr('stroke-width', getNumber(d, nodeStrokeWidth, d._index) ?? 0) .style('fill', getNodeColor(d, nodeFill, d._index)) - .style('stroke', getString(d, nodeStroke, d._index) ?? null) + .style('stroke', getColor(d, nodeStroke, d._index, true) ?? null) const nodeBBox = (node.node() as SVGGraphicsElement).getBBox() diff --git a/packages/ts/src/components/graph/modules/shape.ts b/packages/ts/src/components/graph/modules/shape.ts index 739dd4da3..4c8e9a33b 100644 --- a/packages/ts/src/components/graph/modules/shape.ts +++ b/packages/ts/src/components/graph/modules/shape.ts @@ -31,7 +31,10 @@ export function appendShape ( const element = select(elements[i]) const shape = getString(d, shapeAccessor, index) as GraphNodeShape - let shapeElement + let shapeElement: Selection + | Selection + | Selection + | Selection const isCustomXmlShape = isCustomXml(shape) if (isCustomXmlShape) { shapeElement = element.insert('g', insertSelector) @@ -53,8 +56,8 @@ export function appendShape ( } } + shapeElement.classed(customShapeSelector, isCustomXmlShape) return shapeElement.attr('class', shapeSelector) - .classed(customShapeSelector, isCustomXmlShape) }) } diff --git a/packages/ts/src/components/grouped-bar/index.ts b/packages/ts/src/components/grouped-bar/index.ts index 7fe05f6b0..c727b8b1b 100644 --- a/packages/ts/src/components/grouped-bar/index.ts +++ b/packages/ts/src/components/grouped-bar/index.ts @@ -1,6 +1,5 @@ import { scaleBand } from 'd3-scale' import { min, max, range } from 'd3-array' -import { select } from 'd3' // Core import { XYComponentCore } from 'core/xy-component' @@ -32,13 +31,7 @@ export class GroupedBar extends XYComponentCore[] => isArray(this.config.y) ? this.config.y : [this.config.y] - events = { - [GroupedBar.selectors.barGroup]: { - mouseover: this._raiseSelection, - }, - [GroupedBar.selectors.bar]: { - mouseover: this._raiseSelection, - }, + protected events = { } private _barData: Datum[] = [] @@ -304,9 +297,6 @@ export class GroupedBar extends XYComponentCore 0 ? 0 : min, max < 0 ? 0 : max] } - _raiseSelection (d, i, els): void { - select(els[i]).raise() - } getDataScaleExtent (): number[] { const { config, datamodel } = this diff --git a/packages/ts/src/components/leaflet-flow-map/config.ts b/packages/ts/src/components/leaflet-flow-map/config.ts index fcb6a131d..b8d495f82 100644 --- a/packages/ts/src/components/leaflet-flow-map/config.ts +++ b/packages/ts/src/components/leaflet-flow-map/config.ts @@ -40,10 +40,10 @@ export interface LeafletFlowMapConfigInterface = { ...LeafletMapDefaultConfig, - sourceLongitude: (f: FlowDatum): number => f['sourceLongitude'] as number, - sourceLatitude: (f: FlowDatum): number => f['sourceLatitude'] as number, - targetLongitude: (f: FlowDatum): number => f['targetLongitude'] as number, - targetLatitude: (f: FlowDatum): number => f['targetLatitude'] as number, + sourceLongitude: (f: unknown): number => (f as { sourceLongitude: number }).sourceLongitude as number, + sourceLatitude: (f: unknown): number => (f as { sourceLatitude: number }).sourceLatitude as number, + targetLongitude: (f: unknown): number => (f as { targetLongitude: number }).targetLongitude as number, + targetLatitude: (f: unknown): number => (f as { targetLatitude: number }).targetLatitude as number, sourcePointRadius: 3, sourcePointColor: '#88919f', flowParticleColor: '#949dad', diff --git a/packages/ts/src/components/leaflet-map/config.ts b/packages/ts/src/components/leaflet-map/config.ts index 81d24b330..975b79aa0 100644 --- a/packages/ts/src/components/leaflet-map/config.ts +++ b/packages/ts/src/components/leaflet-map/config.ts @@ -1,4 +1,4 @@ -/* eslint-disable dot-notation, no-irregular-whitespace */ +/* eslint-disable no-irregular-whitespace */ // Core import { ComponentDefaultConfig, ComponentConfigInterface } from 'core/component/config' @@ -199,11 +199,11 @@ export const LeafletMapDefaultConfig: LeafletMapConfigInterface(d: Datum): number => d['longitude'] as number, - pointLatitude: (d: Datum): number => d['latitude'] as number, - pointId: (d: Datum): string => d['id'] as string, - pointShape: (d: Datum): string => d['shape'] as string, - pointColor: (d: Datum): string => d['color'] as string, + pointLongitude: (d: unknown): number => (d as { longitude: number }).longitude, + pointLatitude: (d: unknown): number => (d as { latitude: number }).latitude, + pointId: (d: unknown): string => (d as { id: string }).id, + pointShape: (d: unknown): string => (d as { shape: string }).shape, + pointColor: (d: unknown): string => (d as { color: string }).color, pointRadius: undefined, pointLabel: undefined, pointLabelColor: undefined, diff --git a/packages/ts/src/components/leaflet-map/index.ts b/packages/ts/src/components/leaflet-map/index.ts index 29e0c6863..e08f3ddb0 100644 --- a/packages/ts/src/components/leaflet-map/index.ts +++ b/packages/ts/src/components/leaflet-map/index.ts @@ -39,6 +39,7 @@ import { LeafletMapPoint, LeafletMapPointDatum, LeafletMapRenderer, + LeafletMapExpandedCluster, MapZoomState, PointExpandedClusterProperties, } from './types' @@ -76,7 +77,7 @@ export class LeafletMap extends ComponentCore - private _expandedCluster: { points: PointFeature>[]; cluster: LeafletMapPoint } = null + private _expandedCluster: LeafletMapExpandedCluster = null private _cancelBackgroundClick = false private _hasBeenMoved = false private _hasBeenZoomed = false @@ -104,7 +105,7 @@ export class LeafletMap extends ComponentCore): void { selection.datum({ _zIndex: 1 }) selection.append('path') } -export function updateBackgroundNode (selection, expandedCluster, config: LeafletMapConfigInterface, leafletMap: L.Map, clusterBackgroundRadius): void { +export function updateBackgroundNode ( + selection: Selection, + expandedCluster: LeafletMapExpandedCluster, + config: LeafletMapConfigInterface, + leafletMap: L.Map, + clusterBackgroundRadius: number +): void { const { clusterBackground } = config if (expandedCluster && clusterBackground) { const node = cloneDeep(expandedCluster.cluster) diff --git a/packages/ts/src/components/leaflet-map/modules/map.ts b/packages/ts/src/components/leaflet-map/modules/map.ts index e0cb1ded6..abf7c72a0 100644 --- a/packages/ts/src/components/leaflet-map/modules/map.ts +++ b/packages/ts/src/components/leaflet-map/modules/map.ts @@ -1,6 +1,6 @@ import type L from 'leaflet' import { select, Selection } from 'd3-selection' -import { GeoJSONSource, Map } from 'maplibre-gl' +import type { GeoJSONSource, Map } from 'maplibre-gl' import { feature } from 'topojson-client' // Types @@ -120,8 +120,8 @@ export async function setupMap (mapContainer: HTMLE leafletMap.attributionControl.addAttribution(attr) } - let layer: L.Layer - let maplibreMap = null + let layer: L.Layer | (L.Layer & { getMaplibreMap(): Map }) + let maplibreMap: Map = null switch (renderer) { case LeafletMapRenderer.MapLibre: @@ -131,6 +131,11 @@ export async function setupMap (mapContainer: HTMLE const { getMaplibreGLLayer } = await import('../renderer/mapboxgl-layer') layer = getMaplibreGLLayer(config, L, maplibre.default) maplibreMap = (layer as ReturnType).getMaplibreMap?.() + + select(mapContainer).on('wheel', (event: WheelEvent) => { + event.preventDefault() + mapboxglWheelEventThrottled(leafletMap, layer as (L.Layer & { getMaplibreMap(): Map }), event) + }) break case LeafletMapRenderer.Raster: layer = L.tileLayer(style as string) @@ -139,12 +144,8 @@ export async function setupMap (mapContainer: HTMLE layer.addTo(leafletMap) // leaflet-mapbox-gl has a layer positioning issue on far zoom levels which leads to having wrong - // map points projection. We constraint the view to prevent that. + // map points projection. We constrain the view to prevent that. constraintMapView(leafletMap) - select(mapContainer).on('wheel', (event: WheelEvent) => { - event.preventDefault() - mapboxglWheelEventThrottled(leafletMap, layer, event) - }) if (maplibreMap && topoJSONLayer?.sources) { const canvas = maplibreMap.getCanvas() diff --git a/packages/ts/src/components/leaflet-map/modules/node.ts b/packages/ts/src/components/leaflet-map/modules/node.ts index ec008b384..e6cca9d93 100644 --- a/packages/ts/src/components/leaflet-map/modules/node.ts +++ b/packages/ts/src/components/leaflet-map/modules/node.ts @@ -136,16 +136,19 @@ export function updateNodes ( }) } +export interface LabelSVGGElement extends SVGGElement { + labelVisible?: boolean; +} + export function collideLabels ( selection: Selection, SVGGElement, unknown>, leafletMap: L.Map ): void { - selection.each((datum1: LeafletMapPoint, i, elements) => { - const group1HTMLNode = elements[i] - const group1 = select(group1HTMLNode) + selection.each((datum1: LeafletMapPoint, i, elements: ArrayLike) => { + const group1LabelElement = elements[i] + const group1 = select(group1LabelElement) const label1: Selection = group1.select(`.${s.bottomLabel}`) - // eslint-disable-next-line dot-notation - group1HTMLNode['labelVisible'] = true + group1LabelElement.labelVisible = true // Calculate bounding rect of point's bottom label const bottomLabelFontSizePx = getCSSVariableValueInPixels(cssvar(s.variables.mapPointBottomLabelFontSize), selection.node()) @@ -160,8 +163,8 @@ export function collideLabels ( for (let j = 0; j < elements.length; j += 1) { if (i === j) continue - const group2HTMLNode = elements[j] - const group2 = select(group2HTMLNode) + const group2LabelElement = elements[j] + const group2 = select(group2LabelElement) const label2: Selection = group2.select(`.${s.bottomLabel}`) const datum2 = group2.datum() as LeafletMapPoint @@ -177,8 +180,7 @@ export function collideLabels ( let intersect = rectIntersect(label1BoundingRect, point2BoundingRect) // If there's not intersection, check a collision with the second point's label - // eslint-disable-next-line dot-notation - const label2Visible = group2HTMLNode['labelVisible'] + const label2Visible = group2LabelElement.labelVisible if (!intersect && label2Visible) { const label2Size = estimateTextSize(label2, bottomLabelFontSizePx, 0.32, true, 0.6) intersect = rectIntersect(label1BoundingRect, { @@ -190,14 +192,12 @@ export function collideLabels ( } if (intersect) { - // eslint-disable-next-line dot-notation - group1HTMLNode['labelVisible'] = false + group1LabelElement.labelVisible = false break } } - // eslint-disable-next-line dot-notation - smartTransition(label1, 0).attr('opacity', group1HTMLNode['labelVisible'] ? 1 : 0) + smartTransition(label1, 0).attr('opacity', group1LabelElement.labelVisible ? 1 : 0) }) } diff --git a/packages/ts/src/components/leaflet-map/modules/utils.ts b/packages/ts/src/components/leaflet-map/modules/utils.ts index 26840a09b..261ba4fae 100644 --- a/packages/ts/src/components/leaflet-map/modules/utils.ts +++ b/packages/ts/src/components/leaflet-map/modules/utils.ts @@ -128,7 +128,7 @@ export function calculateClusterIndex (data: D[], c map: (d): Supercluster.AnyProps => { const shape = getString(d, pointShape) - const clusterPoint = { shape } + const clusterPoint = { shape } as Supercluster.AnyProps for (const key of Object.keys(colorMap)) { clusterPoint[key] = d[key] || 0 } diff --git a/packages/ts/src/components/leaflet-map/renderer/mapboxgl-layer.ts b/packages/ts/src/components/leaflet-map/renderer/mapboxgl-layer.ts index f241272b9..b55bdf0bf 100644 --- a/packages/ts/src/components/leaflet-map/renderer/mapboxgl-layer.ts +++ b/packages/ts/src/components/leaflet-map/renderer/mapboxgl-layer.ts @@ -13,13 +13,21 @@ import { GenericDataRecord } from 'types/data' // Config import { LeafletMapConfigInterface } from '../config' import { MapLibreStyleSpecs } from './map-style' +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore import { MaplibreGLLayer } from './leaflet-maplibre-gl' // Inject MapLibreGL global style +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore import mapLibreStyles from './maplibre-gl.css.js' injectGlobal(mapLibreStyles) -export function getMaplibreGLLayer (config: LeafletMapConfigInterface, leaflet: typeof L, maplibre: typeof Maplibre): L.Layer & { getMaplibreMap(): Map } { +export function getMaplibreGLLayer ( + config: LeafletMapConfigInterface, + leaflet: typeof L, + maplibre: typeof Maplibre +): L.Layer & { getMaplibreMap(): Map } { const { accessToken, style } = config if (isObject(style) && !(style as MapLibreStyleSpecs).glyphs) { diff --git a/packages/ts/src/components/leaflet-map/renderer/mapboxgl-utils.ts b/packages/ts/src/components/leaflet-map/renderer/mapboxgl-utils.ts index 41daada51..bf1c18623 100644 --- a/packages/ts/src/components/leaflet-map/renderer/mapboxgl-utils.ts +++ b/packages/ts/src/components/leaflet-map/renderer/mapboxgl-utils.ts @@ -1,3 +1,6 @@ +import type L from 'leaflet' +import type { Map } from 'maplibre-gl' + // Utils import { throttle } from 'utils/data' @@ -14,11 +17,15 @@ export function constraintMapView (map: L.Map, latMin = -75, latMax = 85): void } } -export function mapboxglWheelEvent (map, layer, event): void { - const { wheelDelta, deltaY } = event +export function mapboxglWheelEvent ( + map: L.Map, + layer: L.Layer & { getMaplibreMap(): Map }, + event: WheelEvent +): void { + const { deltaY } = event if (!layer || !layer.getMaplibreMap) return const mapboxmap = layer.getMaplibreMap() - const delta = wheelDelta || deltaY * -1 // We use deltaY for Firefox because wheelDelta is not implemented there + const delta = deltaY * -1 // Prevent Map from being zoomed-out too far away const bounds = map.getBounds() @@ -33,7 +40,7 @@ export function mapboxglWheelEvent (map, layer, event): void { const zoom = mapboxmap.getZoom() + delta * 0.001 const xy = map.mouseEventToLayerPoint(event) - map.setZoomAround(xy, zoom + 1, { animate: false, duration: 0 }) + map.setZoomAround(xy, zoom + 1, { animate: false }) } export const mapboxglWheelEventThrottled = throttle(mapboxglWheelEvent, 32) diff --git a/packages/ts/src/components/leaflet-map/style.ts b/packages/ts/src/components/leaflet-map/style.ts index 4dbab0090..5235c6081 100644 --- a/packages/ts/src/components/leaflet-map/style.ts +++ b/packages/ts/src/components/leaflet-map/style.ts @@ -11,7 +11,7 @@ injectGlobal(leafletCSS) const cssVarDefaults = { '--vis-map-container-background-color': '#dfe5eb', /* Undefined by default to allow proper fallback to var(--vis-font-family) */ - '--vis-map-label-font-family': undefined, + '--vis-map-label-font-family': undefined as undefined, '--vis-map-point-default-fill-color': '#B9BEC3', '--vis-map-point-ring-fill-color': '#ffffff', diff --git a/packages/ts/src/components/leaflet-map/types.ts b/packages/ts/src/components/leaflet-map/types.ts index 6b778f98a..57dae7fec 100644 --- a/packages/ts/src/components/leaflet-map/types.ts +++ b/packages/ts/src/components/leaflet-map/types.ts @@ -1,5 +1,5 @@ import { LatLng } from 'leaflet' -import Supercluster, { ClusterProperties } from 'supercluster' +import Supercluster, { ClusterProperties, PointFeature } from 'supercluster' import { GenericDataRecord } from 'types/data' export enum LeafletMapRenderer { @@ -74,3 +74,8 @@ export type MapZoomState = { bounds: Bounds; userDriven: boolean; } + +export type LeafletMapExpandedCluster = { + points: PointFeature>[]; + cluster: LeafletMapPoint; +} diff --git a/packages/ts/src/components/line/index.ts b/packages/ts/src/components/line/index.ts index cfffa56e4..cf6e05ef5 100644 --- a/packages/ts/src/components/line/index.ts +++ b/packages/ts/src/components/line/index.ts @@ -166,7 +166,7 @@ export class Line extends XYComponentCore extends XYComponentCore partitionData .each(node => { node.data = { - key: node.data[0] as string, - values: (node.data[1])?.length ? node.data[1].map((index: number) => data[index]) : [], - root: node.parent?.data.root ?? node.data[0], + key: (node.data as any)[0] as string, + values: ((node.data as any)[1])?.length ? (node.data as any)[1].map((index: number) => data[index]) : [], + root: node.parent?.data.root ?? (node.data as any)[0], } node._id = `root${partitionData.path(node).map(d => d.data.key).join('->')}` if (isNumberWithinRange(node.depth - 1, [0, layers.length - 1])) { diff --git a/packages/ts/src/components/nested-donut/style.ts b/packages/ts/src/components/nested-donut/style.ts index 222b25359..f8b744aef 100644 --- a/packages/ts/src/components/nested-donut/style.ts +++ b/packages/ts/src/components/nested-donut/style.ts @@ -5,7 +5,7 @@ import { getCssVarNames, injectGlobalCssVariables } from 'utils/style' const cssVarDefaults = { // Undefined by default to allow proper fallback to var(--vis-font-family) - '--vis-nested-donut-font-family': undefined, + '--vis-nested-donut-font-family': undefined as undefined, // Background '--vis-nested-donut-background-color': '#E7E9F3', diff --git a/packages/ts/src/components/sankey/config.ts b/packages/ts/src/components/sankey/config.ts index 049831ea5..d3f024486 100644 --- a/packages/ts/src/components/sankey/config.ts +++ b/packages/ts/src/components/sankey/config.ts @@ -1,5 +1,3 @@ -/* eslint-disable dot-notation */ - // Config import { ComponentConfigInterface, ComponentDefaultConfig } from 'core/component/config' @@ -24,7 +22,7 @@ import { export interface SankeyConfigInterface extends ComponentConfigInterface { // General /** Node / Link id accessor function. Used for mapping of data updates to corresponding SVG objects. Default: `(d, i) => d.id ?? i.toString()` */ - id?: (d: SankeyInputNode | SankeyInputLink, i: number, ...any) => string; + id?: (d: SankeyInputNode | SankeyInputLink, i: number, ...any: unknown[]) => string; /** Coefficient to scale the height of the diagram when the amount of links is low: `C * links.length`, clamped to `[height / 2, height]`. Default: `1/16` */ heightNormalizationCoeff?: number; /** Type of animation on removing nodes. Default: `ExitTransitionType.Default` */ @@ -142,7 +140,7 @@ export const SankeyDefaultConfig: SankeyConfigInterface d['_id'] ?? `${i}`, + id: (d: SankeyInputNode, i: number) => (d as { _id: string })._id ?? `${i}`, highlightSubtreeOnHover: false, highlightDuration: 300, highlightDelay: 1000, @@ -154,13 +152,13 @@ export const SankeyDefaultConfig: SankeyConfigInterface d['color'], - nodeFixedValue: d => d['fixedValue'], + nodeColor: (d: SankeyInputNode) => (d as { color: string }).color, + nodeFixedValue: (d: SankeyInputNode) => (d as { fixedValue: number }).fixedValue, showSingleNode: true, nodeCursor: undefined, nodeIcon: undefined, nodeIconColor: undefined, - label: d => d['label'], + label: (d: SankeyInputNode) => (d as { label: string }).label, labelPosition: Position.Auto, labelVerticalAlign: VerticalAlign.Middle, labelBackground: false, @@ -179,8 +177,8 @@ export const SankeyDefaultConfig: SankeyConfigInterface d['value'], - linkColor: d => d['color'], + linkValue: (d: SankeyInputNode) => (d as { value: number }).value, + linkColor: (d: SankeyInputNode) => (d as { color: string }).color, linkCursor: undefined, // https://stackoverflow.com/a/21648197/2040291 diff --git a/packages/ts/src/components/sankey/index.ts b/packages/ts/src/components/sankey/index.ts index cca16b5c2..52cd6c932 100644 --- a/packages/ts/src/components/sankey/index.ts +++ b/packages/ts/src/components/sankey/index.ts @@ -43,14 +43,14 @@ export class Sankey< protected _defaultConfig = SankeyDefaultConfig as SankeyConfigInterface public config: SankeyConfigInterface = this._defaultConfig datamodel: GraphDataModel, SankeyLink> = new GraphDataModel() - private _extendedWidth = undefined - private _extendedHeight = undefined - private _extendedHeightIncreased = undefined + private _extendedWidth: number | undefined = undefined + private _extendedHeight: number | undefined = undefined + private _extendedHeightIncreased: number | undefined = undefined private _linksGroup: Selection private _nodesGroup: Selection private _backgroundRect: Selection private _sankey = sankey, SankeyNode, SankeyLink>() - private _highlightTimeoutId = null + private _highlightTimeoutId: ReturnType | null = null private _highlightActive = false events = { [Sankey.selectors.nodeGroup]: { @@ -123,7 +123,7 @@ export class Sankey< if ((this.sizing !== Sizing.Fit) || !this._hasLinks()) this._preCalculateComponentSize() // Using "as any" because typings are not full ("@types/d3-sankey": "^0.11.2") - const nodeId = ((d, i) => getString(d, this.config.id, i)) as any; + const nodeId = ((d: SankeyInputNode, i: number) => getString(d, this.config.id, i)) as any; (this._sankey as any).linkSort(this.config.linkSort) this._sankey .nodeId(nodeId) diff --git a/packages/ts/src/components/sankey/modules/link.ts b/packages/ts/src/components/sankey/modules/link.ts index 21d17eaf2..af43439b1 100644 --- a/packages/ts/src/components/sankey/modules/link.ts +++ b/packages/ts/src/components/sankey/modules/link.ts @@ -47,21 +47,25 @@ export function linkPath ({ x0, x1, y0, y1, width }: LinkPathOptions): string { ` } +export type LinkAnimState = { x0: number; x1: number; y0: number; y1: number; width: number } + +export interface LinkElement extends SVGPathElement { + _animState?: LinkAnimState; +} + export function createLinks ( sel: Selection, SVGGElement, unknown> ): void { sel.append('path').attr('class', s.linkPath) - .attr('d', (d: SankeyLink, i, el) => { - // eslint-disable-next-line dot-notation - el[i]['_animState'] = { + .attr('d', (d: SankeyLink, i: number, el: ArrayLike) => { + el[i]._animState = { x0: d.source.x1, x1: d.target.x0, y0: d.y0, y1: d.y1, width: Math.max(1, d.width), } - // eslint-disable-next-line dot-notation - return linkPath(el[i]['_animState']) + return linkPath(el[i]._animState) }) sel.append('path').attr('class', s.linkSelectionHelper) sel.style('opacity', 0) @@ -83,9 +87,8 @@ export function updateLinks, SVGGElement, unknown>) - .attrTween('d', (d: SankeyLink, i, el) => { - // eslint-disable-next-line dot-notation - const previous = el[i]['_animState'] + .attrTween('d', (d: SankeyLink, i: number, el: ArrayLike) => { + const previous = el[i]._animState const next = { x0: d.source.x1, x1: d.target.x0, @@ -100,8 +103,7 @@ export function updateLinks extends XYComponentConfigInterfac /** Shape of the scatter point. Accessor function or constant value: `SymbolType.Circle`, `SymbolType.Cross`, `SymbolType.Diamond`, `SymbolType.Square`, * `SymbolType.Star`, `SymbolType.Triangle` or `SymbolType.Wye`. * Default: `SymbolType.Circle` */ - shape?: ((d: Datum, i?: number, ...any) => (SymbolType | string)) | SymbolType | string; + shape?: ((d: Datum, i?: number, ...any: unknown[]) => (SymbolType | string)) | SymbolType | string; /** Label accessor function or string. Default: `undefined` */ label?: StringAccessor; /** Label color. Default: `undefined` */ @@ -45,8 +45,7 @@ export interface ScatterConfigInterface extends XYComponentConfigInterfac export const ScatterDefaultConfig: ScatterConfigInterface = { ...XYComponentDefaultConfig, - // eslint-disable-next-line dot-notation - color: (d: unknown): string => d['color'], + color: (d: unknown): string => (d as { color: string }).color, size: 10, sizeScale: Scale.scaleSqrt(), sizeRange: undefined, diff --git a/packages/ts/src/components/scatter/index.ts b/packages/ts/src/components/scatter/index.ts index 0c040c2e3..1782773d8 100644 --- a/packages/ts/src/components/scatter/index.ts +++ b/packages/ts/src/components/scatter/index.ts @@ -164,8 +164,8 @@ export class Scatter extends XYComponentCore[][] { const { config, datamodel: { data } } = this - const xDomain = this.xScale.domain().map(d => +d) // Convert Date to number - const yDomain = this.yScale.domain().map(d => +d) // Convert Date to number + const xDomain = this.xScale.domain().map((d: number | Date) => +d) // Convert Date to number + const yDomain = this.yScale.domain().map((d: number | Date) => +d) // Convert Date to number const yAccessors = (isArray(config.y) ? config.y : [config.y]) as NumericAccessor[] const maxSizeValue = max(flatten(yAccessors.map((y, j) => data?.map(d => getNumber(d, config.size, j))))) @@ -199,7 +199,7 @@ export class Scatter extends XYComponentCore ( path.attr('d', () => { const svgPath = d._point.shape ? symbolGenerator .size(Math.PI * pointDiameter * pointDiameter / 4) - .type(Symbol[d._point.shape])() : null + .type(Symbol[d._point.shape as SymbolType])() : null return svgPath }) diff --git a/packages/ts/src/components/timeline/config.ts b/packages/ts/src/components/timeline/config.ts index 290f9aa45..df33578ca 100644 --- a/packages/ts/src/components/timeline/config.ts +++ b/packages/ts/src/components/timeline/config.ts @@ -35,15 +35,12 @@ export interface TimelineConfigInterface extends WithOptional = { ...XYComponentDefaultConfig, - // eslint-disable-next-line dot-notation - color: (d: unknown): string => d['color'], + color: (d: unknown): string => (d as { color: string }).color, lineWidth: 8, lineCap: false, rowHeight: 22, - // eslint-disable-next-line dot-notation - length: (d: Datum): number => d['length'], - // eslint-disable-next-line dot-notation - type: (d: Datum): string => d['type'], + length: (d: unknown): number => (d as { length: number }).length, + type: (d: unknown): string => (d as { type: string }).type, cursor: null, labelWidth: undefined, showLabels: false, diff --git a/packages/ts/src/components/tooltip/style.js b/packages/ts/src/components/tooltip/style.ts similarity index 100% rename from packages/ts/src/components/tooltip/style.js rename to packages/ts/src/components/tooltip/style.ts diff --git a/packages/ts/src/components/topojson-map/config.ts b/packages/ts/src/components/topojson-map/config.ts index 5e5716197..ebef1b460 100644 --- a/packages/ts/src/components/topojson-map/config.ts +++ b/packages/ts/src/components/topojson-map/config.ts @@ -1,4 +1,3 @@ -/* eslint-disable dot-notation */ import { GeoProjection } from 'd3-geo' import { ComponentConfigInterface, ComponentDefaultConfig } from 'core/component/config' @@ -93,27 +92,27 @@ export const TopoJSONMapDefaultConfig: TopoJSONMapConfigInterface(d: LinkDatum): number => d['width'] ?? 1, - linkColor: (d: LinkDatum): string => d['color'] ?? null, + linkWidth: (d: unknown): number => (d as { width: number }).width ?? 1, + linkColor: (d: unknown): string => (d as { color: string }).color ?? null, linkCursor: null, - linkId: (d: LinkDatum, i: number | undefined): string => `${d['id'] ?? i}`, - linkSource: (d: LinkDatum): (number | string | unknown) => d['source'], - linkTarget: (d: LinkDatum): (number | string | unknown) => d['target'], + linkId: (d: unknown, i: number | undefined): string => `${(d as { id: string }).id ?? i}`, + linkSource: (d: unknown): (number | string | unknown) => (d as { source: string }).source, + linkTarget: (d: unknown): (number | string | unknown) => (d as { target: string }).target, - areaId: (d: AreaDatum): string => d['id'] ?? '', - areaColor: (d: AreaDatum): string => d['color'] ?? null, + areaId: (d: unknown): string => (d as { id: string }).id ?? '', + areaColor: (d: unknown): string => (d as { color: string }).color ?? null, areaCursor: null, - longitude: (d: PointDatum): number => d['longitude'], - latitude: (d: PointDatum): number => d['latitude'], - pointColor: (d: PointDatum): string => d['color'] ?? null, - pointRadius: (d: PointDatum): number => d['radius'] ?? 8, - pointStrokeWidth: (d: PointDatum): number => d['strokeWidth'] ?? 0, + longitude: (d: unknown): number => (d as { longitude: number }).longitude, + latitude: (d: unknown): number => (d as { latitude: number }).latitude, + pointColor: (d: unknown): string => (d as { color: string }).color ?? null, + pointRadius: (d: unknown): number => (d as { radius: number }).radius ?? 8, + pointStrokeWidth: (d: unknown): number => (d as { strokeWidth: number }).strokeWidth ?? 0, pointCursor: null, pointLabel: undefined, pointLabelPosition: MapPointLabelPosition.Bottom, pointLabelTextBrightnessRatio: 0.65, - pointId: (d: PointDatum): string => d['id'], + pointId: (d: unknown): string => (d as { id: string }).id, heatmapMode: false, heatmapModeBlurStdDeviation: 8, diff --git a/packages/ts/src/components/topojson-map/index.ts b/packages/ts/src/components/topojson-map/index.ts index 70d2ddc2e..ceaeea6e0 100644 --- a/packages/ts/src/components/topojson-map/index.ts +++ b/packages/ts/src/components/topojson-map/index.ts @@ -1,7 +1,7 @@ import { Selection } from 'd3-selection' import { D3ZoomEvent, zoom, ZoomBehavior, zoomIdentity, ZoomTransform } from 'd3-zoom' import { timeout } from 'd3-timer' -import { geoPath, GeoProjection } from 'd3-geo' +import { geoPath, GeoProjection, ExtendedFeatureCollection } from 'd3-geo' import { color } from 'd3-color' import { feature } from 'topojson-client' @@ -315,7 +315,7 @@ export class TopoJSONMap< const pointData = points || datamodel.points if (pointData.length === 0) return - const featureCollection = { + const featureCollection: ExtendedFeatureCollection = { type: 'FeatureCollection', features: [{ type: 'Feature', @@ -330,7 +330,6 @@ export class TopoJSONMap< }), }, }], - geometries: [], } this._projection.fitExtent([ diff --git a/packages/ts/src/components/xy-labels/config.ts b/packages/ts/src/components/xy-labels/config.ts index 50a1b0772..001bb10b2 100644 --- a/packages/ts/src/components/xy-labels/config.ts +++ b/packages/ts/src/components/xy-labels/config.ts @@ -41,8 +41,7 @@ export interface XYLabelsConfigInterface extends XYComponentConfigInterfa } export const XYLabelsDefaultConfig: XYLabelsConfigInterface = { ...XYComponentDefaultConfig, - // eslint-disable-next-line dot-notation - color: (d: unknown): string => d['color'], + color: (d: unknown): string => (d as { color: string }).color, y: undefined, xPositioning: XYLabelPositioning.DataSpace, yPositioning: XYLabelPositioning.DataSpace, diff --git a/packages/ts/src/containers/xy-container/config.ts b/packages/ts/src/containers/xy-container/config.ts index 705e0fb7f..20925879f 100644 --- a/packages/ts/src/containers/xy-container/config.ts +++ b/packages/ts/src/containers/xy-container/config.ts @@ -88,6 +88,7 @@ export interface XYContainerConfigInterface extends ContainerConfigInterf scaleByDomain?: boolean; } + export const XYContainerDefaultConfig: XYContainerConfigInterface = { ...ContainerDefaultConfig, components: [], diff --git a/packages/ts/src/containers/xy-container/index.ts b/packages/ts/src/containers/xy-container/index.ts index c67d5184f..1e8e45d25 100644 --- a/packages/ts/src/containers/xy-container/index.ts +++ b/packages/ts/src/containers/xy-container/index.ts @@ -247,8 +247,8 @@ export class XYContainer extends ContainerCore { // Pass accessors const yAccessors = this.components.filter(c => !c.stacked).map(c => c.config.y) const yStackedAccessors = this.components.filter(c => c.stacked).map(c => c.config.y) - // eslint-disable-next-line dot-notation - const baselineAccessor = this.components.find(c => c.config['baseline'])?.config['baseline'] + const baselineComponentConfig = this.components.find(c => (c.config as AreaConfigInterface).baseline).config as AreaConfigInterface + const baselineAccessor = baselineComponentConfig.baseline crosshair.accessors = { x: this.components[0]?.config.x, @@ -338,7 +338,8 @@ export class XYContainer extends ContainerCore { // Get and combine bleed const bleed = components.map(c => c.bleed).reduce((bleed, b) => { for (const key of Object.keys(bleed)) { - if (bleed[key] < b[key]) bleed[key] = b[key] + const k = key as keyof Spacing + if (bleed[k] < b[k]) bleed[k] = b[k] } return bleed }, { top: 0, bottom: 0, left: 0, right: 0 }) diff --git a/packages/ts/src/core/component/index.ts b/packages/ts/src/core/component/index.ts index b0347eddc..63fe0ec31 100644 --- a/packages/ts/src/core/component/index.ts +++ b/packages/ts/src/core/component/index.ts @@ -61,6 +61,8 @@ export class ComponentCore< this.g = select(this.element) as Selection | Selection // Setting the root class if available + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore // eslint-disable-next-line dot-notation const rootClass = this.constructor?.['selectors']?.root as string if (rootClass) this.g.attr('class', rootClass) @@ -133,11 +135,13 @@ export class ComponentCore< private _bindEvents (events = this.events, suffix = ''): void { Object.keys(events).forEach(className => { Object.keys(events[className]).forEach(eventType => { - const selection = (this.g as Selection).selectAll(`.${className}`) - selection.on(eventType + suffix, (event: Event, d) => { + const selection = (this.g as Selection) + .selectAll(`.${className}`) + selection.on(eventType + suffix, (event: MouseEvent & WheelEvent & PointerEvent & TouchEvent, d) => { const els = selection.nodes() const i = els.indexOf(event.currentTarget as SVGGElement | HTMLElement) - return events[className][eventType](d, event, i, els) + const eventFunction = events[className][eventType as VisEventType] + return eventFunction(d, event, i, els) }) }) }) diff --git a/packages/ts/src/core/component/types.ts b/packages/ts/src/core/component/types.ts index 493bc3359..66e1b6bb5 100644 --- a/packages/ts/src/core/component/types.ts +++ b/packages/ts/src/core/component/types.ts @@ -6,4 +6,4 @@ export type VisEventCallback = ((data: Datum, event: MouseEvent, i: number, els: (SVGElement | HTMLElement)[]) => void) | ((data: Datum, event: WheelEvent, i: number, els: (SVGElement | HTMLElement)[]) => void) | ((data: Datum, event: PointerEvent, i: number, els: (SVGElement | HTMLElement)[]) => void) | - ((data: Datum, event: TouchEvent, i: number, els: (SVGElement | HTMLElement)[]) => void); + ((data: Datum, event: TouchEvent, i: number, els: (SVGElement | HTMLElement)[]) => void) diff --git a/packages/ts/src/core/xy-component/config.ts b/packages/ts/src/core/xy-component/config.ts index 515fdbff8..03ab4ff64 100644 --- a/packages/ts/src/core/xy-component/config.ts +++ b/packages/ts/src/core/xy-component/config.ts @@ -37,10 +37,8 @@ export const XYComponentDefaultConfig: XYComponentConfigInterface = { ...ComponentDefaultConfig, x: undefined, y: undefined, - // eslint-disable-next-line dot-notation - id: (d: Datum, i: number): string => d['id'] ?? `${i}`, - // eslint-disable-next-line dot-notation - color: (d: Datum | Datum[]): string => d['color'], + id: (d: unknown, i: number): string => (d as { id: string }).id ?? `${i}`, + color: (d: unknown | unknown[]): string => (d as { color: string }).color, xScale: undefined, yScale: undefined, excludeFromDomainCalculation: false, diff --git a/packages/ts/src/data-models/map-graph.ts b/packages/ts/src/data-models/map-graph.ts index fd9979d20..068b87747 100644 --- a/packages/ts/src/data-models/map-graph.ts +++ b/packages/ts/src/data-models/map-graph.ts @@ -19,12 +19,9 @@ export class MapGraphDataModel extends CoreDat private _links: MapLink[] = [] // Model configuration - /* eslint-disable-next-line dot-notation */ - public pointId: ((n: PointDatum, i: number) => string) = n => n['id'] - /* eslint-disable-next-line dot-notation */ - public linkSource: ((l: LinkDatum) => number | string | PointDatum) = l => l['source'] - /* eslint-disable-next-line dot-notation */ - public linkTarget: ((l: LinkDatum) => number | string | PointDatum) = l => l['target'] + public pointId: ((n: PointDatum, i: number) => string) = n => (n as {id: string}).id + public linkSource: ((l: LinkDatum) => number | string | PointDatum) = l => (l as {source: string}).source + public linkTarget: ((l: LinkDatum) => number | string | PointDatum) = l => (l as {target: string}).target get data (): MapGraphData { return this._data diff --git a/packages/ts/src/types/accessor.ts b/packages/ts/src/types/accessor.ts index 7fdcdd9d5..549b5895b 100644 --- a/packages/ts/src/types/accessor.ts +++ b/packages/ts/src/types/accessor.ts @@ -1,5 +1,5 @@ -export type NumericAccessor = ((d: Datum, i: number, ...any) => number | null | undefined) | number | null | undefined -export type StringAccessor = ((d: Datum, i: number, ...any) => string | null | undefined) | string | null -export type ColorAccessor = ((d: Datum, i: number, ...any) => string | null | undefined) | string | null | undefined -export type BooleanAccessor = ((d: Datum, i: number, ...any) => boolean | null | undefined) | boolean | null | undefined -export type GenericAccessor = ((d: Datum, i: number, ...any) => ReturnType | null | undefined) | ReturnType | null | undefined +export type NumericAccessor = ((d: Datum, i: number, ...any: unknown[]) => number | null | undefined) | number | null | undefined +export type StringAccessor = ((d: Datum, i: number, ...any: unknown[]) => string | null | undefined) | string | null +export type ColorAccessor = ((d: Datum, i: number, ...any: unknown[]) => string | null | undefined) | string | string[] | null | undefined +export type BooleanAccessor = ((d: Datum, i: number, ...any: unknown[]) => boolean | null | undefined) | boolean | null | undefined +export type GenericAccessor = ((d: Datum, i: number, ...any: unknown[]) => ReturnType | null | undefined) | ReturnType | null | undefined diff --git a/packages/ts/src/types/component.ts b/packages/ts/src/types/component.ts index 6b6230e27..fd3b58076 100644 --- a/packages/ts/src/types/component.ts +++ b/packages/ts/src/types/component.ts @@ -1,5 +1,7 @@ export enum ComponentType { + // eslint-disable-next-line @typescript-eslint/naming-convention SVG, + // eslint-disable-next-line @typescript-eslint/naming-convention HTML, } diff --git a/packages/ts/src/utils/d3.ts b/packages/ts/src/utils/d3.ts index 5625a7d71..0bcd6d46e 100644 --- a/packages/ts/src/utils/d3.ts +++ b/packages/ts/src/utils/d3.ts @@ -1,11 +1,12 @@ import { interrupt, Transition } from 'd3-transition' import { BaseType, Selection } from 'd3-selection' +import { ValueFn } from 'd3' export function smartTransition ( selection: Selection, duration?: number, easing?: (normalizedTime: number) => number -): Selection | Transition { +): Selection$Transition { selection.nodes().forEach(node => interrupt(node)) // Interrupt active transitions if any if (duration) { const transition = selection.transition().duration(duration) @@ -13,3 +14,15 @@ export function smartTransition { + attr(name: string, value: null | string | number | boolean): this; + attr(name: string, value: ValueFn): this; + style(name: string, value: null): this; + style(name: string, value: string | number | boolean, priority?: null | 'important'): this; + style(name: string, value: ValueFn, priority?: null | 'important'): this; +} + +export type Selection$Transition = + (Transition | Selection) + & VisAttrStylePatch diff --git a/packages/ts/src/utils/data.ts b/packages/ts/src/utils/data.ts index ebc3d01d5..4f9ab4f94 100644 --- a/packages/ts/src/utils/data.ts +++ b/packages/ts/src/utils/data.ts @@ -5,11 +5,12 @@ import { throttle as _throttle } from 'throttle-debounce' import { NumericAccessor, StringAccessor, BooleanAccessor, ColorAccessor, GenericAccessor } from 'types/accessor' import { StackValuesRecord } from 'types/data' -export const isNumber = (a: T): boolean => typeof a === 'number' -export const isFunction = (a: T): boolean => typeof a === 'function' -export const isUndefined = (a: T): boolean => a === undefined -export const isNil = (a: T): boolean => a == null -export const isString = (a: T): boolean => typeof a === 'string' +export const isNumber = (a: T): a is T extends number ? T : never => typeof a === 'number' +// eslint-disable-next-line @typescript-eslint/ban-types +export const isFunction = (a: T): a is T extends Function ? T : never => typeof a === 'function' +export const isUndefined = (a: T): a is T extends undefined ? T : never => a === undefined +export const isNil = (a: T): a is null | undefined => a == null +export const isString = (a: T): a is T extends string ? T : never => typeof a === 'string' export const isArray = (a: T): a is T extends any[] ? T : never => Array.isArray(a) export const isObject = (a: T): boolean => (a instanceof Object) export const isAClassInstance = (a: T): boolean => a.constructor.name !== 'Function' && a.constructor.name !== 'Object' @@ -50,7 +51,7 @@ export const isEqual = (a?: unknown | null, b?: unknown | null, visited: Set)[key], (b as Record)[key], visited)) return false } return true @@ -194,7 +195,7 @@ export function unique (array: T[]): T[] { return Array.from(new Set(array)) } -export function countUnique (array: T[], accessor = d => d): number { +export function countUnique (array: T[], accessor = (d: unknown) => d): number { return new Set(array.map(d => accessor(d))).size } diff --git a/packages/ts/src/utils/text.ts b/packages/ts/src/utils/text.ts index 680263477..b51ca808d 100644 --- a/packages/ts/src/utils/text.ts +++ b/packages/ts/src/utils/text.ts @@ -98,18 +98,18 @@ export function trimString (str = '', length = 15, type = TrimMode.Middle): stri * @returns {string[]} - The array of split words. */ export function splitString (text: string, separators = [' ']): string[] { - let result = [text] as any[] + let result = [text] as Array for (let i = 0; i < separators.length; i++) { const sep = separators[i] - result.forEach((d, id) => { - const separated = d.split(sep) + result.forEach((d, index) => { + const separated = (d as string).split(sep) const words = separated.map((word, j) => `${word}${j === separated.length - 1 ? '' : sep}`) - result[id] = words + result[index] = words }) result = flatten(result) } - return result + return result as string[] } /** diff --git a/packages/ts/tsconfig.json b/packages/ts/tsconfig.json index 3337d4db4..0aa6e6007 100644 --- a/packages/ts/tsconfig.json +++ b/packages/ts/tsconfig.json @@ -13,9 +13,9 @@ "styles/*": ["./styles/*"], "data-models/*": ["./data-models/*"] }, + "noImplicitAny": true, + "alwaysStrict": true, // To be enabled: - // "noImplicitAny": true, - // "alwaysStrict": true, // "strictNullChecks": true, // "strictPropertyInitialization": true, "strictFunctionTypes": true, diff --git a/packages/website/package-lock.json b/packages/website/package-lock.json index a0d24e417..d09ac69b4 100644 --- a/packages/website/package-lock.json +++ b/packages/website/package-lock.json @@ -30,7 +30,6 @@ "typescript": "~4.2.4" }, "peerDependencies": { - "@unovis/angular": "*", "@unovis/react": "*", "@unovis/ts": "*" } @@ -189,15 +188,81 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "license": "MIT", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { "version": "7.22.9", "license": "MIT", @@ -241,10 +306,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.9", - "license": "MIT", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dependencies": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -362,18 +428,20 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "license": "MIT", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "license": "MIT", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -511,8 +579,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "license": "MIT", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } @@ -549,11 +618,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "license": "MIT", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -562,7 +632,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" }, @@ -572,7 +643,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -584,32 +656,37 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, @@ -618,8 +695,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.7", - "license": "MIT", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1877,29 +1955,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "license": "MIT", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.8", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.7", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/types": "^7.22.5", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1908,11 +1988,12 @@ } }, "node_modules/@babel/types": { - "version": "7.22.5", - "license": "MIT", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2525,6 +2606,100 @@ "node": ">=16.14" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/css": { + "version": "11.11.2", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.11.2.tgz", + "integrity": "sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==", + "peer": true, + "dependencies": { + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "peer": true + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "peer": true + }, + "node_modules/@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "peer": true, + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", + "peer": true + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "peer": true + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", + "peer": true + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", + "peer": true + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "license": "BSD-3-Clause" @@ -2611,10 +2786,80 @@ "version": "1.4.14", "license": "MIT" }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "peer": true + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "license": "MIT" }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "peer": true, + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz", + "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==", + "peer": true + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "peer": true + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", + "peer": true + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "peer": true + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "peer": true, + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@mdx-js/mdx": { "version": "1.6.22", "license": "MIT", @@ -3088,6 +3333,289 @@ "@types/node": "*" } }, + "node_modules/@types/d3": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.2.tgz", + "integrity": "sha512-Y4g2Yb30ZJmmtqAJTqMRaqXwRawfvpdpVmyEYEcyGNhrQI/Zvkq3k7yE1tdN07aFSmNBfvmegMQ9Fe2qy9ZMhw==", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.9.tgz", + "integrity": "sha512-mZowFN3p64ajCJJ4riVYlOjNlBJv3hctgAY01pjw3qTnJePD8s9DZmYDzhHKvzfCYvdjwylkU38+Vdt7Cu2FDA==", + "peer": true + }, + "node_modules/@types/d3-axis": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.5.tgz", + "integrity": "sha512-ufDAV3SQzju+uB3Jlty7SUb/jMigjpIlvDDcSGvGmmO6OT/sNO93UE0dRzwWOZeBLzrLSA0CQM4bf3iq1std3A==", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.5.tgz", + "integrity": "sha512-JROQXZNq1X6QdWstESDUv1VilwZ2hBCQnWB91yal+5yZvYwGQvYsGCjrkHGfKK/8/AcX1JnERmpQzdDDuLRUsA==", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.5.tgz", + "integrity": "sha512-rs26AIhJjtc+XLR4YQU8IjPTLOlDVO4PR1y+pVFYEHzKh2tE5tYz3MF4QV6iz7HboXQEaYpJQt8dH9uUkne8yA==", + "peer": true + }, + "node_modules/@types/d3-collection": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.12.tgz", + "integrity": "sha512-wBKsp5U/IiZoa5t5q6AGmmZ/LQIr8ItbsYDH1xo8R4LA6hoqTR6HZ1+okES/f0UZbmSbG9zvkRiBLoY4Gw9bsA==", + "peer": true + }, + "node_modules/@types/d3-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.2.tgz", + "integrity": "sha512-At+Ski7dL8Bs58E8g8vPcFJc8tGcaC12Z4m07+p41+DRqnZQcAlp3NfYjLrhNYv+zEyQitU1CUxXNjqUyf+c0g==", + "peer": true + }, + "node_modules/@types/d3-contour": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.5.tgz", + "integrity": "sha512-wLvjwdOQVd1NL1IcW90CCt1VtpeZ3V20p/OTXlkT8uAiprrJnq2PNNnRNe1QCez4U9aMU29Z14zpJQVLW1+Lcg==", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.3.tgz", + "integrity": "sha512-+Lf5NPKZ4JBC9tbudVkKceQXRxU3jJs0el9aKQvinMtdnFSOG84eVXyhCNgIFuXNQO3iIcYs7sgzN359FEOZnQ==", + "peer": true + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.5.tgz", + "integrity": "sha512-hxvq2kc+9hydVppo21JCGfcM0tLTh1DXnG3MLN0KlxsNZJH4bsdl1iXDuWtXFpWWlBrCMwSqlnoLPDxNAZU3Bg==", + "peer": true + }, + "node_modules/@types/d3-drag": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.5.tgz", + "integrity": "sha512-arHyAGvO0NEGGPCU2jTb31TlXeSxwty1bIxr5wOFOCVqVjgriXloLWXoRp39Oa0Y/qXxcAVMIonAWLrtLxUZAQ==", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.5.tgz", + "integrity": "sha512-73WZR3QFOaSRVz9iOrebTbTnbo7xjcgS/i0Cq5zy0jMXPO3v/JbkTD3Zqii1eYE6v4EJ78g5VP407rm+p8fdlA==", + "peer": true + }, + "node_modules/@types/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-VZofjpEt8HWv3nxUAosj5o/+4JflnJ7Bbv07k17VO3T2WRuzGdZeookfaF60iVh5RdhVG49LE5w6LIshVUC6rg==", + "peer": true + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.5.tgz", + "integrity": "sha512-Rc8pb6H0RRLpAV2hEXduykUgcDUOhjSLTLmCIeo6ejzgs4SaITh/EteMb3p5Env3Hqjsqw0fCksyqopHHzMkMg==", + "peer": true, + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.7.tgz", + "integrity": "sha512-rsok4CEvPLyVWRPsFiBhanJc3up03H/EARVz4d8soPh8drv82YMuAckYy4yv8g4/81JwCng5U5/o9aj9d0T6bQ==", + "peer": true + }, + "node_modules/@types/d3-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.3.tgz", + "integrity": "sha512-kxuLXSAEJykTeL/EI3tUiEfGqru7PRdqEy099YBnqFl+fF167UVSB4+wntlZv86ZdoYf0DHjsRHnTIm8kcH7qw==", + "peer": true + }, + "node_modules/@types/d3-geo": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.6.tgz", + "integrity": "sha512-wblAES3b+C3hvp4VakwECEKtHquT/xc6K4HOna95LM1j1fd7s7WmU4V+JMQZfKhNCMkV2vWD+ZUgY2Uj6gqfuA==", + "peer": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.5.tgz", + "integrity": "sha512-DEcBUj1IL3WyPLDlh4m2nsNXnMLITXM5Vwcu4G85yJHtf2cVGPBjgky3L11WBnT+ayHKf06Tchk5mY1eGmd4WQ==", + "peer": true + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.3.tgz", + "integrity": "sha512-6OZ2EIB4lLj+8cUY7I/Cgn9Q+hLdA4DjJHYOQDiHL0SzqS1K9DL5xIOVBSIHgF+tiuO9MU1D36qvdIvRDRPh+Q==", + "peer": true, + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-blRhp7ki7pVznM8k6lk5iUU9paDbVRVq+/xpf0RRgSJn5gr6SE7RcFtxooYGMBOc1RZiGyqRpVdu5AD0z0ooMA==", + "peer": true + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-nrcWPk7B9qs6xnpq60Cls44zm9eDmFAv65qi/N/emh/oftnG6uYz49aIS0mdFaGeJxVN8H3pHneMuZMV8EwFdw==", + "peer": true + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.4.tgz", + "integrity": "sha512-B725MopFDIOQ6njFbeOxIEf42HVO2Xv+FmcxQISdOKErvLbFqWz3Riu+OWujUYoogreqqyHBHcGGL/JzzXQYsw==", + "peer": true + }, + "node_modules/@types/d3-random": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.2.tgz", + "integrity": "sha512-8QhsqkKs6mymAZMrg3ZFXPxKA34rdgp3ZrtB8o6mhFsKAd1gOvR1gocWnca+kmXypQdwgnzKm9gZE2Uw8NjjKw==", + "peer": true + }, + "node_modules/@types/d3-sankey": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@types/d3-sankey/-/d3-sankey-0.11.2.tgz", + "integrity": "sha512-U6SrTWUERSlOhnpSrgvMX64WblX1AxX6nEjI2t3mLK2USpQrnbwYYK+AS9SwiE7wgYmOsSSKoSdr8aoKBH0HgQ==", + "peer": true, + "dependencies": { + "@types/d3-shape": "^1" + } + }, + "node_modules/@types/d3-sankey/node_modules/@types/d3-path": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.10.tgz", + "integrity": "sha512-19YfheAnvYgDezl00WQTGHPqYAT6DDzmzSLoT9MUl+d/EQmHC3WEoiY/bZ4OpBVMHieVg9C/Jj/yn329RiGqrg==", + "peer": true + }, + "node_modules/@types/d3-sankey/node_modules/@types/d3-shape": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.10.tgz", + "integrity": "sha512-Nu+/Hyo/owxYH61aBSV9qOM9szEw81BIebdaRgm8VBedyRIW/V2H9AJVp+gwrS+1BMiW7HkoDF9eUtmLOHzTgQ==", + "peer": true, + "dependencies": { + "@types/d3-path": "^1" + } + }, + "node_modules/@types/d3-scale": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.6.tgz", + "integrity": "sha512-lo3oMLSiqsQUovv8j15X4BNEDOsnHuGjeVg7GRbAuB2PUa1prK5BNSOu6xixgNf3nqxPl4I1BqJWrPvFGlQoGQ==", + "peer": true, + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.1.tgz", + "integrity": "sha512-Ob7OrwiTeQXY/WBBbRHGZBOn6rH1h7y3jjpTSKYqDEeqFjktql6k2XSgNwLrLDmAsXhEn8P9NHDY4VTuo0ZY1w==", + "peer": true + }, + "node_modules/@types/d3-selection": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.8.tgz", + "integrity": "sha512-pxCZUfQyedq/DIlPXIR5wE1mIH37omOdx1yxRudL3KZ4AC+156jMjOv1z5RVlGq62f8WX2kyO0hTVgEx627QFg==", + "peer": true + }, + "node_modules/@types/d3-shape": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.4.tgz", + "integrity": "sha512-M2/xsWPsjaZc5ifMKp1EBp0gqJG0eO/zlldJNOC85Y/5DGsBQ49gDkRJ2h5GY7ZVD6KUumvZWsylSbvTaJTqKg==", + "peer": true, + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.2.tgz", + "integrity": "sha512-kbdRXTmUgNfw5OTE3KZnFQn6XdIc4QGroN5UixgdrXATmYsdlPQS6pEut9tVlIojtzuFD4txs/L+Rq41AHtLpg==", + "peer": true + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.2.tgz", + "integrity": "sha512-wr08C1Gh77qaN8JIkrn5Rz/bdt5M9bdEqFmEOcYhUSq2t2sHvLTBfb4XAtGB3D4hm0ubj50NXWWXoXyp5tPXDg==", + "peer": true + }, + "node_modules/@types/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-GGTvzKccVEhxmRfJEB6zhY9ieT4UhGVUIQaBzFpUO9OXy2ycAlnPCSJLzmGGgqt3KVjqN3QCQB4g1rsZnHsWhg==", + "peer": true + }, + "node_modules/@types/d3-transition": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.6.tgz", + "integrity": "sha512-K0To23B5UxNwFtKORnS5JoNYvw/DnknU5MzhHIS9czJ/lTqFFDeU6w9lArOdoTl0cZFNdNrMJSFCbRCEHccH2w==", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.6.tgz", + "integrity": "sha512-dGZQaXEu7aNcCL71LPpjB58IjoQNM9oDPfQuMUJ7N/fbkcIWGX2PnmUWO1jPJ+RLbZBpRUggJUX8twKRvo2hKQ==", + "peer": true, + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, "node_modules/@types/debug": { "version": "4.1.8", "license": "MIT", @@ -3135,6 +3663,12 @@ "@types/send": "*" } }, + "node_modules/@types/geojson": { + "version": "7946.0.12", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.12.tgz", + "integrity": "sha512-uK2z1ZHJyC0nQRbuovXFt4mzXDwf27vQeUWNhfKGwRcWW429GOhP8HxUHlM6TLH4bzmlv/HlEjpvJh3JfmGsAA==", + "peer": true + }, "node_modules/@types/hast": { "version": "2.3.5", "license": "MIT", @@ -3183,6 +3717,32 @@ "version": "7.0.12", "license": "MIT" }, + "node_modules/@types/leaflet": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.7.6.tgz", + "integrity": "sha512-Emkz3V08QnlelSbpT46OEAx+TBZYTOX2r1yM7W+hWg5+djHtQ1GbEXBDRLaqQDOYcDI51Ss0ayoqoKD4CtLUDA==", + "peer": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.3.tgz", + "integrity": "sha512-2W46IOXlu7vC8m3+M5rDqSnuY22GFxxx3xhkoyqyPWrD+eP2iAwNst0A1+umLYjCTJMJTSpiofphn9h9k+Kw+w==", + "peer": true + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.3.tgz", + "integrity": "sha512-d263B3KCQtXKVZMHpMJrEW5EeLBsQ8jvAS9nhpUKC5hHIlQaACG9PWkW8qxEeNuceo9120AwPjeS91uNa4ltqA==", + "peer": true, + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, "node_modules/@types/mdast": { "version": "3.0.12", "license": "MIT", @@ -3210,6 +3770,12 @@ "version": "5.0.3", "license": "MIT" }, + "node_modules/@types/pbf": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.4.tgz", + "integrity": "sha512-SOFlLGZkLbEXJRwcWCqeP/Koyaf/uAqLXHUsdo/nMfjLsNd8kqauwHe9GBOljSmpcHp/LC6kOjo3SidGjNirVA==", + "peer": true + }, "node_modules/@types/prop-types": { "version": "15.7.5", "license": "MIT" @@ -3303,6 +3869,79 @@ "@types/node": "*" } }, + "node_modules/@types/supercluster": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-5.0.3.tgz", + "integrity": "sha512-XMSqQEr7YDuNtFwSgaHHOjsbi0ZGL62V9Js4CW45RBuRYlNWSW/KDqN+RFFE7HdHcGhJPtN0klKvw06r9Kg7rg==", + "peer": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/three": { + "version": "0.135.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.135.0.tgz", + "integrity": "sha512-l7WLhIHjhHMtlpyTSltPPAKLpiMwgMD1hXHj59AVUpYRoZP7Fd9NNOSRSvZBCPLpTHPYojgQvSJCoza9zoL7bg==", + "peer": true + }, + "node_modules/@types/throttle-debounce": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-5.0.1.tgz", + "integrity": "sha512-/fifasjlhpz/r4YsH0r0ZXJvivXFB3F6bmezMnqgsn/NK/fYJn7vN84k7eYn/oALu/aenXo+t8Pv+QlkS6iYBg==", + "peer": true + }, + "node_modules/@types/topojson": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/topojson/-/topojson-3.2.5.tgz", + "integrity": "sha512-FgAk3e/n6MGEONzjLm5RtHXLed/oz2kOdTuh6iVcOG6gt58CaAG/4LPSCvctp8awcXjYx2mqBXaDIakegHbTzg==", + "peer": true, + "dependencies": { + "@types/geojson": "*", + "@types/topojson-client": "*", + "@types/topojson-server": "*", + "@types/topojson-simplify": "*", + "@types/topojson-specification": "*" + } + }, + "node_modules/@types/topojson-client": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/topojson-client/-/topojson-client-3.1.3.tgz", + "integrity": "sha512-liC+dHCxoqQy5bbJMsF59Cx1WZZwbcT084v/5bdp3NWSFUuzQpsm4gbLQh+wlv58Mng4jCsO4p8hWelqGlb7rg==", + "peer": true, + "dependencies": { + "@types/geojson": "*", + "@types/topojson-specification": "*" + } + }, + "node_modules/@types/topojson-server": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/topojson-server/-/topojson-server-3.0.3.tgz", + "integrity": "sha512-Xi903I5D0pu9il0xXRNxugj5MuIAUalZzciGS0FTLbiW4jLyd2jkoVN2g80RavHw39Z8YTFaSdRgp8f8WHbyxg==", + "peer": true, + "dependencies": { + "@types/geojson": "*", + "@types/topojson-specification": "*" + } + }, + "node_modules/@types/topojson-simplify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/topojson-simplify/-/topojson-simplify-3.0.2.tgz", + "integrity": "sha512-uI72+ox9QJgpKNnyaqOJETDqAGiohW/hcR9GaRPT+36VYQehRPUqc+WzKb86m7Yqt0ez9NpBRc5ImC1JtjdouA==", + "peer": true, + "dependencies": { + "@types/geojson": "*", + "@types/topojson-specification": "*" + } + }, + "node_modules/@types/topojson-specification": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/topojson-specification/-/topojson-specification-1.0.4.tgz", + "integrity": "sha512-LG/a8kJi4X6MsFhZKiBAIC/a+yCFtjkHsDMwuQqSoB1az8D2bR2xRKU3aczizfcqdt2lVqnS+aJBFMrO+rO5Aw==", + "peer": true, + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/unist": { "version": "2.0.7", "license": "MIT" @@ -3325,9 +3964,78 @@ "version": "21.0.0", "license": "MIT" }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "license": "MIT", + "node_modules/@unovis/dagre-layout": { + "version": "0.8.8-2", + "resolved": "https://registry.npmjs.org/@unovis/dagre-layout/-/dagre-layout-0.8.8-2.tgz", + "integrity": "sha512-ZfDvfcYtzzhZhgKZty8XDi+zQIotfRqfNVF5M3dFQ9d9C5MTaRdbeBnPUkNrmlLJGgQ42HMOE2ajZLfm2VlRhg==", + "peer": true, + "dependencies": { + "@unovis/graphlibrary": "^2.2.0-2", + "lodash-es": "^4.17.21" + } + }, + "node_modules/@unovis/graphlibrary": { + "version": "2.2.0-2", + "resolved": "https://registry.npmjs.org/@unovis/graphlibrary/-/graphlibrary-2.2.0-2.tgz", + "integrity": "sha512-HeEzpd/vDyWiIJt0rnh+2ICXUIuF2N0+Z9OJJiKg0DB+eFUcD+bk+9QPhYHwkFwfxdjDA9fHi1DZ/O/bbV58Nw==", + "peer": true, + "dependencies": { + "lodash-es": "^4.17.21" + } + }, + "node_modules/@unovis/react": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@unovis/react/-/react-1.2.2.tgz", + "integrity": "sha512-Pi+2zIJDWltvMMNniUwEwFXdDatU4P/xHT2Ggg4RLhEi/Jh+X/aaraAeDgxE0PUegpAl/CQI2X+vfxPQ0itlVg==", + "peer": true, + "peerDependencies": { + "@unovis/ts": "1.2.2", + "react": ">=16.8.0 || ^17 || ^18", + "react-dom": ">=16.8.0 || ^17 || ^18" + } + }, + "node_modules/@unovis/ts": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@unovis/ts/-/ts-1.2.2.tgz", + "integrity": "sha512-PT6do3D6V8mK3fEu7oMa+YjLwTKRKRkBGImBj+5Mg22M9fI17T2Ci6j4neR9aoGbaop30fTiAr1k4RmSS0g26A==", + "peer": true, + "dependencies": { + "@emotion/css": "^11.7.1", + "@juggle/resize-observer": "^3.3.1", + "@types/d3": "^7.4.0", + "@types/d3-collection": "^1.0.10", + "@types/d3-sankey": "^0.11.2", + "@types/geojson": "^7946.0.8", + "@types/leaflet": "1.7.6", + "@types/supercluster": "^5.0.2", + "@types/three": "^0.135.0", + "@types/throttle-debounce": "^5.0.0", + "@types/topojson": "^3.2.3", + "@types/topojson-client": "^3.0.0", + "@types/topojson-specification": "^1.0.2", + "@unovis/dagre-layout": "0.8.8-2", + "@unovis/graphlibrary": "2.2.0-2", + "d3": "^7.2.1", + "d3-collection": "^1.0.7", + "d3-geo-projection": "^4.0.0", + "d3-interpolate-path": "^2.2.3", + "d3-sankey": "^0.12.3", + "elkjs": "^0.8.2", + "geojson": "^0.5.0", + "leaflet": "1.7.1", + "maplibre-gl": "^2.1.9", + "striptags": "^3.2.0", + "supercluster": "^7.1.5", + "three": "^0.135.0", + "throttle-debounce": "^5.0.0", + "to-px": "^1.1.0", + "topojson-client": "^3.1.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -3797,6 +4505,21 @@ "version": "7.10.4", "license": "MIT" }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.4", "license": "MIT", @@ -4829,174 +5552,672 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", + "peer": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "5.3.10", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.14", + "postcss-discard-unused": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", + "postcss-zindex": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", + "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "peer": true, + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "peer": true, + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "peer": true, + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", + "peer": true + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "peer": true, + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "peer": true, + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "peer": true, + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "peer": true, + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "peer": true, + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo-projection": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", + "peer": true, + "dependencies": { + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" + }, + "bin": { + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo-projection/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "peer": true, + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate-path": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-interpolate-path/-/d3-interpolate-path-2.3.0.tgz", + "integrity": "sha512-tZYtGXxBmbgHsIc9Wms6LS5u4w6KbP8C09a4/ZYc4KLMYYqub57rRBUgpUr2CIarIrJEpdAWWxWQvofgaMpbKQ==", + "peer": true + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "peer": true, + "engines": { + "node": ">=12" } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/css-select": { - "version": "5.1.0", - "license": "BSD-2-Clause", + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "peer": true, "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" } }, - "node_modules/css-tree": { - "version": "1.1.3", - "license": "MIT", + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "peer": true, "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" + "internmap": "^1.0.0" } }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "peer": true + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "peer": true, + "dependencies": { + "d3-path": "1" } }, - "node_modules/css-what": { - "version": "6.1.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "peer": true + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "peer": true, + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "engines": { + "node": ">=12" } }, - "node_modules/cssesc": { + "node_modules/d3-scale-chromatic": { "version": "3.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", + "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "peer": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/cssnano": { - "version": "5.1.15", - "license": "MIT", + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "peer": true, "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "d3-path": "^3.1.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=12" } }, - "node_modules/cssnano-preset-advanced": { - "version": "5.3.10", - "license": "MIT", + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "peer": true, "dependencies": { - "autoprefixer": "^10.4.12", - "cssnano-preset-default": "^5.2.14", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" + "d3-array": "2 - 3" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=12" } }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "license": "MIT", + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "peer": true, "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" + "d3-time": "1 - 3" }, "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "node": ">=12" } }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "license": "MIT", + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "peer": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "peer": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" }, "peerDependencies": { - "postcss": "^8.2.15" + "d3-selection": "2 - 3" } }, - "node_modules/csso": { - "version": "4.2.0", - "license": "MIT", + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "peer": true, "dependencies": { - "css-tree": "^1.1.2" + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" }, "engines": { - "node": ">=8.0.0" + "node": ">=12" } }, - "node_modules/csstype": { - "version": "3.1.2", - "license": "MIT" - }, "node_modules/debug": { "version": "4.3.4", "license": "MIT", @@ -5110,6 +6331,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/delaunator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "peer": true, + "dependencies": { + "robust-predicates": "^3.0.0" + } + }, "node_modules/depd": { "version": "2.0.0", "license": "MIT", @@ -5306,6 +6536,12 @@ "version": "0.1.5", "license": "BSD-3-Clause" }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "peer": true + }, "node_modules/eastasianwidth": { "version": "0.2.0", "license": "MIT" @@ -5318,6 +6554,12 @@ "version": "1.4.464", "license": "ISC" }, + "node_modules/elkjs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", + "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==", + "peer": true + }, "node_modules/emoji-regex": { "version": "9.2.2", "license": "MIT" @@ -5805,6 +7047,12 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "peer": true + }, "node_modules/find-up": { "version": "5.0.0", "license": "MIT", @@ -6002,6 +7250,21 @@ "node": ">=6.9.0" } }, + "node_modules/geojson": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.5.0.tgz", + "integrity": "sha512-/Bx5lEn+qRF4TfQ5aLu6NH+UKtvIv7Lhc487y/c8BdludrCTpiWf9wyI0RTyqg49MFefIAvFDuEi5Dfd/zgNxQ==", + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==", + "peer": true + }, "node_modules/get-intrinsic": { "version": "1.2.1", "license": "MIT", @@ -6033,6 +7296,12 @@ "version": "1.5.0", "license": "ISC" }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", + "peer": true + }, "node_modules/glob": { "version": "7.2.3", "license": "ISC", @@ -6618,6 +7887,18 @@ "node": ">=10.17.0" } }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/icss-utils": { "version": "5.1.0", "license": "ISC", @@ -6628,6 +7909,26 @@ "postcss": "^8.1.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, "node_modules/ignore": { "version": "5.2.4", "license": "MIT", @@ -6722,6 +8023,15 @@ "version": "0.1.1", "license": "MIT" }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "peer": true, + "engines": { + "node": ">=12" + } + }, "node_modules/interpret": { "version": "1.4.0", "license": "MIT", @@ -7129,6 +8439,12 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==", + "peer": true + }, "node_modules/keyv": { "version": "3.1.0", "license": "MIT", @@ -7168,6 +8484,12 @@ "shell-quote": "^1.7.3" } }, + "node_modules/leaflet": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", + "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==", + "peer": true + }, "node_modules/leven": { "version": "3.1.0", "license": "MIT", @@ -7222,6 +8544,12 @@ "version": "4.17.21", "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "peer": true + }, "node_modules/lodash.curry": { "version": "4.1.1", "license": "MIT" @@ -7293,6 +8621,39 @@ "semver": "bin/semver.js" } }, + "node_modules/maplibre-gl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-2.4.0.tgz", + "integrity": "sha512-csNFylzntPmHWidczfgCZpvbTSmhaWvLRj9e1ezUDBEPizGgshgm3ea1T5TCNEEBq0roauu7BPuRZjA3wO4KqA==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^2.0.1", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.5", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.10", + "@types/mapbox__point-geometry": "^0.1.2", + "@types/mapbox__vector-tile": "^1.3.0", + "@types/pbf": "^3.0.2", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.4", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.2", + "quickselect": "^2.0.0", + "supercluster": "^7.1.5", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + } + }, "node_modules/markdown-escapes": { "version": "1.0.4", "license": "MIT", @@ -8004,6 +9365,12 @@ "multicast-dns": "cli.js" } }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "peer": true + }, "node_modules/nanoid": { "version": "3.3.6", "funding": [ @@ -8418,6 +9785,12 @@ "version": "1.3.0", "license": "ISC" }, + "node_modules/parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==", + "peer": true + }, "node_modules/parse5": { "version": "7.1.2", "license": "MIT", @@ -8497,6 +9870,19 @@ "node": ">=8" } }, + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "peer": true, + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, "node_modules/picocolors": { "version": "1.0.0", "license": "ISC" @@ -8627,7 +10013,9 @@ } }, "node_modules/postcss": { - "version": "8.4.26", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -8642,7 +10030,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -9168,6 +10555,12 @@ "postcss": "^8.2.15" } }, + "node_modules/potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", + "peer": true + }, "node_modules/prepend-http": { "version": "2.0.0", "license": "MIT", @@ -9246,6 +10639,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "peer": true + }, "node_modules/proxy-addr": { "version": "2.0.7", "license": "MIT", @@ -9325,6 +10724,12 @@ ], "license": "MIT" }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "peer": true + }, "node_modules/randombytes": { "version": "2.1.0", "license": "MIT", @@ -10413,6 +11818,15 @@ "version": "3.0.0", "license": "MIT" }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "peer": true, + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, "node_modules/responselike": { "version": "1.0.2", "license": "MIT", @@ -10448,6 +11862,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "peer": true + }, "node_modules/rtl-detect": { "version": "1.0.4", "license": "BSD-3-Clause" @@ -10486,6 +11906,12 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "peer": true + }, "node_modules/rxjs": { "version": "7.8.1", "license": "Apache-2.0", @@ -10553,6 +11979,12 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/search-insights": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.9.0.tgz", + "integrity": "sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==", + "peer": true + }, "node_modules/section-matter": { "version": "1.0.0", "license": "MIT", @@ -11126,6 +12558,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/striptags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz", + "integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==", + "peer": true + }, "node_modules/style-to-object": { "version": "0.3.0", "license": "MIT", @@ -11147,6 +12585,21 @@ "postcss": "^8.2.15" } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "peer": true + }, + "node_modules/supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "peer": true, + "dependencies": { + "kdbush": "^3.0.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "license": "MIT", @@ -11359,6 +12812,21 @@ "version": "0.2.0", "license": "MIT" }, + "node_modules/three": { + "version": "0.135.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.135.0.tgz", + "integrity": "sha512-kuEpuuxRzLv0MDsXai9huCxOSQPZ4vje6y0gn80SRmQvgz6/+rI0NAvCRAw56zYaWKMGMfqKWsxF9Qa2Z9xymQ==", + "peer": true + }, + "node_modules/throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "peer": true, + "engines": { + "node": ">=12.22" + } + }, "node_modules/thunky": { "version": "1.1.0", "license": "MIT" @@ -11371,6 +12839,12 @@ "version": "1.0.3", "license": "MIT" }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", + "peer": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "license": "MIT", @@ -11378,6 +12852,15 @@ "node": ">=4" } }, + "node_modules/to-px": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.1.0.tgz", + "integrity": "sha512-bfg3GLYrGoEzrGoE05TAL/Uw+H/qrf2ptr9V3W7U0lkjjyYnIfgxmVLUfhQ1hZpIQwin81uxhDjvUkDYsC0xWw==", + "peer": true, + "dependencies": { + "parse-unit": "^1.0.1" + } + }, "node_modules/to-readable-stream": { "version": "1.0.0", "license": "MIT", @@ -11402,6 +12885,26 @@ "node": ">=0.6" } }, + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "peer": true, + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + }, "node_modules/totalist": { "version": "1.1.0", "license": "MIT", @@ -11503,7 +13006,6 @@ "version": "4.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -12063,6 +13565,17 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "peer": true, + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, "node_modules/wait-on": { "version": "6.0.1", "license": "MIT", @@ -12701,7 +14214,8 @@ } }, "@algolia/autocomplete-shared": { - "version": "1.9.3" + "version": "1.9.3", + "requires": {} }, "@algolia/cache-browser-local-storage": { "version": "4.20.0", @@ -12801,9 +14315,63 @@ } }, "@babel/code-frame": { - "version": "7.22.5", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "requires": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/compat-data": { @@ -12835,9 +14403,11 @@ } }, "@babel/generator": { - "version": "7.22.9", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "requires": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -12913,13 +14483,17 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.22.5" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-function-name": { - "version": "7.22.5", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { @@ -12997,7 +14571,9 @@ "version": "7.22.5" }, "@babel/helper-validator-identifier": { - "version": "7.22.5" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { "version": "7.22.5" @@ -13019,21 +14595,27 @@ } }, "@babel/highlight": { - "version": "7.22.5", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" } }, "chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -13042,21 +14624,31 @@ }, "color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.3" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "escape-string-regexp": { - "version": "1.0.5" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "has-flag": { - "version": "3.0.0" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } @@ -13064,7 +14656,9 @@ } }, "@babel/parser": { - "version": "7.22.7" + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.22.5", @@ -13089,7 +14683,8 @@ } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2" + "version": "7.21.0-placeholder-for-preset-env.2", + "requires": {} }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", @@ -13757,33 +15352,39 @@ } }, "@babel/template": { - "version": "7.22.5", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.22.8", - "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.7", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/types": "^7.22.5", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.22.5", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "requires": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -14194,6 +15795,100 @@ "tslib": "^2.4.0" } }, + "@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "peer": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "peer": true, + "requires": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "@emotion/css": { + "version": "11.11.2", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.11.2.tgz", + "integrity": "sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==", + "peer": true, + "requires": { + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1" + } + }, + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", + "peer": true + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "peer": true + }, + "@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "peer": true, + "requires": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", + "peer": true + }, + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "peer": true + }, + "@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", + "peer": true + }, + "@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", + "peer": true + }, "@hapi/hoek": { "version": "9.3.0" }, @@ -14256,9 +15951,70 @@ } } }, + "@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "peer": true + }, "@leichtgewicht/ip-codec": { "version": "2.0.4" }, + "@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "peer": true, + "requires": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + } + }, + "@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "peer": true + }, + "@mapbox/mapbox-gl-supported": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz", + "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==", + "peer": true + }, + "@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "peer": true + }, + "@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", + "peer": true + }, + "@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "peer": true + }, + "@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "peer": true, + "requires": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "peer": true + }, "@mdx-js/mdx": { "version": "1.6.22", "requires": { @@ -14327,7 +16083,8 @@ } }, "@mdx-js/react": { - "version": "1.6.22" + "version": "1.6.22", + "requires": {} }, "@mdx-js/util": { "version": "1.6.22" @@ -14385,28 +16142,36 @@ "version": "1.8.0" }, "@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1" + "version": "6.5.1", + "requires": {} }, "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0" + "version": "8.0.0", + "requires": {} }, "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0" + "version": "8.0.0", + "requires": {} }, "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1" + "version": "6.5.1", + "requires": {} }, "@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1" + "version": "6.5.1", + "requires": {} }, "@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1" + "version": "6.5.1", + "requires": {} }, "@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1" + "version": "6.5.1", + "requires": {} }, "@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1" + "version": "6.5.1", + "requires": {} }, "@svgr/babel-preset": { "version": "6.5.1", @@ -14507,6 +16272,291 @@ "@types/node": "*" } }, + "@types/d3": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.2.tgz", + "integrity": "sha512-Y4g2Yb30ZJmmtqAJTqMRaqXwRawfvpdpVmyEYEcyGNhrQI/Zvkq3k7yE1tdN07aFSmNBfvmegMQ9Fe2qy9ZMhw==", + "peer": true, + "requires": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "@types/d3-array": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.9.tgz", + "integrity": "sha512-mZowFN3p64ajCJJ4riVYlOjNlBJv3hctgAY01pjw3qTnJePD8s9DZmYDzhHKvzfCYvdjwylkU38+Vdt7Cu2FDA==", + "peer": true + }, + "@types/d3-axis": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.5.tgz", + "integrity": "sha512-ufDAV3SQzju+uB3Jlty7SUb/jMigjpIlvDDcSGvGmmO6OT/sNO93UE0dRzwWOZeBLzrLSA0CQM4bf3iq1std3A==", + "peer": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-brush": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.5.tgz", + "integrity": "sha512-JROQXZNq1X6QdWstESDUv1VilwZ2hBCQnWB91yal+5yZvYwGQvYsGCjrkHGfKK/8/AcX1JnERmpQzdDDuLRUsA==", + "peer": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-chord": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.5.tgz", + "integrity": "sha512-rs26AIhJjtc+XLR4YQU8IjPTLOlDVO4PR1y+pVFYEHzKh2tE5tYz3MF4QV6iz7HboXQEaYpJQt8dH9uUkne8yA==", + "peer": true + }, + "@types/d3-collection": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.12.tgz", + "integrity": "sha512-wBKsp5U/IiZoa5t5q6AGmmZ/LQIr8ItbsYDH1xo8R4LA6hoqTR6HZ1+okES/f0UZbmSbG9zvkRiBLoY4Gw9bsA==", + "peer": true + }, + "@types/d3-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.2.tgz", + "integrity": "sha512-At+Ski7dL8Bs58E8g8vPcFJc8tGcaC12Z4m07+p41+DRqnZQcAlp3NfYjLrhNYv+zEyQitU1CUxXNjqUyf+c0g==", + "peer": true + }, + "@types/d3-contour": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.5.tgz", + "integrity": "sha512-wLvjwdOQVd1NL1IcW90CCt1VtpeZ3V20p/OTXlkT8uAiprrJnq2PNNnRNe1QCez4U9aMU29Z14zpJQVLW1+Lcg==", + "peer": true, + "requires": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "@types/d3-delaunay": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.3.tgz", + "integrity": "sha512-+Lf5NPKZ4JBC9tbudVkKceQXRxU3jJs0el9aKQvinMtdnFSOG84eVXyhCNgIFuXNQO3iIcYs7sgzN359FEOZnQ==", + "peer": true + }, + "@types/d3-dispatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.5.tgz", + "integrity": "sha512-hxvq2kc+9hydVppo21JCGfcM0tLTh1DXnG3MLN0KlxsNZJH4bsdl1iXDuWtXFpWWlBrCMwSqlnoLPDxNAZU3Bg==", + "peer": true + }, + "@types/d3-drag": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.5.tgz", + "integrity": "sha512-arHyAGvO0NEGGPCU2jTb31TlXeSxwty1bIxr5wOFOCVqVjgriXloLWXoRp39Oa0Y/qXxcAVMIonAWLrtLxUZAQ==", + "peer": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-dsv": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.5.tgz", + "integrity": "sha512-73WZR3QFOaSRVz9iOrebTbTnbo7xjcgS/i0Cq5zy0jMXPO3v/JbkTD3Zqii1eYE6v4EJ78g5VP407rm+p8fdlA==", + "peer": true + }, + "@types/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-VZofjpEt8HWv3nxUAosj5o/+4JflnJ7Bbv07k17VO3T2WRuzGdZeookfaF60iVh5RdhVG49LE5w6LIshVUC6rg==", + "peer": true + }, + "@types/d3-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.5.tgz", + "integrity": "sha512-Rc8pb6H0RRLpAV2hEXduykUgcDUOhjSLTLmCIeo6ejzgs4SaITh/EteMb3p5Env3Hqjsqw0fCksyqopHHzMkMg==", + "peer": true, + "requires": { + "@types/d3-dsv": "*" + } + }, + "@types/d3-force": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.7.tgz", + "integrity": "sha512-rsok4CEvPLyVWRPsFiBhanJc3up03H/EARVz4d8soPh8drv82YMuAckYy4yv8g4/81JwCng5U5/o9aj9d0T6bQ==", + "peer": true + }, + "@types/d3-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.3.tgz", + "integrity": "sha512-kxuLXSAEJykTeL/EI3tUiEfGqru7PRdqEy099YBnqFl+fF167UVSB4+wntlZv86ZdoYf0DHjsRHnTIm8kcH7qw==", + "peer": true + }, + "@types/d3-geo": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.6.tgz", + "integrity": "sha512-wblAES3b+C3hvp4VakwECEKtHquT/xc6K4HOna95LM1j1fd7s7WmU4V+JMQZfKhNCMkV2vWD+ZUgY2Uj6gqfuA==", + "peer": true, + "requires": { + "@types/geojson": "*" + } + }, + "@types/d3-hierarchy": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.5.tgz", + "integrity": "sha512-DEcBUj1IL3WyPLDlh4m2nsNXnMLITXM5Vwcu4G85yJHtf2cVGPBjgky3L11WBnT+ayHKf06Tchk5mY1eGmd4WQ==", + "peer": true + }, + "@types/d3-interpolate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.3.tgz", + "integrity": "sha512-6OZ2EIB4lLj+8cUY7I/Cgn9Q+hLdA4DjJHYOQDiHL0SzqS1K9DL5xIOVBSIHgF+tiuO9MU1D36qvdIvRDRPh+Q==", + "peer": true, + "requires": { + "@types/d3-color": "*" + } + }, + "@types/d3-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-blRhp7ki7pVznM8k6lk5iUU9paDbVRVq+/xpf0RRgSJn5gr6SE7RcFtxooYGMBOc1RZiGyqRpVdu5AD0z0ooMA==", + "peer": true + }, + "@types/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-nrcWPk7B9qs6xnpq60Cls44zm9eDmFAv65qi/N/emh/oftnG6uYz49aIS0mdFaGeJxVN8H3pHneMuZMV8EwFdw==", + "peer": true + }, + "@types/d3-quadtree": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.4.tgz", + "integrity": "sha512-B725MopFDIOQ6njFbeOxIEf42HVO2Xv+FmcxQISdOKErvLbFqWz3Riu+OWujUYoogreqqyHBHcGGL/JzzXQYsw==", + "peer": true + }, + "@types/d3-random": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.2.tgz", + "integrity": "sha512-8QhsqkKs6mymAZMrg3ZFXPxKA34rdgp3ZrtB8o6mhFsKAd1gOvR1gocWnca+kmXypQdwgnzKm9gZE2Uw8NjjKw==", + "peer": true + }, + "@types/d3-sankey": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@types/d3-sankey/-/d3-sankey-0.11.2.tgz", + "integrity": "sha512-U6SrTWUERSlOhnpSrgvMX64WblX1AxX6nEjI2t3mLK2USpQrnbwYYK+AS9SwiE7wgYmOsSSKoSdr8aoKBH0HgQ==", + "peer": true, + "requires": { + "@types/d3-shape": "^1" + }, + "dependencies": { + "@types/d3-path": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.10.tgz", + "integrity": "sha512-19YfheAnvYgDezl00WQTGHPqYAT6DDzmzSLoT9MUl+d/EQmHC3WEoiY/bZ4OpBVMHieVg9C/Jj/yn329RiGqrg==", + "peer": true + }, + "@types/d3-shape": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.10.tgz", + "integrity": "sha512-Nu+/Hyo/owxYH61aBSV9qOM9szEw81BIebdaRgm8VBedyRIW/V2H9AJVp+gwrS+1BMiW7HkoDF9eUtmLOHzTgQ==", + "peer": true, + "requires": { + "@types/d3-path": "^1" + } + } + } + }, + "@types/d3-scale": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.6.tgz", + "integrity": "sha512-lo3oMLSiqsQUovv8j15X4BNEDOsnHuGjeVg7GRbAuB2PUa1prK5BNSOu6xixgNf3nqxPl4I1BqJWrPvFGlQoGQ==", + "peer": true, + "requires": { + "@types/d3-time": "*" + } + }, + "@types/d3-scale-chromatic": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.1.tgz", + "integrity": "sha512-Ob7OrwiTeQXY/WBBbRHGZBOn6rH1h7y3jjpTSKYqDEeqFjktql6k2XSgNwLrLDmAsXhEn8P9NHDY4VTuo0ZY1w==", + "peer": true + }, + "@types/d3-selection": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.8.tgz", + "integrity": "sha512-pxCZUfQyedq/DIlPXIR5wE1mIH37omOdx1yxRudL3KZ4AC+156jMjOv1z5RVlGq62f8WX2kyO0hTVgEx627QFg==", + "peer": true + }, + "@types/d3-shape": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.4.tgz", + "integrity": "sha512-M2/xsWPsjaZc5ifMKp1EBp0gqJG0eO/zlldJNOC85Y/5DGsBQ49gDkRJ2h5GY7ZVD6KUumvZWsylSbvTaJTqKg==", + "peer": true, + "requires": { + "@types/d3-path": "*" + } + }, + "@types/d3-time": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.2.tgz", + "integrity": "sha512-kbdRXTmUgNfw5OTE3KZnFQn6XdIc4QGroN5UixgdrXATmYsdlPQS6pEut9tVlIojtzuFD4txs/L+Rq41AHtLpg==", + "peer": true + }, + "@types/d3-time-format": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.2.tgz", + "integrity": "sha512-wr08C1Gh77qaN8JIkrn5Rz/bdt5M9bdEqFmEOcYhUSq2t2sHvLTBfb4XAtGB3D4hm0ubj50NXWWXoXyp5tPXDg==", + "peer": true + }, + "@types/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-GGTvzKccVEhxmRfJEB6zhY9ieT4UhGVUIQaBzFpUO9OXy2ycAlnPCSJLzmGGgqt3KVjqN3QCQB4g1rsZnHsWhg==", + "peer": true + }, + "@types/d3-transition": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.6.tgz", + "integrity": "sha512-K0To23B5UxNwFtKORnS5JoNYvw/DnknU5MzhHIS9czJ/lTqFFDeU6w9lArOdoTl0cZFNdNrMJSFCbRCEHccH2w==", + "peer": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-zoom": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.6.tgz", + "integrity": "sha512-dGZQaXEu7aNcCL71LPpjB58IjoQNM9oDPfQuMUJ7N/fbkcIWGX2PnmUWO1jPJ+RLbZBpRUggJUX8twKRvo2hKQ==", + "peer": true, + "requires": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, "@types/debug": { "version": "4.1.8", "requires": { @@ -14548,6 +16598,12 @@ "@types/send": "*" } }, + "@types/geojson": { + "version": "7946.0.12", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.12.tgz", + "integrity": "sha512-uK2z1ZHJyC0nQRbuovXFt4mzXDwf27vQeUWNhfKGwRcWW429GOhP8HxUHlM6TLH4bzmlv/HlEjpvJh3JfmGsAA==", + "peer": true + }, "@types/hast": { "version": "2.3.5", "requires": { @@ -14587,6 +16643,32 @@ "@types/json-schema": { "version": "7.0.12" }, + "@types/leaflet": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.7.6.tgz", + "integrity": "sha512-Emkz3V08QnlelSbpT46OEAx+TBZYTOX2r1yM7W+hWg5+djHtQ1GbEXBDRLaqQDOYcDI51Ss0ayoqoKD4CtLUDA==", + "peer": true, + "requires": { + "@types/geojson": "*" + } + }, + "@types/mapbox__point-geometry": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.3.tgz", + "integrity": "sha512-2W46IOXlu7vC8m3+M5rDqSnuY22GFxxx3xhkoyqyPWrD+eP2iAwNst0A1+umLYjCTJMJTSpiofphn9h9k+Kw+w==", + "peer": true + }, + "@types/mapbox__vector-tile": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.3.tgz", + "integrity": "sha512-d263B3KCQtXKVZMHpMJrEW5EeLBsQ8jvAS9nhpUKC5hHIlQaACG9PWkW8qxEeNuceo9120AwPjeS91uNa4ltqA==", + "peer": true, + "requires": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, "@types/mdast": { "version": "3.0.12", "requires": { @@ -14608,6 +16690,12 @@ "@types/parse5": { "version": "5.0.3" }, + "@types/pbf": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.4.tgz", + "integrity": "sha512-SOFlLGZkLbEXJRwcWCqeP/Koyaf/uAqLXHUsdo/nMfjLsNd8kqauwHe9GBOljSmpcHp/LC6kOjo3SidGjNirVA==", + "peer": true + }, "@types/prop-types": { "version": "15.7.5" }, @@ -14681,10 +16769,83 @@ "@types/node": "*" } }, - "@types/sockjs": { - "version": "0.3.33", + "@types/sockjs": { + "version": "0.3.33", + "requires": { + "@types/node": "*" + } + }, + "@types/supercluster": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-5.0.3.tgz", + "integrity": "sha512-XMSqQEr7YDuNtFwSgaHHOjsbi0ZGL62V9Js4CW45RBuRYlNWSW/KDqN+RFFE7HdHcGhJPtN0klKvw06r9Kg7rg==", + "peer": true, + "requires": { + "@types/geojson": "*" + } + }, + "@types/three": { + "version": "0.135.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.135.0.tgz", + "integrity": "sha512-l7WLhIHjhHMtlpyTSltPPAKLpiMwgMD1hXHj59AVUpYRoZP7Fd9NNOSRSvZBCPLpTHPYojgQvSJCoza9zoL7bg==", + "peer": true + }, + "@types/throttle-debounce": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-5.0.1.tgz", + "integrity": "sha512-/fifasjlhpz/r4YsH0r0ZXJvivXFB3F6bmezMnqgsn/NK/fYJn7vN84k7eYn/oALu/aenXo+t8Pv+QlkS6iYBg==", + "peer": true + }, + "@types/topojson": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/topojson/-/topojson-3.2.5.tgz", + "integrity": "sha512-FgAk3e/n6MGEONzjLm5RtHXLed/oz2kOdTuh6iVcOG6gt58CaAG/4LPSCvctp8awcXjYx2mqBXaDIakegHbTzg==", + "peer": true, + "requires": { + "@types/geojson": "*", + "@types/topojson-client": "*", + "@types/topojson-server": "*", + "@types/topojson-simplify": "*", + "@types/topojson-specification": "*" + } + }, + "@types/topojson-client": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/topojson-client/-/topojson-client-3.1.3.tgz", + "integrity": "sha512-liC+dHCxoqQy5bbJMsF59Cx1WZZwbcT084v/5bdp3NWSFUuzQpsm4gbLQh+wlv58Mng4jCsO4p8hWelqGlb7rg==", + "peer": true, + "requires": { + "@types/geojson": "*", + "@types/topojson-specification": "*" + } + }, + "@types/topojson-server": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/topojson-server/-/topojson-server-3.0.3.tgz", + "integrity": "sha512-Xi903I5D0pu9il0xXRNxugj5MuIAUalZzciGS0FTLbiW4jLyd2jkoVN2g80RavHw39Z8YTFaSdRgp8f8WHbyxg==", + "peer": true, + "requires": { + "@types/geojson": "*", + "@types/topojson-specification": "*" + } + }, + "@types/topojson-simplify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/topojson-simplify/-/topojson-simplify-3.0.2.tgz", + "integrity": "sha512-uI72+ox9QJgpKNnyaqOJETDqAGiohW/hcR9GaRPT+36VYQehRPUqc+WzKb86m7Yqt0ez9NpBRc5ImC1JtjdouA==", + "peer": true, + "requires": { + "@types/geojson": "*", + "@types/topojson-specification": "*" + } + }, + "@types/topojson-specification": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/topojson-specification/-/topojson-specification-1.0.4.tgz", + "integrity": "sha512-LG/a8kJi4X6MsFhZKiBAIC/a+yCFtjkHsDMwuQqSoB1az8D2bR2xRKU3aczizfcqdt2lVqnS+aJBFMrO+rO5Aw==", + "peer": true, "requires": { - "@types/node": "*" + "@types/geojson": "*" } }, "@types/unist": { @@ -14705,6 +16866,71 @@ "@types/yargs-parser": { "version": "21.0.0" }, + "@unovis/dagre-layout": { + "version": "0.8.8-2", + "resolved": "https://registry.npmjs.org/@unovis/dagre-layout/-/dagre-layout-0.8.8-2.tgz", + "integrity": "sha512-ZfDvfcYtzzhZhgKZty8XDi+zQIotfRqfNVF5M3dFQ9d9C5MTaRdbeBnPUkNrmlLJGgQ42HMOE2ajZLfm2VlRhg==", + "peer": true, + "requires": { + "@unovis/graphlibrary": "^2.2.0-2", + "lodash-es": "^4.17.21" + } + }, + "@unovis/graphlibrary": { + "version": "2.2.0-2", + "resolved": "https://registry.npmjs.org/@unovis/graphlibrary/-/graphlibrary-2.2.0-2.tgz", + "integrity": "sha512-HeEzpd/vDyWiIJt0rnh+2ICXUIuF2N0+Z9OJJiKg0DB+eFUcD+bk+9QPhYHwkFwfxdjDA9fHi1DZ/O/bbV58Nw==", + "peer": true, + "requires": { + "lodash-es": "^4.17.21" + } + }, + "@unovis/react": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@unovis/react/-/react-1.2.2.tgz", + "integrity": "sha512-Pi+2zIJDWltvMMNniUwEwFXdDatU4P/xHT2Ggg4RLhEi/Jh+X/aaraAeDgxE0PUegpAl/CQI2X+vfxPQ0itlVg==", + "peer": true, + "requires": {} + }, + "@unovis/ts": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@unovis/ts/-/ts-1.2.2.tgz", + "integrity": "sha512-PT6do3D6V8mK3fEu7oMa+YjLwTKRKRkBGImBj+5Mg22M9fI17T2Ci6j4neR9aoGbaop30fTiAr1k4RmSS0g26A==", + "peer": true, + "requires": { + "@emotion/css": "^11.7.1", + "@juggle/resize-observer": "^3.3.1", + "@types/d3": "^7.4.0", + "@types/d3-collection": "^1.0.10", + "@types/d3-sankey": "^0.11.2", + "@types/geojson": "^7946.0.8", + "@types/leaflet": "1.7.6", + "@types/supercluster": "^5.0.2", + "@types/three": "^0.135.0", + "@types/throttle-debounce": "^5.0.0", + "@types/topojson": "^3.2.3", + "@types/topojson-client": "^3.0.0", + "@types/topojson-specification": "^1.0.2", + "@unovis/dagre-layout": "0.8.8-2", + "@unovis/graphlibrary": "2.2.0-2", + "d3": "^7.2.1", + "d3-collection": "^1.0.7", + "d3-geo-projection": "^4.0.0", + "d3-interpolate-path": "^2.2.3", + "d3-sankey": "^0.12.3", + "elkjs": "^0.8.2", + "geojson": "^0.5.0", + "leaflet": "1.7.1", + "maplibre-gl": "^2.1.9", + "striptags": "^3.2.0", + "supercluster": "^7.1.5", + "three": "^0.135.0", + "throttle-debounce": "^5.0.0", + "to-px": "^1.1.0", + "topojson-client": "^3.1.0", + "tslib": "^2.3.1" + } + }, "@webassemblyjs/ast": { "version": "1.11.6", "requires": { @@ -14837,7 +17063,8 @@ "version": "8.10.0" }, "acorn-import-assertions": { - "version": "1.9.0" + "version": "1.9.0", + "requires": {} }, "acorn-walk": { "version": "8.2.0" @@ -14882,7 +17109,8 @@ } }, "ajv-keywords": { - "version": "3.5.2" + "version": "3.5.2", + "requires": {} }, "algoliasearch": { "version": "4.20.0", @@ -15020,6 +17248,17 @@ } } }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "peer": true, + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, "babel-plugin-polyfill-corejs2": { "version": "0.4.4", "requires": { @@ -15549,7 +17788,8 @@ "version": "2.0.0" }, "css-declaration-sorter": { - "version": "6.4.1" + "version": "6.4.1", + "requires": {} }, "css-loader": { "version": "6.8.1", @@ -15632,6 +17872,12 @@ "css-what": { "version": "6.1.0" }, + "csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", + "peer": true + }, "cssesc": { "version": "3.0.0" }, @@ -15689,7 +17935,8 @@ } }, "cssnano-utils": { - "version": "3.1.0" + "version": "3.1.0", + "requires": {} }, "csso": { "version": "4.2.0", @@ -15700,6 +17947,381 @@ "csstype": { "version": "3.1.2" }, + "d3": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", + "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "peer": true, + "requires": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + } + }, + "d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "peer": true, + "requires": { + "internmap": "1 - 2" + } + }, + "d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "peer": true + }, + "d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "peer": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + } + }, + "d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "peer": true, + "requires": { + "d3-path": "1 - 3" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", + "peer": true + }, + "d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "peer": true + }, + "d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "peer": true, + "requires": { + "d3-array": "^3.2.0" + } + }, + "d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "peer": true, + "requires": { + "delaunator": "5" + } + }, + "d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "peer": true + }, + "d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "peer": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + } + }, + "d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "peer": true, + "requires": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "peer": true + } + } + }, + "d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "peer": true + }, + "d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "peer": true, + "requires": { + "d3-dsv": "1 - 3" + } + }, + "d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "peer": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "peer": true + }, + "d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "peer": true, + "requires": { + "d3-array": "2.5.0 - 3" + } + }, + "d3-geo-projection": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", + "peer": true, + "requires": { + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "peer": true + } + } + }, + "d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "peer": true + }, + "d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "peer": true, + "requires": { + "d3-color": "1 - 3" + } + }, + "d3-interpolate-path": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-interpolate-path/-/d3-interpolate-path-2.3.0.tgz", + "integrity": "sha512-tZYtGXxBmbgHsIc9Wms6LS5u4w6KbP8C09a4/ZYc4KLMYYqub57rRBUgpUr2CIarIrJEpdAWWxWQvofgaMpbKQ==", + "peer": true + }, + "d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "peer": true + }, + "d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "peer": true + }, + "d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "peer": true + }, + "d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "peer": true + }, + "d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "peer": true, + "requires": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + }, + "dependencies": { + "d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "peer": true, + "requires": { + "internmap": "^1.0.0" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "peer": true + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "peer": true, + "requires": { + "d3-path": "1" + } + }, + "internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "peer": true + } + } + }, + "d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "peer": true, + "requires": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + } + }, + "d3-scale-chromatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", + "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "peer": true, + "requires": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + } + }, + "d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "peer": true + }, + "d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "peer": true, + "requires": { + "d3-path": "^3.1.0" + } + }, + "d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "peer": true, + "requires": { + "d3-array": "2 - 3" + } + }, + "d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "peer": true, + "requires": { + "d3-time": "1 - 3" + } + }, + "d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "peer": true + }, + "d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "peer": true, + "requires": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "peer": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + } + }, "debug": { "version": "4.3.4", "requires": { @@ -15761,6 +18383,15 @@ "slash": "^3.0.0" } }, + "delaunator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "peer": true, + "requires": { + "robust-predicates": "^3.0.0" + } + }, "depd": { "version": "2.0.0" }, @@ -15880,6 +18511,12 @@ "duplexer3": { "version": "0.1.5" }, + "earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "peer": true + }, "eastasianwidth": { "version": "0.2.0" }, @@ -15889,6 +18526,12 @@ "electron-to-chromium": { "version": "1.4.464" }, + "elkjs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", + "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==", + "peer": true + }, "emoji-regex": { "version": "9.2.2" }, @@ -16204,6 +18847,12 @@ "pkg-dir": "^4.1.0" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "peer": true + }, "find-up": { "version": "5.0.0", "requires": { @@ -16304,6 +18953,18 @@ "gensync": { "version": "1.0.0-beta.2" }, + "geojson": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.5.0.tgz", + "integrity": "sha512-/Bx5lEn+qRF4TfQ5aLu6NH+UKtvIv7Lhc487y/c8BdludrCTpiWf9wyI0RTyqg49MFefIAvFDuEi5Dfd/zgNxQ==", + "peer": true + }, + "geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==", + "peer": true + }, "get-intrinsic": { "version": "1.2.1", "requires": { @@ -16322,6 +18983,12 @@ "github-slugger": { "version": "1.5.0" }, + "gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", + "peer": true + }, "glob": { "version": "7.2.3", "requires": { @@ -16687,8 +19354,24 @@ "human-signals": { "version": "2.1.0" }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "peer": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "icss-utils": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "peer": true }, "ignore": { "version": "5.2.4" @@ -16740,6 +19423,12 @@ "inline-style-parser": { "version": "0.1.1" }, + "internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "peer": true + }, "interpret": { "version": "1.4.0" }, @@ -16948,6 +19637,12 @@ "universalify": "^2.0.0" } }, + "kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==", + "peer": true + }, "keyv": { "version": "3.1.0", "requires": { @@ -16973,6 +19668,12 @@ "shell-quote": "^1.7.3" } }, + "leaflet": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", + "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==", + "peer": true + }, "leven": { "version": "3.1.0" }, @@ -17002,6 +19703,12 @@ "lodash": { "version": "4.17.21" }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "peer": true + }, "lodash.curry": { "version": "4.1.1" }, @@ -17049,6 +19756,38 @@ } } }, + "maplibre-gl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-2.4.0.tgz", + "integrity": "sha512-csNFylzntPmHWidczfgCZpvbTSmhaWvLRj9e1ezUDBEPizGgshgm3ea1T5TCNEEBq0roauu7BPuRZjA3wO4KqA==", + "peer": true, + "requires": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^2.0.1", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.5", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.10", + "@types/mapbox__point-geometry": "^0.1.2", + "@types/mapbox__vector-tile": "^1.3.0", + "@types/pbf": "^3.0.2", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.4", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.2", + "quickselect": "^2.0.0", + "supercluster": "^7.1.5", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + } + }, "markdown-escapes": { "version": "1.0.4" }, @@ -17395,6 +20134,12 @@ "thunky": "^1.0.2" } }, + "murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "peer": true + }, "nanoid": { "version": "3.3.6" }, @@ -17622,6 +20367,12 @@ "parse-numeric-range": { "version": "1.3.0" }, + "parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==", + "peer": true + }, "parse5": { "version": "7.1.2", "requires": { @@ -17669,6 +20420,16 @@ "path-type": { "version": "4.0.0" }, + "pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "peer": true, + "requires": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + } + }, "picocolors": { "version": "1.0.0" }, @@ -17745,7 +20506,9 @@ } }, "postcss": { - "version": "8.4.26", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "requires": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -17776,16 +20539,20 @@ } }, "postcss-discard-comments": { - "version": "5.1.2" + "version": "5.1.2", + "requires": {} }, "postcss-discard-duplicates": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "postcss-discard-empty": { - "version": "5.1.1" + "version": "5.1.1", + "requires": {} }, "postcss-discard-overridden": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "postcss-discard-unused": { "version": "5.1.0", @@ -17864,7 +20631,8 @@ } }, "postcss-modules-extract-imports": { - "version": "3.0.0" + "version": "3.0.0", + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.3", @@ -17887,7 +20655,8 @@ } }, "postcss-normalize-charset": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} }, "postcss-normalize-display-values": { "version": "5.1.0", @@ -17995,7 +20764,14 @@ "version": "4.2.0" }, "postcss-zindex": { - "version": "5.1.0" + "version": "5.1.0", + "requires": {} + }, + "potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", + "peer": true }, "prepend-http": { "version": "2.0.0" @@ -18011,7 +20787,8 @@ "version": "1.1.0" }, "prism-react-renderer": { - "version": "1.3.5" + "version": "1.3.5", + "requires": {} }, "prismjs": { "version": "1.29.0" @@ -18046,6 +20823,12 @@ "xtend": "^4.0.0" } }, + "protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "peer": true + }, "proxy-addr": { "version": "2.0.7", "requires": { @@ -18090,6 +20873,12 @@ "queue-microtask": { "version": "1.2.3" }, + "quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "peer": true + }, "randombytes": { "version": "2.1.0", "requires": { @@ -18205,7 +20994,8 @@ } }, "react-docgen-typescript": { - "version": "1.22.0" + "version": "1.22.0", + "requires": {} }, "react-dom": { "version": "17.0.2", @@ -18781,6 +21571,15 @@ "resolve-pathname": { "version": "3.0.0" }, + "resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "peer": true, + "requires": { + "protocol-buffers-schema": "^3.3.1" + } + }, "responselike": { "version": "1.0.2", "requires": { @@ -18799,6 +21598,12 @@ "glob": "^7.1.3" } }, + "robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "peer": true + }, "rtl-detect": { "version": "1.0.4" }, @@ -18817,6 +21622,12 @@ "queue-microtask": "^1.2.2" } }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "peer": true + }, "rxjs": { "version": "7.8.1", "requires": { @@ -18853,6 +21664,12 @@ "ajv-keywords": "^3.5.2" } }, + "search-insights": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.9.0.tgz", + "integrity": "sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==", + "peer": true + }, "section-matter": { "version": "1.0.0", "requires": { @@ -19224,6 +22041,12 @@ "strip-json-comments": { "version": "3.1.1" }, + "striptags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz", + "integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==", + "peer": true + }, "style-to-object": { "version": "0.3.0", "requires": { @@ -19237,6 +22060,21 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "peer": true + }, + "supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "peer": true, + "requires": { + "kdbush": "^3.0.0" + } + }, "supports-color": { "version": "7.2.0", "requires": { @@ -19355,6 +22193,18 @@ "text-table": { "version": "0.2.0" }, + "three": { + "version": "0.135.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.135.0.tgz", + "integrity": "sha512-kuEpuuxRzLv0MDsXai9huCxOSQPZ4vje6y0gn80SRmQvgz6/+rI0NAvCRAw56zYaWKMGMfqKWsxF9Qa2Z9xymQ==", + "peer": true + }, + "throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "peer": true + }, "thunky": { "version": "1.1.0" }, @@ -19364,9 +22214,24 @@ "tiny-warning": { "version": "1.0.3" }, + "tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", + "peer": true + }, "to-fast-properties": { "version": "2.0.0" }, + "to-px": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.1.0.tgz", + "integrity": "sha512-bfg3GLYrGoEzrGoE05TAL/Uw+H/qrf2ptr9V3W7U0lkjjyYnIfgxmVLUfhQ1hZpIQwin81uxhDjvUkDYsC0xWw==", + "peer": true, + "requires": { + "parse-unit": "^1.0.1" + } + }, "to-readable-stream": { "version": "1.0.0" }, @@ -19379,6 +22244,23 @@ "toidentifier": { "version": "1.0.1" }, + "topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "peer": true, + "requires": { + "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + } + } + }, "totalist": { "version": "1.1.0" }, @@ -19436,8 +22318,7 @@ "typescript": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==" }, "ua-parser-js": { "version": "1.0.35" @@ -19653,10 +22534,12 @@ } }, "use-composed-ref": { - "version": "1.3.0" + "version": "1.3.0", + "requires": {} }, "use-isomorphic-layout-effect": { - "version": "1.1.2" + "version": "1.1.2", + "requires": {} }, "use-latest": { "version": "1.2.1", @@ -19665,7 +22548,8 @@ } }, "use-sync-external-store": { - "version": "1.2.0" + "version": "1.2.0", + "requires": {} }, "util-deprecate": { "version": "1.0.2" @@ -19721,6 +22605,17 @@ "unist-util-stringify-position": "^2.0.0" } }, + "vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "peer": true, + "requires": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, "wait-on": { "version": "6.0.1", "requires": { @@ -19827,7 +22722,8 @@ "version": "7.2.0" }, "ws": { - "version": "7.5.9" + "version": "7.5.9", + "requires": {} } } }, @@ -20039,7 +22935,8 @@ } }, "ws": { - "version": "8.13.0" + "version": "8.13.0", + "requires": {} }, "xdg-basedir": { "version": "4.0.0" diff --git a/packages/website/package.json b/packages/website/package.json index a98a5705b..20fc0996e 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -58,7 +58,6 @@ "typescript": "~4.2.4" }, "peerDependencies": { - "@unovis/angular": "*", "@unovis/react": "*", "@unovis/ts": "*" },