diff --git a/web/package-lock.json b/web/package-lock.json index 1bfd1e339..fc2592dd9 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -2685,6 +2685,11 @@ "toggle-selection": "^1.0.6" } }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, "core-js-compat": { "version": "3.6.5", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", @@ -2905,9 +2910,9 @@ } }, "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.8.0.tgz", + "integrity": "sha512-6V272gsOeg7+9pTW1jSYOR1QE37g95I3my1hBmY+vOUNHRrk9yt4OTz/gK7PMkVAVDrYYq4mq3grTiZ8iJdNIw==" }, "d3-collection": { "version": "1.0.7", @@ -2915,26 +2920,21 @@ "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-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" }, "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" }, "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", "requires": { - "d3-color": "1" + "d3-color": "1 - 2" } }, "d3-path": { @@ -2943,17 +2943,15 @@ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" }, "d3-scale": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz", - "integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.3.tgz", + "integrity": "sha512-8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g==", "requires": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-color": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "1 - 2", + "d3-time-format": "2 - 3" } }, "d3-shape": { @@ -2965,28 +2963,18 @@ } }, "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.0.0.tgz", + "integrity": "sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==" }, "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", "requires": { - "d3-time": "1" + "d3-time": "1 - 2" } }, - "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-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -3019,6 +3007,11 @@ "ms": "2.1.2" } }, + "decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -3075,19 +3068,6 @@ } } }, - "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "delaunay-find": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/delaunay-find/-/delaunay-find-0.0.5.tgz", - "integrity": "sha512-7yAJ/wmKWj3SgqjtkGqT/RCwI0HWAo5YnHMoF5nYXD8cdci+YSo23iPmgrZUNOpDxRWN91PqxUvMMr2lKpjr+w==", - "requires": { - "delaunator": "^4.0.0" - } - }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -3137,6 +3117,14 @@ "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz", "integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA==" }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, "dom-serializer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.0.1.tgz", @@ -4968,11 +4956,21 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -5017,6 +5015,11 @@ "object-visit": "^1.0.0" } }, + "math-expression-evaluator": { + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz", + "integrity": "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==" + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -6450,11 +6453,6 @@ "scheduler": "^0.19.1" } }, - "react-fast-compare": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" - }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -6470,6 +6468,39 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" }, + "react-resize-detector": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-2.3.0.tgz", + "integrity": "sha512-oCAddEWWeFWYH5FAcHdBYcZjAw9fMzRUK9sWSx6WvSSOPVRxcHd5zTIGy/mOus+AhN/u6T4TMiWxvq79PywnJQ==", + "requires": { + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "prop-types": "^15.6.0", + "resize-observer-polyfill": "^1.5.0" + } + }, + "react-smooth": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.5.tgz", + "integrity": "sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w==", + "requires": { + "lodash": "~4.17.4", + "prop-types": "^15.6.0", + "raf": "^3.4.0", + "react-transition-group": "^2.5.0" + } + }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -6583,6 +6614,108 @@ "readable-stream": "^2.0.2" } }, + "recharts": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-1.8.5.tgz", + "integrity": "sha512-tM9mprJbXVEBxjM7zHsIy6Cc41oO/pVYqyAsOHLxlJrbNBuLs0PHB3iys2M+RqCF0//k8nJtZF6X6swSkWY3tg==", + "requires": { + "classnames": "^2.2.5", + "core-js": "^2.6.10", + "d3-interpolate": "^1.3.0", + "d3-scale": "^2.1.0", + "d3-shape": "^1.2.0", + "lodash": "^4.17.5", + "prop-types": "^15.6.0", + "react-resize-detector": "^2.3.0", + "react-smooth": "^1.0.5", + "recharts-scale": "^0.4.2", + "reduce-css-calc": "^1.3.0" + }, + "dependencies": { + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-scale": { + "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", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "requires": { + "d3-time": "1" + } + } + } + }, + "recharts-scale": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.3.tgz", + "integrity": "sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA==", + "requires": { + "decimal.js-light": "^2.4.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + } + } + }, + "reduce-function-call": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", + "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "regenerate": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", @@ -8066,339 +8199,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "victory": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory/-/victory-35.1.1.tgz", - "integrity": "sha512-PJYPP71dW73qPiemlYBtRjWuw0wmyk8rfbmeUyrzrUG/xwfeO52N96P7MXcV+dBXR4BzLy0G5D0bvGksBFfVWw==", - "requires": { - "victory-area": "^35.1.1", - "victory-axis": "^35.1.1", - "victory-bar": "^35.1.1", - "victory-box-plot": "^35.1.1", - "victory-brush-container": "^35.1.1", - "victory-brush-line": "^35.1.1", - "victory-candlestick": "^35.1.1", - "victory-chart": "^35.1.1", - "victory-core": "^35.1.1", - "victory-create-container": "^35.1.1", - "victory-cursor-container": "^35.1.1", - "victory-errorbar": "^35.1.1", - "victory-group": "^35.1.1", - "victory-histogram": "^35.1.1", - "victory-legend": "^35.1.1", - "victory-line": "^35.1.1", - "victory-pie": "^35.1.1", - "victory-polar-axis": "^35.1.1", - "victory-scatter": "^35.1.1", - "victory-selection-container": "^35.1.1", - "victory-shared-events": "^35.1.1", - "victory-stack": "^35.1.1", - "victory-tooltip": "^35.1.1", - "victory-voronoi": "^35.1.1", - "victory-voronoi-container": "^35.1.1", - "victory-zoom-container": "^35.1.1" - } - }, - "victory-area": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-area/-/victory-area-35.1.1.tgz", - "integrity": "sha512-Ghh4x7GEhR8LQo1duy4mKzCMVpxOzlYf2H8Wwvh3TwOMitwbfBZ91P9bYOv3KEsVxfzmbuGM4fKfkJEFcwXQiA==", - "requires": { - "d3-shape": "^1.2.0", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-axis": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-axis/-/victory-axis-35.1.1.tgz", - "integrity": "sha512-HQkGTHKgk32vjPrGG/1LNvodnywnI7fMoNHwCvJVXy+C+2N3UKB828zvdkuDtq9Cc4GSPBWsMzPJxyi5kRjV6g==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-bar": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-bar/-/victory-bar-35.1.1.tgz", - "integrity": "sha512-VuY286MhccpqroedPOvjy7zJbZxtHsJ/VloywrOWjjcWIGRuh+Ln3zlT/8aJC1Vs4X9+WHwAdUKVR1FTufKjkQ==", - "requires": { - "d3-shape": "^1.2.0", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-box-plot": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-box-plot/-/victory-box-plot-35.1.1.tgz", - "integrity": "sha512-B9H9G5GmQvHM6Ydy+9vTaNNh+7DtNnUe5I7DNtJt9Ou8RWckI2F3sX1pudMLRy1LHV3d1fnxxBuOADxCTo6BcA==", - "requires": { - "d3-array": "^1.2.0", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-brush-container": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-brush-container/-/victory-brush-container-35.1.1.tgz", - "integrity": "sha512-1e1Q2CJn2LMGmAwdtvDbKI6XicqLw8YSNLRcjeCBmxtMotY8yHK91G/7Wr5OwiwCkjzFDf3P4XRprHTK1t6hNg==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-core": "^35.1.1" - } - }, - "victory-brush-line": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-brush-line/-/victory-brush-line-35.1.1.tgz", - "integrity": "sha512-kNCPUxzXij0fPkhfMkJDDHQ8N820suY5mC2Eh2g+lcwOdA3ha3w9UNxMwDNlbXOLqJs5Bw1QweWnRfIBbWNfZA==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-core": "^35.1.1" - } - }, - "victory-candlestick": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-candlestick/-/victory-candlestick-35.1.1.tgz", - "integrity": "sha512-4h/4+d9kHCPinK45HWgpO6+k0bYzHBWDoW0rZILCGQYCNSjy4UDHF0UiP6X1QLADrV7d47ZnK83lruVcQjgxKw==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-chart": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-chart/-/victory-chart-35.1.1.tgz", - "integrity": "sha512-B8dixl5RmIxmh0CPVBv/0cSjZ31FNvQmFX9t352Df4VQ5fU23hvmqCUASE2QboIcIeAiH+Qj0NKycu+lr0GgjA==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-axis": "^35.1.1", - "victory-core": "^35.1.1", - "victory-polar-axis": "^35.1.1", - "victory-shared-events": "^35.1.1" - } - }, - "victory-core": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-35.1.1.tgz", - "integrity": "sha512-DnWwTLPOpVLgnz52h4SY1CBUxkdxfX14cDPC4Ly8rWY7I3OXuEhzE3Wx/SYQO9vk7oQ7zp8ukWRVWpVpcEZzug==", - "requires": { - "d3-ease": "^1.0.0", - "d3-interpolate": "^1.1.1", - "d3-scale": "^1.0.0", - "d3-shape": "^1.2.0", - "d3-timer": "^1.0.0", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0" - } - }, - "victory-create-container": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-create-container/-/victory-create-container-35.1.1.tgz", - "integrity": "sha512-QDnCXKL0JovglmT7Fs7rC+GiPgXcJWlXC8LDWpo0kWXD0OP7jNwkCmO78/QU4tlcAWtVY/CNU+rBMxwDTS6/WQ==", - "requires": { - "lodash": "^4.17.19", - "victory-brush-container": "^35.1.1", - "victory-core": "^35.1.1", - "victory-cursor-container": "^35.1.1", - "victory-selection-container": "^35.1.1", - "victory-voronoi-container": "^35.1.1", - "victory-zoom-container": "^35.1.1" - } - }, - "victory-cursor-container": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-cursor-container/-/victory-cursor-container-35.1.1.tgz", - "integrity": "sha512-wD4N7k+YbHDUJleTgYqvYheN1c/qYlcZ44pXw8BKKqywtZixU8Pm9Tioo6L5e0+nSiGyJDixdvMpt2C5hGHNDw==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-errorbar": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-errorbar/-/victory-errorbar-35.1.1.tgz", - "integrity": "sha512-Oz8Fwsg0kDJETnH2B8asbTmOy3uvCgIsF80rY4NKqoGYcfaqY8xhmbxz+ipMyL826+mg3WmTnqVpbdXm3Y3oXw==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-group": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-group/-/victory-group-35.1.1.tgz", - "integrity": "sha512-OpSAXZ7InMXWT9AEo5UA/QYaD8i9F7pdHqvcSDckoEJPwZ6Sr7deE9LpfVo3KeK6PjzjQBZdrBPggSZwcvl0Zw==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-core": "^35.1.1", - "victory-shared-events": "^35.1.1" - } - }, - "victory-histogram": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-histogram/-/victory-histogram-35.1.1.tgz", - "integrity": "sha512-S/CGu7nIlN8kSQMNSMRWw9Nr4x/Z9W5giix4nxfj8M1tu0epNsRED4Jav2NUn7S3z+f2N76uJo80zVk894JK+A==", - "requires": { - "d3-array": "^2.4.0", - "d3-scale": "^1.0.0", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-bar": "^35.1.1", - "victory-core": "^35.1.1" - }, - "dependencies": { - "d3-array": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.8.0.tgz", - "integrity": "sha512-6V272gsOeg7+9pTW1jSYOR1QE37g95I3my1hBmY+vOUNHRrk9yt4OTz/gK7PMkVAVDrYYq4mq3grTiZ8iJdNIw==" - } - } - }, - "victory-legend": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-legend/-/victory-legend-35.1.1.tgz", - "integrity": "sha512-RibASpnHin6TAXRhgngEk71Y++Wh+ikRH8nV2hygT+WtTolRj6RsAA43jQwTv4cDqt3v2k+Ddoh4eXpJoH3R2Q==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-line": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-line/-/victory-line-35.1.1.tgz", - "integrity": "sha512-PAY6Q8SN0p4vBiMvBUXVNb3FrZ7BWaN3/8/pWUKKobTVSiKaJmaDXR9u9EDn7yErjwxsFqJQ8+918pfkWvWWNg==", - "requires": { - "d3-shape": "^1.2.0", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-pie": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-pie/-/victory-pie-35.1.1.tgz", - "integrity": "sha512-PFzceL0LPIK30Flz3OrEB7vSCHm5oaQInvvufuUsTUPHxBjq0QDqukV5zHCz0OfdFZ+KzqCTdwD95EFyC1yrYA==", - "requires": { - "d3-shape": "^1.0.0", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-polar-axis": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-polar-axis/-/victory-polar-axis-35.1.1.tgz", - "integrity": "sha512-Y6iFqfkkI3Be4ltg+3AsmXUkk9uDQ+IU6XQWzZ0PZGGEt1ftiRX5GS2tfTQcV//qsannX6t2xKBc0iquPI3+Kw==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-scatter": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-scatter/-/victory-scatter-35.1.1.tgz", - "integrity": "sha512-IgJNQHXx7lUoFnUoMNeCatBso+sIdx6/v0Hx94GeP3X6UmGPzBnM9JlyjVQjyJuiEoWQ0MtFhqidy+CSvn4pJg==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-selection-container": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-selection-container/-/victory-selection-container-35.1.1.tgz", - "integrity": "sha512-lait103pBL1h9Jv65OiR8xfXhoQ79KpjWsgx0fZQGi+HcvzaKTAv9XGAMqB6GT3PkXFEqrz9K+0cAaRHd8SPvQ==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-shared-events": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-shared-events/-/victory-shared-events-35.1.1.tgz", - "integrity": "sha512-h4qMyZuvTlZAq/UuP3R6ETCLYSmggzU01ZuAbxEqygt+XQ04yG2QJmf8stKxvS1ktYFIXVdrJr/bJjTAIZQ0XQ==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-core": "^35.1.1" - } - }, - "victory-stack": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-stack/-/victory-stack-35.1.1.tgz", - "integrity": "sha512-SKXd6YG97CH9KsQB+akhc2jos+6vjGmyJkaHuTXuqGL9TrGtTM1WA784LAOFbNourk/VRTf1TJOz0EtzO2orIw==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-core": "^35.1.1", - "victory-shared-events": "^35.1.1" - } - }, - "victory-tooltip": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-tooltip/-/victory-tooltip-35.1.1.tgz", - "integrity": "sha512-2ZMecFgL6lQ2exzNGBmnUia967plHRWAinUYaRMSY4R3+FgOjCLkdVu1XBf/y6EBn+urIw3VK4yS8pn9ESjSOQ==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-voronoi": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-voronoi/-/victory-voronoi-35.1.1.tgz", - "integrity": "sha512-b8Ec7a/253tgpC+KH2CdvAl+DubSAXWYyd30Bd6T1+oPx+KmRdB76uEmnqUHXzBCEHnkjazfOPb2nLItCoOR9g==", - "requires": { - "d3-voronoi": "^1.1.2", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, - "victory-voronoi-container": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-voronoi-container/-/victory-voronoi-container-35.1.1.tgz", - "integrity": "sha512-AcCOhGMt9WYGDQtGIfbHhabdTmj92Uwr0fyfg+StrZk6AB/KgJproRcKQ91jLQExQkaoqdB9DP83LYGjWnk0zg==", - "requires": { - "delaunay-find": "0.0.5", - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "react-fast-compare": "^2.0.0", - "victory-core": "^35.1.1", - "victory-tooltip": "^35.1.1" - } - }, - "victory-zoom-container": { - "version": "35.1.1", - "resolved": "https://registry.npmjs.org/victory-zoom-container/-/victory-zoom-container-35.1.1.tgz", - "integrity": "sha512-U0sKD56muX1ZK/mBWYjdRUDtrsIRBGHC9MIpNL0Ju6sIoqH//uyBFoO617xf5VMO8iUYywjXEqzXb+60XK41TQ==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.5.8", - "victory-core": "^35.1.1" - } - }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", diff --git a/web/package.json b/web/package.json index 8d8a35bd0..bf39b247f 100644 --- a/web/package.json +++ b/web/package.json @@ -10,6 +10,8 @@ "dependencies": { "@ant-design/icons": "^4.2.2", "antd": "^4.6.6", + "d3-scale": "^3.2.3", + "d3-time-format": "^3.0.0", "next": "9.5.3", "prop-types": "^15.7.2", "react": "16.13.1", diff --git a/web/pages/components/viewer-info.tsx b/web/pages/components/viewer-info.tsx index e443e3f12..9ee630f7c 100644 --- a/web/pages/components/viewer-info.tsx +++ b/web/pages/components/viewer-info.tsx @@ -1,4 +1,6 @@ import React, { useState, useEffect } from 'react'; +import {timeFormat} from 'd3-time-format'; +import { LineChart, XAxis, YAxis, Line, Tooltip } from 'recharts'; import { VIEWERS_OVER_TIME, fetchData } from '../utils/apis'; @@ -10,13 +12,10 @@ export default function ViewersOverTime() { const getInfo = async () => { try { const result = await fetchData(VIEWERS_OVER_TIME); - console.log("viewers result", result) - setViewerInfo(result); } catch (error) { console.log("==== error", error) - // setViewerInfo({ ...viewerInfo, message: error.message }); } }; @@ -32,19 +31,25 @@ export default function ViewersOverTime() { } }, []); + const timeFormatter = (tick) => {return timeFormat('%H:%M:%S')(new Date(tick));}; + - const formattedData = viewerInfo.map(viewer => ({ - x: (new Date(viewer.time)).toLocaleTimeString(), - y: viewer.value, - })); return ( -
Time on X axis, # Viewer on Y