From c6c683721e04da49a3d683afeb709911e711959c Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Sun, 20 Sep 2020 13:48:53 -0400 Subject: [PATCH] finish d3tooltip --- packages/d3tooltip/src/index.ts | 110 +++++---- packages/d3tooltip/src/utils/functor.ts | 19 +- packages/d3tooltip/src/utils/prependClass.ts | 36 +-- packages/d3tooltip/webpack.config.umd.ts | 7 +- packages/map2tree/package.json | 2 +- packages/map2tree/webpack.config.umd.ts | 2 +- yarn.lock | 229 +------------------ 7 files changed, 121 insertions(+), 284 deletions(-) diff --git a/packages/d3tooltip/src/index.ts b/packages/d3tooltip/src/index.ts index 286b6428..13cac544 100644 --- a/packages/d3tooltip/src/index.ts +++ b/packages/d3tooltip/src/index.ts @@ -1,4 +1,4 @@ -import d3Package from 'd3'; +import d3Package, { Primitive, Selection } from 'd3'; import { is } from 'ramda'; import utils from './utils'; const { prependClass, functor } = utils; @@ -10,7 +10,7 @@ const defaultOptions = { root: undefined, }; -export default function tooltip( +export default function tooltip( d3: typeof d3Package, className = 'tooltip', options = {} @@ -18,63 +18,95 @@ export default function tooltip( const { left, top, offset, root } = { ...defaultOptions, ...options }; let attrs = { class: className }; - let text = () => ''; + let text: (datum: Datum, index?: number, outerIndex?: number) => string = ( + node: Datum + ) => ''; let styles = {}; - let el; + let el: Selection; const anchor = root || d3.select('body'); const rootNode = anchor.node(); - function tip(selection) { - selection.on({ - 'mouseover.tip': (node) => { - let [mouseX, mouseY] = d3.mouse(rootNode); - let [x, y] = [left || mouseX + offset.left, top || mouseY - offset.top]; + function tip(selection: Selection) { + selection.on('mouseover.tip', (node) => { + const [mouseX, mouseY] = d3.mouse(rootNode); + const [x, y] = [left || mouseX + offset.left, top || mouseY - offset.top]; - anchor.selectAll(`div.${className}`).remove(); + anchor.selectAll(`div.${className}`).remove(); - el = anchor - .append('div') - .attr(prependClass(className)(attrs)) - .style({ - position: 'absolute', - 'z-index': 1001, - left: x + 'px', - top: y + 'px', - ...styles, - }) - .html(() => text(node)); - }, - - 'mousemove.tip': (node) => { - let [mouseX, mouseY] = d3.mouse(rootNode); - let [x, y] = [left || mouseX + offset.left, top || mouseY - offset.top]; - - el.style({ - left: x + 'px', - top: y + 'px', - }).html(() => text(node)); - }, - - 'mouseout.tip': () => el.remove(), + el = anchor + .append('div') + .attr(prependClass(className)(attrs)) + .style({ + position: 'absolute', + 'z-index': 1001, + left: `${x}px`, + top: `${y}px`, + ...styles, + }) + .html(() => text(node)); }); + + selection.on('mousemove.tip', (node) => { + const [mouseX, mouseY] = d3.mouse(rootNode); + const [x, y] = [left || mouseX + offset.left, top || mouseY - offset.top]; + + el.style({ + left: `${x}px`, + top: `${y}px`, + }).html(() => text(node)); + }); + + selection.on('mouseout.tip', () => el.remove()); } - tip.attr = function setAttr(d) { + tip.attr = function setAttr( + d: + | string + | { + [key: string]: + | Primitive + | ((datum: Datum, index: number, outerIndex: number) => Primitive); + } + ) { if (is(Object, d)) { - attrs = { ...attrs, ...d }; + attrs = { + ...attrs, + ...(d as { + [key: string]: + | Primitive + | ((datum: Datum, index: number, outerIndex: number) => Primitive); + }), + }; } return this; }; - tip.style = function setStyle(d) { + tip.style = function setStyle( + d: + | string + | { + [key: string]: + | Primitive + | ((datum: Datum, index: number, outerIndex: number) => Primitive); + } + ) { if (is(Object, d)) { - styles = { ...styles, ...d }; + styles = { + ...styles, + ...(d as { + [key: string]: + | Primitive + | ((datum: Datum, index: number, outerIndex: number) => Primitive); + }), + }; } return this; }; - tip.text = function setText(d) { + tip.text = function setText( + d: string | ((datum: Datum, index?: number, outerIndex?: number) => string) + ) { text = functor(d); return this; }; diff --git a/packages/d3tooltip/src/utils/functor.ts b/packages/d3tooltip/src/utils/functor.ts index 007885d3..b0ba2146 100644 --- a/packages/d3tooltip/src/utils/functor.ts +++ b/packages/d3tooltip/src/utils/functor.ts @@ -1,5 +1,20 @@ import { is } from 'ramda'; +import { Primitive } from 'd3'; -export default function functor(v) { - return is(Function, v) ? v : () => v; +export default function functor( + v: string | ((datum: Datum, index?: number, outerIndex?: number) => string) +): (datum: Datum, index?: number, outerIndex?: number) => string; +export default function functor( + v: + | Primitive + | ((datum: Datum, index: number, outerIndex?: number) => Primitive) +): (datum: Datum, index?: number, outerIndex?: number) => Primitive; +export default function functor( + v: + | Primitive + | ((datum: Datum, index: number, outerIndex?: number) => Primitive) +): (datum: Datum, index: number, outerIndex?: number) => Primitive { + return is(Function, v) + ? (v as (datum: Datum, index: number, outerIndex?: number) => Primitive) + : () => v as Primitive; } diff --git a/packages/d3tooltip/src/utils/prependClass.ts b/packages/d3tooltip/src/utils/prependClass.ts index 2194f865..cc9bf058 100644 --- a/packages/d3tooltip/src/utils/prependClass.ts +++ b/packages/d3tooltip/src/utils/prependClass.ts @@ -1,20 +1,28 @@ import { mapObjIndexed, join } from 'ramda'; import functor from './functor'; +import { Primitive } from 'd3'; -export default function prependClass(className) { - return mapObjIndexed((value, key) => { - if (key === 'class') { - const fn = functor(value); +export default function prependClass(className: string) { + return mapObjIndexed( + ( + value: + | Primitive + | ((datum: Datum, index: number, outerIndex?: number) => Primitive), + key + ) => { + if (key === 'class') { + const fn = functor(value); - return (d, i) => { - const classNames = fn(d, i); - if (classNames !== className) { - return join(' ', [className, classNames]); - } - return classNames; - }; + return (d: Datum, i: number) => { + const classNames = fn(d, i); + if (classNames !== className) { + return join(' ', [className, classNames]); + } + return classNames; + }; + } + + return value; } - - return value; - }); + ); } diff --git a/packages/d3tooltip/webpack.config.umd.ts b/packages/d3tooltip/webpack.config.umd.ts index 7c39c7af..9913c7f5 100644 --- a/packages/d3tooltip/webpack.config.umd.ts +++ b/packages/d3tooltip/webpack.config.umd.ts @@ -3,7 +3,7 @@ import * as path from 'path'; module.exports = (env: { production?: boolean } = {}) => ({ mode: env.production ? 'production' : 'development', entry: { - app: ['./src/index.js'], + app: ['./src/index'], }, output: { library: 'd3tooltip', @@ -14,10 +14,13 @@ module.exports = (env: { production?: boolean } = {}) => ({ module: { rules: [ { - test: /\.js$/, + test: /\.(js|ts)$/, loader: 'babel-loader', exclude: /node_modules/, }, ], }, + resolve: { + extensions: ['.js', '.jsx', '.ts', '.tsx'], + }, }); diff --git a/packages/map2tree/package.json b/packages/map2tree/package.json index 04d1eb48..516f5da6 100755 --- a/packages/map2tree/package.json +++ b/packages/map2tree/package.json @@ -38,7 +38,7 @@ "lint:fix": "eslint . --ext .ts --fix", "type-check": "tsc --noEmit", "type-check:watch": "npm run type-check -- --watch", - "preversion": "npm run type-check && npm run lint && npm run test", + "preversion": "npm run type-check && npm run lint", "prepublishOnly": "npm run clean && npm run build" }, "dependencies": { diff --git a/packages/map2tree/webpack.config.umd.ts b/packages/map2tree/webpack.config.umd.ts index 6bb5dabc..37e91464 100644 --- a/packages/map2tree/webpack.config.umd.ts +++ b/packages/map2tree/webpack.config.umd.ts @@ -6,7 +6,7 @@ module.exports = (env: { production?: boolean } = {}) => ({ app: ['./src/index'], }, output: { - library: 'd3tooltip', + library: 'map2tree', libraryTarget: 'umd', path: path.resolve(__dirname, 'dist'), filename: env.production ? 'map2tree.min.js' : 'map2tree.js', diff --git a/yarn.lock b/yarn.lock index f6e1fe1a..58a70246 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3355,226 +3355,10 @@ dependencies: "@types/node" "*" -"@types/d3-array@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-2.0.0.tgz#a0d63a296a2d8435a9ec59393dcac746c6174a96" - integrity sha512-rGqfPVowNDTszSFvwoZIXvrPG7s/qKzm9piCRIH6xwTTRu7pPZ3ootULFnPkTt74B6i5lN0FpLQL24qGOw1uZA== - -"@types/d3-array@^1": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-1.2.7.tgz#34dc654d34fc058c41c31dbca1ed68071a8fcc17" - integrity sha512-51vHWuUyDOi+8XuwPrTw3cFqyh2Slg9y8COYkRfjCPG9TfYqY0hoNPzv/8BrcAy0FeQBzqEo/D/8Nk2caOQJnA== - -"@types/d3-axis@*": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-1.0.12.tgz#8c124edfcc02f3b3a9cdaa2a28b8a20341401799" - integrity sha512-BZISgSD5M8TgURyNtcPAmUB9sk490CO1Thb6/gIn0WZTt3Y50IssX+2Z0vTccoqZksUDTep0b+o4ofXslvNbqg== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-brush@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-1.1.1.tgz#906875ce42db22fc9cde6d1fb2808f17ecd2ea93" - integrity sha512-Exx14trm/q2cskHyMjCrdDllOQ35r1/pmZXaOIt8bBHwYNk722vWY3VxHvN0jdFFX7p2iL3+gD+cGny/aEmhlw== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-chord@*": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-1.0.9.tgz#ccc5de03ff079025491b7aa6b750670a140b45ae" - integrity sha512-UA6lI9CVW5cT5Ku/RV4hxoFn4mKySHm7HEgodtfRthAj1lt9rKZEPon58vyYfk+HIAm33DtJJgZwMXy2QgyPXw== - -"@types/d3-collection@*": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-collection/-/d3-collection-1.0.8.tgz#aa9552c570a96e33c132e0fd20e331f64baa9dd5" - integrity sha512-y5lGlazdc0HNO0F3UUX2DPE7OmYvd9Kcym4hXwrJcNUkDaypR5pX+apuMikl9LfTxKItJsY9KYvzBulpCKyvuQ== - -"@types/d3-color@*": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-1.2.2.tgz#80cf7cfff7401587b8f89307ba36fe4a576bc7cf" - integrity sha512-6pBxzJ8ZP3dYEQ4YjQ+NVbQaOflfgXq/JbDiS99oLobM2o72uAST4q6yPxHv6FOTCRC/n35ktuo8pvw/S4M7sw== - -"@types/d3-contour@*": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-1.3.0.tgz#1a408b121fa5e341f715e3055303ef3079fc7eb0" - integrity sha512-AUCUIjEnC5lCGBM9hS+MryRaFLIrPls4Rbv6ktqbd+TK/RXZPwOy9rtBWmGpbeXcSOYCJTUDwNJuEnmYPJRxHQ== - dependencies: - "@types/d3-array" "*" - "@types/geojson" "*" - -"@types/d3-dispatch@*": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-1.0.8.tgz#eaeb2ad089d6a0d2685dfa2f2cbbfb7509aae014" - integrity sha512-lCDtqoYez0TgFN3FljBXrz2icqeSzD0gufGook6DPBia+NOh2TBfogjHIsmNa/a+ZOewlHtq4cgLY80O1uLymw== - -"@types/d3-drag@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-1.2.3.tgz#d8ddccca28e939e9c689bea6f40a937e48c39051" - integrity sha512-rWB5SPvkYVxW3sqUxHOJUZwifD0KqvKwvt1bhNqcLpW6Azsd0BJgRNcyVW8GAferaAk5r8dzeZnf9zKlg9+xMQ== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-dsv@*": - version "1.0.36" - resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-1.0.36.tgz#e91129d7c02b1b814838d001e921e8b9a67153d0" - integrity sha512-jbIWQ27QJcBNMZbQv0NSQMHnBDCmxghAxePxgyiPH1XPCRkOsTBei7jcdi3fDrUCGpCV3lKrSZFSlOkhUQVClA== - -"@types/d3-ease@*": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-1.0.9.tgz#1dd849bd7edef6426e915e220ed9970db5ea4e04" - integrity sha512-U5ADevQ+W6fy32FVZZC9EXallcV/Mi12A5Tkd0My5MrC7T8soMQEhlDAg88XUWm0zoCQlB4XV0en/24LvuDB4Q== - -"@types/d3-fetch@*": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-1.1.5.tgz#51601f79dd4653b5d84e6a3176d78145e065db5e" - integrity sha512-o9c0ItT5/Gl3wbNuVpzRnYX1t3RghzeWAjHUVLuyZJudiTxC4f/fC0ZPFWLQ2lVY8pAMmxpV8TJ6ETYCgPeI3A== - dependencies: - "@types/d3-dsv" "*" - -"@types/d3-force@*": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.2.1.tgz#c28803ea36fe29788db69efa0ad6c2dc09544e83" - integrity sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA== - -"@types/d3-format@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.3.1.tgz#35bf88264bd6bcda39251165bb827f67879c4384" - integrity sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A== - -"@types/d3-geo@*": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-1.11.1.tgz#e96ec91f16221d87507fec66b2cc889f52d2493e" - integrity sha512-Ox8WWOG3igDRoep/dNsGbOiSJYdUG3ew/6z0ETvHyAtXZVBjOE0S96zSSmzgl0gqQ3RdZjn2eeJOj9oRcMZPkQ== - dependencies: - "@types/geojson" "*" - -"@types/d3-hierarchy@*": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz#4c017521900813ea524c9ecb8d7985ec26a9ad9a" - integrity sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg== - -"@types/d3-interpolate@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-1.3.1.tgz#1c280511f622de9b0b47d463fa55f9a4fd6f5fc8" - integrity sha512-z8Zmi08XVwe8e62vP6wcA+CNuRhpuUU5XPEfqpG0hRypDE5BWNthQHB1UNWWDB7ojCbGaN4qBdsWp5kWxhT1IQ== - dependencies: - "@types/d3-color" "*" - -"@types/d3-path@*": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-1.0.8.tgz#48e6945a8ff43ee0a1ce85c8cfa2337de85c7c79" - integrity sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA== - -"@types/d3-polygon@*": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-1.0.7.tgz#7b3947aa2d48287ff535230d3d396668ab17bfdf" - integrity sha512-Xuw0eSjQQKs8jTiNbntWH0S+Xp+JyhqxmQ0YAQ3rDu6c3kKMFfgsaGN7Jv5u3zG6yVX/AsLP/Xs/QRjmi9g43Q== - -"@types/d3-quadtree@*": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-1.0.7.tgz#8e29464ff5b326f6612c1428d9362b4b35de2b70" - integrity sha512-0ajFawWicfjsaCLh6NzxOyVDYhQAmMFbsiI3MPGLInorauHFEh9/Cl6UHNf+kt/J1jfoxKY/ZJaKAoDpbvde5Q== - -"@types/d3-random@*": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-1.1.2.tgz#6f77e8b7bb64ac393f92d33fe8f71038bc4f3cde" - integrity sha512-Jui+Zn28pQw/3EayPKaN4c/PqTvqNbIPjHkgIIFnxne1FdwNjfHtAIsZIBMKlquQNrrMjFzCrlF2gPs3xckqaA== - -"@types/d3-scale-chromatic@*": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#315367557d51b823bec848614fac095325613fc3" - integrity sha512-9/D7cOBKdZdTCPc6re0HeSUFBM0aFzdNdmYggUWT9SRRiYSOa6Ys2xdTwHKgc1WS3gGfwTMatBOdWCS863REsg== - -"@types/d3-scale@*": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-2.2.0.tgz#e5987a2857365823eb26ed5eb21bc566c4dcf1c0" - integrity sha512-oQFanN0/PiR2oySHfj+zAAkK1/p4LD32Nt1TMVmzk+bYHk7vgIg/iTXQWitp1cIkDw4LMdcgvO63wL+mNs47YA== - dependencies: - "@types/d3-time" "*" - -"@types/d3-selection@*": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-1.4.2.tgz#72dcd61a3aeb9ce3e8d443e3bef7685ffea3413f" - integrity sha512-ksY8UxvTXpzD91Dy3D9zZg98yF2ZEPMKJd8ZQJlZt1QH3Xxr08s6fESEdC2l0Kbe6Xd9VhaoJX06cRaMR1lEnA== - -"@types/d3-shape@*": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-1.3.2.tgz#a41d9d6b10d02e221696b240caf0b5d0f5a588ec" - integrity sha512-LtD8EaNYCaBRzHzaAiIPrfcL3DdIysc81dkGlQvv7WQP3+YXV7b0JJTtR1U3bzeRieS603KF4wUo+ZkJVenh8w== - dependencies: - "@types/d3-path" "*" - -"@types/d3-time-format@*": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-2.1.1.tgz#dd2c79ec4575f1355484ab6b10407824668eba42" - integrity sha512-tJSyXta8ZyJ52wDDHA96JEsvkbL6jl7wowGmuf45+fAkj5Y+SQOnz0N7/H68OWmPshPsAaWMQh+GAws44IzH3g== - -"@types/d3-time@*": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.10.tgz#d338c7feac93a98a32aac875d1100f92c7b61f4f" - integrity sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw== - -"@types/d3-timer@*": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-1.0.9.tgz#aed1bde0cf18920d33f5d44839d73de393633fd3" - integrity sha512-WvfJ3LFxBbWjqRGz9n7GJt08RrTHPJDVsIwwoCMROlqF+iDacYiAFjf9oqnq0mXpb2juA2N/qjKP+MKdal3YNQ== - -"@types/d3-transition@*": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-1.1.6.tgz#7e52da29749d874866cc803fad13925713a372da" - integrity sha512-/F+O2r4oz4G9ATIH3cuSCMGphAnl7VDx7SbENEK0NlI/FE8Jx2oiIrv0uTrpg7yF/AmuWbqp7AGdEHAPIh24Gg== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-voronoi@*": - version "1.1.9" - resolved "https://registry.yarnpkg.com/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz#7bbc210818a3a5c5e0bafb051420df206617c9e5" - integrity sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ== - -"@types/d3-zoom@*": - version "1.7.5" - resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-1.7.5.tgz#1fd7f3497a10f8cfaaefcf2f879767ec775fc3a3" - integrity sha512-G0lpZjlvmv+fI2/dg2whWFbUUmMC3dy4xoeaGOXnaUmOSnms1q9QtlkRq5MXZt1/7LcKwzgmKdEjPVLVq5dH5Q== - dependencies: - "@types/d3-interpolate" "*" - "@types/d3-selection" "*" - -"@types/d3@^5.7.2": - version "5.7.2" - resolved "https://registry.yarnpkg.com/@types/d3/-/d3-5.7.2.tgz#52235eb71a1d3ca171d6dca52a58f5ccbe0254cc" - integrity sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw== - dependencies: - "@types/d3-array" "^1" - "@types/d3-axis" "*" - "@types/d3-brush" "*" - "@types/d3-chord" "*" - "@types/d3-collection" "*" - "@types/d3-color" "*" - "@types/d3-contour" "*" - "@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-voronoi" "*" - "@types/d3-zoom" "*" +"@types/d3@^3.5.43": + version "3.5.43" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-3.5.43.tgz#e9b4992817e0b6c5efaa7d6e5bb2cee4d73eab58" + integrity sha512-t9ZmXOcpVxywRw86YtIC54g7M9puRh8hFedRvVfHKf5YyOP6pSxA0TvpXpfseXSCInoW4P7bggTrSDiUOs4g5w== "@types/dateformat@^3.0.1": version "3.0.1" @@ -3630,11 +3414,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/geojson@*": - version "7946.0.7" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.7.tgz#c8fa532b60a0042219cdf173ca21a975ef0666ad" - integrity sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ== - "@types/glob-base@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@types/glob-base/-/glob-base-0.3.0.tgz#a581d688347e10e50dd7c17d6f2880a10354319d"