From fc461973a0ad875d1d3a71cdd44a32587e34a606 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Mon, 27 Jul 2020 19:08:50 +0530 Subject: [PATCH] Version 2 of globe visualiser --- package-lock.json | 743 +++++++++++++++++-- package.json | 11 +- src/App.tsx | 167 ++--- src/Constants.tsx | 9 + src/Counter.tsx | 24 + src/Country.tsx | 11 + src/GlobalCounts.tsx | 8 + src/Globe.tsx | 145 ++++ src/Spinner.css | 2 +- src/assets/export.json | 1493 -------------------------------------- src/assets/global.json | 3 - src/assets/usExport.json | 387 ---------- src/assets/world.jpg | Bin 94795 -> 0 bytes src/markerRenderer.ts | 34 - src/markers.ts | 12 - src/styles.css | 165 +++-- src/utils/index.tsx | 66 ++ 17 files changed, 1105 insertions(+), 2175 deletions(-) create mode 100644 src/Constants.tsx create mode 100644 src/Counter.tsx create mode 100644 src/Country.tsx create mode 100644 src/GlobalCounts.tsx create mode 100644 src/Globe.tsx delete mode 100644 src/assets/export.json delete mode 100644 src/assets/global.json delete mode 100644 src/assets/usExport.json delete mode 100644 src/assets/world.jpg delete mode 100755 src/markerRenderer.ts delete mode 100755 src/markers.ts create mode 100644 src/utils/index.tsx diff --git a/package-lock.json b/package-lock.json index 7f6f0f1..1915d07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1426,6 +1426,33 @@ "loader-utils": "^1.2.3" } }, + "@turf/boolean-point-in-polygon": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.0.1.tgz", + "integrity": "sha512-FKLOZ124vkJhjzNSDcqpwp2NvfnsbYoUOt5iAE7uskt4svix5hcjIEgX9sELFTJpbLGsD1mUbKdfns8tZxcMNg==", + "requires": { + "@turf/helpers": "6.x", + "@turf/invariant": "6.x" + } + }, + "@turf/helpers": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", + "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" + }, + "@turf/invariant": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.1.2.tgz", + "integrity": "sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg==", + "requires": { + "@turf/helpers": "6.x" + } + }, + "@tweenjs/tween.js": { + "version": "18.6.0", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-18.6.0.tgz", + "integrity": "sha512-z45HU0G0e/SenbvGdAlTpUR5Hur5zwZXQcqfI+f7EnVHdeb2oMI2rQghEePu7uXuvBC0nuKWG5YtZ1nWbuvqzQ==" + }, "@types/babel__core": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", @@ -1468,18 +1495,265 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/d3": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.7.2.tgz", + "integrity": "sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw==", + "dev": true, + "requires": { + "@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-array": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.7.tgz", + "integrity": "sha512-51vHWuUyDOi+8XuwPrTw3cFqyh2Slg9y8COYkRfjCPG9TfYqY0hoNPzv/8BrcAy0FeQBzqEo/D/8Nk2caOQJnA==", + "dev": true + }, + "@types/d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-BZISgSD5M8TgURyNtcPAmUB9sk490CO1Thb6/gIn0WZTt3Y50IssX+2Z0vTccoqZksUDTep0b+o4ofXslvNbqg==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-brush": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.1.1.tgz", + "integrity": "sha512-Exx14trm/q2cskHyMjCrdDllOQ35r1/pmZXaOIt8bBHwYNk722vWY3VxHvN0jdFFX7p2iL3+gD+cGny/aEmhlw==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-chord": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.9.tgz", + "integrity": "sha512-UA6lI9CVW5cT5Ku/RV4hxoFn4mKySHm7HEgodtfRthAj1lt9rKZEPon58vyYfk+HIAm33DtJJgZwMXy2QgyPXw==", + "dev": true + }, + "@types/d3-collection": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.8.tgz", + "integrity": "sha512-y5lGlazdc0HNO0F3UUX2DPE7OmYvd9Kcym4hXwrJcNUkDaypR5pX+apuMikl9LfTxKItJsY9KYvzBulpCKyvuQ==", + "dev": true + }, + "@types/d3-color": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.2.2.tgz", + "integrity": "sha512-6pBxzJ8ZP3dYEQ4YjQ+NVbQaOflfgXq/JbDiS99oLobM2o72uAST4q6yPxHv6FOTCRC/n35ktuo8pvw/S4M7sw==", + "dev": true + }, + "@types/d3-contour": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.0.tgz", + "integrity": "sha512-AUCUIjEnC5lCGBM9hS+MryRaFLIrPls4Rbv6ktqbd+TK/RXZPwOy9rtBWmGpbeXcSOYCJTUDwNJuEnmYPJRxHQ==", + "dev": true, + "requires": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "@types/d3-dispatch": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.8.tgz", + "integrity": "sha512-lCDtqoYez0TgFN3FljBXrz2icqeSzD0gufGook6DPBia+NOh2TBfogjHIsmNa/a+ZOewlHtq4cgLY80O1uLymw==", + "dev": true + }, + "@types/d3-drag": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.3.tgz", + "integrity": "sha512-rWB5SPvkYVxW3sqUxHOJUZwifD0KqvKwvt1bhNqcLpW6Azsd0BJgRNcyVW8GAferaAk5r8dzeZnf9zKlg9+xMQ==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-dsv": { + "version": "1.0.36", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.0.36.tgz", + "integrity": "sha512-jbIWQ27QJcBNMZbQv0NSQMHnBDCmxghAxePxgyiPH1XPCRkOsTBei7jcdi3fDrUCGpCV3lKrSZFSlOkhUQVClA==", + "dev": true + }, + "@types/d3-ease": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.9.tgz", + "integrity": "sha512-U5ADevQ+W6fy32FVZZC9EXallcV/Mi12A5Tkd0My5MrC7T8soMQEhlDAg88XUWm0zoCQlB4XV0en/24LvuDB4Q==", + "dev": true + }, + "@types/d3-fetch": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-1.1.5.tgz", + "integrity": "sha512-o9c0ItT5/Gl3wbNuVpzRnYX1t3RghzeWAjHUVLuyZJudiTxC4f/fC0ZPFWLQ2lVY8pAMmxpV8TJ6ETYCgPeI3A==", + "dev": true, + "requires": { + "@types/d3-dsv": "*" + } + }, + "@types/d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA==", + "dev": true + }, + "@types/d3-format": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.3.1.tgz", + "integrity": "sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A==", + "dev": true + }, + "@types/d3-geo": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.11.1.tgz", + "integrity": "sha512-Ox8WWOG3igDRoep/dNsGbOiSJYdUG3ew/6z0ETvHyAtXZVBjOE0S96zSSmzgl0gqQ3RdZjn2eeJOj9oRcMZPkQ==", + "dev": true, + "requires": { + "@types/geojson": "*" + } + }, + "@types/d3-hierarchy": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz", + "integrity": "sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg==", + "dev": true + }, + "@types/d3-interpolate": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.3.1.tgz", + "integrity": "sha512-z8Zmi08XVwe8e62vP6wcA+CNuRhpuUU5XPEfqpG0hRypDE5BWNthQHB1UNWWDB7ojCbGaN4qBdsWp5kWxhT1IQ==", + "dev": true, + "requires": { + "@types/d3-color": "*" + } + }, + "@types/d3-path": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.8.tgz", + "integrity": "sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA==", + "dev": true + }, + "@types/d3-polygon": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.7.tgz", + "integrity": "sha512-Xuw0eSjQQKs8jTiNbntWH0S+Xp+JyhqxmQ0YAQ3rDu6c3kKMFfgsaGN7Jv5u3zG6yVX/AsLP/Xs/QRjmi9g43Q==", + "dev": true + }, + "@types/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-0ajFawWicfjsaCLh6NzxOyVDYhQAmMFbsiI3MPGLInorauHFEh9/Cl6UHNf+kt/J1jfoxKY/ZJaKAoDpbvde5Q==", + "dev": true + }, + "@types/d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-Jui+Zn28pQw/3EayPKaN4c/PqTvqNbIPjHkgIIFnxne1FdwNjfHtAIsZIBMKlquQNrrMjFzCrlF2gPs3xckqaA==", + "dev": true + }, "@types/d3-scale": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-2.2.0.tgz", "integrity": "sha512-oQFanN0/PiR2oySHfj+zAAkK1/p4LD32Nt1TMVmzk+bYHk7vgIg/iTXQWitp1cIkDw4LMdcgvO63wL+mNs47YA==", + "dev": true, "requires": { "@types/d3-time": "*" } }, + "@types/d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-9/D7cOBKdZdTCPc6re0HeSUFBM0aFzdNdmYggUWT9SRRiYSOa6Ys2xdTwHKgc1WS3gGfwTMatBOdWCS863REsg==", + "dev": true + }, + "@types/d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-ksY8UxvTXpzD91Dy3D9zZg98yF2ZEPMKJd8ZQJlZt1QH3Xxr08s6fESEdC2l0Kbe6Xd9VhaoJX06cRaMR1lEnA==", + "dev": true + }, + "@types/d3-shape": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.2.tgz", + "integrity": "sha512-LtD8EaNYCaBRzHzaAiIPrfcL3DdIysc81dkGlQvv7WQP3+YXV7b0JJTtR1U3bzeRieS603KF4wUo+ZkJVenh8w==", + "dev": true, + "requires": { + "@types/d3-path": "*" + } + }, "@types/d3-time": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.0.10.tgz", - "integrity": "sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw==" + "integrity": "sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw==", + "dev": true + }, + "@types/d3-time-format": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.1.1.tgz", + "integrity": "sha512-tJSyXta8ZyJ52wDDHA96JEsvkbL6jl7wowGmuf45+fAkj5Y+SQOnz0N7/H68OWmPshPsAaWMQh+GAws44IzH3g==", + "dev": true + }, + "@types/d3-timer": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.9.tgz", + "integrity": "sha512-WvfJ3LFxBbWjqRGz9n7GJt08RrTHPJDVsIwwoCMROlqF+iDacYiAFjf9oqnq0mXpb2juA2N/qjKP+MKdal3YNQ==", + "dev": true + }, + "@types/d3-transition": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.1.6.tgz", + "integrity": "sha512-/F+O2r4oz4G9ATIH3cuSCMGphAnl7VDx7SbENEK0NlI/FE8Jx2oiIrv0uTrpg7yF/AmuWbqp7AGdEHAPIh24Gg==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-voronoi": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", + "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==", + "dev": true + }, + "@types/d3-zoom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.7.4.tgz", + "integrity": "sha512-5jnFo/itYhJeB2khO/lKe730kW/h2EbKMOvY0uNp3+7NdPm4w63DwPEMxifQZ7n902xGYK5DdU67FmToSoy4VA==", + "dev": true, + "requires": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } }, "@types/eslint-visitor-keys": { "version": "1.0.0", @@ -1491,6 +1765,12 @@ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" }, + "@types/geojson": { + "version": "7946.0.7", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", + "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", + "dev": true + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", @@ -1820,6 +2100,11 @@ "negotiator": "0.6.2" } }, + "accessor-fn": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.3.0.tgz", + "integrity": "sha512-NC5BYjrfBonksWxXrZ1WsPnh70sTQC2Uas9IL0RHQN5OETP4dO/bviPxZ7zTOahhRQ7o6avJg3ImJvRbuyHASg==" + }, "acorn": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", @@ -3919,21 +4204,159 @@ "type": "^1.0.1" } }, + "d3": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", + "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", + "requires": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" + } + }, "d3-array": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.4.0.tgz", - "integrity": "sha512-KQ41bAF2BMakf/HdKT865ALd4cgND6VcIztVQZUTt0+BH3RWy6ZYnHghVXf6NFjt2ritLr8H1T8LreAAlfiNcw==" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + }, + "d3-brush": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.5.tgz", + "integrity": "sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", + "requires": { + "d3-array": "1", + "d3-path": "1" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" }, "d3-color": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "requires": { + "d3-array": "^1.1.1" + } + }, + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "d3-drag": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", + "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", + "requires": { + "d3-dispatch": "1", + "d3-selection": "1" + } + }, + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + } + }, + "d3-ease": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.6.tgz", + "integrity": "sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==" + }, + "d3-fetch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", + "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", + "requires": { + "d3-dsv": "1" + } + }, + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, "d3-format": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.4.tgz", "integrity": "sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw==" }, + "d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "requires": { + "d3-array": "1" + } + }, + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + }, "d3-interpolate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", @@ -3942,18 +4365,61 @@ "d3-color": "1" } }, + "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==" + }, + "d3-polygon": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", + "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" + }, + "d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" + }, + "d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" + }, "d3-scale": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.1.tgz", - "integrity": "sha512-huz5byJO/6MPpz6Q8d4lg7GgSpTjIZW/l+1MQkzKfu2u8P6hjaXaStOpmyrD6ymKoW87d2QVFCKvSjLwjzx/rA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", "requires": { - "d3-array": "1.2.0 - 2", + "d3-array": "^1.2.0", + "d3-collection": "1", "d3-format": "1", - "d3-interpolate": "^1.2.0", + "d3-interpolate": "1", "d3-time": "1", "d3-time-format": "2" } }, + "d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", + "requires": { + "d3-color": "1", + "d3-interpolate": "1" + } + }, + "d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "requires": { + "d3-path": "1" + } + }, "d3-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", @@ -3967,6 +4433,41 @@ "d3-time": "1" } }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "d3-zoom": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", + "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -3980,6 +4481,14 @@ "assert-plus": "^1.0.0" } }, + "data-joint": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/data-joint/-/data-joint-1.2.3.tgz", + "integrity": "sha512-un7896FtODs3x2v55w7aoXLcNYR47z6LcpAsUdWhbQ6tDVeZti0MZusMM+pzbXJ4Qn1A9WeGSGZgCf7GM65pQQ==", + "requires": { + "index-array-by": "^1.3.0" + } + }, "data-urls": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", @@ -4002,6 +4511,16 @@ } } }, + "dayjs": { + "version": "1.8.30", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.30.tgz", + "integrity": "sha512-5s5IGuP5bVvIbOWkEDcfmXsUj24fZW1NMHVVSdSFF/kW8d+alZcI9SpBKC+baEyBe+z3fUp17y75ulstv5swUw==" + }, + "debounce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", + "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -4142,6 +4661,11 @@ } } }, + "delaunator": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", + "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -4387,6 +4911,11 @@ } } }, + "earcut": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", + "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -4577,11 +5106,6 @@ "ext": "^1.1.2" } }, - "es6-tween": { - "version": "5.5.11", - "resolved": "https://registry.npmjs.org/es6-tween/-/es6-tween-5.5.11.tgz", - "integrity": "sha512-pRog/aPrGkPnblRJvuGcVTxlLqIu1TivB39zc6lw7jgOqIyOkqTBlTVr7ynlLjVGviezfYc3CZJWVAtOU3aoXQ==" - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -5635,6 +6159,14 @@ "map-cache": "^0.2.2" } }, + "frame-ticker": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/frame-ticker/-/frame-ticker-1.0.3.tgz", + "integrity": "sha1-LJnT/rtJP9HTYhNRzQAxiXlKEkU=", + "requires": { + "simplesignal": "^2.1.6" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -5900,6 +6432,19 @@ } } }, + "globe.gl": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/globe.gl/-/globe.gl-2.14.0.tgz", + "integrity": "sha512-tl6Eq2mtFR49qImnAQ8tH3yrNULAFgmXAenogZLYTCp0nQ5Qw7yXD+QFgLou026aQCvNVBaDZ6LYZnLJZD4WfA==", + "requires": { + "@tweenjs/tween.js": "^18.6.0", + "accessor-fn": "^1.3.0", + "kapsule": "^1.13.3", + "three": "^0.118.3", + "three-globe": "^2.8.7", + "three-render-objects": "^1.24.0" + } + }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", @@ -5926,6 +6471,11 @@ } } }, + "h3-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-3.6.4.tgz", + "integrity": "sha512-wMu0Y+vdh4xx2WT1jqy4QDBgJupjBfHsGaMtMsFocdZdIsfxLFufzjGcmReOSfKQ+twRO2XjXAmDY9h1nq99EA==" + }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -6359,6 +6909,11 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, + "index-array-by": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.3.0.tgz", + "integrity": "sha512-INSV8BJwW/IF9wj/hzq6tDQhc3AYBnQ/wY9mNIGiPEvxDI1sR0OaL1VQg74ZIZqg3fbmW5zQgf2Bxc51zDwRZg==" + }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -7505,6 +8060,14 @@ "object.assign": "^4.1.0" } }, + "kapsule": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.13.3.tgz", + "integrity": "sha512-Qgzn1p0ywJsXJ3NBjIGst/EGvH2VF+YeVsVfWHZ1ZFX1v7AJfz215OWf3mRFy6NZBbN67yc1qUxAuJU+vuTtAA==", + "requires": { + "debounce": "^1.2.0" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -8971,10 +9534,13 @@ "ts-pnp": "^1.1.6" } }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + "polished": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz", + "integrity": "sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==", + "requires": { + "@babel/runtime": "^7.9.2" + } }, "portfinder": { "version": "1.0.26", @@ -10453,21 +11019,6 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" }, - "react-globe": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/react-globe/-/react-globe-4.0.0.tgz", - "integrity": "sha512-p62sQ357CsXmGBMO/jZPC5hQ5XhRmWDwnOnnuiv5948U/7NNWgWr8Eio0+QJ+rixezphupPDP1GzgywC327JGA==", - "requires": { - "@types/d3-scale": "^2.1.1", - "d3-scale": "^3.0.0", - "es6-tween": "^5.5.10", - "resize-observer-polyfill": "^1.5.1", - "three-glow-mesh": "^0.1.1", - "three-orbitcontrols": "^2.108.1", - "three.interaction": "^0.2.2", - "tippy.js": "^4.3.5" - } - }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -10846,11 +11397,6 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, "resolve": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", @@ -11027,6 +11573,11 @@ "aproba": "^1.1.1" } }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, "rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", @@ -11396,6 +11947,11 @@ } } }, + "simplesignal": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/simplesignal/-/simplesignal-2.1.7.tgz", + "integrity": "sha1-jhWXix+LRNVb19cIHcN7cUfPEp8=" + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -12285,24 +12841,94 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "three": { - "version": "0.116.1", - "resolved": "https://registry.npmjs.org/three/-/three-0.116.1.tgz", - "integrity": "sha512-l2JCMiA/lVZAuSrLWRYMalvpR+0j8hbIhCpfs4V6JFnw2+JQEQJ5HltNpfFr+9TDpQts1BhtcISehWf/xBGPvQ==" + "version": "0.118.3", + "resolved": "https://registry.npmjs.org/three/-/three-0.118.3.tgz", + "integrity": "sha512-ijECXrNzDkHieoeh2H69kgawTGH8DiamhR4uBN8jEM7VHSKvfTdEvOoHsA8Aq7dh7PHAxhlqBsN5arBI3KixSw==" }, - "three-glow-mesh": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/three-glow-mesh/-/three-glow-mesh-0.1.1.tgz", - "integrity": "sha512-1PfgG0HdDG3XrkrK/OzAeu7Pw8d9cGNfupKIUS93DYCboXAVAl7/5TMNWsHy/h6x47rZwiQYVd04WOfIsKtY7Q==" + "three-conic-polygon-geometry": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/three-conic-polygon-geometry/-/three-conic-polygon-geometry-1.3.7.tgz", + "integrity": "sha512-ChHkYfKTRy/0t06L5SlAVJAl9fX0q7vRKnRIRHBWF1flFLnobjODKhww9yyV+SRR1KegH+DX8M6uSvPovBXLtQ==", + "requires": { + "@turf/boolean-point-in-polygon": "^6.0.1", + "d3-array": "^2.4.0", + "d3-geo": "^1.12.1", + "delaunator": "^4.0.1", + "earcut": "^2.2.2" + }, + "dependencies": { + "d3-array": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.4.0.tgz", + "integrity": "sha512-KQ41bAF2BMakf/HdKT865ALd4cgND6VcIztVQZUTt0+BH3RWy6ZYnHghVXf6NFjt2ritLr8H1T8LreAAlfiNcw==" + } + } }, - "three-orbitcontrols": { - "version": "2.110.3", - "resolved": "https://registry.npmjs.org/three-orbitcontrols/-/three-orbitcontrols-2.110.3.tgz", - "integrity": "sha512-BNNbksJwbN3/MmT0X/gjz5ZCchm7bjk26SUdtJYRxfEYjDfkb/0PeUTHE/KuyJ5vb/owK3mojyy3vcqDx99sRA==" + "three-fatline": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/three-fatline/-/three-fatline-0.3.0.tgz", + "integrity": "sha512-nqh0LjuG8cYBZFYL/U2ZGCAPVcKKaQZ3l+PP7WjGn8AKc7xHAYl4znuqDAQ+33ZdR/b9twVyTNlmUQBUSdLjMQ==" }, - "three.interaction": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/three.interaction/-/three.interaction-0.2.2.tgz", - "integrity": "sha512-yWQ5L0SUl+TzxVGFRNZAf4hpRF84zYZVpcyGstzhO0vbRdUDobPiPV6QmUh0JZVS5gEUguAd09ONyNJEczMOyA==" + "three-geojson-geometry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/three-geojson-geometry/-/three-geojson-geometry-1.1.0.tgz", + "integrity": "sha512-x/2FIuF+AG9s411HmNtQZ5JhWl3ig+I+mtAmX4ecEEt+STk0bPt8NzFRUaeJldrn/99v1UGzE7NdTtelp7gxUQ==", + "requires": { + "earcut": "^2.2.2" + } + }, + "three-globe": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/three-globe/-/three-globe-2.8.7.tgz", + "integrity": "sha512-HQTur+nTgBSlFnqaRUwzzDGjM2OqcljwBDMNDd6me3/ckiE7w5JS/jvzgVfpHYvthjDwWX7e/R+79OotjkYeVw==", + "requires": { + "@tweenjs/tween.js": "^18.6.0", + "accessor-fn": "^1.3.0", + "d3-geo": "^1.12.1", + "d3-interpolate": "^1.4.0", + "d3-scale": "^3.2.1", + "data-joint": "^1.2.3", + "earcut": "^2.2.2", + "frame-ticker": "^1.0.3", + "h3-js": "^3.6.4", + "index-array-by": "^1.3.0", + "kapsule": "^1.13.3", + "three-conic-polygon-geometry": "^1.3.7", + "three-fatline": "^0.3.0", + "three-geojson-geometry": "^1.1.0", + "three-glow-mesh": "^0.1.1", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "d3-scale": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.1.tgz", + "integrity": "sha512-huz5byJO/6MPpz6Q8d4lg7GgSpTjIZW/l+1MQkzKfu2u8P6hjaXaStOpmyrD6ymKoW87d2QVFCKvSjLwjzx/rA==", + "requires": { + "d3-array": "1.2.0 - 2", + "d3-format": "1", + "d3-interpolate": "^1.2.0", + "d3-time": "1", + "d3-time-format": "2" + } + } + } + }, + "three-glow-mesh": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/three-glow-mesh/-/three-glow-mesh-0.1.2.tgz", + "integrity": "sha512-sjiRl8PdRuc5xzZtaAusumx4sS/zRAYiFSQ1bNefRrJOXgu+ZHxq4/vYwRoa85PwPKLkp2SCo3Lu4JfJrphngw==" + }, + "three-render-objects": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.24.1.tgz", + "integrity": "sha512-mnN5x5RSF8oISunCtCeuJTFq+Zf4pJbq3i6yMCYBsDKstaE07aUjarCbooOFHlXczNPKSz8r0q7hKCIALHnn5A==", + "requires": { + "@tweenjs/tween.js": "^18.6.0", + "accessor-fn": "^1.3.0", + "kapsule": "^1.13.3", + "polished": "^3.6.5" + } }, "throat": { "version": "4.1.0", @@ -12365,13 +12991,10 @@ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, - "tippy.js": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-4.3.5.tgz", - "integrity": "sha512-NDq3efte8nGK6BOJ1dDN1/WelAwfmh3UtIYXXck6+SxLzbIQNZE/cmRSnwScZ/FyiKdIcvFHvYUgqmoGx8CcyA==", - "requires": { - "popper.js": "^1.14.7" - } + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" }, "tmp": { "version": "0.0.33", diff --git a/package.json b/package.json index 8893f70..2848ee2 100755 --- a/package.json +++ b/package.json @@ -13,18 +13,19 @@ ], "main": "src/index.tsx", "dependencies": { - "es6-tween": "5.5.11", "react": "16.13.1", "react-dom": "16.13.1", - "react-globe": "4.0.0", "react-scripts": "3.4.1", - "three": "0.116.1" + "d3": "^5.16.0", + "dayjs": "^1.8.29", + "globe.gl": "^2.12.2" }, "devDependencies": { + "@types/d3": "^5.7.2", "@types/react": "16.8.8", "@types/react-dom": "16.8.2", - "typescript": "3.3.3", - "gh-pages": "^2.2.0" + "gh-pages": "^2.2.0", + "typescript": "3.3.3" }, "scripts": { "predeploy": "npm run build", diff --git a/src/App.tsx b/src/App.tsx index 3b9b644..9a49e20 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,122 +1,77 @@ import * as React from "react"; -import ReactGlobe, { Marker } from "react-globe"; - -import markers from "./markers"; -import markerRenderer from "./markerRenderer"; -import worldTexture from "./assets/world.jpg"; import "./styles.css"; import { useState, useEffect } from "react"; -import { Object3D } from "three"; +import { initGlobe } from "./Globe"; +import { GlobalCounts } from "./GlobalCounts"; +import { Counter } from "./Counter"; import { Spinner } from "./Spinner"; -import globalData from "./assets/global.json"; - -function getWindowDimensions() { - const { innerWidth: width, innerHeight: height } = window; - return { - width, - height, - }; -} export default function App() { - const [details, setDetails] = useState(null); - const [isLoaded, onTextureLoaded] = useState(false); - const [cameraOptions, setCameraOptions] = useState({ - maxDistanceRadiusScale: 100, - autoRotateSpeed: 0.1, - distanceRadiusScale: 100, - }); - - const [windowDimensions, setWindowDimensions] = useState( - getWindowDimensions() - ); + const [totals, setTotals] = useState([]); - function getTooltipContent(marker: Marker) { - return `Location: ${marker.Country} (Active Cases: ${marker.activeCases})`; - } - - function onClickMarker( - marker: Marker, - markerObject?: Object3D, - event?: PointerEvent - ) { - zoomOut(); - setDetails(getTooltipContent(marker)); - } - - function onDefocus(previousCoordinates: any, event?: PointerEvent) { - setDetails(null); - } - - const zoomOut = () => { + useEffect(() => initGlobe(), []); + useEffect(() => { setTimeout(() => { - if (windowDimensions.width <= 500) { - setDetails(null); - } + let total: number[] = []; + total.push(GlobalCounts.totalConfirmed); + total.push(GlobalCounts.totalDeaths); + total.push(GlobalCounts.totalRecoveries); + total.push(GlobalCounts.totalActive); + setTotals(total); }, 3000); - }; - + }, [GlobalCounts.set]); return ( - -
COVID19 Globe Tracker
-
Active Cases
-
- setDetails(null)} - cameraOptions={{ - maxDistanceRadiusScale: 100, - autoRotateSpeed: 1.0, - distanceRadiusScale: 100, - }} - focusOptions={{ - distanceRadiusScale: 30, - enableDefocus: true, - }} - globeOptions={{ - texture: worldTexture, - glowColor: "red", - enableClouds: false, - }} - onTextureLoaded={() => onTextureLoaded(true)} - /> - {details && ( -
-

{details}

-
- )} +
+
+
COVID-19
+
+ Loading countries affected by the virus... +
- {isLoaded ? ( -
- +
+ + {GlobalCounts.set ? ( + <> +
+ Total Counts +
+
+ + INFECTED: + + + + {" "} + • DEATHS: + + + + {" "} + • RECOVERED: + + + + {" "} + • ACTIVE: + + +
+ + ) : null} + - ) : null} +
); } - -function Counter() { - const [total, setTotal] = useState(globalData.totalCount); - const [counter, setCounter] = useState(0); - useEffect(() => { - setTimeout(() => null, 5000); - }, []); - useEffect(() => { - if (counter != total) { - if (total - counter <= 1000) setCounter(counter + 1); - else if (counter < 10000) setCounter(counter + 1000); - else setCounter(counter + 500); - } - }, [counter]); - - function numberWithCommas(x: number) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); - } - - return

