diff --git a/enterprise/app/auditlogs/auditlogs.tsx b/enterprise/app/auditlogs/auditlogs.tsx index dcfe4c71aab..1fc6c31942e 100644 --- a/enterprise/app/auditlogs/auditlogs.tsx +++ b/enterprise/app/auditlogs/auditlogs.tsx @@ -7,7 +7,7 @@ import { formatDate, formatDateRange } from "../../../app/format/format"; import Button, { OutlinedButton } from "../../../app/components/button/button"; import { Calendar } from "lucide-react"; import Popup from "../../../app/components/popup/popup"; -import { DateRangePicker, OnChangeProps, RangeWithKey } from "react-date-range"; +import { DateRangePicker, Range, RangeKeyDict } from "react-date-range"; import error_service from "../../../app/errors/error_service"; import Spinner from "../../../app/components/spinner/spinner"; import { User } from "../../../app/auth/user"; @@ -21,7 +21,7 @@ interface State { entries: auditlog.Entry[]; nextPageToken: string; isDatePickerOpen: boolean; - dateRange: RangeWithKey; + dateRange: Range; } export default class AuditLogsComponent extends React.Component { @@ -41,12 +41,12 @@ export default class AuditLogsComponent extends React.Component ))} - Set default config... + Set default config... Edit... New... diff --git a/enterprise/app/filter/date_picker_button.tsx b/enterprise/app/filter/date_picker_button.tsx index 83ac219a60c..44a9406d7fe 100644 --- a/enterprise/app/filter/date_picker_button.tsx +++ b/enterprise/app/filter/date_picker_button.tsx @@ -1,6 +1,6 @@ import React from "react"; import { OutlinedButton } from "../../../app/components/button/button"; -import { DateRangePicker, OnChangeProps, Range } from "react-date-range"; +import { DateRangePicker, DateRange, Range, RangeKeyDict } from "react-date-range"; import router from "../../../app/router/router"; import { END_DATE_PARAM_NAME, LAST_N_DAYS_PARAM_NAME, START_DATE_PARAM_NAME } from "../../../app/router/router_params"; import moment from "moment"; @@ -54,8 +54,8 @@ export default class DatePickerButton extends React.Component { this.setState({ isOpen: false }); } - private onDateChange(range: OnChangeProps) { - const selection = (range as { selection: CustomDateRange }).selection; + private onDateChange(range: RangeKeyDict) { + const selection = range.selection as CustomDateRange; if (selection.days) { router.setQuery({ ...Object.fromEntries(this.props.search.entries()), diff --git a/enterprise/app/tap/flakes.tsx b/enterprise/app/tap/flakes.tsx index 8bbd52d4a93..1352f58015d 100644 --- a/enterprise/app/tap/flakes.tsx +++ b/enterprise/app/tap/flakes.tsx @@ -265,11 +265,11 @@ export default class FlakesComponent extends React.Component { if (!stats) { return "0%"; } - const totalFlakes = (+stats.flakyRuns ?? 0) + (+stats.likelyFlakyRuns ?? 0); + const totalFlakes = +stats.flakyRuns + +stats.likelyFlakyRuns; if (totalFlakes === 0) { return "0%"; } - const percent = format.percent(totalFlakes / (+stats.totalRuns ?? 1)); + const percent = format.percent(totalFlakes / +stats.totalRuns); return percent === "0" ? "<1%" : percent + "%"; } diff --git a/enterprise/app/trends/drilldown_page.tsx b/enterprise/app/trends/drilldown_page.tsx index e80326d6249..7f537e9ae2a 100644 --- a/enterprise/app/trends/drilldown_page.tsx +++ b/enterprise/app/trends/drilldown_page.tsx @@ -18,7 +18,7 @@ import { stats } from "../../../proto/stats_ts_proto"; import { google as google_timestamp } from "../../../proto/timestamp_ts_proto"; import { usecToTimestamp } from "../../../app/util/proto"; import { getProtoFilterParams, isExecutionMetric } from "../filter/filter_util"; -import { HeatmapComponent, HeatmapSelection } from "./heatmap"; +import HeatmapComponent, { HeatmapSelection } from "./heatmap"; import { BarChart, Bar, XAxis, Tooltip, CartesianGrid, TooltipProps } from "recharts"; import { User } from "../../../app/auth/user"; import Select, { Option } from "../../../app/components/select/select"; diff --git a/enterprise/app/trends/heatmap.tsx b/enterprise/app/trends/heatmap.tsx index 60e630f33e7..601aa21e59c 100644 --- a/enterprise/app/trends/heatmap.tsx +++ b/enterprise/app/trends/heatmap.tsx @@ -4,13 +4,12 @@ import Long from "long"; import { clamp } from "../../../app/util/math"; import { stats } from "../../../proto/stats_ts_proto"; import { ScaleBand, scaleBand } from "d3-scale"; -import { withResizeDetector } from "react-resize-detector"; +import { useResizeDetector } from "react-resize-detector"; import { pinBottomLeftOffsetFromMouse, MouseCoords, Tooltip } from "../../../app/components/tooltip/tooltip"; interface HeatmapProps { heatmapData: stats.GetStatHeatmapResponse; - width: number; // Use getWidth()! react-resize-detector lets this be NaN. - height: number; // Use getHeight()! react-resize-detector lets this be NaN. + valueFormatter: (value: number) => string; metricBucketName: string; metricBucketFormatter: (value: number) => string; @@ -19,6 +18,11 @@ interface HeatmapProps { selectedData?: HeatmapSelection; } +interface ResizableHeatmapProps extends HeatmapProps { + width: number; + height: number; +} + interface State { // This pair indicates the cells in the heatmap that the user selected. The // first entry is the cell that the user clicked on first when making the @@ -112,7 +116,7 @@ type SelectionData = { selectionYEnd: number; }; -class HeatmapComponentInternal extends React.Component { +class HeatmapComponentInternal extends React.Component { state: State = {}; svgRef: React.RefObject = React.createRef(); chartGroupRef: React.RefObject = React.createRef(); @@ -129,14 +133,6 @@ class HeatmapComponentInternal extends React.Component { return this.props.metricBucketFormatter(v); } - private getHeight(): number { - return 275; - } - - private getWidth(): number { - return Math.max(this.props.width || 0, 400); - } - private numHeatmapRows(): number { return Math.max(this.props.heatmapData.bucketBracket.length - 1, 1); } @@ -440,7 +436,7 @@ class HeatmapComponentInternal extends React.Component { let lastLabelDistance = labelSpacing; return ( - + {this.xScaleBand.domain().map((v, i) => { lastLabelDistance++; @@ -475,7 +471,7 @@ class HeatmapComponentInternal extends React.Component { return ( + transform={`translate(${CHART_MARGINS.left}, ${this.props.height - CHART_MARGINS.bottom - height})`}> {this.yScaleBand.domain().map((v, i) => { return ( @@ -505,7 +501,7 @@ class HeatmapComponentInternal extends React.Component { let zoomLeftEdge = selectionRightEdge + ZOOM_BUTTON_ATTRIBUTES.sideMargin; let zoomTopEdge = positioningData.y; - if (selectionRightEdge + ZOOM_BUTTON_ATTRIBUTES.width + 2 * ZOOM_BUTTON_ATTRIBUTES.sideMargin > this.getWidth()) { + if (selectionRightEdge + ZOOM_BUTTON_ATTRIBUTES.width + 2 * ZOOM_BUTTON_ATTRIBUTES.sideMargin > this.props.width) { zoomLeftEdge = positioningData.x - ZOOM_BUTTON_ATTRIBUTES.width - ZOOM_BUTTON_ATTRIBUTES.sideMargin; } @@ -524,8 +520,8 @@ class HeatmapComponentInternal extends React.Component { } render() { - const width = this.getWidth() - CHART_MARGINS.left - CHART_MARGINS.right; - const height = this.getHeight() - CHART_MARGINS.top - CHART_MARGINS.bottom; + const width = this.props.width - CHART_MARGINS.left - CHART_MARGINS.right; + const height = this.props.height - CHART_MARGINS.top - CHART_MARGINS.bottom; const xDomain = this.props.heatmapData.timestampBracket.slice(0, -1).map((v) => +v); const yDomain = this.props.heatmapData.bucketBracket @@ -558,8 +554,8 @@ class HeatmapComponentInternal extends React.Component { this.onMouseDown(e)} - width={this.getWidth()} - height={this.getHeight()} + width={this.props.width} + height={this.props.height} ref={this.svgRef}> @@ -600,10 +596,18 @@ class HeatmapComponentInternal extends React.Component { } } -export const HeatmapComponent = withResizeDetector(HeatmapComponentInternal, { - handleHeight: false, - refreshMode: "throttle", - refreshRate: 500, -}); +export const HeatmapComponent = (p: HeatmapProps) => { + const { width, ref } = useResizeDetector({ + handleHeight: false, + refreshMode: "throttle", + refreshRate: 500, + }); + + return ( +
+ +
+ ); +}; export default HeatmapComponent; diff --git a/package.json b/package.json index 43d3851f558..0fdd8f0f01c 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@types/react-date-range": "^1.1.6", "@types/react-dom": "^16.8.4", "@types/react-modal": "^3.10.6", - "@types/react-slider": "^1.3.1", + "@types/react-slider": "^1.3.6", "@types/react-virtualized-auto-sizer": "^1.0.1", "@types/react-window": "^1.8.5", "@types/uuid": "^8.3.0", @@ -33,7 +33,7 @@ "d3-scale": "^4.0.2", "d3-time": "^3.0.0", "dagre-d3-react": "^0.2.4", - "date-fns": "^2.23.0", + "date-fns": "^4.1.0", "diff": "^5.0.0", "diff-match-patch": "^1.0.5", "jasmine": "^4.1.0", @@ -47,23 +47,20 @@ "path-browserify": "^1.0.1", "prettier": "3.3.3", "protobufjs": "^7.2.5", - "react": "^16.8.6", - "react-date-range": "^1.3.0", - "react-dom": "^16.8.6", - "react-modal": "^3.11.2", - "react-resize-detector": "^6.6.3", - "react-slider": "^2.0.4", - "react-virtualized-auto-sizer": "^1.0.6", + "react": "^18.3.1", + "react-date-range": "^2.0.1", + "react-dom": "^18.3.1", + "react-modal": "^3.16.1", + "react-resize-detector": "^11.0.1", + "react-slider": "^2.0.6", + "react-virtualized-auto-sizer": "^1.0.24", "react-window": "^1.8.7", "recharts": "^2.1.16", "rxjs": "^6.6.3", "shlex": "^2.1.2", "tslib": "^2.1.0", - "typescript": "^4.6.3", + "typescript": "^5.6.3", "uuid": "^8.3.0", "varint": "^6.0.0" - }, - "resolutions": { - "@types/react": "^16.8.17" } } diff --git a/tsconfig.json b/tsconfig.json index 9a7bf4e7ca9..a98e947e83c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,8 +11,8 @@ "downlevelIteration": true, "skipLibCheck": true, "composite": true, - "target": "ES2016", - "lib": ["es2017", "es2019", "es2021", "dom", "dom.iterable"], + "target": "ES2018", + "lib": ["es2018", "es2019", "es2021", "dom", "dom.iterable"], "strict": true, "rootDirs": [ ".", diff --git a/yarn.lock b/yarn.lock index e59d2c356eb..e5afc469ae5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,10 @@ # yarn lockfile v1 -"@babel/runtime@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580" - integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" - integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== dependencies: regenerator-runtime "^0.14.0" @@ -255,9 +248,9 @@ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== "@types/react-date-range@^1.1.6": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@types/react-date-range/-/react-date-range-1.1.6.tgz#669bb09d8b323ef1e444a4d0687d752af85e3415" - integrity sha512-gNkq0kyq84EOx05VXkUKJR5mH5YxM8uS5DHcV2h4lo+idNY0QNhoUX3GJocTt8JbXafXe5vbRe8yvDS23g5G1w== + version "1.4.9" + resolved "https://registry.yarnpkg.com/@types/react-date-range/-/react-date-range-1.4.9.tgz#c5f8e3b2d726810d62efd8f5289c493e708fc2ea" + integrity sha512-5oVEDW0ElYmY1+YVSzdMUR8stxSI5QrRJCgCFUvuEAV5197t412vimD9aVTW6g4JTaxCnMmB1BdEOT/odpaBxQ== dependencies: "@types/react" "*" date-fns "^2.16.1" @@ -276,10 +269,10 @@ dependencies: "@types/react" "*" -"@types/react-slider@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/react-slider/-/react-slider-1.3.1.tgz#a3816989eb4fc172e7df316930f242fec90690fc" - integrity sha512-4X2yK7RyCIy643YCFL+bc6XNmcnBtt8n88uuyihvcn5G7Lut23eNQU3q3KmwF7MWIfKfsW5NxCjw0SeDZRtgaA== +"@types/react-slider@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@types/react-slider/-/react-slider-1.3.6.tgz#6f5602be93ab1cb3d273428c87aa227ad2ff68ff" + integrity sha512-RS8XN5O159YQ6tu3tGZIQz1/9StMLTg/FCIPxwqh2gwVixJnlfIodtVx+fpXVMZHe7A58lAX1Q4XTgAGOQaCQg== dependencies: "@types/react" "*" @@ -305,11 +298,6 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/resize-observer-browser@^0.1.6": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz#294aaadf24ac6580b8fbd1fe3ab7b59fe85f9ef3" - integrity sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg== - "@types/uuid@^8.3.0": version "8.3.0" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" @@ -519,11 +507,16 @@ dagre-d3-react@^0.2.4: resolved "https://registry.yarnpkg.com/dagre-d3-react/-/dagre-d3-react-0.2.4.tgz#df6037e0c117fc207f7513ee5f175aefb4a96749" integrity sha512-spYk0zaI8Mm+5E+99veMDS7CG2Prpce1CcjQINHTKmJe0XUkmFEey5yRr4Ag7htXdirw1Lf/rlBiZgORcc1Nyg== -date-fns@^2.16.1, date-fns@^2.23.0: +date-fns@^2.16.1: version "2.23.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.23.0.tgz#4e886c941659af0cf7b30fafdd1eaa37e88788a9" integrity sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA== +date-fns@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.1.0.tgz#64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14" + integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== + decimal.js-light@^2.4.1: version "2.5.1" resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" @@ -867,7 +860,7 @@ prettier@3.3.3: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== -prop-types@15, prop-types@^15.5.10, prop-types@^15.7.2: +prop-types@15, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -903,25 +896,23 @@ protobufjs@^7.2.5: "@types/node" ">=13.7.0" long "^5.0.0" -react-date-range@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/react-date-range/-/react-date-range-1.3.0.tgz#109be685873372c3da975b1cf175d33980ce5c4a" - integrity sha512-ximAsbdf28tT7jMRLenSUeMacZ+s3opgvlUKbXIg7qvpehVfjlcYfQ3MF1C59rUghk44yckPsCxqPm0l8Lb+KA== +react-date-range@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/react-date-range/-/react-date-range-2.0.1.tgz#d8a3feddaa50eee484e8ff8ebe08076c9ce9c811" + integrity sha512-jwKYc9zcjYMg2hWbPht+6BF2wjGG5DkRVNJLRXn2Y0B/QCOOnvQX6YXziZVujVADWmgsBaoQnILdmzYw+Bwh0g== dependencies: classnames "^2.2.6" prop-types "^15.7.2" react-list "^0.8.13" shallow-equal "^1.2.1" -react-dom@^16.8.6: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== +react-dom@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" + scheduler "^0.23.2" react-is@^16.10.2, react-is@^16.13.1, react-is@^16.8.1: version "16.13.1" @@ -934,35 +925,33 @@ react-lifecycles-compat@^3.0.0: integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-list@^0.8.13: - version "0.8.16" - resolved "https://registry.yarnpkg.com/react-list/-/react-list-0.8.16.tgz#3f19b249998de0086787da3789d35b59553ede3a" - integrity sha512-LSxfvdwB9Ip+E+8NBtLPW2pcIngzuV0rSoH9nMt9C2lFjZEbnoBY/ib/Zx121jPgFgg3xYkMlMXSzx5gaiP5ig== + version "0.8.17" + resolved "https://registry.yarnpkg.com/react-list/-/react-list-0.8.17.tgz#49f55af2797cfdf3974ad2188a191e0ee919d254" + integrity sha512-pgmzGi0G5uGrdHzMhgO7KR1wx5ZXVvI3SsJUmkblSAKtewIhMwbQiMuQiTE83ozo04BQJbe0r3WIWzSO0dR1xg== dependencies: prop-types "15" -react-modal@^3.11.2: - version "3.12.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.12.1.tgz#38c33f70d81c33d02ff1ed115530443a3dc2afd3" - integrity sha512-WGuXn7Fq31PbFJwtWmOk+jFtGC7E9tJVbFX0lts8ZoS5EPi9+WWylUJWLKKVm3H4GlQ7ZxY7R6tLlbSIBQ5oZA== +react-modal@^3.16.1: + version "3.16.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" + integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== dependencies: exenv "^1.2.0" - prop-types "^15.5.10" + prop-types "^15.7.2" react-lifecycles-compat "^3.0.0" warning "^4.0.3" -react-resize-detector@^6.6.3: - version "6.7.8" - resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-6.7.8.tgz#318c85d1335e50f99d4fb8eb9ec34e066db597d0" - integrity sha512-0FaEcUBAbn+pq3PT5a9hHRebUfuS1SRLGLpIw8LydU7zX429I6XJgKerKAMPsJH0qWAl6o5bVKNqFJqr6tGPYw== +react-resize-detector@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-11.0.1.tgz#70684958ae82bc0deb240d133a1ee440e0624532" + integrity sha512-1Tdgu6Ou3vI3RQD+o2/kTvDibb4NRe7Oh83hIjNNEXb6WKKCQT99VQlh3Xlbdq2HtkUoFEMrgMMKkYI83YbD7Q== dependencies: - "@types/resize-observer-browser" "^0.1.6" lodash "^4.17.21" - resize-observer-polyfill "^1.5.1" -react-slider@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-slider/-/react-slider-2.0.4.tgz#21c656ffabc3bb4481cf6b49e6d647baeda83572" - integrity sha512-sWwQD01n6v+MbeLCYthJGZPc0kzOyhQHyd0bSo0edg+IAxTVQmj3Oy4SBK65eX6gNwS9meUn6Z5sIBUVmwAd9g== +react-slider@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/react-slider/-/react-slider-2.0.6.tgz#8c7ff0301211f7c3ff32aa0163b33bdab6258559" + integrity sha512-gJxG1HwmuMTJ+oWIRCmVWvgwotNCbByTwRkFZC6U4MBsHqJBmxwbYRJUmxy4Tke1ef8r9jfXjgkmY/uHOCEvbA== dependencies: prop-types "^15.8.1" @@ -985,10 +974,10 @@ react-transition-group@^4.4.5: loose-envify "^1.4.0" prop-types "^15.6.2" -react-virtualized-auto-sizer@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz#66c5b1c9278064c5ef1699ed40a29c11518f97ca" - integrity sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ== +react-virtualized-auto-sizer@^1.0.24: + version "1.0.24" + resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.24.tgz#3ebdc92f4b05ad65693b3cc8e7d8dd54924c0227" + integrity sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg== react-window@^1.8.7: version "1.8.7" @@ -998,14 +987,12 @@ react-window@^1.8.7: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" -react@^16.8.6: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== +react@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" recharts-scale@^0.4.4: version "0.4.5" @@ -1028,11 +1015,6 @@ recharts@^2.1.16: tiny-invariant "^1.3.1" victory-vendor "^36.6.8" -regenerator-runtime@^0.13.4: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.14.0: version "0.14.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" @@ -1043,11 +1025,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -1062,13 +1039,12 @@ rxjs@^6.6.3: dependencies: tslib "^1.9.0" -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" semver@5.6.0: version "5.6.0" @@ -1179,10 +1155,10 @@ tsutils@3.21.0: dependencies: tslib "^1.8.1" -typescript@^4.6.3: - version "4.6.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" - integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== +typescript@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== undici-types@~5.26.4: version "5.26.5"