{numberWithCommas(counter)}

; -} diff --git a/src/Constants.tsx b/src/Constants.tsx new file mode 100644 index 0000000..8e4c256 --- /dev/null +++ b/src/Constants.tsx @@ -0,0 +1,9 @@ +export const GLOBE_IMAGE_URL = + "//cdn.jsdelivr.net/npm/three-globe/example/img/earth-dark.jpg"; +export const BACKGROUND_IMAGE_URL = + "//cdn.jsdelivr.net/npm/three-globe/example/img/night-sky.png"; +export const GEOJSON_URL = + "https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_110m_admin_0_countries.geojson"; +export const CASES_API = "https://covid3d-backend.now.sh"; + +export const FLAG_ENDPOINT = "https://corona.lmao.ninja/assets/img/flags"; diff --git a/src/Counter.tsx b/src/Counter.tsx new file mode 100644 index 0000000..143a33f --- /dev/null +++ b/src/Counter.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import { useEffect, useState } from "react"; + +interface CounterProps { + count: number; +} + +export function Counter({ count }: CounterProps) { + const [counter, setCounter] = useState(0); + + useEffect(() => { + if (counter != count) { + if (count - counter <= 1000) setCounter(counter + 1); + else if (counter < 10000) setCounter(counter + 1000); + else setCounter(counter + 10000); + } + }, [counter]); + + function numberWithCommas(x: number) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); + } + + return <>{numberWithCommas(counter)}; +} diff --git a/src/Country.tsx b/src/Country.tsx new file mode 100644 index 0000000..205d8be --- /dev/null +++ b/src/Country.tsx @@ -0,0 +1,11 @@ +export interface Countries { + [country: string]: { + [date: string]: Country; + }; +} + +export interface Country { + confirmed: number; + recoveries: number; + deaths: number; +} diff --git a/src/GlobalCounts.tsx b/src/GlobalCounts.tsx new file mode 100644 index 0000000..224a6d5 --- /dev/null +++ b/src/GlobalCounts.tsx @@ -0,0 +1,8 @@ +export class GlobalCounts { + static totalConfirmed: number = 0; + static totalDeaths: number = 0; + static totalRecoveries: number = 0; + static totalActive: number = 0; + static set: boolean; + private constructor() {} +} diff --git a/src/Globe.tsx b/src/Globe.tsx new file mode 100644 index 0000000..472562b --- /dev/null +++ b/src/Globe.tsx @@ -0,0 +1,145 @@ +import Globe, { GlobeInstance } from "globe.gl"; +import { request, getCoordinates, getPolygonLabel } from "./utils"; +import { + GLOBE_IMAGE_URL, + BACKGROUND_IMAGE_URL, + GEOJSON_URL, + CASES_API, +} from "./Constants"; +import { interpolateReds, scaleSequential } from "d3"; +import { Countries, Country } from "./Country"; +import { GlobalCounts } from "./GlobalCounts"; + +const getVal = (feat: any) => { + return Math.pow(feat.covidData.confirmed / feat.properties.POP_EST, 1 / 4); +}; + +interface Feature { + properties: { + NAME: string; + POP_EST: number; + }; + covidData: Country; +} + +let world: GlobeInstance; +const colorScale = scaleSequential(interpolateReds); + +export function initGlobe() { + // Globe container + const globeContainer: HTMLElement = document.getElementById("globeViz")!; + world = Globe()(globeContainer) + .globeImageUrl(GLOBE_IMAGE_URL) + .backgroundImageUrl(BACKGROUND_IMAGE_URL) + .showGraticules(false) + .polygonAltitude(0.06) + .showAtmosphere(false) + .polygonCapColor((feat: any) => colorScale(getVal(feat))) + .polygonSideColor(() => "rgba(100, 100, 100, 0.05)") + .polygonStrokeColor(() => "#ffff") + .polygonLabel(({ properties: d, covidData: c }: any) => { + const flagName = d.ADMIN === "France" ? "fr" : d.ISO_A2.toLowerCase(); + + return getPolygonLabel(flagName, d, c); + }) + .onPolygonHover((hoverD: any) => + world + .polygonAltitude((d: any) => (d === hoverD ? 0.1 : 0.06)) + .polygonCapColor((d: any) => + d === hoverD ? "yellow" : colorScale(getVal(d)) + ) + ) + .polygonsTransitionDuration(200); + + getCases(); + window.addEventListener("resize", (event: UIEvent) => { + world.width(window.innerWidth); + world.height(window.innerHeight); + }); +} + +let dates: string[] = []; +let countries: Countries; +let featureCollection: Feature[]; + +async function getCases() { + countries = await request(CASES_API); + featureCollection = (await request(GEOJSON_URL)).features; + + // world.polygonsData(countriesWithCovid); + document.querySelector(".title-desc")!.innerHTML = + "Hover on a country or territory to see cases, deaths, and recoveries."; + + dates = Object.keys(countries.China); + + updateCounters(); + updatePolygonsData(); + + updatePointOfView(); +} + +//const infectedEl = document.querySelector("#infected")!; +//const deathsEl = document.querySelector("#deaths")!; +//const recoveriesEl = document.querySelector("#recovered")!; +//const updatedEl = document.querySelector(".updated")!; + +function updateCounters() { + let totalConfirmed = 0; + let totalDeaths = 0; + let totalRecoveries = 0; + const date = dates.length - 1; + Object.keys(countries).forEach((item: string) => { + if (countries[item][dates[date]]) { + const countryDate = countries[item][dates[date]]; + totalConfirmed += +countryDate.confirmed; + totalDeaths += +countryDate.deaths; + totalRecoveries += countryDate.recoveries ? +countryDate.recoveries : 0; + } + }); + GlobalCounts.totalConfirmed = totalConfirmed; + GlobalCounts.totalDeaths = totalDeaths; + GlobalCounts.totalRecoveries = totalRecoveries; + GlobalCounts.totalActive = totalConfirmed - totalRecoveries - totalDeaths; + GlobalCounts.set = true; +} + +function updatePolygonsData() { + const date = dates.length - 1; + for (let x = 0; x < featureCollection.length; x++) { + const country = featureCollection[x].properties.NAME; + if (countries[country]) { + featureCollection[x].covidData = { + confirmed: countries[country][dates[date]].confirmed, + deaths: countries[country][dates[date]].deaths, + recoveries: countries[country][dates[date]].recoveries, + }; + } else { + featureCollection[x].covidData = { + confirmed: 0, + deaths: 0, + recoveries: 0, + }; + } + } + + const maxVal = Math.max(...featureCollection.map(getVal)); + colorScale.domain([0, maxVal]); + world.polygonsData(featureCollection); +} + +async function updatePointOfView() { + // Get coordinates + try { + const { latitude, longitude } = await getCoordinates(); + + world.pointOfView( + { + lat: latitude, + lng: longitude, + }, + 1000 + ); + } catch (e) { + console.log("Unable to set point of view."); + } +} diff --git a/src/Spinner.css b/src/Spinner.css index 303996b..24dbb9b 100644 --- a/src/Spinner.css +++ b/src/Spinner.css @@ -13,7 +13,7 @@ .spinner { border: 16px solid rgba(0, 0, 0, 0.8); /* Light grey */ - border-top: 16px solid red; /* Blue */ + border-top: 16px solid rgb(253, 80, 0); /* Blue */ border-radius: 50%; width: 120px; height: 120px; diff --git a/src/assets/export.json b/src/assets/export.json deleted file mode 100644 index 9b8398b..0000000 --- a/src/assets/export.json +++ /dev/null @@ -1,1493 +0,0 @@ -[ - { - "Country": "Spain", - "Active Cases": "65,410", - "coordinates": [39.3262345, -4.8380649], - "activeCases": 65410, - "value": 363.8355981511 - }, - { - "Country": "Italy", - "Active Cases": "87,961", - "coordinates": [42.6384261, 12.674297], - "activeCases": 87961, - "value": 489.272940666 - }, - { - "Country": "UK", - "Active Cases": "179,779", - "coordinates": [54.7023545, -3.2765753], - "activeCases": 179779, - "value": 1000.0 - }, - { - "Country": "Russia", - "Active Cases": "164,933", - "coordinates": [64.6863136, 97.7453061], - "activeCases": 164933, - "value": 917.4208333565 - }, - { - "Country": "France", - "Active Cases": "94,067", - "coordinates": [46.603354, 1.8883335], - "activeCases": 94067, - "value": 523.2368630374 - }, - { - "Country": "Germany", - "Active Cases": "19,778", - "coordinates": [51.0834196, 10.4234469], - "activeCases": 19778, - "value": 110.0128491092 - }, - { - "Country": "Brazil", - "Active Cases": "77,580", - "coordinates": [-10.3333333, -53.2], - "activeCases": 77580, - "value": 431.5298227268 - }, - { - "Country": "Turkey", - "Active Cases": "45,484", - "coordinates": [38.9597594, 34.9249653], - "activeCases": 45484, - "value": 252.9995160725 - }, - { - "Country": "Iran", - "Active Cases": "14,313", - "coordinates": [32.6475314, 54.5643516], - "activeCases": 14313, - "value": 79.6144154768 - }, - { - "Country": "Canada", - "Active Cases": "31,459", - "coordinates": [61.0666922, -107.9917071], - "activeCases": 31459, - "value": 174.987067455 - }, - { - "Country": "Peru", - "Active Cases": "41,121", - "coordinates": [-6.8699697, -75.0458515], - "activeCases": 41121, - "value": 228.7308306309 - }, - { - "Country": "India", - "Active Cases": "39,882", - "coordinates": [22.3511148, 78.6677428], - "activeCases": 39882, - "value": 221.8390357049 - }, - { - "Country": "Belgium", - "Active Cases": "30,289", - "coordinates": [50.6402809, 4.6667145], - "activeCases": 30289, - "value": 168.4790770891 - }, - { - "Country": "Netherlands", - "Active Cases": "36,484", - "coordinates": [52.5001698, 5.7480821], - "activeCases": 36484, - "value": 202.9380517191 - }, - { - "Country": "Saudi Arabia", - "Active Cases": "26,083", - "coordinates": [25.6242618, 42.3528328], - "activeCases": 26083, - "value": 145.0836860812 - }, - { - "Country": "Mexico", - "Active Cases": "8,048", - "coordinates": [19.4326296, -99.1331785], - "activeCases": 8048, - "value": 44.7660739018 - }, - { - "Country": "Switzerland", - "Active Cases": "2,284", - "coordinates": [46.7985624, 8.2319736], - "activeCases": 2284, - "value": 12.7044871759 - }, - { - "Country": "Ecuador", - "Active Cases": "23,681", - "coordinates": [-1.3397668, -79.3666965], - "activeCases": 23681, - "value": 131.7228374838 - }, - { - "Country": "Pakistan", - "Active Cases": "19,100", - "coordinates": [30.3308401, 71.247499], - "activeCases": 19100, - "value": 106.2415521279 - }, - { - "Country": "Portugal", - "Active Cases": "23,732", - "coordinates": [40.0332629, -7.8896263], - "activeCases": 23732, - "value": 132.0065191151 - }, - { - "Country": "Chile", - "Active Cases": "13,518", - "coordinates": [-31.7613365, -71.3187697], - "activeCases": 13518, - "value": 75.1923194589 - }, - { - "Country": "Sweden", - "Active Cases": "17,119", - "coordinates": [59.6749712, 14.5208584], - "activeCases": 17119, - "value": 95.2224675852 - }, - { - "Country": "Ireland", - "Active Cases": "4,002", - "coordinates": [52.865196, -7.9794599], - "activeCases": 4002, - "value": 22.2606644825 - }, - { - "Country": "Singapore", - "Active Cases": "20,400", - "coordinates": [1.340863, 103.8303918], - "activeCases": 20400, - "value": 113.4726525345 - }, - { - "Country": "Belarus", - "Active Cases": "15,496", - "coordinates": [53.4250605, 27.6971358], - "activeCases": 15496, - "value": 86.1947168468 - }, - { - "Country": "Qatar", - "Active Cases": "17,819", - "coordinates": [25.3336984, 51.2295295], - "activeCases": 17819, - "value": 99.1161370349 - }, - { - "Country": "UAE", - "Active Cases": "12,782", - "coordinates": [49.4871968, 31.2718321], - "activeCases": 12782, - "value": 71.0984041518 - }, - { - "Country": "Israel", - "Active Cases": "4,886", - "coordinates": [31.5313113, 34.8667654], - "activeCases": 4886, - "value": 27.177812759 - }, - { - "Country": "Austria", - "Active Cases": "1,290", - "coordinates": [47.2000338, 13.199959], - "activeCases": 1290, - "value": 7.1754765573 - }, - { - "Country": "Japan", - "Active Cases": "9,839", - "coordinates": [36.5748441, 139.2394179], - "activeCases": 9839, - "value": 54.7283053082 - }, - { - "Country": "Poland", - "Active Cases": "9,296", - "coordinates": [52.215933, 19.134422], - "activeCases": 9296, - "value": 51.7079302922 - }, - { - "Country": "Romania", - "Active Cases": "7,465", - "coordinates": [45.9852129, 24.6859225], - "activeCases": 7465, - "value": 41.5232034887 - }, - { - "Country": "Ukraine", - "Active Cases": "11,425", - "coordinates": [49.4871968, 31.2718321], - "activeCases": 11425, - "value": 63.5502478042 - }, - { - "Country": "Bangladesh", - "Active Cases": "11,142", - "coordinates": [24.4768783, 90.2932426], - "activeCases": 11142, - "value": 61.9760928696 - }, - { - "Country": "Indonesia", - "Active Cases": "10,079", - "coordinates": [-2.4833826, 117.8902853], - "activeCases": 10079, - "value": 56.0632776909 - }, - { - "Country": "S. Korea", - "Active Cases": "1,016", - "coordinates": [36.638392, 127.6961188], - "activeCases": 1016, - "value": 5.651383087 - }, - { - "Country": "Philippines", - "Active Cases": "8,064", - "coordinates": [12.7503486, 122.7312101], - "activeCases": 8064, - "value": 44.8550720607 - }, - { - "Country": "Denmark", - "Active Cases": "1,769", - "coordinates": [55.670249, 10.3333283], - "activeCases": 1769, - "value": 9.8398589379 - }, - { - "Country": "Colombia", - "Active Cases": "7,199", - "coordinates": [2.8894434, -73.783892], - "activeCases": 7199, - "value": 40.0436090978 - }, - { - "Country": "Serbia", - "Active Cases": "7,281", - "coordinates": [44.0243228, 21.0765743], - "activeCases": 7281, - "value": 40.4997246619 - }, - { - "Country": "Dominican Republic", - "Active Cases": "6,710", - "coordinates": [19.0974031, -70.3028026], - "activeCases": 6710, - "value": 37.323602868 - }, - { - "Country": "South Africa", - "Active Cases": "5,564", - "coordinates": [-28.8166236, 24.991639], - "activeCases": 5564, - "value": 30.9491097403 - }, - { - "Country": "Egypt", - "Active Cases": "6,028", - "coordinates": [26.2540493, 29.2675469], - "activeCases": 6028, - "value": 33.530056347 - }, - { - "Country": "Czechia", - "Active Cases": "3,391", - "coordinates": [49.8167003, 15.4749544], - "activeCases": 3391, - "value": 18.8620472914 - }, - { - "Country": "Panama", - "Active Cases": "6,953", - "coordinates": [8.559559, -81.1308434], - "activeCases": 6953, - "value": 38.6752624055 - }, - { - "Country": "Norway", - "Active Cases": "7,820", - "coordinates": [64.5731537, 11.5280364], - "activeCases": 7820, - "value": 43.4978501382 - }, - { - "Country": "Kuwait", - "Active Cases": "4,695", - "coordinates": [29.2733964, 47.4979476], - "activeCases": 4695, - "value": 26.1153972377 - }, - { - "Country": "Australia", - "Active Cases": "706", - "coordinates": [-24.7761086, 134.755], - "activeCases": 706, - "value": 3.9270437593 - }, - { - "Country": "Malaysia", - "Active Cases": "1,564", - "coordinates": [4.5693754, 102.2656823], - "activeCases": 1564, - "value": 8.6995700276 - }, - { - "Country": "Finland", - "Active Cases": "1,478", - "coordinates": [63.2467777, 25.9209164], - "activeCases": 1478, - "value": 8.2212049238 - }, - { - "Country": "Morocco", - "Active Cases": "3,201", - "coordinates": [31.1728205, -7.3362482], - "activeCases": 3201, - "value": 17.805194155 - }, - { - "Country": "Argentina", - "Active Cases": "3,659", - "coordinates": [-34.9964963, -64.9672817], - "activeCases": 3659, - "value": 20.3527664521 - }, - { - "Country": "Algeria", - "Active Cases": "2,414", - "coordinates": [28.0000272, 2.9999825], - "activeCases": 2414, - "value": 13.4275972166 - }, - { - "Country": "Kazakhstan", - "Active Cases": "3,260", - "coordinates": [47.2286086, 65.2093197], - "activeCases": 3260, - "value": 18.1333748658 - }, - { - "Country": "Moldova", - "Active Cases": "2,752", - "coordinates": [47.2879608, 28.5670941], - "activeCases": 2752, - "value": 15.3076833223 - }, - { - "Country": "Bahrain", - "Active Cases": "2,408", - "coordinates": [26.1551249, 50.5344606], - "activeCases": 2408, - "value": 13.394222907 - }, - { - "Country": "Ghana", - "Active Cases": "3,671", - "coordinates": [8.0300284, -1.0800271], - "activeCases": 3671, - "value": 20.4195150713 - }, - { - "Country": "Nigeria", - "Active Cases": "3,116", - "coordinates": [9.6000359, 7.9999721], - "activeCases": 3116, - "value": 17.3323914362 - }, - { - "Country": "Luxembourg", - "Active Cases": "245", - "coordinates": [49.8158683, 6.1296751], - "activeCases": 245, - "value": 1.3627843074 - }, - { - "Country": "Afghanistan", - "Active Cases": "3,197", - "coordinates": [33.7680065, 66.2385139], - "activeCases": 3197, - "value": 17.7829446153 - }, - { - "Country": "Oman", - "Active Cases": "2,139", - "coordinates": [21.0000287, 57.0036901], - "activeCases": 2139, - "value": 11.8979413613 - }, - { - "Country": "Hungary", - "Active Cases": "1,904", - "coordinates": [47.1817585, 19.5060937], - "activeCases": 1904, - "value": 10.5907809032 - }, - { - "Country": "Armenia", - "Active Cases": "1,864", - "coordinates": [40.7696272, 44.6736646], - "activeCases": 1864, - "value": 10.3682855061 - }, - { - "Country": "Thailand", - "Active Cases": "161", - "coordinates": [14.8971921, 100.83273], - "activeCases": 161, - "value": 0.8955439734 - }, - { - "Country": "Greece", - "Active Cases": "1,167", - "coordinates": [38.9953683, 21.9877132], - "activeCases": 1167, - "value": 6.4913032112 - }, - { - "Country": "Iraq", - "Active Cases": "838", - "coordinates": [33.0955793, 44.1749775], - "activeCases": 838, - "value": 4.6612785698 - }, - { - "Country": "Uzbekistan", - "Active Cases": "551", - "coordinates": [41.32373, 63.9528098], - "activeCases": 551, - "value": 3.0648740954 - }, - { - "Country": "Azerbaijan", - "Active Cases": "675", - "coordinates": [40.3936294, 47.7872508], - "activeCases": 675, - "value": 3.7546098265 - }, - { - "Country": "Cameroon", - "Active Cases": "1,157", - "coordinates": [4.6125522, 13.1535811], - "activeCases": 1157, - "value": 6.4356793619 - }, - { - "Country": "Bolivia", - "Active Cases": "1,923", - "coordinates": [-17.0568696, -64.9912286], - "activeCases": 1923, - "value": 10.6964662169 - }, - { - "Country": "Croatia", - "Active Cases": "386", - "coordinates": [45.5643442, 17.0118954], - "activeCases": 386, - "value": 2.1470805823 - }, - { - "Country": "Bosnia and Herzegovina", - "Active Cases": "1,012", - "coordinates": [44.3053476, 17.5961467], - "activeCases": 1012, - "value": 5.6291335473 - }, - { - "Country": "Guinea", - "Active Cases": "1,335", - "coordinates": [10.7226226, -10.7083587], - "activeCases": 1335, - "value": 7.4257838791 - }, - { - "Country": "Bulgaria", - "Active Cases": "1,401", - "coordinates": [42.6073975, 25.4856617], - "activeCases": 1401, - "value": 7.7929012844 - }, - { - "Country": "Iceland", - "Active Cases": "26", - "coordinates": [64.9841821, -18.1059013], - "activeCases": 26, - "value": 0.1446220081 - }, - { - "Country": "Honduras", - "Active Cases": "1,472", - "coordinates": [15.2572432, -86.0755145], - "activeCases": 1472, - "value": 8.1878306143 - }, - { - "Country": "Cuba", - "Active Cases": "589", - "coordinates": [23.0131338, -80.8328748], - "activeCases": 589, - "value": 3.2762447227 - }, - { - "Country": "Estonia", - "Active Cases": "926", - "coordinates": [58.7523778, 25.3319078], - "activeCases": 926, - "value": 5.1507684435 - }, - { - "Country": "Ivory Coast", - "Active Cases": "828", - "coordinates": [7.9897371, -5.5679458], - "activeCases": 828, - "value": 4.6056547205 - }, - { - "Country": "North Macedonia", - "Active Cases": "397", - "coordinates": [41.6171214, 21.7168387], - "activeCases": 397, - "value": 2.2082668165 - }, - { - "Country": "Senegal", - "Active Cases": "927", - "coordinates": [14.4750607, -14.4529612], - "activeCases": 927, - "value": 5.1563308284 - }, - { - "Country": "New Zealand", - "Active Cases": "103", - "coordinates": [-41.5000831, 172.8344077], - "activeCases": 103, - "value": 0.5729256476 - }, - { - "Country": "Slovakia", - "Active Cases": "510", - "coordinates": [48.7411522, 19.4528646], - "activeCases": 510, - "value": 2.8368163134 - }, - { - "Country": "Slovenia", - "Active Cases": "1,098", - "coordinates": [45.8133113, 14.4808369], - "activeCases": 1098, - "value": 6.1074986511 - }, - { - "Country": "Lithuania", - "Active Cases": "567", - "coordinates": [55.3500003, 23.7499997], - "activeCases": 567, - "value": 3.1538722543 - }, - { - "Country": "Djibouti", - "Active Cases": "308", - "coordinates": [11.8145966, 42.8453061], - "activeCases": 308, - "value": 1.7132145579 - }, - { - "Country": "Sudan", - "Active Cases": "950", - "coordinates": [14.5844444, 29.4917691], - "activeCases": 950, - "value": 5.2842656818 - }, - { - "Country": "Hong Kong", - "Active Cases": "74", - "coordinates": [22.2793278, 114.1628131], - "activeCases": 74, - "value": 0.4116164847 - }, - { - "Country": "Tunisia", - "Active Cases": "347", - "coordinates": [33.8439408, 9.400138], - "activeCases": 347, - "value": 1.9301475701 - }, - { - "Country": "DRC", - "Active Cases": "768", - "coordinates": [-4.0324901, 22.4574787], - "activeCases": 768, - "value": 4.2719116248 - }, - { - "Country": "Kyrgyzstan", - "Active Cases": "261", - "coordinates": [41.5089324, 74.724091], - "activeCases": 261, - "value": 1.4517824663 - }, - { - "Country": "Latvia", - "Active Cases": "448", - "coordinates": [56.8406494, 24.7537645], - "activeCases": 448, - "value": 2.4919484478 - }, - { - "Country": "Somalia", - "Active Cases": "778", - "coordinates": [8.3676771, 49.083416], - "activeCases": 778, - "value": 4.3275354741 - }, - { - "Country": "Guatemala", - "Active Cases": "775", - "coordinates": [15.6356088, -89.8988087], - "activeCases": 775, - "value": 4.3108483193 - }, - { - "Country": "Cyprus", - "Active Cases": "476", - "coordinates": [34.9823018, 33.1451285], - "activeCases": 476, - "value": 2.6476952258 - }, - { - "Country": "Mayotte", - "Active Cases": "492", - "coordinates": [-12.823048, 45.1520755], - "activeCases": 492, - "value": 2.7366933847 - }, - { - "Country": "Albania", - "Active Cases": "199", - "coordinates": [41.000028, 19.9999619], - "activeCases": 199, - "value": 1.1069146007 - }, - { - "Country": "Sri Lanka", - "Active Cases": "571", - "coordinates": [7.5554942, 80.7137847], - "activeCases": 571, - "value": 3.176121794 - }, - { - "Country": "Lebanon", - "Active Cases": "547", - "coordinates": [33.8750629, 35.843409], - "activeCases": 547, - "value": 3.0426245557 - }, - { - "Country": "Niger", - "Active Cases": "151", - "coordinates": [17.7356214, 9.3238432], - "activeCases": 151, - "value": 0.8399201242 - }, - { - "Country": "El Salvador", - "Active Cases": "492", - "coordinates": [13.8000382, -88.9140683], - "activeCases": 492, - "value": 2.7366933847 - }, - { - "Country": "Costa Rica", - "Active Cases": "306", - "coordinates": [10.2735633, -84.0739102], - "activeCases": 306, - "value": 1.702089788 - }, - { - "Country": "Andorra", - "Active Cases": "168", - "coordinates": [42.5407167, 1.5732033], - "activeCases": 168, - "value": 0.9344806679 - }, - { - "Country": "Burkina Faso", - "Active Cases": "130", - "coordinates": [12.0753083, -1.6880314], - "activeCases": 130, - "value": 0.7231100407 - }, - { - "Country": "Maldives", - "Active Cases": "721", - "coordinates": [4.7064352, 73.3287853], - "activeCases": 721, - "value": 4.0104795332 - }, - { - "Country": "Diamond Princess", - "Active Cases": "54", - "coordinates": [53.8953584, 27.5554078], - "activeCases": 54, - "value": 0.3003687861 - }, - { - "Country": "Uruguay", - "Active Cases": "170", - "coordinates": [-32.8755548, -56.0201525], - "activeCases": 170, - "value": 0.9456054378 - }, - { - "Country": "Mali", - "Active Cases": "348", - "coordinates": [16.3700359, -2.2900239], - "activeCases": 348, - "value": 1.935709955 - }, - { - "Country": "Georgia", - "Active Cases": "319", - "coordinates": [41.6809707, 44.0287382], - "activeCases": 319, - "value": 1.7744007921 - }, - { - "Country": "San Marino", - "Active Cases": "468", - "coordinates": [43.9458623, 12.458306], - "activeCases": 468, - "value": 2.6031961464 - }, - { - "Country": "Kenya", - "Active Cases": "390", - "coordinates": [1.4419683, 38.4313975], - "activeCases": 390, - "value": 2.169330122 - }, - { - "Country": "Gabon", - "Active Cases": "502", - "coordinates": [-0.8999695, 11.6899699], - "activeCases": 502, - "value": 2.7923172339 - }, - { - "Country": "Guinea-Bissau", - "Active Cases": "567", - "coordinates": [12.100035, -14.9000214], - "activeCases": 567, - "value": 3.1538722543 - }, - { - "Country": "Paraguay", - "Active Cases": "401", - "coordinates": [-23.3165935, -58.1693445], - "activeCases": 401, - "value": 2.2305163562 - }, - { - "Country": "Channel Islands", - "Active Cases": "57", - "coordinates": [60.6167942, -145.7996671], - "activeCases": 57, - "value": 0.3170559409 - }, - { - "Country": "Tajikistan", - "Active Cases": "510", - "coordinates": [38.6281733, 70.8156541], - "activeCases": 510, - "value": 2.8368163134 - }, - { - "Country": "Tanzania", - "Active Cases": "305", - "coordinates": [-6.5247123, 35.7878438], - "activeCases": 305, - "value": 1.6965274031 - }, - { - "Country": "Jordan", - "Active Cases": "114", - "coordinates": [31.1667049, 36.941628], - "activeCases": 114, - "value": 0.6341118818 - }, - { - "Country": "Jamaica", - "Active Cases": "419", - "coordinates": [18.1152958, -77.1598455], - "activeCases": 419, - "value": 2.3306392849 - }, - { - "Country": "Malta", - "Active Cases": "65", - "coordinates": [35.8885993, 14.4476911], - "activeCases": 65, - "value": 0.3615550203 - }, - { - "Country": "Taiwan", - "Active Cases": "73", - "coordinates": [23.9739374, 120.9820179], - "activeCases": 73, - "value": 0.4060540998 - }, - { - "Country": "Equatorial Guinea", - "Active Cases": "422", - "coordinates": [1.613172, 10.5170357], - "activeCases": 422, - "value": 2.3473264397 - }, - { - "Country": "R\u00e9union", - "Active Cases": "72", - "coordinates": [-21.130738, 55.5364801], - "activeCases": 72, - "value": 0.4004917148 - }, - { - "Country": "Venezuela", - "Active Cases": "188", - "coordinates": [8.0018709, -66.1109318], - "activeCases": 188, - "value": 1.0457283665 - }, - { - "Country": "Palestine", - "Active Cases": "145", - "coordinates": [31.9469665, 35.2738655], - "activeCases": 145, - "value": 0.8065458146 - }, - { - "Country": "Mauritius", - "Active Cases": "2", - "coordinates": [-20.2759451, 57.5703566], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "Isle of Man", - "Active Cases": "35", - "coordinates": [54.2358167, -4.5145987], - "activeCases": 35, - "value": 0.1946834725 - }, - { - "Country": "Montenegro", - "Active Cases": "49", - "coordinates": [42.9868853, 19.5180992], - "activeCases": 49, - "value": 0.2725568615 - }, - { - "Country": "Vietnam", - "Active Cases": "47", - "coordinates": [13.2904027, 108.4265113], - "activeCases": 47, - "value": 0.2614320916 - }, - { - "Country": "Congo", - "Active Cases": "231", - "coordinates": [-0.7264327, 15.6419155], - "activeCases": 231, - "value": 1.2849109184 - }, - { - "Country": "Rwanda", - "Active Cases": "137", - "coordinates": [-1.9646631, 30.0644358], - "activeCases": 137, - "value": 0.7620467352 - }, - { - "Country": "Chad", - "Active Cases": "182", - "coordinates": [15.6134137, 19.0156172], - "activeCases": 182, - "value": 1.0123540569 - }, - { - "Country": "Sierra Leone", - "Active Cases": "186", - "coordinates": [8.6400349, -11.8400269], - "activeCases": 186, - "value": 1.0346035966 - }, - { - "Country": "Benin", - "Active Cases": "178", - "coordinates": [9.5293472, 2.2584408], - "activeCases": 178, - "value": 0.9901045172 - }, - { - "Country": "Cabo Verde", - "Active Cases": "184", - "coordinates": [16.0000552, -24.0083947], - "activeCases": 184, - "value": 1.0234788268 - }, - { - "Country": "Sao Tome and Principe", - "Active Cases": "199", - "coordinates": [0.8875498, 6.9648718], - "activeCases": 199, - "value": 1.1069146007 - }, - { - "Country": "Liberia", - "Active Cases": "100", - "coordinates": [5.7499721, -9.3658524], - "activeCases": 100, - "value": 0.5562384928 - }, - { - "Country": "Ethiopia", - "Active Cases": "95", - "coordinates": [10.2116702, 38.6521203], - "activeCases": 95, - "value": 0.5284265682 - }, - { - "Country": "Madagascar", - "Active Cases": "92", - "coordinates": [-18.9249604, 46.4416422], - "activeCases": 92, - "value": 0.5117394134 - }, - { - "Country": "Faeroe Islands", - "Active Cases": "0", - "coordinates": [62.1985004, -6.8174124], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "Martinique", - "Active Cases": "89", - "coordinates": [14.6367927, -61.0158269], - "activeCases": 89, - "value": 0.4950522586 - }, - { - "Country": "Myanmar", - "Active Cases": "104", - "coordinates": [17.1750495, 95.9999652], - "activeCases": 104, - "value": 0.5784880325 - }, - { - "Country": "Zambia", - "Active Cases": "52", - "coordinates": [-14.5186239, 27.5599164], - "activeCases": 52, - "value": 0.2892440163 - }, - { - "Country": "Eswatini", - "Active Cases": "145", - "coordinates": [-26.5624806, 31.3991317], - "activeCases": 145, - "value": 0.8065458146 - }, - { - "Country": "Guadeloupe", - "Active Cases": "37", - "coordinates": [16.2490067, -61.5650444], - "activeCases": 37, - "value": 0.2058082423 - }, - { - "Country": "Haiti", - "Active Cases": "117", - "coordinates": [19.1399952, -72.3570972], - "activeCases": 117, - "value": 0.6507990366 - }, - { - "Country": "Gibraltar", - "Active Cases": "4", - "coordinates": [36.106747, -5.3352772], - "activeCases": 4, - "value": 0.0222495397 - }, - { - "Country": "Togo", - "Active Cases": "50", - "coordinates": [8.7800265, 1.0199765], - "activeCases": 50, - "value": 0.2781192464 - }, - { - "Country": "CAR", - "Active Cases": "133", - "coordinates": [40.5250362, -81.0927234], - "activeCases": 133, - "value": 0.7397971954 - }, - { - "Country": "Brunei ", - "Active Cases": "8", - "coordinates": [4.4137155, 114.5653908], - "activeCases": 8, - "value": 0.0444990794 - }, - { - "Country": "French Guiana", - "Active Cases": "21", - "coordinates": [4.0039882, -52.999998], - "activeCases": 21, - "value": 0.1168100835 - }, - { - "Country": "Cambodia", - "Active Cases": "2", - "coordinates": [13.5066394, 104.869423], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "South Sudan", - "Active Cases": "118", - "coordinates": [7.8699431, 29.6667897], - "activeCases": 118, - "value": 0.6563614215 - }, - { - "Country": "Bermuda", - "Active Cases": "50", - "coordinates": [32.3018217, -64.7603583], - "activeCases": 50, - "value": 0.2781192464 - }, - { - "Country": "Trinidad and Tobago", - "Active Cases": "5", - "coordinates": [10.8677845, -60.9821067], - "activeCases": 5, - "value": 0.0278119246 - }, - { - "Country": "Uganda", - "Active Cases": "59", - "coordinates": [1.5333554, 32.2166578], - "activeCases": 59, - "value": 0.3281807108 - }, - { - "Country": "Nepal", - "Active Cases": "79", - "coordinates": [28.1083929, 84.0917139], - "activeCases": 79, - "value": 0.4394284093 - }, - { - "Country": "Aruba", - "Active Cases": "9", - "coordinates": [12.4902998, -69.9609842], - "activeCases": 9, - "value": 0.0500614644 - }, - { - "Country": "Monaco", - "Active Cases": "9", - "coordinates": [43.738449, 7.4242241], - "activeCases": 9, - "value": 0.0500614644 - }, - { - "Country": "Guyana", - "Active Cases": "49", - "coordinates": [4.8417097, -58.6416891], - "activeCases": 49, - "value": 0.2725568615 - }, - { - "Country": "Bahamas", - "Active Cases": "50", - "coordinates": [24.7736546, -78.0000547], - "activeCases": 50, - "value": 0.2781192464 - }, - { - "Country": "Barbados", - "Active Cases": "23", - "coordinates": [13.1500331, -59.5250305], - "activeCases": 23, - "value": 0.1279348533 - }, - { - "Country": "Liechtenstein", - "Active Cases": "26", - "coordinates": [47.1416307, 9.5531527], - "activeCases": 26, - "value": 0.1446220081 - }, - { - "Country": "Mozambique", - "Active Cases": "55", - "coordinates": [-19.302233, 34.9144977], - "activeCases": 55, - "value": 0.305931171 - }, - { - "Country": "Cayman Islands", - "Active Cases": "39", - "coordinates": [19.5417212, -80.5667132], - "activeCases": 39, - "value": 0.2169330122 - }, - { - "Country": "Sint Maarten", - "Active Cases": "18", - "coordinates": [52.7559345, 4.7505476], - "activeCases": 18, - "value": 0.1001229287 - }, - { - "Country": "Libya", - "Active Cases": "37", - "coordinates": [26.8234472, 18.1236723], - "activeCases": 37, - "value": 0.2058082423 - }, - { - "Country": "French Polynesia", - "Active Cases": "4", - "coordinates": [-16.0344249, -146.0490931], - "activeCases": 4, - "value": 0.0222495397 - }, - { - "Country": "Syria", - "Active Cases": "15", - "coordinates": [34.6401861, 39.0494106], - "activeCases": 15, - "value": 0.0834357739 - }, - { - "Country": "Macao", - "Active Cases": "5", - "coordinates": [22.1757605, 113.5514142], - "activeCases": 5, - "value": 0.0278119246 - }, - { - "Country": "Malawi", - "Active Cases": "26", - "coordinates": [-13.2687204, 33.9301963], - "activeCases": 26, - "value": 0.1446220081 - }, - { - "Country": "Angola", - "Active Cases": "30", - "coordinates": [-11.8775768, 17.5691241], - "activeCases": 30, - "value": 0.1668715478 - }, - { - "Country": "Mongolia", - "Active Cases": "28", - "coordinates": [46.8250388, 103.8499736], - "activeCases": 28, - "value": 0.155746778 - }, - { - "Country": "Eritrea", - "Active Cases": "2", - "coordinates": [15.9500319, 37.9999668], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "Saint Martin", - "Active Cases": "5", - "coordinates": [48.5683066, 6.7539988], - "activeCases": 5, - "value": 0.0278119246 - }, - { - "Country": "Yemen", - "Active Cases": "26", - "coordinates": [16.3471243, 47.8915271], - "activeCases": 26, - "value": 0.1446220081 - }, - { - "Country": "Zimbabwe", - "Active Cases": "21", - "coordinates": [-18.4554963, 29.7468414], - "activeCases": 21, - "value": 0.1168100835 - }, - { - "Country": "Antigua and Barbuda", - "Active Cases": "6", - "coordinates": [17.2234721, -61.9554608], - "activeCases": 6, - "value": 0.0333743096 - }, - { - "Country": "Timor-Leste", - "Active Cases": "3", - "coordinates": [-8.5151979, 125.8375756], - "activeCases": 3, - "value": 0.0166871548 - }, - { - "Country": "Botswana", - "Active Cases": "13", - "coordinates": [-23.1681782, 24.5928742], - "activeCases": 13, - "value": 0.0723110041 - }, - { - "Country": "Grenada", - "Active Cases": "8", - "coordinates": [12.1360374, -61.6904045], - "activeCases": 8, - "value": 0.0444990794 - }, - { - "Country": "Gambia", - "Active Cases": "10", - "coordinates": [13.470062, -15.4900464], - "activeCases": 10, - "value": 0.0556238493 - }, - { - "Country": "Laos", - "Active Cases": "10", - "coordinates": [20.0171109, 103.378253], - "activeCases": 10, - "value": 0.0556238493 - }, - { - "Country": "Belize", - "Active Cases": "0", - "coordinates": [16.8259793, -88.7600927], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "Fiji", - "Active Cases": "4", - "coordinates": [-18.1239696, 179.0122737], - "activeCases": 4, - "value": 0.0222495397 - }, - { - "Country": "New Caledonia", - "Active Cases": "0", - "coordinates": [-20.4542886, 164.5566058], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "Saint Lucia", - "Active Cases": "1", - "coordinates": [13.8250489, -60.975036], - "activeCases": 1, - "value": 0.0055623849 - }, - { - "Country": "St. Vincent Grenadines", - "Active Cases": "8", - "coordinates": [12.90447, -61.2765569], - "activeCases": 8, - "value": 0.0444990794 - }, - { - "Country": "Nicaragua", - "Active Cases": "4", - "coordinates": [12.6090157, -85.2936911], - "activeCases": 4, - "value": 0.0222495397 - }, - { - "Country": "Cura\u00e7ao", - "Active Cases": "1", - "coordinates": [12.1845, -68.9640875], - "activeCases": 1, - "value": 0.0055623849 - }, - { - "Country": "Dominica", - "Active Cases": "2", - "coordinates": [19.0974031, -70.3028026], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "Namibia", - "Active Cases": "6", - "coordinates": [-23.2335499, 17.3231107], - "activeCases": 6, - "value": 0.0333743096 - }, - { - "Country": "Burundi", - "Active Cases": "7", - "coordinates": [-3.3634357, 29.8870575], - "activeCases": 7, - "value": 0.0389366945 - }, - { - "Country": "Saint Kitts and Nevis", - "Active Cases": "2", - "coordinates": [17.250512, -62.6725973], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "Falkland Islands", - "Active Cases": "0", - "coordinates": [-51.9666424, -59.5500387], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "Turks and Caicos", - "Active Cases": "3", - "coordinates": [21.7214683, -71.6201783], - "activeCases": 3, - "value": 0.0166871548 - }, - { - "Country": "Vatican City", - "Active Cases": "10", - "coordinates": [41.9038149, 12.4531527], - "activeCases": 10, - "value": 0.0556238493 - }, - { - "Country": "Montserrat", - "Active Cases": "2", - "coordinates": [16.7417041, -62.1916844], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "Greenland", - "Active Cases": "0", - "coordinates": [77.6192349, -42.8125967], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "Seychelles", - "Active Cases": "3", - "coordinates": [-4.6574977, 55.4540146], - "activeCases": 3, - "value": 0.0166871548 - }, - { - "Country": "Suriname", - "Active Cases": "0", - "coordinates": [4.1413025, -56.0771187], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "MS Zaandam", - "Active Cases": "7", - "coordinates": [52.4387696, 4.8185293], - "activeCases": 7, - "value": 0.0389366945 - }, - { - "Country": "Comoros", - "Active Cases": "7", - "coordinates": [-12.2045176, 44.2832964], - "activeCases": 7, - "value": 0.0389366945 - }, - { - "Country": "Mauritania", - "Active Cases": "1", - "coordinates": [20.2540382, -9.2399263], - "activeCases": 1, - "value": 0.0055623849 - }, - { - "Country": "Papua New Guinea", - "Active Cases": "0", - "coordinates": [-5.6816069, 144.2489081], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "British Virgin Islands", - "Active Cases": "2", - "coordinates": [18.4024395, -64.5661642], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "Bhutan", - "Active Cases": "2", - "coordinates": [27.549511, 90.5119273], - "activeCases": 2, - "value": 0.0111247699 - }, - { - "Country": "Caribbean Netherlands", - "Active Cases": "6", - "coordinates": [17.566, -63.1432387], - "activeCases": 6, - "value": 0.0333743096 - }, - { - "Country": "St. Barth", - "Active Cases": "0", - "coordinates": [17.9036287, -62.8115688], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "Western Sahara", - "Active Cases": "1", - "coordinates": [24.1188663, -13.9508923], - "activeCases": 1, - "value": 0.0055623849 - }, - { - "Country": "Anguilla", - "Active Cases": "0", - "coordinates": [18.1954947, -63.0750234], - "activeCases": 0, - "value": 0.0 - }, - { - "Country": "Saint Pierre Miquelon", - "Active Cases": "1", - "coordinates": [46.7832469, -56.1951589], - "activeCases": 1, - "value": 0.0055623849 - }, - { - "Country": "China", - "Active Cases": "208", - "coordinates": [35.000074, 104.999927], - "activeCases": 208, - "value": 1.1569760651 - } -] diff --git a/src/assets/global.json b/src/assets/global.json deleted file mode 100644 index f27f5c8..0000000 --- a/src/assets/global.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "totalCount": 2406984 -} diff --git a/src/assets/usExport.json b/src/assets/usExport.json deleted file mode 100644 index 571f2bf..0000000 --- a/src/assets/usExport.json +++ /dev/null @@ -1,387 +0,0 @@ -[ - { - "Country": "New York ", - "Active Cases": "260,189 ", - "coordinates": [40.7127281, -74.0060152], - "activeCases": 260189, - "value": 1000.0 - }, - { - "Country": "New Jersey ", - "Active Cases": "127,943 ", - "coordinates": [40.0757384, -74.4041622], - "activeCases": 127943, - "value": 491.731010919 - }, - { - "Country": "Massachusetts ", - "Active Cases": "62,513 ", - "coordinates": [42.3788774, -72.032366], - "activeCases": 62513, - "value": 240.2599648717 - }, - { - "Country": "Illinois ", - "Active Cases": "69,874 ", - "coordinates": [40.0796606, -89.4337288], - "activeCases": 69874, - "value": 268.550937972 - }, - { - "Country": "California ", - "Active Cases": "51,833 ", - "coordinates": [36.7014631, -118.7559974], - "activeCases": 51833, - "value": 199.2128798681 - }, - { - "Country": "Pennsylvania ", - "Active Cases": "53,345 ", - "coordinates": [40.9699889, -77.7278831], - "activeCases": 53345, - "value": 205.0240402169 - }, - { - "Country": "Michigan ", - "Active Cases": "26,259 ", - "coordinates": [43.6211955, -84.6824346], - "activeCases": 26259, - "value": 100.9227907406 - }, - { - "Country": "Florida ", - "Active Cases": "37,599 ", - "coordinates": [27.7567667, -81.4639835], - "activeCases": 37599, - "value": 144.5064933568 - }, - { - "Country": "Texas ", - "Active Cases": "17,177 ", - "coordinates": [31.8160381, -99.5120986], - "activeCases": 17177, - "value": 66.0173950474 - }, - { - "Country": "Georgia ", - "Active Cases": "30,783 ", - "coordinates": [41.6809707, 44.0287382], - "activeCases": 30783, - "value": 118.3101514668 - }, - { - "Country": "Connecticut ", - "Active Cases": "29,472 ", - "coordinates": [41.6500201, -72.7342163], - "activeCases": 29472, - "value": 113.2715064818 - }, - { - "Country": "Maryland ", - "Active Cases": "27,879 ", - "coordinates": [39.5162234, -76.9382069], - "activeCases": 27879, - "value": 107.1490339715 - }, - { - "Country": "Louisiana ", - "Active Cases": " 8,834 ", - "coordinates": [30.8703881, -92.007126], - "activeCases": 8834, - "value": 33.9522424084 - }, - { - "Country": "Indiana ", - "Active Cases": "20,683 ", - "coordinates": [40.3270127, -86.1746933], - "activeCases": 20683, - "value": 79.4922152743 - }, - { - "Country": "Ohio ", - "Active Cases": "21,918 ", - "coordinates": [40.2253569, -82.6881395], - "activeCases": 21918, - "value": 84.2387648978 - }, - { - "Country": "Virginia ", - "Active Cases": "19,245 ", - "coordinates": [37.1232245, -78.4927721], - "activeCases": 19245, - "value": 73.9654635669 - }, - { - "Country": "Colorado ", - "Active Cases": "17,308 ", - "coordinates": [38.7251776, -105.6077167], - "activeCases": 17308, - "value": 66.5208752099 - }, - { - "Country": "Washington ", - "Active Cases": "13,535 ", - "coordinates": [38.8949855, -77.0365708], - "activeCases": 13535, - "value": 52.019877858 - }, - { - "Country": "North Carolina ", - "Active Cases": "12,107 ", - "coordinates": [35.6729639, -79.0392919], - "activeCases": 12107, - "value": 46.5315597508 - }, - { - "Country": "Tennessee ", - "Active Cases": "7,189 ", - "coordinates": [35.7730076, -86.2820081], - "activeCases": 7189, - "value": 27.629915177 - }, - { - "Country": "Iowa ", - "Active Cases": "6,734 ", - "coordinates": [41.9216734, -93.3122705], - "activeCases": 6734, - "value": 25.8811863684 - }, - { - "Country": "Rhode Island ", - "Active Cases": "9,841 ", - "coordinates": [41.7962409, -71.5992372], - "activeCases": 9841, - "value": 37.8225059476 - }, - { - "Country": "Arizona ", - "Active Cases": "10,358 ", - "coordinates": [34.395342, -111.7632755], - "activeCases": 10358, - "value": 39.8095230775 - }, - { - "Country": "Minnesota ", - "Active Cases": "3,910 ", - "coordinates": [45.9896587, -94.6113288], - "activeCases": 3910, - "value": 15.0275376745 - }, - { - "Country": "Missouri ", - "Active Cases": "7,189 ", - "coordinates": [38.7604815, -92.5617875], - "activeCases": 7189, - "value": 27.629915177 - }, - { - "Country": "Wisconsin ", - "Active Cases": "4,858 ", - "coordinates": [44.4308975, -89.6884637], - "activeCases": 4858, - "value": 18.6710429726 - }, - { - "Country": "Alabama ", - "Active Cases": "9,078 ", - "coordinates": [33.2588817, -86.8295337], - "activeCases": 9078, - "value": 34.8900222531 - }, - { - "Country": "Mississippi ", - "Active Cases": "4,536 ", - "coordinates": [32.9715645, -89.7348497], - "activeCases": 4536, - "value": 17.4334810465 - }, - { - "Country": "Nebraska ", - "Active Cases": "7,717 ", - "coordinates": [41.7370229, -99.5873816], - "activeCases": 7717, - "value": 29.6592092671 - }, - { - "Country": "South Carolina ", - "Active Cases": "2,166 ", - "coordinates": [33.6874388, -80.4363743], - "activeCases": 2166, - "value": 8.3247178013 - }, - { - "Country": "Kansas ", - "Active Cases": "4,934 ", - "coordinates": [38.27312, -98.5821872], - "activeCases": 4934, - "value": 18.9631383341 - }, - { - "Country": "Kentucky ", - "Active Cases": "3,724 ", - "coordinates": [37.5726028, -85.1551411], - "activeCases": 3724, - "value": 14.312672711 - }, - { - "Country": "Delaware ", - "Active Cases": "3,828 ", - "coordinates": [38.6920451, -75.4013315], - "activeCases": 3828, - "value": 14.712382153 - }, - { - "Country": "District Of Columbia ", - "Active Cases": "4,912 ", - "coordinates": [38.8936613, -76.9878833], - "activeCases": 4912, - "value": 18.8785844136 - }, - { - "Country": "Nevada ", - "Active Cases": "1,530 ", - "coordinates": [39.5158825, -116.8537227], - "activeCases": 1530, - "value": 5.8803408292 - }, - { - "Country": "Utah ", - "Active Cases": "3,673 ", - "coordinates": [39.4225192, -111.7143584], - "activeCases": 3673, - "value": 14.11666135 - }, - { - "Country": "New Mexico ", - "Active Cases": "3,367 ", - "coordinates": [34.5708167, -105.993007], - "activeCases": 3367, - "value": 12.9405931842 - }, - { - "Country": "Oklahoma ", - "Active Cases": " 1,156 ", - "coordinates": [34.9550817, -97.2684063], - "activeCases": 1156, - "value": 4.442924182 - }, - { - "Country": "Arkansas ", - "Active Cases": "691 ", - "coordinates": [35.2048883, -92.4479108], - "activeCases": 691, - "value": 2.6557617732 - }, - { - "Country": "South Dakota ", - "Active Cases": "1,044 ", - "coordinates": [44.6471761, -100.348761], - "activeCases": 1044, - "value": 4.0124678599 - }, - { - "Country": "Oregon ", - "Active Cases": "1,819 ", - "coordinates": [43.9792797, -120.737257], - "activeCases": 1819, - "value": 6.9910718747 - }, - { - "Country": "New Hampshire ", - "Active Cases": "1,616 ", - "coordinates": [43.4849133, -71.6553992], - "activeCases": 1616, - "value": 6.2108697908 - }, - { - "Country": "Idaho ", - "Active Cases": "759 ", - "coordinates": [43.6447642, -114.0154071], - "activeCases": 759, - "value": 2.9171102545 - }, - { - "Country": "North Dakota ", - "Active Cases": "667 ", - "coordinates": [47.6201461, -100.540737], - "activeCases": 667, - "value": 2.5635211327 - }, - { - "Country": "Maine ", - "Active Cases": "487 ", - "coordinates": [45.709097, -68.8590201], - "activeCases": 487, - "value": 1.8717163293 - }, - { - "Country": "West Virginia ", - "Active Cases": "544 ", - "coordinates": [38.4758406, -80.8408415], - "activeCases": 544, - "value": 2.0907878504 - }, - { - "Country": "Vermont ", - "Active Cases": "124 ", - "coordinates": [44.5990718, -72.5002608], - "activeCases": 124, - "value": 0.4765766424 - }, - { - "Country": "Wyoming ", - "Active Cases": "209 ", - "coordinates": [43.1700264, -107.5685348], - "activeCases": 209, - "value": 0.803262244 - }, - { - "Country": "Hawaii ", - "Active Cases": "47 ", - "coordinates": [21.2160437, -157.975203], - "activeCases": 47, - "value": 0.1806379209 - }, - { - "Country": "Montana ", - "Active Cases": "20 ", - "coordinates": [47.3752671, -109.6387579], - "activeCases": 20, - "value": 0.0768672004 - }, - { - "Country": "Alaska ", - "Active Cases": "62 ", - "coordinates": [64.4459613, -149.680909], - "activeCases": 62, - "value": 0.2382883212 - }, - { - "Country": "Guam ", - "Active Cases": "15 ", - "coordinates": [13.4501257, 144.757551], - "activeCases": 15, - "value": 0.0576504003 - }, - { - "Country": "Northern Mariana Islands ", - "Active Cases": "2 ", - "coordinates": [14.1490205, 145.2134525], - "activeCases": 2, - "value": 0.00768672 - }, - { - "Country": "Puerto Rico ", - "Active Cases": "1,319 ", - "coordinates": [18.2214149, -66.4132818], - "activeCases": 1319, - "value": 5.0693918651 - }, - { - "Country": "United States Virgin Islands ", - "Active Cases": "7 ", - "coordinates": [17.789187, -64.7080574], - "activeCases": 7, - "value": 0.0269035201 - } -] diff --git a/src/assets/world.jpg b/src/assets/world.jpg deleted file mode 100644 index 222bd939d5bf2067910ef4f9da2ea9092dfd6abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94795 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 Z`oH@t|Ln8>|5^UC@4$cE@5g>^`)^we#C!k% diff --git a/src/markerRenderer.ts b/src/markerRenderer.ts deleted file mode 100755 index 480be60..0000000 --- a/src/markerRenderer.ts +++ /dev/null @@ -1,34 +0,0 @@ -//@ts-ignore -import * as TWEEN from "es6-tween"; -import * as THREE from "three"; - -import { Marker } from "react-globe"; - -function random(scaleFactor: number): number { - return Math.random() > 0.5 - ? scaleFactor * Math.random() - : -scaleFactor * Math.random(); -} - -//const MARKER_COLOR = "#fcffbe"; -const MARKER_COMPANION_COLOR = "#fff9e6"; - -export default function markerRenderer(marker: Marker): THREE.Object3D { - const size = Math.max(marker.value / 20, 1); - const geometry = new THREE.BoxGeometry(5, 5, marker.value / 2); - - const material = new THREE.MeshPhongMaterial({ - color: new THREE.Color("red"), - transparent: true, - opacity: 0.8, - }); - - // add light - const mesh = new THREE.Mesh(geometry, material); - mesh.rotation.y = Math.PI; - /*const light = new THREE.PointLight("#fcffbe", 0, 1, marker.value); - mesh.children = []; - mesh.add(light); -*/ - return mesh; -} diff --git a/src/markers.ts b/src/markers.ts deleted file mode 100755 index ec8eaa9..0000000 --- a/src/markers.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Marker } from "react-globe"; -import data from "./assets/export.json"; -import usData from "./assets/usExport.json"; -//@ts-ignore -const markers: Marker[] = data; -//@ts-ignore -const usMarkers: Marker[] = usData; - -for (let i = 0; i < usMarkers.length; i++) { - markers.push(usMarkers[i]); -} -export default markers; diff --git a/src/styles.css b/src/styles.css index 55f0dfc..2a1974d 100755 --- a/src/styles.css +++ b/src/styles.css @@ -1,90 +1,107 @@ -body { - background-color: black; - font-size: 16px; +* { + margin: 0; + padding: 0; } -.globe { - font-family: sans-serif; - position: relative; - z-index: 0; - height: 80vh; + +body { + font-family: "Space Mono", monospace; + overflow: hidden; + background: black; } -.header1 { - font-family: sans-serif; + +.top-info-container { + z-index: 1; + top: 20px; + position: absolute; + color: white; text-align: center; - font-size: 4em; - color: red; - position: relative; - z-index: 2; + width: 100%; } -.header2 { - font-family: sans-serif; + +.bottom-info-container { + z-index: 1; + bottom: 20px; + position: absolute; + color: white; text-align: center; - font-size: 1em; - color: red; - z-index: 2; - position: relative; + width: 100%; } -.footer { - font-family: sans-serif; - font-size: 5em; - color: red; + +.title { + font-size: 35px; + color: #e6f1ff; +} + +.title-desc { + margin-top: 5px; + color: #ccd6f6; + padding: 0 5px; +} + +#infected { + color: goldenrod; +} + +#deaths { + color: #ff4848; +} + +#recovered { + color: #1ae021; +} + +.card { + font-family: "Space Mono", monospace; + transition: 0.3s; + background-color: black; + width: 190px; + border: 2px solid steelblue; + border-radius: 10px; z-index: 2; - position: fixed; - left: 0; - bottom: 0; +} + +.container { + /* padding: 3px 16px; */ + padding-top: 1px; + padding-bottom: 8px; + padding-left: 12px; + padding-right: 12px; + text-align: left; +} + +.card-img { + object-fit: contain; width: 100%; - text-align: center; + border-top-left-radius: 10px; + border-top-right-radius: 10px; } -.details { - background: gainsboro; - opacity: 0.5; - position: absolute; - top: 5em; - right: 1em; - padding: 12; - margin-top: 5em; + +.card-title { + font-weight: bold; } -.details p { - font-family: sans-serif; - font-size: 1em; - margin: 1em; + +.card-spacer { + height: 5px; } -@media only screen and (min-device-width: 320px) and (max-device-width: 750px) { - body { - font-size: 6px; - } - .header1 { - font-size: 5em; - color: red; - } - .header2 { - font-family: sans-serif; - text-align: center; - font-size: 4em; - color: red; - z-index: 2; - position: relative; - } - .details { - background: gainsboro; - opacity: 1; - z-index: 3; - position: fixed; - bottom: 15em; - left: 0em; - width: 100%; - text-align: center; +.bottom-info { + display: flex; + flex-direction: column; + font-size: 11px; +} - top: unset; - right: unset; - padding: unset; - margin-top: unset; - } +.scene-tooltip { + z-index: 2; +} - .details p { - font-family: sans-serif; - font-size: 5em; - margin: 1em; +@media only screen and (max-width: 768px) { + .bottom-info-container { + z-index: 1; + bottom: 20px; + position: absolute; + color: white; + text-align: center; + + width: 100%; } } diff --git a/src/utils/index.tsx b/src/utils/index.tsx new file mode 100644 index 0000000..db07c22 --- /dev/null +++ b/src/utils/index.tsx @@ -0,0 +1,66 @@ +import dayjs from "dayjs"; +import { format } from "d3"; +import { FLAG_ENDPOINT } from "../Constants"; + +export async function request(url: string) { + try { + const res = await fetch(url); + const data = await res.json(); + return data; + } catch (e) { + throw e; + } +} + +export async function getCoordinates() { + try { + const { latitude, longitude } = await request( + "https://geolocation-db.com/json/" + ); + + return { + latitude, + longitude, + }; + } catch (e) { + throw e; + } +} + +export function numberWithCommas(x: number) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); +} + +export function formatDate(date: string, format = "MMMM D, YYYY") { + return dayjs(date).format(format); +} + +export const isMobile = (function (a) { + return ( + /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test( + a + ) || + /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test( + a.substr(0, 4) + ) + ); + // @ts-ignore +})(navigator.userAgent || navigator.vendor || window.opera); + +export function getPolygonLabel(flagName: any, d: any, c: any): string { + return ` +
+ flag +
+ ${d.NAME}
+
+
+
+ Cases: ${numberWithCommas(c.confirmed)}
+ Deaths: ${numberWithCommas(c.deaths)}
+ Recovered: ${numberWithCommas(c.recoveries)}
+ Population: ${format(".3s")(d.POP_EST)} +
+
+ `; +}