From c9ba930c822b28dfbd9008325f18a86952f17712 Mon Sep 17 00:00:00 2001 From: notoraptor Date: Wed, 3 Aug 2022 01:11:16 -0400 Subject: [PATCH 01/10] [dashboard/experiments/database] Use light gray for placeholder headers --- .../src/src/experiments/content/DatabasePage/FeaturedTable.js | 3 +++ dashboard/src/src/style.css | 3 +++ 2 files changed, 6 insertions(+) diff --git a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js index b5129a53e..614afa9e1 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js +++ b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js @@ -108,6 +108,9 @@ export function FeaturedTable({ columns, data, experiment }) { diff --git a/dashboard/src/src/style.css b/dashboard/src/src/style.css index c8b77f885..ad2c16dc0 100644 --- a/dashboard/src/src/style.css +++ b/dashboard/src/src/style.css @@ -36,3 +36,6 @@ a.bx--header__menu-item.bx--header__menu-title[aria-label='benchmarks (selected) .bx--structured-list-row.selected-experiment-row .bx--structured-list-td { font-weight: bold; } +.bx--data-table th.placeholder { + background-color: #f4f4f4; +} From 55e4379089d033546f9299f2ae22c4e6f0e259b4 Mon Sep 17 00:00:00 2001 From: notoraptor Date: Wed, 3 Aug 2022 02:36:05 -0400 Subject: [PATCH 02/10] [dashboard/experiments/database] Add a button to display all columns --- .../content/DatabasePage/FeaturedTable.js | 29 ++++++++++++++----- dashboard/src/src/style.css | 4 +++ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js index 614afa9e1..7e33df661 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js +++ b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js @@ -13,6 +13,7 @@ import { MultiSelect, Pagination, Row, + Button, } from 'carbon-components-react'; const sortingIcons = { @@ -51,6 +52,9 @@ export function FeaturedTable({ columns, data, experiment }) { id: col.id, label: col.columnDef.header, })); + const [selectedColumns, setSelectedColumns] = React.useState( + selectableColumns + ); const columnVisibilitySetter = selectedColumns => { const colSet = new Set(selectedColumns.selectedItems.map(item => item.id)); const def = {}; @@ -58,24 +62,30 @@ export function FeaturedTable({ columns, data, experiment }) { .getAllLeafColumns() .forEach(column => (def[column.id] = colSet.has(column.id))); table.setColumnVisibility(def); + setSelectedColumns(selectableColumns.filter(item => colSet.has(item.id))); }; const setCarbonPagination = ({ page, pageSize }) => { // table.setPageIndex(page - 1); // table.setPageSize(pageSize); setPagination({ pageIndex: page - 1, pageSize: pageSize }); }; + const displayAllColumns = () => { + columnVisibilitySetter({ selectedItems: selectableColumns }); + }; return (
-

- Experiment Trials for "{experiment}" -

-

- {data.length} trial(s) for experiment "{experiment}" -

+
+

+ Experiment Trials for "{experiment}" +

+

+ {data.length} trial(s) for experiment "{experiment}" +

+
items} /> + + +
diff --git a/dashboard/src/src/style.css b/dashboard/src/src/style.css index ad2c16dc0..f0dfb66a7 100644 --- a/dashboard/src/src/style.css +++ b/dashboard/src/src/style.css @@ -39,3 +39,7 @@ a.bx--header__menu-item.bx--header__menu-title[aria-label='benchmarks (selected) .bx--data-table th.placeholder { background-color: #f4f4f4; } +.bx--grid.database-page .bx--col { + display: flex; + align-items: end; +} From 9a4fce838569f1295abfce0c927a141f2cd22727 Mon Sep 17 00:00:00 2001 From: notoraptor Date: Fri, 5 Aug 2022 13:26:12 -0400 Subject: [PATCH 03/10] Instead use a checkbox "(select all)" into multiselect component to select all columns. --- .../content/DatabasePage/FeaturedTable.js | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js index 7e33df661..082316d54 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js +++ b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js @@ -13,7 +13,6 @@ import { MultiSelect, Pagination, Row, - Button, } from 'carbon-components-react'; const sortingIcons = { @@ -48,30 +47,42 @@ export function FeaturedTable({ columns, data, experiment }) { onPaginationChange: setPagination, // manualPagination: true }); - const selectableColumns = table.getAllLeafColumns().map((col, index) => ({ - id: col.id, - label: col.columnDef.header, - })); + const itemSelectAll = { id: '(select all)', label: '(select all)' }; + const selectableColumns = [ + itemSelectAll, + ...table.getAllLeafColumns().map((col, index) => ({ + id: col.id, + label: col.columnDef.header, + })), + ]; const [selectedColumns, setSelectedColumns] = React.useState( selectableColumns ); - const columnVisibilitySetter = selectedColumns => { - const colSet = new Set(selectedColumns.selectedItems.map(item => item.id)); + const columnVisibilitySetter = multiSelect => { + const previousColSet = new Set(selectedColumns.map(item => item.id)); + const colSet = new Set(multiSelect.selectedItems.map(item => item.id)); + if (!previousColSet.has(itemSelectAll.id) && colSet.has(itemSelectAll.id)) { + table.getAllLeafColumns().forEach(column => colSet.add(column.id)); + } else if ( + previousColSet.has(itemSelectAll.id) && + colSet.has(itemSelectAll.id) && + previousColSet.size > colSet.size + ) { + colSet.delete(itemSelectAll.id); + } const def = {}; table .getAllLeafColumns() .forEach(column => (def[column.id] = colSet.has(column.id))); table.setColumnVisibility(def); - setSelectedColumns(selectableColumns.filter(item => colSet.has(item.id))); + setSelectedColumns([ + ...(colSet.has(itemSelectAll.id) ? [itemSelectAll] : []), + ...selectableColumns.filter(item => !!def[item.id]), + ]); }; const setCarbonPagination = ({ page, pageSize }) => { - // table.setPageIndex(page - 1); - // table.setPageSize(pageSize); setPagination({ pageIndex: page - 1, pageSize: pageSize }); }; - const displayAllColumns = () => { - columnVisibilitySetter({ selectedItems: selectableColumns }); - }; return (
@@ -106,11 +117,6 @@ export function FeaturedTable({ columns, data, experiment }) { sortItems={items => items} /> - - -
From 0baa396065904b9f87b44862eac016d661d7426b Mon Sep 17 00:00:00 2001 From: notoraptor Date: Fri, 5 Aug 2022 13:56:36 -0400 Subject: [PATCH 04/10] Fix compilation error --- dashboard/src/src/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dashboard/src/src/style.css b/dashboard/src/src/style.css index f0dfb66a7..c88c1ac33 100644 --- a/dashboard/src/src/style.css +++ b/dashboard/src/src/style.css @@ -41,5 +41,5 @@ a.bx--header__menu-item.bx--header__menu-title[aria-label='benchmarks (selected) } .bx--grid.database-page .bx--col { display: flex; - align-items: end; + align-items: flex-end; } From 35aea0723315265d85cfeda133d23622d4414fe0 Mon Sep 17 00:00:00 2001 From: notoraptor Date: Tue, 9 Aug 2022 21:40:06 -0400 Subject: [PATCH 05/10] [dashboard/experiment/trials] Ensure Statistics column is not sortable. --- .../src/src/experiments/content/DatabasePage/DatabasePage.js | 1 + 1 file changed, 1 insertion(+) diff --git a/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js b/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js index dad650b76..38bd5aba3 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js +++ b/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js @@ -152,6 +152,7 @@ class TrialsProvider { accessorKey: 'statistics', header: 'Statistics', cell: props => props.getValue(), + enableSorting: false, }, ]; this.trials[experiment] = { From 8358f80a9a0d459f5f9a36e40e58865b63b9d45c Mon Sep 17 00:00:00 2001 From: notoraptor Date: Tue, 9 Aug 2022 22:31:22 -0400 Subject: [PATCH 06/10] [dashboard/experiment/trials] Split experiment names to break long names into lines --- .../experiments/content/DatabasePage/FeaturedTable.js | 9 +++++++-- dashboard/src/src/style.css | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js index 082316d54..2cd61f711 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js +++ b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js @@ -83,6 +83,11 @@ export function FeaturedTable({ columns, data, experiment }) { const setCarbonPagination = ({ page, pageSize }) => { setPagination({ pageIndex: page - 1, pageSize: pageSize }); }; + const experimentWords = experiment.split(/(\W|_)/).map((p, i) => ( + + {p} + + )); return (
@@ -91,10 +96,10 @@ export function FeaturedTable({ columns, data, experiment }) {

- Experiment Trials for "{experiment}" + Experiment Trials for "{experimentWords}"

- {data.length} trial(s) for experiment "{experiment}" + {data.length} trial(s) for experiment "{experimentWords}"

diff --git a/dashboard/src/src/style.css b/dashboard/src/src/style.css index c88c1ac33..c322c4889 100644 --- a/dashboard/src/src/style.css +++ b/dashboard/src/src/style.css @@ -43,3 +43,6 @@ a.bx--header__menu-item.bx--header__menu-title[aria-label='benchmarks (selected) display: flex; align-items: flex-end; } +.bx--grid.database-page .experiment-word { + display: inline-block; +} From 587262ccc5722b99fa759ce99ebbb22a766ba5cb Mon Sep 17 00:00:00 2001 From: notoraptor Date: Wed, 10 Aug 2022 08:41:22 -0400 Subject: [PATCH 07/10] [dashboard/experiment/trials] Add drag-and-drop to change columns order --- dashboard/src/package.json | 6 +- .../content/DatabasePage/DatabasePage.js | 9 +- .../content/DatabasePage/FeaturedTable.js | 169 ++++++++++++++---- dashboard/src/src/index.js | 6 +- dashboard/src/src/style.css | 16 ++ dashboard/src/yarn.lock | 113 ++++++++++-- 6 files changed, 257 insertions(+), 62 deletions(-) diff --git a/dashboard/src/package.json b/dashboard/src/package.json index 75e517191..2b33d39a8 100644 --- a/dashboard/src/package.json +++ b/dashboard/src/package.json @@ -27,9 +27,11 @@ "carbon-icons": "^7.0.7", "plotly.js": "^2.12.1", "plotly.js-cartesian-dist-min": "^2.12.1", - "react": "16.14.0", + "react": "17.0.2", "react-bootstrap": "^1.6.5", - "react-dom": "16.14.0", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "17.0.2", "react-plotly.js": "^2.5.1", "react-router-dom": "5.3.3", "react-scripts": "5.0.1", diff --git a/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js b/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js index 38bd5aba3..9a05f9769 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js +++ b/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js @@ -106,6 +106,7 @@ class TrialsProvider { paramKeys.sort(); const headers = [ { + id: 'id', accessorKey: 'id', header: 'ID', sortingFn: 'text', @@ -120,9 +121,10 @@ class TrialsProvider { }, { // Grouped parameters columns + id: 'parameters', header: 'Parameters', columns: paramKeys.map(k => { - const p = { accessorFn: r => r[k], header: k.substr(7) }; + const p = { id: k, accessorFn: r => r[k], header: k.substr(7) }; if (!sortableParamCols[k]) { // column not sortable p.cell = props => props.getValue(); @@ -132,23 +134,28 @@ class TrialsProvider { }), }, { + id: 'submitTime', accessorKey: 'submitTime', header: 'Submit time', }, { + id: 'startTime', accessorKey: 'startTime', header: 'Start time', }, { + id: 'endTime', accessorKey: 'endTime', header: 'End time', }, { + id: 'objective', accessorKey: 'objective', header: 'Objective', }, { // not sortable + id: 'statistics', accessorKey: 'statistics', header: 'Statistics', cell: props => props.getValue(), diff --git a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js index 2cd61f711..a5e9a28e5 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js +++ b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js @@ -1,4 +1,9 @@ -import { ArrowDown20, ArrowsVertical20, ArrowUp20 } from '@carbon/icons-react'; +import { + ArrowDown20, + ArrowsVertical20, + ArrowUp20, + ArrowsHorizontal20, +} from '@carbon/icons-react'; import React from 'react'; import { flexRender, @@ -14,6 +19,119 @@ import { Pagination, Row, } from 'carbon-components-react'; +import { useDrag, useDrop } from 'react-dnd'; + +function collectLeafColumnIndices(columDefinitions, output) { + columDefinitions.forEach(columnDefinition => { + if (columnDefinition.hasOwnProperty('columns')) { + collectLeafColumnIndices(columnDefinition.columns, output); + } else { + output.push(columnDefinition.id); + } + }); +} + +function reorderColumn(draggedColumnId, targetColumnId, columnOrder) { + columnOrder.splice( + columnOrder.indexOf(targetColumnId), + 0, + columnOrder.splice(columnOrder.indexOf(draggedColumnId), 1)[0] + ); + return [...columnOrder]; +} + +function DraggableColumnHeader({ header, table }) { + const { getState, setColumnOrder } = table; + const { columnOrder } = getState(); + const { column } = header; + + const [{ isOver }, dropRef] = useDrop({ + accept: 'column', + drop: draggedColumn => { + console.log('column', column.id, 'dragged', draggedColumn.id, 'before'); + console.log(columnOrder); + const newColumnOrder = reorderColumn( + draggedColumn.id, + column.id, + columnOrder + ); + console.log('after'); + console.log(newColumnOrder); + setColumnOrder(newColumnOrder); + }, + collect: monitor => ({ + isOver: monitor.isOver(), + }), + }); + + const [{ isDragging }, dragRef, previewRef] = useDrag({ + collect: monitor => ({ + isDragging: monitor.isDragging(), + }), + item: () => column, + type: 'column', + }); + + const thClassNames = []; + if (!header.column.getCanSort()) thClassNames.push('header-unsortable'); + if (header.isPlaceholder) thClassNames.push('placeholder'); + else thClassNames.push('no-placeholder'); + if (isOver) thClassNames.push('is-over'); + + return ( + +
+ {header.isPlaceholder ? null : header.column.getCanSort() ? ( + + ) : ( + + )} +
+ + ); +} const sortingIcons = { asc: , @@ -21,6 +139,11 @@ const sortingIcons = { }; export function FeaturedTable({ columns, data, experiment }) { + const defaultColumnOrder = []; + collectLeafColumnIndices(columns, defaultColumnOrder); + const [columnOrder, setColumnOrder] = React.useState(defaultColumnOrder); + console.log('Default'); + console.log(columnOrder); const [sorting, setSorting] = React.useState([]); const [columnVisibility, setColumnVisibility] = React.useState({}); const [{ pageIndex, pageSize }, setPagination] = React.useState({ @@ -37,7 +160,7 @@ export function FeaturedTable({ columns, data, experiment }) { columns, data, pageCount, - state: { sorting, columnVisibility, pagination }, + state: { sorting, columnVisibility, pagination, columnOrder }, getCoreRowModel: getCoreRowModel(), onSortingChange: setSorting, getSortedRowModel: getSortedRowModel(), @@ -46,6 +169,7 @@ export function FeaturedTable({ columns, data, experiment }) { getPaginationRowModel: getPaginationRowModel(), onPaginationChange: setPagination, // manualPagination: true + onColumnOrderChange: setColumnOrder, }); const itemSelectAll = { id: '(select all)', label: '(select all)' }; const selectableColumns = [ @@ -131,44 +255,11 @@ export function FeaturedTable({ columns, data, experiment }) { {table.getHeaderGroups().map(headerGroup => ( {headerGroup.headers.map(header => ( - - {header.isPlaceholder ? null : header.column.getCanSort() ? ( - - ) : ( - flexRender( - header.column.columnDef.header, - header.getContext() - ) - )} - + header={header} + table={table} + /> ))} ))} diff --git a/dashboard/src/src/index.js b/dashboard/src/src/index.js index bda77df66..0fd76d995 100644 --- a/dashboard/src/src/index.js +++ b/dashboard/src/src/index.js @@ -5,10 +5,14 @@ import './style.css'; import App from './App'; import * as serviceWorker from './serviceWorker'; import { HashRouter as Router } from 'react-router-dom'; +import { DndProvider } from 'react-dnd'; +import { HTML5Backend } from 'react-dnd-html5-backend'; ReactDOM.render( - + + + , document.getElementById('root') ); diff --git a/dashboard/src/src/style.css b/dashboard/src/src/style.css index c322c4889..a6b2cb74e 100644 --- a/dashboard/src/src/style.css +++ b/dashboard/src/src/style.css @@ -46,3 +46,19 @@ a.bx--header__menu-item.bx--header__menu-title[aria-label='benchmarks (selected) .bx--grid.database-page .experiment-word { display: inline-block; } +.bx--grid.database-page .header-dnd { + cursor: grab; +} +.bx--grid.database-page th.no-placeholder.header-unsortable { + cursor: default; +} +.bx--grid.database-page th.no-placeholder.header-unsortable button { + cursor: default; +} +.bx--grid.database-page th.no-placeholder.header-unsortable:hover button.bx--table-sort { + background-color: inherit; +} +.bx--grid.database-page th.is-over button.bx--table-sort { + font-style: italic; + font-weight: normal; +} diff --git a/dashboard/src/yarn.lock b/dashboard/src/yarn.lock index 3d8797532..48a168522 100644 --- a/dashboard/src/yarn.lock +++ b/dashboard/src/yarn.lock @@ -2523,6 +2523,27 @@ __metadata: languageName: node linkType: hard +"@react-dnd/asap@npm:^5.0.1": + version: 5.0.2 + resolution: "@react-dnd/asap@npm:5.0.2" + checksum: 18f040e53512983f11c542ef21e6e4cac605d585a10cd764b13bc1b2f3ac7490e0fa40503adc348d8387aa45bc8e7eebe9cb33003b960a30bb5fde666ff2adde + languageName: node + linkType: hard + +"@react-dnd/invariant@npm:^4.0.1": + version: 4.0.2 + resolution: "@react-dnd/invariant@npm:4.0.2" + checksum: 594f6d78896c19bb8f023e101334fd91a9fdff686117bd8e830ba53737ec0a6042dab66971d3d63c7afbc622103909aff7a64c5c6767e0aa8d9561fd42705016 + languageName: node + linkType: hard + +"@react-dnd/shallowequal@npm:^4.0.1": + version: 4.0.2 + resolution: "@react-dnd/shallowequal@npm:4.0.2" + checksum: 7f21d691bddbfd4d2830948cbeefecca1600b2b46bcb1934926795f07ae8a1fa60a3dfd3a2112be5ef682c3820c80a99711e9fa15843f7e300acb25a4ecb70ab + languageName: node + linkType: hard + "@restart/context@npm:^2.1.4": version: 2.1.4 resolution: "@restart/context@npm:2.1.4" @@ -4886,9 +4907,11 @@ __metadata: plotly.js: ^2.12.1 plotly.js-cartesian-dist-min: ^2.12.1 prettier: 1.19.1 - react: 16.14.0 + react: 17.0.2 react-bootstrap: ^1.6.5 - react-dom: 16.14.0 + react-dnd: ^16.0.1 + react-dnd-html5-backend: ^16.0.1 + react-dom: 17.0.2 react-plotly.js: ^2.5.1 react-router-dom: 5.3.3 react-scripts: 5.0.1 @@ -6377,6 +6400,17 @@ __metadata: languageName: node linkType: hard +"dnd-core@npm:^16.0.1": + version: 16.0.1 + resolution: "dnd-core@npm:16.0.1" + dependencies: + "@react-dnd/asap": ^5.0.1 + "@react-dnd/invariant": ^4.0.1 + redux: ^4.2.0 + checksum: b7d3ef4664f433af796f440ddd27ad9d7fef0205f26c4b7c0af6ebf612ffa9b33e64d095d3e79190c4baaed34aa36570f321ebe0d2cc8ff1031ff158a0907b3f + languageName: node + linkType: hard + "dns-equal@npm:^1.0.0": version: 1.0.0 resolution: "dns-equal@npm:1.0.0" @@ -8418,7 +8452,7 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.1.0": +"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: @@ -12936,17 +12970,50 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:16.14.0": - version: 16.14.0 - resolution: "react-dom@npm:16.14.0" +"react-dnd-html5-backend@npm:^16.0.1": + version: 16.0.1 + resolution: "react-dnd-html5-backend@npm:16.0.1" + dependencies: + dnd-core: ^16.0.1 + checksum: e2368bf85d5632a5cd867b743feb54c9052d909ea5331608860fa455edf3c633ac791f5b338e3db29b19ea8670c0ba5fb43c9c1c2510760bea030811d726cdfa + languageName: node + linkType: hard + +"react-dnd@npm:^16.0.1": + version: 16.0.1 + resolution: "react-dnd@npm:16.0.1" + dependencies: + "@react-dnd/invariant": ^4.0.1 + "@react-dnd/shallowequal": ^4.0.1 + dnd-core: ^16.0.1 + fast-deep-equal: ^3.1.3 + hoist-non-react-statics: ^3.3.2 + peerDependencies: + "@types/hoist-non-react-statics": ">= 3.3.1" + "@types/node": ">= 12" + "@types/react": ">= 16" + react: ">= 16.14" + peerDependenciesMeta: + "@types/hoist-non-react-statics": + optional: true + "@types/node": + optional: true + "@types/react": + optional: true + checksum: e8da2186aaafcd5bb41c090a995c963a7c3c73c20991667a2cfc0c800d7f7f73913414b2e61c437cdb6221bb2151bd5174088b8b42c17056a896fc4d1da5729f + languageName: node + linkType: hard + +"react-dom@npm:17.0.2": + version: 17.0.2 + resolution: "react-dom@npm:17.0.2" dependencies: loose-envify: ^1.1.0 object-assign: ^4.1.1 - prop-types: ^15.6.2 - scheduler: ^0.19.1 + scheduler: ^0.20.2 peerDependencies: - react: ^16.14.0 - checksum: 5a5c49da0f106b2655a69f96c622c347febcd10532db391c262b26aec225b235357d9da1834103457683482ab1b229af7a50f6927a6b70e53150275e31785544 + react: 17.0.2 + checksum: 1c1eaa3bca7c7228d24b70932e3d7c99e70d1d04e13bb0843bbf321582bc25d7961d6b8a6978a58a598af2af496d1cedcfb1bf65f6b0960a0a8161cb8dab743c languageName: node linkType: hard @@ -13157,14 +13224,13 @@ __metadata: languageName: node linkType: hard -"react@npm:16.14.0": - version: 16.14.0 - resolution: "react@npm:16.14.0" +"react@npm:17.0.2": + version: 17.0.2 + resolution: "react@npm:17.0.2" dependencies: loose-envify: ^1.1.0 object-assign: ^4.1.1 - prop-types: ^15.6.2 - checksum: 8484f3ecb13414526f2a7412190575fc134da785c02695eb92bb6028c930bfe1c238d7be2a125088fec663cc7cda0a3623373c46807cf2c281f49c34b79881ac + checksum: b254cc17ce3011788330f7bbf383ab653c6848902d7936a87b09d835d091e3f295f7e9dd1597c6daac5dc80f90e778c8230218ba8ad599f74adcc11e33b9d61b languageName: node linkType: hard @@ -13266,6 +13332,15 @@ __metadata: languageName: node linkType: hard +"redux@npm:^4.2.0": + version: 4.2.0 + resolution: "redux@npm:4.2.0" + dependencies: + "@babel/runtime": ^7.9.2 + checksum: 75f3955c89b3f18edf5411e5fb482aa2e4f41a416183e8802a6bf6472c4fc3d47675b8b321d147f8af8e0f616436ac507bf5a25f1c4d6180e797b549c7db2c1d + languageName: node + linkType: hard + "regenerate-unicode-properties@npm:^10.0.1": version: 10.0.1 resolution: "regenerate-unicode-properties@npm:10.0.1" @@ -13832,13 +13907,13 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.19.1": - version: 0.19.1 - resolution: "scheduler@npm:0.19.1" +"scheduler@npm:^0.20.2": + version: 0.20.2 + resolution: "scheduler@npm:0.20.2" dependencies: loose-envify: ^1.1.0 object-assign: ^4.1.1 - checksum: 73e185a59e2ff5aa3609f5b9cb97ddd376f89e1610579d29939d952411ca6eb7a24907a4ea4556569dacb931467a1a4a56d94fe809ef713aa76748642cd96a6c + checksum: c4b35cf967c8f0d3e65753252d0f260271f81a81e427241295c5a7b783abf4ea9e905f22f815ab66676f5313be0a25f47be582254db8f9241b259213e999b8fc languageName: node linkType: hard From 03507a3e114da36927c0b31e4db1f413f9f192d0 Mon Sep 17 00:00:00 2001 From: notoraptor Date: Fri, 12 Aug 2022 03:08:19 -0400 Subject: [PATCH 08/10] Upgrade to React 18 to correctly handle react-dnd when compiling dashboard --- dashboard/src/package.json | 4 +- dashboard/src/src/index.js | 7 +- dashboard/src/yarn.lock | 987 ++++++++++++++++++------------------- 3 files changed, 474 insertions(+), 524 deletions(-) diff --git a/dashboard/src/package.json b/dashboard/src/package.json index 2b33d39a8..13f7aaeff 100644 --- a/dashboard/src/package.json +++ b/dashboard/src/package.json @@ -27,11 +27,11 @@ "carbon-icons": "^7.0.7", "plotly.js": "^2.12.1", "plotly.js-cartesian-dist-min": "^2.12.1", - "react": "17.0.2", + "react": "18.2.0", "react-bootstrap": "^1.6.5", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", - "react-dom": "17.0.2", + "react-dom": "18.2.0", "react-plotly.js": "^2.5.1", "react-router-dom": "5.3.3", "react-scripts": "5.0.1", diff --git a/dashboard/src/src/index.js b/dashboard/src/src/index.js index 0fd76d995..393a99489 100644 --- a/dashboard/src/src/index.js +++ b/dashboard/src/src/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import ReactDOM from 'react-dom'; +import { createRoot } from 'react-dom/client'; import './index.scss'; import './style.css'; import App from './App'; @@ -8,13 +8,12 @@ import { HashRouter as Router } from 'react-router-dom'; import { DndProvider } from 'react-dnd'; import { HTML5Backend } from 'react-dnd-html5-backend'; -ReactDOM.render( +createRoot(document.getElementById('root')).render( - , - document.getElementById('root') + ); // If you want your app to work offline and load faster, you can change diff --git a/dashboard/src/yarn.lock b/dashboard/src/yarn.lock index 48a168522..6a338320d 100644 --- a/dashboard/src/yarn.lock +++ b/dashboard/src/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 5 cacheKey: 8 +"@adobe/css-tools@npm:^4.0.1": + version: 4.0.1 + resolution: "@adobe/css-tools@npm:4.0.1" + checksum: 80226e2229024c21da9ffa6b5cd4a34b931f071e06f45aba4777ade071d7a6c94605cf73b13718b0c4b34e8b124c65c607b82eaa53a326d3eb73d9682a04a593 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.1.0": version: 2.2.0 resolution: "@ampproject/remapping@npm:2.2.0" @@ -45,25 +52,25 @@ __metadata: linkType: hard "@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.0, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": - version: 7.18.9 - resolution: "@babel/core@npm:7.18.9" + version: 7.18.10 + resolution: "@babel/core@npm:7.18.10" dependencies: "@ampproject/remapping": ^2.1.0 "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.18.9 + "@babel/generator": ^7.18.10 "@babel/helper-compilation-targets": ^7.18.9 "@babel/helper-module-transforms": ^7.18.9 "@babel/helpers": ^7.18.9 - "@babel/parser": ^7.18.9 - "@babel/template": ^7.18.6 - "@babel/traverse": ^7.18.9 - "@babel/types": ^7.18.9 + "@babel/parser": ^7.18.10 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.18.10 + "@babel/types": ^7.18.10 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.1 semver: ^6.3.0 - checksum: 64b9088b03fdf659b334864ef93bed85d60c17b27fcbd72970f8eb9e0d3266ffa5a1926960f648f2db36b0bafec615f947ea5117d200599a0661b9f0a9cdf323 + checksum: 3a3fcd878430a9e1cb165f755c89fff45acc4efe4dd3a2ba356e89af331cb1947886b9782d56902a49af19ba3c24f08cf638a632699b9c5a4d8305c57c6a150d languageName: node linkType: hard @@ -81,14 +88,14 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.18.9, @babel/generator@npm:^7.7.2": - version: 7.18.9 - resolution: "@babel/generator@npm:7.18.9" +"@babel/generator@npm:^7.18.10, @babel/generator@npm:^7.7.2": + version: 7.18.12 + resolution: "@babel/generator@npm:7.18.12" dependencies: - "@babel/types": ^7.18.9 + "@babel/types": ^7.18.10 "@jridgewell/gen-mapping": ^0.3.2 jsesc: ^2.5.1 - checksum: 1c271e0c6f33e59f7845d88a1b0b9b0dce88164e80dec9274a716efa54c260e405e9462b160843e73f45382bf5b24d8e160e0121207e480c29b30e2ed0eb16d4 + checksum: 07dd71d255144bb703a80ab0156c35d64172ce81ddfb70ff24e2be687b052080233840c9a28d92fa2c33f7ecb8a8b30aef03b807518afc53b74c7908bf8859b1 languageName: node linkType: hard @@ -154,7 +161,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.3.1, @babel/helper-define-polyfill-provider@npm:^0.3.2": +"@babel/helper-define-polyfill-provider@npm:^0.3.2": version: 0.3.2 resolution: "@babel/helper-define-polyfill-provider@npm:0.3.2" dependencies: @@ -170,7 +177,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.6, @babel/helper-environment-visitor@npm:^7.18.9": +"@babel/helper-environment-visitor@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-environment-visitor@npm:7.18.9" checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 @@ -255,7 +262,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.18.6": +"@babel/helper-remap-async-to-generator@npm:^7.18.6, @babel/helper-remap-async-to-generator@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-remap-async-to-generator@npm:7.18.9" dependencies: @@ -309,6 +316,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/helper-string-parser@npm:7.18.10" + checksum: d554a4393365b624916b5c00a4cc21c990c6617e7f3fe30be7d9731f107f12c33229a7a3db9d829bfa110d2eb9f04790745d421640e3bd245bb412dc0ea123c1 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-validator-identifier@npm:7.18.6" @@ -324,14 +338,14 @@ __metadata: linkType: hard "@babel/helper-wrap-function@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-wrap-function@npm:7.18.9" + version: 7.18.11 + resolution: "@babel/helper-wrap-function@npm:7.18.11" dependencies: "@babel/helper-function-name": ^7.18.9 - "@babel/template": ^7.18.6 - "@babel/traverse": ^7.18.9 - "@babel/types": ^7.18.9 - checksum: da818e519b48bbaa748a4fa87b0ba681bc627c9eb9557008d5307d42d3f536fe435b775163088dd9639b0120c8ea1ae1021777f48806f9f83397f4df622b88d3 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.18.11 + "@babel/types": ^7.18.10 + checksum: e2fb909cdeb5c8688513261202cdeab7c6a8ac1f30daa5a1e0111631f270c26118c2e6b27014fc9f5d2c0ee1182fc40a3db2d30e45425587067f49dcae737dc9 languageName: node linkType: hard @@ -357,12 +371,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.6, @babel/parser@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/parser@npm:7.18.9" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.10, @babel/parser@npm:^7.18.11": + version: 7.18.11 + resolution: "@babel/parser@npm:7.18.11" bin: parser: ./bin/babel-parser.js - checksum: 81a966b334e3ef397e883c64026265a5ae0ad435a86f52a84f60a5ee1efc0738c1f42c55e0dc5f191cc6a83ba0c61350433eee417bf1dff160ca5f3cfde244c6 + checksum: 5ecc75b83e62ec53a947b1635a6ca75d6210d4a4f962f9f16f4239a6783f98e57f9662b598fa2fb1b8e12c0ad5c2bd86846ed0b97b85eb73dd7498b3a6d71a4b languageName: node linkType: hard @@ -390,17 +404,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.18.6" +"@babel/plugin-proposal-async-generator-functions@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.18.10" dependencies: - "@babel/helper-environment-visitor": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/helper-remap-async-to-generator": ^7.18.6 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-remap-async-to-generator": ^7.18.9 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3f708808ba6f8a9bd18805b1b22ab90ec0b362d949111a776e0bade5391f143f55479dcc444b2cec25fc89ac21035ee92e9a5ec37c02c610639197a0c2f7dcb0 + checksum: 3a6c25085021053830f6c57780118d3337935ac3309eef7f09b11e413d189eed8119d50cbddeb4c8c02f42f8cc01e62a4667b869be6e158f40030bafb92a0629 languageName: node linkType: hard @@ -430,8 +444,8 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.16.4": - version: 7.18.9 - resolution: "@babel/plugin-proposal-decorators@npm:7.18.9" + version: 7.18.10 + resolution: "@babel/plugin-proposal-decorators@npm:7.18.10" dependencies: "@babel/helper-create-class-features-plugin": ^7.18.9 "@babel/helper-plugin-utils": ^7.18.9 @@ -440,7 +454,7 @@ __metadata: "@babel/plugin-syntax-decorators": ^7.18.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c2f6562c133ce5ee0662dae162d32cb653dabb33fb2fb1caf930ee255a3fb5158f7ef680b37a3866482d68ed5ff6aea0734e64f67142ee4e9c33589339d2cc42 + checksum: 3d688bb2eb673988e0b35aa02c65ce4b35be5cebf587182b465cb4e67725116b416638ba3e804b3f83a7dacad7f9679a082f4c131aa53b01e18681a51ba03ac5 languageName: node linkType: hard @@ -1116,13 +1130,13 @@ __metadata: linkType: hard "@babel/plugin-transform-react-constant-elements@npm:^7.12.1": - version: 7.18.9 - resolution: "@babel/plugin-transform-react-constant-elements@npm:7.18.9" + version: 7.18.12 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.18.12" dependencies: "@babel/helper-plugin-utils": ^7.18.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bbdc4bc38317e62bb729d6d2b48bfac4cca52cb476a1a537a6fe693610852a6f2c3b3f616e1c73f17fb4b0dae551b1c96f898b7867a02ff2fbe3e858a346c767 + checksum: d83fbc65e8eb32b64fc83c64436d85dba44e2c358b906e5eb3709d22b05bdeada2f92af1e85e26fda88bb8d688b06546b9a98fee17c82563ae00f19827ba0c79 languageName: node linkType: hard @@ -1149,17 +1163,17 @@ __metadata: linkType: hard "@babel/plugin-transform-react-jsx@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-react-jsx@npm:7.18.6" + version: 7.18.10 + resolution: "@babel/plugin-transform-react-jsx@npm:7.18.10" dependencies: "@babel/helper-annotate-as-pure": ^7.18.6 "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.9 "@babel/plugin-syntax-jsx": ^7.18.6 - "@babel/types": ^7.18.6 + "@babel/types": ^7.18.10 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 46129eaf1ab7a7a73e3e8c9d9859b630f5b381c5e19fb1559e2db7b943a7825b6715ad950623fb03fe7bd31ed618ce1d0bd539b13fa030a50c39d5a873a5ba00 + checksum: 1aacfb0286d5b95c45bbda6cf026f9e81a261298b5921cd55b357581c9b3681fe70ba56846fae86cf63908ea8e07d0e3dd8192d663d6bddd75a7fe4c091cd724 languageName: node linkType: hard @@ -1199,18 +1213,18 @@ __metadata: linkType: hard "@babel/plugin-transform-runtime@npm:^7.16.4": - version: 7.18.9 - resolution: "@babel/plugin-transform-runtime@npm:7.18.9" + version: 7.18.10 + resolution: "@babel/plugin-transform-runtime@npm:7.18.10" dependencies: "@babel/helper-module-imports": ^7.18.6 "@babel/helper-plugin-utils": ^7.18.9 - babel-plugin-polyfill-corejs2: ^0.3.1 - babel-plugin-polyfill-corejs3: ^0.5.2 - babel-plugin-polyfill-regenerator: ^0.3.1 + babel-plugin-polyfill-corejs2: ^0.3.2 + babel-plugin-polyfill-corejs3: ^0.5.3 + babel-plugin-polyfill-regenerator: ^0.4.0 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fc5e3c5c73197fabd165f85c2e0c4b156d5ef1dd724b28f73f1d000882692141ea13541a2df8067a93c2bd9b0aafe7e61911ac046f67808fcb2f252fb5f3eddd + checksum: 98c18680b4258b8bd3f04926b73c72ae77037d5ea5b50761ca35de15896bf0d04bedabde39a81be56dbd4859c96ffaa7103fbefb5d5b58a36e0a80381e4a146c languageName: node linkType: hard @@ -1271,26 +1285,26 @@ __metadata: linkType: hard "@babel/plugin-transform-typescript@npm:^7.18.6": - version: 7.18.8 - resolution: "@babel/plugin-transform-typescript@npm:7.18.8" + version: 7.18.12 + resolution: "@babel/plugin-transform-typescript@npm:7.18.12" dependencies: - "@babel/helper-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-create-class-features-plugin": ^7.18.9 + "@babel/helper-plugin-utils": ^7.18.9 "@babel/plugin-syntax-typescript": ^7.18.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 627211f1658870274fcabf38a71bb08ae219e3ac672423083574fabe2c857f28d39243cb7279adada8468c912a7beebc0622770ed66885a1e33b84ccc8bfd7df + checksum: 87e9b783ef712697a9d3bd72d0345ea4ea71b4676f9b88da0a30fe4b8a81f453a5badee788bb4dc849616af84d674d728a6ec4248f14a75bfb0b4de5bcce7431 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.6" +"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 297a03706723164a777263f76a8d89bccfb1d3fbc5e1075079dfd84372a5416d579da7d44c650abf935a1150a995bfce0e61966447b657f958e51c4ea45b72dc + checksum: f5baca55cb3c11bc08ec589f5f522d85c1ab509b4d11492437e45027d64ae0b22f0907bd1381e8d7f2a436384bb1f9ad89d19277314242c5c2671a0f91d0f9cd languageName: node linkType: hard @@ -1307,8 +1321,8 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.16.4": - version: 7.18.9 - resolution: "@babel/preset-env@npm:7.18.9" + version: 7.18.10 + resolution: "@babel/preset-env@npm:7.18.10" dependencies: "@babel/compat-data": ^7.18.8 "@babel/helper-compilation-targets": ^7.18.9 @@ -1316,7 +1330,7 @@ __metadata: "@babel/helper-validator-option": ^7.18.6 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.18.9 - "@babel/plugin-proposal-async-generator-functions": ^7.18.6 + "@babel/plugin-proposal-async-generator-functions": ^7.18.10 "@babel/plugin-proposal-class-properties": ^7.18.6 "@babel/plugin-proposal-class-static-block": ^7.18.6 "@babel/plugin-proposal-dynamic-import": ^7.18.6 @@ -1376,18 +1390,18 @@ __metadata: "@babel/plugin-transform-sticky-regex": ^7.18.6 "@babel/plugin-transform-template-literals": ^7.18.9 "@babel/plugin-transform-typeof-symbol": ^7.18.9 - "@babel/plugin-transform-unicode-escapes": ^7.18.6 + "@babel/plugin-transform-unicode-escapes": ^7.18.10 "@babel/plugin-transform-unicode-regex": ^7.18.6 "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.18.9 - babel-plugin-polyfill-corejs2: ^0.3.1 - babel-plugin-polyfill-corejs3: ^0.5.2 - babel-plugin-polyfill-regenerator: ^0.3.1 + "@babel/types": ^7.18.10 + babel-plugin-polyfill-corejs2: ^0.3.2 + babel-plugin-polyfill-corejs3: ^0.5.3 + babel-plugin-polyfill-regenerator: ^0.4.0 core-js-compat: ^3.22.1 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 311002b9255d1aa261afe712ab73a93687652437804e2f44e6cc55438f8b199463f53bb2b8e0912b0034f208a42eee664a9e126a6061ca504a792ede97dd027e + checksum: 36eeb7157021091c8047703833b7a28e4963865d16968a5b9dbffe1eb05e44307a8d29ad45d81fd23817f68290b52921c42f513a93996c7083d23d5e2cea0c6b languageName: node linkType: hard @@ -1454,42 +1468,43 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.18.6, @babel/template@npm:^7.3.3": - version: 7.18.6 - resolution: "@babel/template@npm:7.18.6" +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.18.6, @babel/template@npm:^7.3.3": + version: 7.18.10 + resolution: "@babel/template@npm:7.18.10" dependencies: "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.18.6 - "@babel/types": ^7.18.6 - checksum: cb02ed804b7b1938dbecef4e01562013b80681843dd391933315b3dd9880820def3b5b1bff6320d6e4c6a1d63d1d5799630d658ec6b0369c5505e7e4029c38fb + "@babel/parser": ^7.18.10 + "@babel/types": ^7.18.10 + checksum: 93a6aa094af5f355a72bd55f67fa1828a046c70e46f01b1606e6118fa1802b6df535ca06be83cc5a5e834022be95c7b714f0a268b5f20af984465a71e28f1473 languageName: node linkType: hard -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.7.2": - version: 7.18.9 - resolution: "@babel/traverse@npm:7.18.9" +"@babel/traverse@npm:^7.18.10, @babel/traverse@npm:^7.18.11, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.7.2": + version: 7.18.11 + resolution: "@babel/traverse@npm:7.18.11" dependencies: "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.18.9 + "@babel/generator": ^7.18.10 "@babel/helper-environment-visitor": ^7.18.9 "@babel/helper-function-name": ^7.18.9 "@babel/helper-hoist-variables": ^7.18.6 "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.18.9 - "@babel/types": ^7.18.9 + "@babel/parser": ^7.18.11 + "@babel/types": ^7.18.10 debug: ^4.1.0 globals: ^11.1.0 - checksum: 0445a51952ea1664a5719d9b1f8bf04be6f1933bcf54915fecc544c844a5dad2ac56f3b555723bbf741ef680d7fd64f6a5d69cfd08d518a4089c79a734270162 + checksum: 727409464d5cf27f33555010098ce9bb435f0648cc76e674f4fb7513522356655ba62be99c8df330982b391ccf5f0c0c23c7bd7453d4936d47e2181693fed14c languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.6, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.18.9 - resolution: "@babel/types@npm:7.18.9" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.6, @babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.18.10 + resolution: "@babel/types@npm:7.18.10" dependencies: + "@babel/helper-string-parser": ^7.18.10 "@babel/helper-validator-identifier": ^7.18.6 to-fast-properties: ^2.0.0 - checksum: f0e0147267895fd8a5b82133e711ce7ce99941f3ce63647e0e3b00656a7afe48a8aa48edbae27543b701794d2b29a562a08f51f88f41df401abce7c3acc5e13a + checksum: 11632c9b106e54021937a6498138014ebc9ad6c327a07b2af3ba8700773945aba4055fd136431cbe3a500d0f363cbf9c68eb4d6d38229897c5de9d06e14c85e8 languageName: node linkType: hard @@ -1518,9 +1533,9 @@ __metadata: linkType: hard "@carbon/icon-helpers@npm:^10.28.0": - version: 10.31.0 - resolution: "@carbon/icon-helpers@npm:10.31.0" - checksum: f0fe2dae4c2b69e2974781e827dcf20946c88a5e537f86da9fc9d8470f5f18f3b92ee4f8be0bed07ff1928a60ac7a4c084c8ee8daff279a959be2befdc43382d + version: 10.32.0 + resolution: "@carbon/icon-helpers@npm:10.32.0" + checksum: 0e30aa111ccde24bf02dd17b3d1016ce829e2a1f9082c2986520b3df38a8cad504a231d0d4fd0cbe15b3e35af0e091ff7ce09cb2d20553e4618d800981f933b5 languageName: node linkType: hard @@ -1943,14 +1958,21 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.9.2": - version: 0.9.5 - resolution: "@humanwhocodes/config-array@npm:0.9.5" +"@humanwhocodes/config-array@npm:^0.10.4": + version: 0.10.4 + resolution: "@humanwhocodes/config-array@npm:0.10.4" dependencies: "@humanwhocodes/object-schema": ^1.2.1 debug: ^4.1.1 minimatch: ^3.0.4 - checksum: 8ba6281bc0590f6c6eadeefc14244b5a3e3f5903445aadd1a32099ed80e753037674026ce1b3c945ab93561bea5eb29e3c5bff67060e230c295595ba517a3492 + checksum: d480e5d57e6d787565b6cff78e27c3d1b380692d4ffb0ada7d7f5957a56c9032f034da05a3e443065dbd0671ebf4d859036ced34e96b325bbc1badbae3c05300 + languageName: node + linkType: hard + +"@humanwhocodes/gitignore-to-minimatch@npm:^1.0.2": + version: 1.0.2 + resolution: "@humanwhocodes/gitignore-to-minimatch@npm:1.0.2" + checksum: aba5c40c9e3770ed73a558b0bfb53323842abfc2ce58c91d7e8b1073995598e6374456d38767be24ab6176915f0a8d8b23eaae5c85e2b488c0dccca6d795e2ad languageName: node linkType: hard @@ -2294,12 +2316,12 @@ __metadata: linkType: hard "@jridgewell/trace-mapping@npm:^0.3.7, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.14 - resolution: "@jridgewell/trace-mapping@npm:0.3.14" + version: 0.3.15 + resolution: "@jridgewell/trace-mapping@npm:0.3.15" dependencies: "@jridgewell/resolve-uri": ^3.0.3 "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: b9537b9630ffb631aef9651a085fe361881cde1772cd482c257fe3c78c8fd5388d681f504a9c9fe1081b1c05e8f75edf55ee10fdb58d92bbaa8dbf6a7bd6b18c + checksum: 38917e9c2b014d469a9f51c016ed506acbe44dd16ec2f6f99b553ebf3764d22abadbf992f2367b6d2b3511f3eae8ed3a8963f6c1030093fda23efd35ecab2bae languageName: node linkType: hard @@ -2517,9 +2539,9 @@ __metadata: linkType: hard "@popperjs/core@npm:^2.8.6": - version: 2.11.5 - resolution: "@popperjs/core@npm:2.11.5" - checksum: fd7f9dca3fb716d7426332b6ee283f88d2724c0ab342fb678865a640bad403dfb9eeebd8204a406986162f7e2b33394f104320008b74d0e9066d7322f70ea35d + version: 2.11.6 + resolution: "@popperjs/core@npm:2.11.6" + checksum: 47fb328cec1924559d759b48235c78574f2d71a8a6c4c03edb6de5d7074078371633b91e39bbf3f901b32aa8af9b9d8f82834856d2f5737a23475036b16817f0 languageName: node linkType: hard @@ -2630,9 +2652,9 @@ __metadata: linkType: hard "@sinclair/typebox@npm:^0.24.1": - version: 0.24.20 - resolution: "@sinclair/typebox@npm:0.24.20" - checksum: bb2e95ab60236ebbcaf3c0735b01a8ce6bea068bb1214a8016f8fea7bc2027d69b08437998425d93a3ac38ded3dbe8c64e218e635c09282cb3dd5d5a64269076 + version: 0.24.27 + resolution: "@sinclair/typebox@npm:0.24.27" + checksum: c283de9158c0206da3d1ebd7c5f994da0b1cf86df89674da7709850300ecdceb0d4c9680dccce84b60cdcc3d8858f54df8235b250ba092726fadb2bebe720bd1 languageName: node linkType: hard @@ -2798,27 +2820,27 @@ __metadata: linkType: hard "@tanstack/react-table@npm:^8.3.3": - version: 8.4.0 - resolution: "@tanstack/react-table@npm:8.4.0" + version: 8.5.11 + resolution: "@tanstack/react-table@npm:8.5.11" dependencies: - "@tanstack/table-core": 8.4.0 + "@tanstack/table-core": 8.5.11 peerDependencies: react: ">=16" react-dom: ">=16" - checksum: d058b9a20755aff00d56dedbd52705d238c4114a4146aa263923e1e134a195bd5cee41ce7591da259a67c3ef538ade1e4f77eff7a8de8fc5ee3c46efcd7e431b + checksum: 7ab4bfb6c6f2ea3d7a17332297cf77cdd3ca231fde8cb61be94dec603e3e7316bd7661c08c4430b02fd4cb7e7b42f733d854e8a872bb094529dc5d32f9dd2acc languageName: node linkType: hard -"@tanstack/table-core@npm:8.4.0": - version: 8.4.0 - resolution: "@tanstack/table-core@npm:8.4.0" - checksum: f73919e76d107e4c4d77f931f12bb1554c028a23c665b05101910023f71b0555f1ed33e788e325ab8d61e9faa1e33f01d5db305e40b99930574471e184030bf2 +"@tanstack/table-core@npm:8.5.11": + version: 8.5.11 + resolution: "@tanstack/table-core@npm:8.5.11" + checksum: f518ba072f0098e9cc2e609bb9da060e2c94c3aed09484effd9e2acb26a512e9566a00fabebb3fe5300763c715132464c4494307774d9a2e5ffc8ea3b7aa3f49 languageName: node linkType: hard "@testing-library/dom@npm:^8.0.0, @testing-library/dom@npm:^8.13.0": - version: 8.16.0 - resolution: "@testing-library/dom@npm:8.16.0" + version: 8.17.1 + resolution: "@testing-library/dom@npm:8.17.1" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 @@ -2828,24 +2850,24 @@ __metadata: dom-accessibility-api: ^0.5.9 lz-string: ^1.4.4 pretty-format: ^27.0.2 - checksum: 37aabbec872522bcb51106ecb700d9be601293e75445084b6cc195921db4b2d06d6bd4c67ad834174c129f2199c39aa540b6d17c296fcbd701dc99fd800afe36 + checksum: e4df091fcf84c9eac4a6ee4c76674c1d562bf98732f0ac8820972d7718ab10397b672b9f082aace3cacd1f610fc77de6e1b6094e67afe1df0443bf22eb9deab2 languageName: node linkType: hard "@testing-library/jest-dom@npm:^5.16.4": - version: 5.16.4 - resolution: "@testing-library/jest-dom@npm:5.16.4" + version: 5.16.5 + resolution: "@testing-library/jest-dom@npm:5.16.5" dependencies: + "@adobe/css-tools": ^4.0.1 "@babel/runtime": ^7.9.2 "@types/testing-library__jest-dom": ^5.9.1 aria-query: ^5.0.0 chalk: ^3.0.0 - css: ^3.0.0 css.escape: ^1.5.1 dom-accessibility-api: ^0.5.6 lodash: ^4.17.15 redent: ^3.0.0 - checksum: 4240501223b72b97a44d4e3c669f39b208c49fb645d11d08d5f178d607265c5dfad07efbe027f41a0e2458178ff1fd5bf437fc05661b9109dcd013b95a37079e + checksum: 94911f901a8031f3e489d04ac057cb5373621230f5d92bed80e514e24b069fb58a3166d1dd86963e55f078a1bd999da595e2ab96ed95f452d477e272937d792a languageName: node linkType: hard @@ -3009,11 +3031,11 @@ __metadata: linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.4, @types/babel__traverse@npm:^7.0.6": - version: 7.17.1 - resolution: "@types/babel__traverse@npm:7.17.1" + version: 7.18.0 + resolution: "@types/babel__traverse@npm:7.18.0" dependencies: "@babel/types": ^7.3.0 - checksum: 8992d8c1eaaf1c793e9184b930767883446939d2744c40ea4e9591086e79b631189dc519931ed8864f1e016742a189703c217db59b800aca84870b865009d8b4 + checksum: 5fd7f4ea0963f9669b1bd6bd928b2d81452b98e4acfcfeb26ca4476162b87f9c1d8f66ff13567fd9f760a31ad04c36d767fa874f569aded6fb46890e379327c1 languageName: node linkType: hard @@ -3097,13 +3119,13 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.18": - version: 4.17.29 - resolution: "@types/express-serve-static-core@npm:4.17.29" + version: 4.17.30 + resolution: "@types/express-serve-static-core@npm:4.17.30" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" - checksum: ec4194dc59276ec6dd906887fc377be0cadf4aaa4d535d9052ab9624937ef2b984a8d9da2c11c96979e21f3d9f78f1da93e767dbcec637f7f13d2e3003151145 + checksum: c40d9027884ab9e97fa29d9d41d1b75a5966109312e26594cf03c61b278b5bf8e095f53589e47899b34a2e224291a44043617695c3e8bd22284f988e48582ee6 languageName: node linkType: hard @@ -3200,10 +3222,10 @@ __metadata: languageName: node linkType: hard -"@types/mime@npm:^1": - version: 1.3.2 - resolution: "@types/mime@npm:1.3.2" - checksum: 0493368244cced1a69cb791b485a260a422e6fcc857782e1178d1e6f219f1b161793e9f87f5fae1b219af0f50bee24fcbe733a18b4be8fdd07a38a8fb91146fd +"@types/mime@npm:*": + version: 3.0.1 + resolution: "@types/mime@npm:3.0.1" + checksum: 4040fac73fd0cea2460e29b348c1a6173da747f3a87da0dbce80dd7a9355a3d0e51d6d9a401654f3e5550620e3718b5a899b2ec1debf18424e298a2c605346e7 languageName: node linkType: hard @@ -3215,9 +3237,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12": - version: 18.6.1 - resolution: "@types/node@npm:18.6.1" - checksum: 06331f68bc73d93b73977ae19ca87818e004bc7b8e70b0d4f73b0ea5e341a4a1ba6f0e79db8fb75a841af2b8d74552d6b9a8f846b267954689f57effedcf5d77 + version: 18.7.2 + resolution: "@types/node@npm:18.7.2" + checksum: 422cf95dea09959d0e809d24280b76948f60ea805e20d38f07bf9eeafeb413513b9cc365404766f7752bef9cafb8301a882d9d097f780e13f2bedf507459ebc5 languageName: node linkType: hard @@ -3236,9 +3258,9 @@ __metadata: linkType: hard "@types/prettier@npm:^2.1.5": - version: 2.6.3 - resolution: "@types/prettier@npm:2.6.3" - checksum: e1836699ca189fff6d2a73dc22e028b6a6f693ed1180d5998ac29fa197caf8f85aa92cb38db642e4a370e616b451cb5722ad2395dab11c78e025a1455f37d1f0 + version: 2.7.0 + resolution: "@types/prettier@npm:2.7.0" + checksum: bf5d0c7c1270909b39399539ac106d20ddaa85fe92eb1d59922dc99159604b4f8d5e41b0045fb29c8011585cf5bca2350b7441ef3d9816c08bd0e10ebd4b31d4 languageName: node linkType: hard @@ -3289,24 +3311,24 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:>=16.14.8, @types/react@npm:>=16.9.11": - version: 18.0.15 - resolution: "@types/react@npm:18.0.15" + version: 18.0.17 + resolution: "@types/react@npm:18.0.17" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: e22cc388d1c145aa184787e44dc28db4789976c704cd5db475c170bb76a560eb81def5f346cfe750949bb3d43ad88822b8cbb9f19b1286e3795892a8263e7715 + checksum: 18cae64f5bfd6bb58fbd8ee2ba52ec82de844f114254e26de7b513e4b86621f643f9b71d7066958cd571b0d78cb86cbceda449c5289f9349ca573df29ab69252 languageName: node linkType: hard "@types/react@npm:^17": - version: 17.0.47 - resolution: "@types/react@npm:17.0.47" + version: 17.0.48 + resolution: "@types/react@npm:17.0.48" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 2e7fe0eb630cb77da03b6da308c58728c01b38e878118e9ff5cd8045181c8d4f32dc936e328f46a62cadb56e1fe4c5a911b5113584f93a99e1f35df7f059246b + checksum: b683fa33f751ced0b8c8715df9f40de15513c1d7ce66064a75cdfb8805cc913b0b214a2e7022ef0b724bd62a1e8651d040cd265dd0452bde03cca9b8e495742d languageName: node linkType: hard @@ -3343,12 +3365,12 @@ __metadata: linkType: hard "@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": - version: 1.13.10 - resolution: "@types/serve-static@npm:1.13.10" + version: 1.15.0 + resolution: "@types/serve-static@npm:1.15.0" dependencies: - "@types/mime": ^1 + "@types/mime": "*" "@types/node": "*" - checksum: eaca858739483e3ded254cad7d7a679dc2c8b3f52c8bb0cd845b3b7eb1984bde0371fdcb0a5c83aa12e6daf61b6beb762545021f520f08a1fe882a3fa4ea5554 + checksum: b6ac93d471fb0f53ddcac1f9b67572a09cd62806f7db5855244b28f6f421139626f24799392566e97d1ffc61b12f9de7f30380c39fcae3c8a161fe161d44edf2 languageName: node linkType: hard @@ -3417,21 +3439,21 @@ __metadata: linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.10 - resolution: "@types/yargs@npm:17.0.10" + version: 17.0.11 + resolution: "@types/yargs@npm:17.0.11" dependencies: "@types/yargs-parser": "*" - checksum: f0673cbfc08e17239dc58952a88350d6c4db04a027a28a06fbad27d87b670e909f9cd9e66f9c64cebdd5071d1096261e33454a55868395f125297e5c50992ca8 + checksum: 30a45f9e59a5cc3c967f76036bea6a456b1416175aa4c002b70e1f295772e2247ed8117f392b20eef4557ad761678df8c1fcb141852f2c7c44977130d802c855 languageName: node linkType: hard "@typescript-eslint/eslint-plugin@npm:^5.5.0": - version: 5.31.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.31.0" + version: 5.33.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.33.0" dependencies: - "@typescript-eslint/scope-manager": 5.31.0 - "@typescript-eslint/type-utils": 5.31.0 - "@typescript-eslint/utils": 5.31.0 + "@typescript-eslint/scope-manager": 5.33.0 + "@typescript-eslint/type-utils": 5.33.0 + "@typescript-eslint/utils": 5.33.0 debug: ^4.3.4 functional-red-black-tree: ^1.0.1 ignore: ^5.2.0 @@ -3444,53 +3466,53 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: a6d007e6cc6c7204b9ce09dd6670a5a29f8b75417a84c8238d1dd7fc3bfa4a7294beb961a0ba76e610b695a0c80edd4186803429e3605a21562c23e47b8efa37 + checksum: d408f3f474b34fefde8ee65d98deb126949fd7d8e211a7f95c5cc2b507dedbf8eb239f3895e0c37aa6338989531e37c5f35c2e0de36a126c52f0846e89605487 languageName: node linkType: hard "@typescript-eslint/experimental-utils@npm:^5.0.0": - version: 5.31.0 - resolution: "@typescript-eslint/experimental-utils@npm:5.31.0" + version: 5.33.0 + resolution: "@typescript-eslint/experimental-utils@npm:5.33.0" dependencies: - "@typescript-eslint/utils": 5.31.0 + "@typescript-eslint/utils": 5.33.0 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 87d9c9fe9b887bb46780741e682fc83285454ea7dd7beffcbe74441d9be5bd2fdec01bec933cd5278b7a2c4542dd1a35f2eb7a71f3c0a5127d792108aa9f827d + checksum: 51374c63afd368e992278c321819cca64354f0a160de07780378cd30fe148e9a239676b4005869ff0dc1910575e60cc96535a36be3d509b7e22c0cec7b0eed12 languageName: node linkType: hard "@typescript-eslint/parser@npm:^5.5.0": - version: 5.31.0 - resolution: "@typescript-eslint/parser@npm:5.31.0" + version: 5.33.0 + resolution: "@typescript-eslint/parser@npm:5.33.0" dependencies: - "@typescript-eslint/scope-manager": 5.31.0 - "@typescript-eslint/types": 5.31.0 - "@typescript-eslint/typescript-estree": 5.31.0 + "@typescript-eslint/scope-manager": 5.33.0 + "@typescript-eslint/types": 5.33.0 + "@typescript-eslint/typescript-estree": 5.33.0 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: ae842105ff0e5811d54c9c020ee0568170c13f401de293eb4caa2106f3060558773b496b5647f2b80b2969a2890135c054f50e2443a13c3705d5965aa12896c0 + checksum: 2617aba987a70ee6b16ecc6afa6d245422df33a9d056018ff2e316159e667a0ab9d9c15fcea95e0ba65832661e71cc2753a221e77f0b0fab278e52c4497b8278 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.31.0": - version: 5.31.0 - resolution: "@typescript-eslint/scope-manager@npm:5.31.0" +"@typescript-eslint/scope-manager@npm:5.33.0": + version: 5.33.0 + resolution: "@typescript-eslint/scope-manager@npm:5.33.0" dependencies: - "@typescript-eslint/types": 5.31.0 - "@typescript-eslint/visitor-keys": 5.31.0 - checksum: f771adf54a7cf6387bb201a0d4bef598425818c38832cabbf33c369b3fb650932cbb81a28f198727f3ffae5e21445dde710c41c624bd10b3b7283249333b625b + "@typescript-eslint/types": 5.33.0 + "@typescript-eslint/visitor-keys": 5.33.0 + checksum: b2cbea9abd528d01a5acb2d68a2a5be51ec6827760d3869bdd70920cf6c3a4f9f96d87c77177f8313009d9db71253e4a75f8393f38651e2abaf91ef28e60fb9d languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.31.0": - version: 5.31.0 - resolution: "@typescript-eslint/type-utils@npm:5.31.0" +"@typescript-eslint/type-utils@npm:5.33.0": + version: 5.33.0 + resolution: "@typescript-eslint/type-utils@npm:5.33.0" dependencies: - "@typescript-eslint/utils": 5.31.0 + "@typescript-eslint/utils": 5.33.0 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -3498,23 +3520,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 1e98a6952207cf7d19cdac375a69bcfed953a29746fa1f2b3c7a8c9376c6984c0bb52506539b76d6a9bebc33966c825f032a27859e545447890562dd3c05ef31 + checksum: a1d1ffb42fe96bfc2339cc2875e218aa82fa9391be04c1a266bb11da1eca6835555687e81cde75477c60e6702049cd4dde7d2638e7e9b9d8cf4b7b2242353a6e languageName: node linkType: hard -"@typescript-eslint/types@npm:5.31.0": - version: 5.31.0 - resolution: "@typescript-eslint/types@npm:5.31.0" - checksum: 1c4223a7dcbeb2fb52dc723ac366e2cc75549b21d71f5de8515e86e48d13324e4e136e75804e0f71aff56c9936ef494fa4d1e3eb2f189ed60cf8e2c7401ce372 +"@typescript-eslint/types@npm:5.33.0": + version: 5.33.0 + resolution: "@typescript-eslint/types@npm:5.33.0" + checksum: 8bbddda84cb3adf5c659b0d42547a2d6ab87f4eea574aca5dd63a3bd85169f32796ecbddad3b27f18a609070f6b1d18a54018d488bad746ae0f6ea5c02206109 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.31.0": - version: 5.31.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.31.0" +"@typescript-eslint/typescript-estree@npm:5.33.0": + version: 5.33.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.33.0" dependencies: - "@typescript-eslint/types": 5.31.0 - "@typescript-eslint/visitor-keys": 5.31.0 + "@typescript-eslint/types": 5.33.0 + "@typescript-eslint/visitor-keys": 5.33.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -3523,33 +3545,33 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 921c502ac4c93df9342d29636b384e154c3ac714e2be0308a4c9d3337d24d8b4721b76cbe700f70c7ceef06b50dfc404e4d4d734e446fe319bac030cb653d7b4 + checksum: 26f9005cdfb14654125a33d90d872b926820e560dff8970c4629fd5f6f47ad2a31e4c63161564d21bb42a8fc3ced0033994854ee37336ae07d90ccf6300d702b languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.31.0, @typescript-eslint/utils@npm:^5.13.0": - version: 5.31.0 - resolution: "@typescript-eslint/utils@npm:5.31.0" +"@typescript-eslint/utils@npm:5.33.0, @typescript-eslint/utils@npm:^5.13.0": + version: 5.33.0 + resolution: "@typescript-eslint/utils@npm:5.33.0" dependencies: "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.31.0 - "@typescript-eslint/types": 5.31.0 - "@typescript-eslint/typescript-estree": 5.31.0 + "@typescript-eslint/scope-manager": 5.33.0 + "@typescript-eslint/types": 5.33.0 + "@typescript-eslint/typescript-estree": 5.33.0 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 2a4200fd8812f7d7dfbe381d856e97da3606f0c59de78829edd297cc76b4851316bf8362b65e66c7db399e9ea31ec71943626ec12022a552bcb7bb591259ec49 + checksum: 6ce5ee5eabeb6d73538b24e6487f811ecb0ef3467bd366cbd15bf30d904bdedb73fc6f48cf2e2e742dda462b42999ea505e8b59255545825ec9db86f3d423ea7 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.31.0": - version: 5.31.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.31.0" +"@typescript-eslint/visitor-keys@npm:5.33.0": + version: 5.33.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.33.0" dependencies: - "@typescript-eslint/types": 5.31.0 + "@typescript-eslint/types": 5.33.0 eslint-visitor-keys: ^3.3.0 - checksum: 24ff3b9037b8fafe4f240b1c8a91981d658cd12a019f7961c9fe2f1d4dc84cf64e4071d865073191181b46652f4bd8f8cfc8e053ed8737ba1b9aede3e3252b3d + checksum: d7e3653de6bac6841e6fcc54226b93ad6bdca4aa76ebe7d83459c016c3eebcc50d4f65ee713174bc267d765295b642d1927a778c5de707b8389e3fcc052aa4a1 languageName: node linkType: hard @@ -3823,7 +3845,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1": +"acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0": version: 8.8.0 resolution: "acorn@npm:8.8.0" bin: @@ -4026,12 +4048,12 @@ __metadata: linkType: hard "are-we-there-yet@npm:^3.0.0": - version: 3.0.0 - resolution: "are-we-there-yet@npm:3.0.0" + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" dependencies: delegates: ^1.0.0 readable-stream: ^3.6.0 - checksum: 348edfdd931b0b50868b55402c01c3f64df1d4c229ab6f063539a5025fd6c5f5bb8a0cab409bbed8d75d34762d22aa91b7c20b4204eb8177063158d9ba792981 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 languageName: node linkType: hard @@ -4260,15 +4282,6 @@ __metadata: languageName: node linkType: hard -"atob@npm:^2.1.2": - version: 2.1.2 - resolution: "atob@npm:2.1.2" - bin: - atob: bin/atob.js - checksum: dfeeeb70090c5ebea7be4b9f787f866686c645d9f39a0d184c817252d0cf08455ed25267d79c03254d3be1f03ac399992a792edcd5ffb9c91e097ab5ef42833a - languageName: node - linkType: hard - "autoprefixer@npm:10.4.5": version: 10.4.5 resolution: "autoprefixer@npm:10.4.5" @@ -4398,7 +4411,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.3.1": +"babel-plugin-polyfill-corejs2@npm:^0.3.2": version: 0.3.2 resolution: "babel-plugin-polyfill-corejs2@npm:0.3.2" dependencies: @@ -4411,7 +4424,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.5.2": +"babel-plugin-polyfill-corejs3@npm:^0.5.3": version: 0.5.3 resolution: "babel-plugin-polyfill-corejs3@npm:0.5.3" dependencies: @@ -4423,14 +4436,14 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.3.1": - version: 0.3.1 - resolution: "babel-plugin-polyfill-regenerator@npm:0.3.1" +"babel-plugin-polyfill-regenerator@npm:^0.4.0": + version: 0.4.0 + resolution: "babel-plugin-polyfill-regenerator@npm:0.4.0" dependencies: - "@babel/helper-define-polyfill-provider": ^0.3.1 + "@babel/helper-define-polyfill-provider": ^0.3.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f1473df7b700d6795ca41301b1e65a0aff15ce6c1463fc0ce2cf0c821114b0330920f59d4cebf52976363ee817ba29ad2758544a4661a724b08191080b9fe1da + checksum: 699aa9c0dc5a2259d7fa52b26613fa1e782439eee54cd98506991f87fddf0c00eec6c5b1917edf586c170731d9e318903bc41210225a691e7bb8087652bbda94 languageName: node linkType: hard @@ -4668,17 +4681,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.16.6, browserslist@npm:^4.18.1, browserslist@npm:^4.20.2, browserslist@npm:^4.20.3, browserslist@npm:^4.21.0, browserslist@npm:^4.21.2": - version: 4.21.2 - resolution: "browserslist@npm:4.21.2" +"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.16.6, browserslist@npm:^4.18.1, browserslist@npm:^4.20.2, browserslist@npm:^4.20.3, browserslist@npm:^4.21.0, browserslist@npm:^4.21.3": + version: 4.21.3 + resolution: "browserslist@npm:4.21.3" dependencies: - caniuse-lite: ^1.0.30001366 - electron-to-chromium: ^1.4.188 + caniuse-lite: ^1.0.30001370 + electron-to-chromium: ^1.4.202 node-releases: ^2.0.6 - update-browserslist-db: ^1.0.4 + update-browserslist-db: ^1.0.5 bin: browserslist: cli.js - checksum: 30fe59f8b065f99665ea63819d29c797660f7975857c290f61f570403abed4d7039ca15b6fd21e39a57b87e1a9262f94676114040766fc0da6ccc11faf9fc377 + checksum: ff512a7bcca1c530e2854bbdfc7be2791d0fb524097a6340e56e1d5924164c7e4e0a9b070de04cdc4c149d15cb4d4275cb7c626ebbce954278a2823aaad2452a languageName: node linkType: hard @@ -4816,10 +4829,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001332, caniuse-lite@npm:^1.0.30001366": - version: 1.0.30001370 - resolution: "caniuse-lite@npm:1.0.30001370" - checksum: 28e1fd4d623a52945220b189b703556178ec8a185d317e4ae2557a24f68f88bd8168db67700970164690dbf7d29df69efbd318b54457b335a4361314bb530792 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001332, caniuse-lite@npm:^1.0.30001370": + version: 1.0.30001375 + resolution: "caniuse-lite@npm:1.0.30001375" + checksum: 6ed9cf7a3f80f5880cb021105864b869dddfdda8490559aa623e77feeca5ce8958a3b7c1cf37322e519176dcb488c99e6358b8c2de2aa4a0e08846ac122c4e75 languageName: node linkType: hard @@ -4907,11 +4920,11 @@ __metadata: plotly.js: ^2.12.1 plotly.js-cartesian-dist-min: ^2.12.1 prettier: 1.19.1 - react: 17.0.2 + react: 18.2.0 react-bootstrap: ^1.6.5 react-dnd: ^16.0.1 react-dnd-html5-backend: ^16.0.1 - react-dom: 17.0.2 + react-dom: 18.2.0 react-plotly.js: ^2.5.1 react-router-dom: 5.3.3 react-scripts: 5.0.1 @@ -5270,9 +5283,9 @@ __metadata: linkType: hard "colord@npm:^2.9.1": - version: 2.9.2 - resolution: "colord@npm:2.9.2" - checksum: 2aa6a9b3abbce74ba3c563886cfeb433ea0d7df5ad6f4a560005eddab1ddf7c0fc98f39b09b599767a19c86dd3837b77f66f036e479515d4b17347006dbd6d9f + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 languageName: node linkType: hard @@ -5508,35 +5521,35 @@ __metadata: linkType: hard "copy-to-clipboard@npm:^3.3.1": - version: 3.3.1 - resolution: "copy-to-clipboard@npm:3.3.1" + version: 3.3.2 + resolution: "copy-to-clipboard@npm:3.3.2" dependencies: toggle-selection: ^1.0.6 - checksum: 3c7b1c333dc6a4b2e9905f52e4df6bbd34ff9f9c97ecd3ca55378a6bc1c191bb12a3252e6289c7b436e9188cff0360d393c0161626851d2301607860bbbdcfd5 + checksum: 968ec7ec3d0cf3067542b63dd244ba5d05e743899d7a0361fb0a3130e731d277f5ea54ea4d90fc88cc66eea2e4c67dc2dd8698e4ed360f921af5aa7c60b889ac languageName: node linkType: hard "core-js-compat@npm:^3.21.0, core-js-compat@npm:^3.22.1": - version: 3.24.0 - resolution: "core-js-compat@npm:3.24.0" + version: 3.24.1 + resolution: "core-js-compat@npm:3.24.1" dependencies: - browserslist: ^4.21.2 + browserslist: ^4.21.3 semver: 7.0.0 - checksum: dbfa9154de02310cdfd121a04e9030f947b31c9c46abe8f6b50a1fe1677d200315e015d4644bdabacd89432cb0564c19e2a5c81aca5c4db4f7efbba994a410c9 + checksum: b14516add9d59a9fae3b96d0de6e1d8864df80b714232814fce56ce946af3696cb50a4f83c717f8f36e43e1a37adf99a4cde6fc921e6ee56021eee2ea3bdc4dc languageName: node linkType: hard "core-js-pure@npm:^3.20.2, core-js-pure@npm:^3.8.1": - version: 3.24.0 - resolution: "core-js-pure@npm:3.24.0" - checksum: 9ed3ec22e3c428ef346ab4a8f25fffe7938734513fbe738d4b46cc59735a2b98319ffd2f65e3e29fe5f1df5963faeb22e518d2576bf93efa02f49ef0f4d1a0ce + version: 3.24.1 + resolution: "core-js-pure@npm:3.24.1" + checksum: 4b8990a65c58e2320ff607f6168656fdcbfb4f60bd4af0ce7b09f5c0e0099b0cfc2632836986cfcb11f6ffe7ea46a5b8679651bc83ca3f41690f5ef7472d6f33 languageName: node linkType: hard "core-js@npm:^3.19.2": - version: 3.24.0 - resolution: "core-js@npm:3.24.0" - checksum: f1d1feef82bac7ecddd9e40e75b7126e7b5299a0d17aa046238bd8c78567d485b32c9c80b212704d9483ccc8b3f13b3ee35a5ec69fdca874377f654664068669 + version: 3.24.1 + resolution: "core-js@npm:3.24.1" + checksum: 6fb5bf0fd9e9f3e69d95616dd03332fea6758a715d2628c108b5faf17b48b0f580e90c4febb0a523c4665b0991a810de16289f86187fe79d70cc722dbd3edf0e languageName: node linkType: hard @@ -5840,17 +5853,6 @@ __metadata: languageName: node linkType: hard -"css@npm:^3.0.0": - version: 3.0.0 - resolution: "css@npm:3.0.0" - dependencies: - inherits: ^2.0.4 - source-map: ^0.6.1 - source-map-resolve: ^0.6.0 - checksum: 4273ac816ddf99b99acb9c1d1a27d86d266a533cc01118369d941d8e8a78277a83cad3315e267a398c509d930fbb86504e193ea1ebc620a4a4212e06fe76e8be - languageName: node - linkType: hard - "csscolorparser@npm:~1.0.3": version: 1.0.3 resolution: "csscolorparser@npm:1.0.3" @@ -6206,13 +6208,6 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": - version: 0.2.0 - resolution: "decode-uri-component@npm:0.2.0" - checksum: f3749344ab9305ffcfe4bfe300e2dbb61fc6359e2b736812100a3b1b6db0a5668cba31a05e4b45d4d63dbf1a18dfa354cd3ca5bb3ededddabb8cd293f4404f94 - languageName: node - linkType: hard - "dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -6667,10 +6662,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.188": - version: 1.4.201 - resolution: "electron-to-chromium@npm:1.4.201" - checksum: dc8bff80ffc17dec64cdde97ef249292fc14e4ef6a3cb7fd3c1a0691fa846053a993cc6244ff0302c8d4d19baa4fdf0d1a39b413dda87415fec69c7c7a5a05b8 +"electron-to-chromium@npm:^1.4.202": + version: 1.4.217 + resolution: "electron-to-chromium@npm:1.4.217" + checksum: 1902170384200c8f4bc4aa430503c527e6b8d06a63b8c604b5ede566c151c7001d93ebd1ad3d62acf2a872cbc2c8501d63fe9f99ff3b5ec84769bbbb2b36545d languageName: node linkType: hard @@ -6874,13 +6869,13 @@ __metadata: linkType: hard "es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.46, es5-ext@npm:^0.10.50": - version: 0.10.61 - resolution: "es5-ext@npm:0.10.61" + version: 0.10.62 + resolution: "es5-ext@npm:0.10.62" dependencies: es6-iterator: ^2.0.3 es6-symbol: ^3.1.3 next-tick: ^1.1.0 - checksum: 2f2034e91e77fe247d94f0fd13a94bcf113273b7cc4650794d6795e377267ffb2425d3a891bd8c4d9c8b990e16e17dd7c28f12dbd3fa4b0909d0874892f491bf + checksum: 25f42f6068cfc6e393cf670bc5bba249132c5f5ec2dd0ed6e200e6274aca2fed8e9aec8a31c76031744c78ca283c57f0b41c7e737804c6328c7b8d3fbcba7983 languageName: node linkType: hard @@ -7025,12 +7020,14 @@ __metadata: linkType: hard "eslint-module-utils@npm:^2.7.3": - version: 2.7.3 - resolution: "eslint-module-utils@npm:2.7.3" + version: 2.7.4 + resolution: "eslint-module-utils@npm:2.7.4" dependencies: debug: ^3.2.7 - find-up: ^2.1.0 - checksum: 77048263f309167a1e6a1e1b896bfb5ddd1d3859b2e2abbd9c32c432aee13d610d46e6820b1ca81b37fba437cf423a404bc6649be64ace9148a3062d1886a678 + peerDependenciesMeta: + eslint: + optional: true + checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 languageName: node linkType: hard @@ -7145,13 +7142,13 @@ __metadata: linkType: hard "eslint-plugin-testing-library@npm:^5.0.1": - version: 5.5.1 - resolution: "eslint-plugin-testing-library@npm:5.5.1" + version: 5.6.0 + resolution: "eslint-plugin-testing-library@npm:5.6.0" dependencies: "@typescript-eslint/utils": ^5.13.0 peerDependencies: eslint: ^7.5.0 || ^8.0.0 - checksum: 558994da12e6a9ff0c4f71c2e63a23746b6323d171062032843591e0fca6ce3811f979cf82e11db003c8b4f1d9842cb75301bfaa9e88d1a399b11ea6686aadcc + checksum: 52cd25709f782bd6ff7f1aed02995a7f8b1020abfa385922947d3fd03f057f954274480ddc4c264f14061f6c59827fa7ef4699f560ffb52bfe585fb4c93b0f16 languageName: node linkType: hard @@ -7217,11 +7214,12 @@ __metadata: linkType: hard "eslint@npm:^8.3.0": - version: 8.20.0 - resolution: "eslint@npm:8.20.0" + version: 8.21.0 + resolution: "eslint@npm:8.21.0" dependencies: "@eslint/eslintrc": ^1.3.0 - "@humanwhocodes/config-array": ^0.9.2 + "@humanwhocodes/config-array": ^0.10.4 + "@humanwhocodes/gitignore-to-minimatch": ^1.0.2 ajv: ^6.10.0 chalk: ^4.0.0 cross-spawn: ^7.0.2 @@ -7231,14 +7229,17 @@ __metadata: eslint-scope: ^7.1.1 eslint-utils: ^3.0.0 eslint-visitor-keys: ^3.3.0 - espree: ^9.3.2 + espree: ^9.3.3 esquery: ^1.4.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 file-entry-cache: ^6.0.1 + find-up: ^5.0.0 functional-red-black-tree: ^1.0.1 glob-parent: ^6.0.1 globals: ^13.15.0 + globby: ^11.1.0 + grapheme-splitter: ^1.0.4 ignore: ^5.2.0 import-fresh: ^3.0.0 imurmurhash: ^0.1.4 @@ -7257,18 +7258,18 @@ __metadata: v8-compile-cache: ^2.0.3 bin: eslint: bin/eslint.js - checksum: a31adf390d71d916925586bc8467b48f620e93dd0416bc1e897d99265af88b48d4eba3985b5ff4653ae5cc46311a360d373574002277e159bb38a4363abf9228 + checksum: 1d39ddb08772ea230cb7d74f7f81f85b9d46965d3600725c7eb39a27bcdaf28cb2a780dacf6cfa1cfbf2da606b57a5e7e3ab373ab474cbcf0ba042076821f501 languageName: node linkType: hard -"espree@npm:^9.3.2": - version: 9.3.2 - resolution: "espree@npm:9.3.2" +"espree@npm:^9.3.2, espree@npm:^9.3.3": + version: 9.3.3 + resolution: "espree@npm:9.3.3" dependencies: - acorn: ^8.7.1 + acorn: ^8.8.0 acorn-jsx: ^5.3.2 eslint-visitor-keys: ^3.3.0 - checksum: 9a790d6779847051e87f70d720a0f6981899a722419e80c92ab6dee01e1ab83b8ce52d11b4dc96c2c490182efb5a4c138b8b0d569205bfe1cd4629e658e58c30 + checksum: 33e8a36fc15d082e68672e322e22a53856b564d60aad8f291a667bfc21b2c900c42412d37dd3c7a0f18b9d0d8f8858dabe8776dbd4b4c2f72c5cf4d6afeabf65 languageName: node linkType: hard @@ -7585,15 +7586,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^2.1.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: ^2.0.0 - checksum: 43284fe4da09f89011f08e3c32cd38401e786b19226ea440b75386c1b12a4cb738c94969808d53a84f564ede22f732c8409e3cfc3f7fb5b5c32378ad0bbf28bd - languageName: node - linkType: hard - "find-up@npm:^3.0.0": version: 3.0.0 resolution: "find-up@npm:3.0.0" @@ -8312,6 +8304,13 @@ __metadata: languageName: node linkType: hard +"grapheme-splitter@npm:^1.0.4": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 + languageName: node + linkType: hard + "grid-index@npm:^1.1.0": version: 1.1.0 resolution: "grid-index@npm:1.1.0" @@ -8720,10 +8719,10 @@ __metadata: languageName: node linkType: hard -"idb@npm:^6.1.4": - version: 6.1.5 - resolution: "idb@npm:6.1.5" - checksum: 45d81be3bf5d5ae6d009d62b4a7eeb873fe2a9972d235aaa5c33cd3e27947b33a01fd3fb7bbdbe795cd608d2279c55ccd2db3f8b3f486bc74bdb5eab1c1be957 +"idb@npm:^7.0.1": + version: 7.0.2 + resolution: "idb@npm:7.0.2" + checksum: 60ebe6d5c25d9d82d400fa90e769045a9a3f44dfbc3094b105f8666f025d84f2a779e5416211572fc51f6057f8e130cb1bbfaa06cfd6f196701a8fca9f0eda17 languageName: node linkType: hard @@ -8828,7 +8827,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.1, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -8961,11 +8960,11 @@ __metadata: linkType: hard "is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": - version: 2.9.0 - resolution: "is-core-module@npm:2.9.0" + version: 2.10.0 + resolution: "is-core-module@npm:2.10.0" dependencies: has: ^1.0.3 - checksum: b27034318b4b462f1c8f1dfb1b32baecd651d891a4e2d1922135daeff4141dfced2b82b07aef83ef54275c4a3526aa38da859223664d0868ca24182badb784ce + checksum: 0f3f77811f430af3256fa7bbc806f9639534b140f8ee69476f632c3e1eb4e28a38be0b9d1b8ecf596179c841b53576129279df95e7051d694dac4ceb6f967593 languageName: node linkType: hard @@ -10125,12 +10124,12 @@ __metadata: linkType: hard "jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.2": - version: 3.3.2 - resolution: "jsx-ast-utils@npm:3.3.2" + version: 3.3.3 + resolution: "jsx-ast-utils@npm:3.3.3" dependencies: array-includes: ^3.1.5 - object.assign: ^4.1.2 - checksum: 61d4596d44480afc03ae0a7ebb272aa6603dc4c3645805dea0fc8d9f0693542cd0959f3ba7c0c9b16c13dd5a900c7c4310108bada273132a8355efe3fed22064 + object.assign: ^4.1.3 + checksum: a2ed78cac49a0f0c4be8b1eafe3c5257a1411341d8e7f1ac740debae003de04e5f6372bfcfbd9d082e954ffd99aac85bcda85b7c6bc11609992483f4cdc0f745 languageName: node linkType: hard @@ -10212,7 +10211,7 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5": +"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5, lilconfig@npm:^2.0.6": version: 2.0.6 resolution: "lilconfig@npm:2.0.6" checksum: 40a3cd72f103b1be5975f2ac1850810b61d4053e20ab09be8d3aeddfe042187e1ba70b4651a7e70f95efa1642e7dc8b2ae395b317b7d7753b241b43cef7c0f7d @@ -10296,16 +10295,6 @@ __metadata: languageName: node linkType: hard -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" - dependencies: - p-locate: ^2.0.0 - path-exists: ^3.0.0 - checksum: 02d581edbbbb0fa292e28d96b7de36b5b62c2fa8b5a7e82638ebb33afa74284acf022d3b1e9ae10e3ffb7658fbc49163fcd5e76e7d1baaa7801c3e05a81da755 - languageName: node - linkType: hard - "locate-path@npm:^3.0.0": version: 3.0.0 resolution: "locate-path@npm:3.0.0" @@ -10446,9 +10435,9 @@ __metadata: linkType: hard "lru-cache@npm:^7.7.1": - version: 7.13.1 - resolution: "lru-cache@npm:7.13.1" - checksum: f53c7dd098a7afd6342b23f7182629edff206c7665de79445a7f5455440e768a4d1c6ec52e1a16175580c71535c9437dfb6f6bc22ca1a0e4a7454a97cde87329 + version: 7.13.2 + resolution: "lru-cache@npm:7.13.2" + checksum: dfed24e52bae95edf490d0f28f4f14552319ac7e7dc37ae0b84a72e084949233821b33227271abe81d8361ac079810f9d171a706f316cfdeda135012e4311015 languageName: node linkType: hard @@ -11218,15 +11207,15 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.0, object.assign@npm:^4.1.2": - version: 4.1.2 - resolution: "object.assign@npm:4.1.2" +"object.assign@npm:^4.1.0, object.assign@npm:^4.1.2, object.assign@npm:^4.1.3": + version: 4.1.3 + resolution: "object.assign@npm:4.1.3" dependencies: - call-bind: ^1.0.0 - define-properties: ^1.1.3 - has-symbols: ^1.0.1 + call-bind: ^1.0.2 + define-properties: ^1.1.4 + has-symbols: ^1.0.3 object-keys: ^1.1.1 - checksum: d621d832ed7b16ac74027adb87196804a500d80d9aca536fccb7ba48d33a7e9306a75f94c1d29cbfa324bc091bfc530bc24789568efdaee6a47fcfa298993814 + checksum: fe87c8acd60e0d7140e1eae8886804e7497bf6a019bae715084083c2abd1760bd5aa9c3f0e5b02c82ca5cc33b641dc908c42c86c6f7d6dfd9f083a7baa95d318 languageName: node linkType: hard @@ -11374,15 +11363,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" - dependencies: - p-try: ^1.0.0 - checksum: 281c1c0b8c82e1ac9f81acd72a2e35d402bf572e09721ce5520164e9de07d8274451378a3470707179ad13240535558f4b277f02405ad752e08c7d5b0d54fbfd - languageName: node - linkType: hard - "p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -11401,15 +11381,6 @@ __metadata: languageName: node linkType: hard -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" - dependencies: - p-limit: ^1.1.0 - checksum: e2dceb9b49b96d5513d90f715780f6f4972f46987dc32a0e18bc6c3fc74a1a5d73ec5f81b1398af5e58b99ea1ad03fd41e9181c01fa81b4af2833958696e3081 - languageName: node - linkType: hard - "p-locate@npm:^3.0.0": version: 3.0.0 resolution: "p-locate@npm:3.0.0" @@ -11456,13 +11427,6 @@ __metadata: languageName: node linkType: hard -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 3b5303f77eb7722144154288bfd96f799f8ff3e2b2b39330efe38db5dd359e4fb27012464cd85cb0a76e9b7edd1b443568cb3192c22e7cffc34989df0bafd605 - languageName: node - linkType: hard - "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -11702,15 +11666,15 @@ __metadata: linkType: hard "plotly.js-cartesian-dist-min@npm:^2.12.1": - version: 2.13.3 - resolution: "plotly.js-cartesian-dist-min@npm:2.13.3" - checksum: e8ecebc4fdae40f04de18f0ffb54172872380d9455bfc8cf3bc1544833daa10c038387c2b9ff0e979980a459167ac3d849b8917337ddeec7764dbaa1ae108c7e + version: 2.14.0 + resolution: "plotly.js-cartesian-dist-min@npm:2.14.0" + checksum: 46d2afbcd16a9e5451ca5e0c9e2873ab7115cf893d272ac580cba3a1f8d001e23c3d6a39f2337f70c47cc25656cdfc91974fec3d00f36b8fdd90be964cb1530b languageName: node linkType: hard "plotly.js@npm:^2.12.1": - version: 2.13.3 - resolution: "plotly.js@npm:2.13.3" + version: 2.14.0 + resolution: "plotly.js@npm:2.14.0" dependencies: "@plotly/d3": 3.8.0 "@plotly/d3-sankey": 0.7.2 @@ -11761,7 +11725,7 @@ __metadata: topojson-client: ^3.1.0 webgl-context: ^2.2.0 world-calendars: ^1.0.3 - checksum: e43e8cdd398d17b66959796795a9d92da127db2e3ad3a806fb9a461d2869ee03c88a139c1d111003ad81fda358fe93a028e266734af8f83461a73b30f9a27a06 + checksum: 41ccb60081d9b88306784a21eb7dfd13762099aac8482e2cb52bf498b30ca8edf596f1defdd67c340cb9c68cc5ba5910e0eb2430d7eeff3012ded58abd675cce languageName: node linkType: hard @@ -12606,13 +12570,13 @@ __metadata: linkType: hard "postcss@npm:^8.3.5, postcss@npm:^8.4.14, postcss@npm:^8.4.4, postcss@npm:^8.4.7": - version: 8.4.14 - resolution: "postcss@npm:8.4.14" + version: 8.4.16 + resolution: "postcss@npm:8.4.16" dependencies: nanoid: ^3.3.4 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: fe58766ff32e4becf65a7d57678995cfd239df6deed2fe0557f038b47c94e4132e7e5f68b5aa820c13adfec32e523b693efaeb65798efb995ce49ccd83953816 + checksum: 10eee25efd77868036403858577da0cefaf2e0905feeaba5770d5438ccdddba3d01cba8063e96b8aac4c6daa0ed413dd5ae0554a433a3c4db38df1d134cffc1f languageName: node linkType: hard @@ -13004,16 +12968,15 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:17.0.2": - version: 17.0.2 - resolution: "react-dom@npm:17.0.2" +"react-dom@npm:18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" dependencies: loose-envify: ^1.1.0 - object-assign: ^4.1.1 - scheduler: ^0.20.2 + scheduler: ^0.23.0 peerDependencies: - react: 17.0.2 - checksum: 1c1eaa3bca7c7228d24b70932e3d7c99e70d1d04e13bb0843bbf321582bc25d7961d6b8a6978a58a598af2af496d1cedcfb1bf65f6b0960a0a8161cb8dab743c + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc languageName: node linkType: hard @@ -13210,8 +13173,8 @@ __metadata: linkType: hard "react-transition-group@npm:^4.4.1": - version: 4.4.2 - resolution: "react-transition-group@npm:4.4.2" + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" dependencies: "@babel/runtime": ^7.5.5 dom-helpers: ^5.0.1 @@ -13220,17 +13183,16 @@ __metadata: peerDependencies: react: ">=16.6.0" react-dom: ">=16.6.0" - checksum: b67bf5b3e86dbab72d658b9a52a3589e5960583ab28c7c66272427d8fe30d4c7de422d5046ae96bd2683cdf80cc3264b2516f5ce80cae1dbe6cf3ca6dda392c5 + checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 languageName: node linkType: hard -"react@npm:17.0.2": - version: 17.0.2 - resolution: "react@npm:17.0.2" +"react@npm:18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" dependencies: loose-envify: ^1.1.0 - object-assign: ^4.1.1 - checksum: b254cc17ce3011788330f7bbf383ab653c6848902d7936a87b09d835d091e3f295f7e9dd1597c6daac5dc80f90e778c8230218ba8ad599f74adcc11e33b9d61b + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b languageName: node linkType: hard @@ -13787,8 +13749,8 @@ __metadata: linkType: hard "rollup@npm:^2.43.1": - version: 2.77.1 - resolution: "rollup@npm:2.77.1" + version: 2.77.3 + resolution: "rollup@npm:2.77.3" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -13796,7 +13758,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 57a03a2490cd12008ab96d8ed98f6551bf2c4e328f0bceffdaa8a67a98acaa6221bc9294fc459c800324d8459c0837716c1f428ac2680beddd6bc20e1d8cb98a + checksum: b179c68249584565ddb5664a241e8e48c293b2207718d885b08ee25797d98857a383f06b544bb89819407da5a71557f4713309a278f61c4778bb32b1d3321a1c languageName: node linkType: hard @@ -13907,13 +13869,12 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.20.2": - version: 0.20.2 - resolution: "scheduler@npm:0.20.2" +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" dependencies: loose-envify: ^1.1.0 - object-assign: ^4.1.1 - checksum: c4b35cf967c8f0d3e65753252d0f260271f81a81e427241295c5a7b783abf4ea9e905f22f815ab66676f5313be0a25f47be582254db8f9241b259213e999b8fc + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a languageName: node linkType: hard @@ -14284,16 +14245,6 @@ __metadata: languageName: node linkType: hard -"source-map-resolve@npm:^0.6.0": - version: 0.6.0 - resolution: "source-map-resolve@npm:0.6.0" - dependencies: - atob: ^2.1.2 - decode-uri-component: ^0.2.0 - checksum: fe503b9e5dac1c54be835282fcfec10879434e7b3ee08a9774f230299c724a8d403484d9531276d1670c87390e0e4d1d3f92b14cca6e4a2445ea3016b786ecd4 - languageName: node - linkType: hard - "source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" @@ -14882,8 +14833,8 @@ __metadata: linkType: hard "tailwindcss@npm:^3.0.2": - version: 3.1.6 - resolution: "tailwindcss@npm:3.1.6" + version: 3.1.8 + resolution: "tailwindcss@npm:3.1.8" dependencies: arg: ^5.0.2 chokidar: ^3.5.3 @@ -14894,7 +14845,7 @@ __metadata: fast-glob: ^3.2.11 glob-parent: ^6.0.2 is-glob: ^4.0.3 - lilconfig: ^2.0.5 + lilconfig: ^2.0.6 normalize-path: ^3.0.0 object-hash: ^3.0.0 picocolors: ^1.0.0 @@ -14912,7 +14863,7 @@ __metadata: bin: tailwind: lib/cli.js tailwindcss: lib/cli.js - checksum: 90719c6fd0dcdda5c8e2882ad421048c9dd90890e0c118d12ff3ec31adba53eb2df8fed1ed203e728e5b32297e1cc207df463a6b196d37344a63fde9f67c52b6 + checksum: 86480301fc6ae1e392c2aba8264ab425bd919078176b010fda724518a7c265e950da5f4120c69c9041509c318207985fa9d680b6f5021e23f8214135a61a54b6 languageName: node linkType: hard @@ -15428,9 +15379,9 @@ __metadata: linkType: hard "type@npm:^2.5.0": - version: 2.6.0 - resolution: "type@npm:2.6.0" - checksum: 80da01fcc0f6ed5a253dc326530e134000a8f66ea44b6d9687cde2f894f0d0b2486595b0cd040a64f7f79dc3120784236f8c9ef667a8aef03984e049b447cfb4 + version: 2.7.2 + resolution: "type@npm:2.7.2" + checksum: 0f42379a8adb67fe529add238a3e3d16699d95b42d01adfe7b9a7c5da297f5c1ba93de39265ba30ffeb37dfd0afb3fb66ae09f58d6515da442219c086219f6f4 languageName: node linkType: hard @@ -15599,7 +15550,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.4": +"update-browserslist-db@npm:^1.0.5": version: 1.0.5 resolution: "update-browserslist-db@npm:1.0.5" dependencies: @@ -16009,8 +15960,8 @@ __metadata: linkType: hard "webpack-dev-server@npm:^4.6.0": - version: 4.9.3 - resolution: "webpack-dev-server@npm:4.9.3" + version: 4.10.0 + resolution: "webpack-dev-server@npm:4.10.0" dependencies: "@types/bonjour": ^3.5.9 "@types/connect-history-api-fallback": ^1.3.5 @@ -16048,7 +15999,7 @@ __metadata: optional: true bin: webpack-dev-server: bin/webpack-dev-server.js - checksum: 845f2cc8e79a348ee7b17080eef9b332c675540888e0bc97ec6b62174882aca7995eaa7a3f49cfdd9af186da22f2f335fd03cb3c55cd49e387c8a3dc59700d66 + checksum: ef9efac45e97cd3f258ab453039ff75423451e2cf5ee98e8cecbac24c33e5c9e1024ef1a3bca0ba12533a1d5fc0601015addef489cdb68fa8f5f2570d2220983 languageName: node linkType: hard @@ -16256,28 +16207,28 @@ __metadata: languageName: node linkType: hard -"workbox-background-sync@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-background-sync@npm:6.5.3" +"workbox-background-sync@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-background-sync@npm:6.5.4" dependencies: - idb: ^6.1.4 - workbox-core: 6.5.3 - checksum: dabd8392984db91ecf18e187ca2b637c9b9f0393dd5aa2879686d706ea5fe79315a5d78c544ddf1adcf0bff612f7145d702ae67a354039a5c144152c0c0dff9a + idb: ^7.0.1 + workbox-core: 6.5.4 + checksum: 60ac80275cc9083b82eb53b6034e3d555d15146927a21c6017329e2b5de12d802619cc2cc6cf023f534a1f1a51671d89cdb59b26a80587d5391e8dc4b7f7dd1d languageName: node linkType: hard -"workbox-broadcast-update@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-broadcast-update@npm:6.5.3" +"workbox-broadcast-update@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-broadcast-update@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - checksum: 00e5473739ada0f0a29291cfe6c805bf1bbf1779aa4dd6c8eb38ca65b99546c8ecf03ec7c671e73c5f31873972c0275b3e57b055bbeb6945d37acf2f58fc6335 + workbox-core: 6.5.4 + checksum: 63cbab2012456871ffeae401e10b16668a0654fa3fa311743cf14e05b8719b797ac3afb47dc8955d87e24f0f1199a547b090bcfdbddd67191b07697d24ac5746 languageName: node linkType: hard -"workbox-build@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-build@npm:6.5.3" +"workbox-build@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-build@npm:6.5.4" dependencies: "@apideck/better-ajv-errors": ^0.3.1 "@babel/core": ^7.11.1 @@ -16301,163 +16252,163 @@ __metadata: strip-comments: ^2.0.1 tempy: ^0.6.0 upath: ^1.2.0 - workbox-background-sync: 6.5.3 - workbox-broadcast-update: 6.5.3 - workbox-cacheable-response: 6.5.3 - workbox-core: 6.5.3 - workbox-expiration: 6.5.3 - workbox-google-analytics: 6.5.3 - workbox-navigation-preload: 6.5.3 - workbox-precaching: 6.5.3 - workbox-range-requests: 6.5.3 - workbox-recipes: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 - workbox-streams: 6.5.3 - workbox-sw: 6.5.3 - workbox-window: 6.5.3 - checksum: bb59bd9266318338790ca41cc2f5802d6f0e3e3f528eeeefa0c279f48f48176cebd0787383bcba20d6bac26e0480f227b138254551b0d3e0be891862808aeb91 + workbox-background-sync: 6.5.4 + workbox-broadcast-update: 6.5.4 + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-google-analytics: 6.5.4 + workbox-navigation-preload: 6.5.4 + workbox-precaching: 6.5.4 + workbox-range-requests: 6.5.4 + workbox-recipes: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + workbox-streams: 6.5.4 + workbox-sw: 6.5.4 + workbox-window: 6.5.4 + checksum: 7336bbab4ce8e6e43a17873beedf7360ec32e72310306c670cd4d9ebd7e5a6a729257b2806e63830136a9bf01955632c96b27edf7a00d52c7744dbe875cca6c1 languageName: node linkType: hard -"workbox-cacheable-response@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-cacheable-response@npm:6.5.3" +"workbox-cacheable-response@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-cacheable-response@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - checksum: d3b32d9a3f062047c2b826bf93865f36a6623dba1db6e84e1d0fc755855c49ea1c866a64654cf77f754009403ee6d93e9958b5a2c4b324d4b5fe7ca08ab4d007 + workbox-core: 6.5.4 + checksum: f7545b71c1505d6f56f4ba1191989ea7af7119e67fa4eb414d80603221acd0fa31362014106c1df9b9ea0e28bdcf1e2b440859acab06a75e38e978a0d1c2e489 languageName: node linkType: hard -"workbox-core@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-core@npm:6.5.3" - checksum: b898da6d990642eaac7ad38db0d8379ef42d8de5fd6636ac859d79ec6f15d41e1b1bc6dce6dfc8b0e0b38094c0af8e29b2e8c2461666ea67cacd59dc5f53b45e +"workbox-core@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-core@npm:6.5.4" + checksum: d973cc6c1c5fdbde7f6642632384c2e0de48f08228eb234db2c97a18a7e5422b483005767e7b447ea774abc0772dfc1edef2ef2b5df174df4d40ae61d4c49719 languageName: node linkType: hard -"workbox-expiration@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-expiration@npm:6.5.3" +"workbox-expiration@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-expiration@npm:6.5.4" dependencies: - idb: ^6.1.4 - workbox-core: 6.5.3 - checksum: 8c98890a83cbd8ece189e78a647f016587d5d09deb59adfee20c883b9b7dfa7d687e4c85469e8fa10c235e83cd83f01aa9e8e28a67f8a99f35519fa63b3ce193 + idb: ^7.0.1 + workbox-core: 6.5.4 + checksum: 4b012b69ceafeb5afb3dd6c5c9abe6d55f2eb70666ab603bd78ff839f602336e7493990f729d507ded1fa505b852a5f9135f63afb75b9554c8f948e571143fce languageName: node linkType: hard -"workbox-google-analytics@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-google-analytics@npm:6.5.3" +"workbox-google-analytics@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-google-analytics@npm:6.5.4" dependencies: - workbox-background-sync: 6.5.3 - workbox-core: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 - checksum: 16dd867ada8c10e04c7ec26a92def37e1aa01664498c5d7d143aa93a1204844bac47d167a43453681a395f527005e3cfdd48ad15d1792704acfe1e241b558033 + workbox-background-sync: 6.5.4 + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + checksum: fcce5e313780cb4f74ac962c4809fe04f9a93d3d3905d282552a2cbe6d5c6c1b8744641fe7c57d1e4b62754b90c56155e97e589712f99f6a4cab750731d60b93 languageName: node linkType: hard -"workbox-navigation-preload@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-navigation-preload@npm:6.5.3" +"workbox-navigation-preload@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-navigation-preload@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - checksum: 51f8c1b8b01c451664e07f4ad2a52b77338a0aae01dd7d19944eaf618000846ab72e04b802d425810d0bed4d3801cba08a8d53b88dd452eb1182a8ceb20c467c + workbox-core: 6.5.4 + checksum: c8c341b799f328bb294de8eb9e331a55501d495153237e4ddbaa08bf8630efa700621df5d81f08fb9bffc0f40ecd191a60581f72a3cd5cc72ed2e5baa318c63a languageName: node linkType: hard -"workbox-precaching@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-precaching@npm:6.5.3" +"workbox-precaching@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-precaching@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 - checksum: 231aab3fc552e80f78bf7f0dbfbae628144053898e24e04ee750b95e1bfb0648e1c68d29d238c2eaacac3689e34678b890b901d6c41a1987f305a48d067b7851 + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + checksum: 15ef24ffb04edd13bcdfa6c4e7f64002551badce2d507031c343019b3bcdc569591fdff8f8e30cf1262d641d3eff611115bdda7b2ad0deb9d4ccef8f4be8bd20 languageName: node linkType: hard -"workbox-range-requests@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-range-requests@npm:6.5.3" +"workbox-range-requests@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-range-requests@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - checksum: 78cc98013616b2238df27cbe623a8e80cbb037c6cbb88015538425ba130715a55edcaac2a735060c238e50543485c8c49773d465baeccfd371b7e92e1c6427ac + workbox-core: 6.5.4 + checksum: 50f144ced7af7db77b3c64c06c0f9924db5b8573ff2c50b3899fc22c4a360baaf6b332e65f47cf812adfc9dec882a94556fed1cf90ae4ef20b645caa03d1149e languageName: node linkType: hard -"workbox-recipes@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-recipes@npm:6.5.3" +"workbox-recipes@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-recipes@npm:6.5.4" dependencies: - workbox-cacheable-response: 6.5.3 - workbox-core: 6.5.3 - workbox-expiration: 6.5.3 - workbox-precaching: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 - checksum: c0a427da18a1734c9293a2f8a51de5b3d96411f366de0f677ba0689cda3b164e5f25b09a32a6b7ed15f50281679012b91bf2fe706d5569c99347bf813436c2e8 + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-precaching: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + checksum: 397befeb7c4c63adb0eb1913934ecaf496846844124044f0b39348288ad5950ffb45eb488cfef2504adeafe28a51cdbcc21af2a234813d81ab3da0949942c265 languageName: node linkType: hard -"workbox-routing@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-routing@npm:6.5.3" +"workbox-routing@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-routing@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - checksum: 9274c40f5b4ca618fb90b5992e6f7f336b7b2303262529510dd229c080a1c6113672a7ef00cb6e24d99ac4f44f606506ca499a46316de87b836d31f5fec71045 + workbox-core: 6.5.4 + checksum: 7198c50b9016d3cea0e5b51512d66f5813d6e6ad5e99c201435d6c0ab3baee1c90aa2bbdd72dd954f439267b6e6196fb04ec96e62347e6c89385db6c1a4dec79 languageName: node linkType: hard -"workbox-strategies@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-strategies@npm:6.5.3" +"workbox-strategies@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-strategies@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - checksum: 74e1ac4d239c9439aab693dbaa02d03db00ebef9195d9537c0947f853a107d2c9960e42b0e2284911be69052c99f63dd12dadf069839734bb921041fa108e846 + workbox-core: 6.5.4 + checksum: 52134ecd6c05f4edd31e7b022b33a91b7b59c215bfdfb987bc0f10be02fea4d4e6385a9638a2303ba336190c5d28f9721182cd78a6779b9c817a66ec12cb1c6b languageName: node linkType: hard -"workbox-streams@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-streams@npm:6.5.3" +"workbox-streams@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-streams@npm:6.5.4" dependencies: - workbox-core: 6.5.3 - workbox-routing: 6.5.3 - checksum: 3cecca9fe78a5dae83ea3e1058858c9cf98f781d18502070f62f711868bc1124471167fff25d14ff8cdd9aca25f2500d89f0840069ea0669217dff05d2cb37a3 + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + checksum: efd6917ead915011be2b25dc3ebbb9d051dbd10ba2d91cdaec36ca742360e2c33627564653fc40f336dee874d501e94bcc4a25d1b65eaf5a6ee5f1a8b894af44 languageName: node linkType: hard -"workbox-sw@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-sw@npm:6.5.3" - checksum: d143e7fd849be207a4a75cb9b1cbefd71920334643fb89edfe3930df669418140bf57ebd91d4db616edbe832e84a6e14f90d9c121682f7f4ba5febd639c596cd +"workbox-sw@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-sw@npm:6.5.4" + checksum: b95c76a74b84ff268ef7691447125697f4de85b076ebc33c9545fb7532b020b6f66b37f7a4bedbc21ab45473d1109337a5f037c45b3d99126ae8f5eeb898a687 languageName: node linkType: hard "workbox-webpack-plugin@npm:^6.4.1": - version: 6.5.3 - resolution: "workbox-webpack-plugin@npm:6.5.3" + version: 6.5.4 + resolution: "workbox-webpack-plugin@npm:6.5.4" dependencies: fast-json-stable-stringify: ^2.1.0 pretty-bytes: ^5.4.1 upath: ^1.2.0 webpack-sources: ^1.4.3 - workbox-build: 6.5.3 + workbox-build: 6.5.4 peerDependencies: webpack: ^4.4.0 || ^5.9.0 - checksum: c5a14666ab6ae8e14d4167ec86e74e6f9f564e88f6e99ea512c52a761b08269cb6021984ba242750dee5e91bee1cf1d48ce80d9fb026e701d8db9bb1f963ca21 + checksum: d42ab213994767863711d54b6e2ea277839bd731430f7f3f826ccbb8927c6e9e42e2bea6316358d715a8f90f445ce2c094a46018c8a3b3e7035acc7b2822574e languageName: node linkType: hard -"workbox-window@npm:6.5.3": - version: 6.5.3 - resolution: "workbox-window@npm:6.5.3" +"workbox-window@npm:6.5.4": + version: 6.5.4 + resolution: "workbox-window@npm:6.5.4" dependencies: "@types/trusted-types": ^2.0.2 - workbox-core: 6.5.3 - checksum: c9410f63833a1d8a0350b7c0b1bcd0c3bef1de412b326234f070f743d633cc4867927ce9d4260f571cc7e5ebb940ff100b2c60fff22bf790e8df898f1e426481 + workbox-core: 6.5.4 + checksum: bc43c8d31908ab564d740eb1041180c0b0ca4d1f0a3ccde59c5764a8f96d7b08edb7df975360fd37c2bec9f3f57ca9de6c7e34fd252aa1a4a075b5b002f74f60 languageName: node linkType: hard @@ -16598,9 +16549,9 @@ __metadata: linkType: hard "yargs-parser@npm:^21.0.0": - version: 21.0.1 - resolution: "yargs-parser@npm:21.0.1" - checksum: c3ea2ed12cad0377ce3096b3f138df8267edf7b1aa7d710cd502fe16af417bafe4443dd71b28158c22fcd1be5dfd0e86319597e47badf42ff83815485887323a + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c languageName: node linkType: hard From bdf713ddebab143c50a822d231a402e431e28f03 Mon Sep 17 00:00:00 2001 From: notoraptor Date: Fri, 12 Aug 2022 12:06:41 -0400 Subject: [PATCH 09/10] [dashboard/experiment/trials] Display trial info in a dialog when clicking on trial row --- .../content/DatabasePage/FeaturedTable.js | 72 +++++++++++++++++-- dashboard/src/src/style.css | 9 +++ 2 files changed, 74 insertions(+), 7 deletions(-) diff --git a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js index a5e9a28e5..bbf8eeb81 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js +++ b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js @@ -15,11 +15,13 @@ import { import { Column, Grid, + Modal, MultiSelect, Pagination, Row, } from 'carbon-components-react'; import { useDrag, useDrop } from 'react-dnd'; +import ReactDOM from 'react-dom'; function collectLeafColumnIndices(columDefinitions, output) { columDefinitions.forEach(columnDefinition => { @@ -138,6 +140,28 @@ const sortingIcons = { desc: , }; +/** + * Simple state manager for modals. + * Reference: https://react.carbondesignsystem.com/?path=/story/components-modal--with-state-manager + */ +const ModalStateManager = ({ + renderLauncher: LauncherContent, + children: ModalContent, +}) => { + const [open, setOpen] = React.useState(false); + return ( + <> + {!ModalContent || typeof document === 'undefined' + ? null + : ReactDOM.createPortal( + , + document.body + )} + {LauncherContent && } + + ); +}; + export function FeaturedTable({ columns, data, experiment }) { const defaultColumnOrder = []; collectLeafColumnIndices(columns, defaultColumnOrder); @@ -266,13 +290,47 @@ export function FeaturedTable({ columns, data, experiment }) { {table.getRowModel().rows.map(row => ( - - {row.getVisibleCells().map(cell => ( - - {flexRender(cell.column.columnDef.cell, cell.getContext())} - - ))} - + ( + setOpen(true)}> + {row.getVisibleCells().map(cell => ( + + {flexRender( + cell.column.columnDef.cell, + cell.getContext() + )} + + ))} + + )}> + {({ open, setOpen }) => ( + setOpen(false)}> + + {defaultColumnOrder.map((columnID, index) => ( + + + + {columnID.startsWith('params.') + ? 'Parameter ' + : null} + {table.getColumn(columnID).columnDef.header} + + + {row.getValue(columnID)} + + ))} + + + )} + ))} diff --git a/dashboard/src/src/style.css b/dashboard/src/src/style.css index a6b2cb74e..61d0b653a 100644 --- a/dashboard/src/src/style.css +++ b/dashboard/src/src/style.css @@ -62,3 +62,12 @@ a.bx--header__menu-item.bx--header__menu-title[aria-label='benchmarks (selected) font-style: italic; font-weight: normal; } +.bx--table-sort.bx--table-sort--active .header-dnd .bx--table-sort__icon-unsorted { + display: block; +} +.trial-row { + cursor: pointer; +} +.modal-trial-key { + text-align: right; +} From 403da8931f86ffd0ea3549a66e50fe8ec1af272d Mon Sep 17 00:00:00 2001 From: notoraptor Date: Fri, 12 Aug 2022 12:13:11 -0400 Subject: [PATCH 10/10] [dashboard] clean-up code --- .../content/DatabasePage/DatabasePage.js | 171 +----------------- .../content/DatabasePage/FeaturedTable.js | 6 - .../content/DatabasePage/ObjectToGrid.js | 35 ++++ .../content/DatabasePage/TrialsProvider.js | 137 ++++++++++++++ 4 files changed, 174 insertions(+), 175 deletions(-) create mode 100644 dashboard/src/src/experiments/content/DatabasePage/ObjectToGrid.js create mode 100644 dashboard/src/src/experiments/content/DatabasePage/TrialsProvider.js diff --git a/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js b/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js index 9a05f9769..746dafa96 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js +++ b/dashboard/src/src/experiments/content/DatabasePage/DatabasePage.js @@ -1,175 +1,8 @@ import React from 'react'; -import { Backend, DEFAULT_BACKEND } from '../../../utils/queryServer'; +import { DEFAULT_BACKEND } from '../../../utils/queryServer'; import { FeaturedTable } from './FeaturedTable'; import { BackendContext } from '../../BackendContext'; -import { Column, Grid, Row } from 'carbon-components-react'; -import { flattenObject } from '../../../utils/flattenObject'; - -/** - * Component to pretty display an object (JSON dictionary) into data table. - * Used to render trial parameters and statistics. - */ -class ObjectToGrid extends React.Component { - render() { - const object = this.props.object; - const keys = Object.keys(object); - if (!keys.length) return ''; - keys.sort(); - return ( - - {keys.map(key => ( - - - - {key} - - - - {Array.isArray(object[key]) - ? object[key].map((value, i) => ( -
{value.toString()}
- )) - : object[key].toString()} -
-
- ))} -
- ); - } -} - -/** - * Utility class to provide and cache experiment trials. - */ -class TrialsProvider { - constructor(address) { - this.backend = new Backend(address); - this.trials = {}; - } - async get(experiment) { - if (!this.trials.hasOwnProperty(experiment)) { - const queryTrials = await this.backend.query(`trials/${experiment}`); - const trialIndices = queryTrials.map(trial => trial.id); - trialIndices.sort(); - const trials = []; - /** - * Map to check whether each param column is sortable. - * Array params are not considered sortable, - * except if they contains only 1 element. - */ - const sortableParamCols = {}; - for (let trialID of trialIndices) { - const rawTrial = await this.backend.query( - `trials/${experiment}/${trialID}` - ); - // Flatten parameters - const flattenedParameters = flattenObject( - rawTrial.parameters, - // Add prefix `params` - // to prevent collision with existing keys in trial object - 'params' - ); - // Prepare rendering for array parameters - for (let key of Object.keys(flattenedParameters)) { - let sortableCell = true; - if (Array.isArray(flattenedParameters[key])) { - if (flattenedParameters[key].length === 1) { - // Array contains only 1 element. - // Flatten it and assume element is displayable as-is. - flattenedParameters[key] = flattenedParameters[key][0]; - } else { - // Real array with many values. - // Render it immediately and mark cell as not sortable. - flattenedParameters[key] = flattenedParameters[ - key - ].map((value, i) =>
{value.toString()}
); - sortableCell = false; - } - } - // Param column is sortable if all its cells are sortable. - if (sortableParamCols.hasOwnProperty(key)) { - sortableParamCols[key] = sortableParamCols[key] && sortableCell; - } else { - sortableParamCols[key] = sortableCell; - } - } - // Save flattened keys in specific property `paramKeys` for later - rawTrial.paramKeys = Object.keys(flattenedParameters); - const trial = { ...rawTrial, ...flattenedParameters }; - // Save statistics as already rendered components. - trial.statistics = ; - trials.push(trial); - } - // Prepare headers for this experiment using `paramKeys` from first trial - // We assume paramKeys is the same for all trials - const paramKeys = trials[0].paramKeys.slice(); - paramKeys.sort(); - const headers = [ - { - id: 'id', - accessorKey: 'id', - header: 'ID', - sortingFn: 'text', - cell: info => - info.getValue().length > 7 ? ( - - {info.getValue().substr(0, 7)}... - - ) : ( - info.getValue() - ), - }, - { - // Grouped parameters columns - id: 'parameters', - header: 'Parameters', - columns: paramKeys.map(k => { - const p = { id: k, accessorFn: r => r[k], header: k.substr(7) }; - if (!sortableParamCols[k]) { - // column not sortable - p.cell = props => props.getValue(); - p.enableSorting = false; - } - return p; - }), - }, - { - id: 'submitTime', - accessorKey: 'submitTime', - header: 'Submit time', - }, - { - id: 'startTime', - accessorKey: 'startTime', - header: 'Start time', - }, - { - id: 'endTime', - accessorKey: 'endTime', - header: 'End time', - }, - { - id: 'objective', - accessorKey: 'objective', - header: 'Objective', - }, - { - // not sortable - id: 'statistics', - accessorKey: 'statistics', - header: 'Statistics', - cell: props => props.getValue(), - enableSorting: false, - }, - ]; - this.trials[experiment] = { - headers: headers, - trials: trials, - }; - } - return this.trials[experiment]; - } -} +import { TrialsProvider } from './TrialsProvider'; /** * Singleton to provide experiment trials. diff --git a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js index bbf8eeb81..fc79afda2 100644 --- a/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js +++ b/dashboard/src/src/experiments/content/DatabasePage/FeaturedTable.js @@ -50,15 +50,11 @@ function DraggableColumnHeader({ header, table }) { const [{ isOver }, dropRef] = useDrop({ accept: 'column', drop: draggedColumn => { - console.log('column', column.id, 'dragged', draggedColumn.id, 'before'); - console.log(columnOrder); const newColumnOrder = reorderColumn( draggedColumn.id, column.id, columnOrder ); - console.log('after'); - console.log(newColumnOrder); setColumnOrder(newColumnOrder); }, collect: monitor => ({ @@ -166,8 +162,6 @@ export function FeaturedTable({ columns, data, experiment }) { const defaultColumnOrder = []; collectLeafColumnIndices(columns, defaultColumnOrder); const [columnOrder, setColumnOrder] = React.useState(defaultColumnOrder); - console.log('Default'); - console.log(columnOrder); const [sorting, setSorting] = React.useState([]); const [columnVisibility, setColumnVisibility] = React.useState({}); const [{ pageIndex, pageSize }, setPagination] = React.useState({ diff --git a/dashboard/src/src/experiments/content/DatabasePage/ObjectToGrid.js b/dashboard/src/src/experiments/content/DatabasePage/ObjectToGrid.js new file mode 100644 index 000000000..a36785d4d --- /dev/null +++ b/dashboard/src/src/experiments/content/DatabasePage/ObjectToGrid.js @@ -0,0 +1,35 @@ +import React from 'react'; +import { Column, Grid, Row } from 'carbon-components-react'; + +/** + * Component to pretty display an object (JSON dictionary) into data table. + * Used to render trial parameters and statistics. + */ +export class ObjectToGrid extends React.Component { + render() { + const object = this.props.object; + const keys = Object.keys(object); + if (!keys.length) return ''; + keys.sort(); + return ( + + {keys.map(key => ( + + + + {key} + + + + {Array.isArray(object[key]) + ? object[key].map((value, i) => ( +
{value.toString()}
+ )) + : object[key].toString()} +
+
+ ))} +
+ ); + } +} diff --git a/dashboard/src/src/experiments/content/DatabasePage/TrialsProvider.js b/dashboard/src/src/experiments/content/DatabasePage/TrialsProvider.js new file mode 100644 index 000000000..902d34e3b --- /dev/null +++ b/dashboard/src/src/experiments/content/DatabasePage/TrialsProvider.js @@ -0,0 +1,137 @@ +import { Backend } from '../../../utils/queryServer'; +import { flattenObject } from '../../../utils/flattenObject'; +import { ObjectToGrid } from './ObjectToGrid'; + +/** + * Utility class to provide and cache experiment trials. + */ +export class TrialsProvider { + constructor(address) { + this.backend = new Backend(address); + this.trials = {}; + } + + async get(experiment) { + if (!this.trials.hasOwnProperty(experiment)) { + const queryTrials = await this.backend.query(`trials/${experiment}`); + const trialIndices = queryTrials.map(trial => trial.id); + trialIndices.sort(); + const trials = []; + /** + * Map to check whether each param column is sortable. + * Array params are not considered sortable, + * except if they contains only 1 element. + */ + const sortableParamCols = {}; + for (let trialID of trialIndices) { + const rawTrial = await this.backend.query( + `trials/${experiment}/${trialID}` + ); + // Flatten parameters + const flattenedParameters = flattenObject( + rawTrial.parameters, + // Add prefix `params` + // to prevent collision with existing keys in trial object + 'params' + ); + // Prepare rendering for array parameters + for (let key of Object.keys(flattenedParameters)) { + let sortableCell = true; + if (Array.isArray(flattenedParameters[key])) { + if (flattenedParameters[key].length === 1) { + // Array contains only 1 element. + // Flatten it and assume element is displayable as-is. + flattenedParameters[key] = flattenedParameters[key][0]; + } else { + // Real array with many values. + // Render it immediately and mark cell as not sortable. + flattenedParameters[key] = flattenedParameters[ + key + ].map((value, i) =>
{value.toString()}
); + sortableCell = false; + } + } + // Param column is sortable if all its cells are sortable. + if (sortableParamCols.hasOwnProperty(key)) { + sortableParamCols[key] = sortableParamCols[key] && sortableCell; + } else { + sortableParamCols[key] = sortableCell; + } + } + // Save flattened keys in specific property `paramKeys` for later + rawTrial.paramKeys = Object.keys(flattenedParameters); + const trial = { ...rawTrial, ...flattenedParameters }; + // Save statistics as already rendered components. + trial.statistics = ; + trials.push(trial); + } + // Prepare headers for this experiment using `paramKeys` from first trial + // We assume paramKeys is the same for all trials + const paramKeys = trials[0].paramKeys.slice(); + paramKeys.sort(); + const headers = [ + { + id: 'id', + accessorKey: 'id', + header: 'ID', + sortingFn: 'text', + cell: info => + info.getValue().length > 7 ? ( + + {info.getValue().substr(0, 7)}... + + ) : ( + info.getValue() + ), + }, + { + // Grouped parameters columns + id: 'parameters', + header: 'Parameters', + columns: paramKeys.map(k => { + const p = { id: k, accessorFn: r => r[k], header: k.substr(7) }; + if (!sortableParamCols[k]) { + // column not sortable + p.cell = props => props.getValue(); + p.enableSorting = false; + } + return p; + }), + }, + { + id: 'submitTime', + accessorKey: 'submitTime', + header: 'Submit time', + }, + { + id: 'startTime', + accessorKey: 'startTime', + header: 'Start time', + }, + { + id: 'endTime', + accessorKey: 'endTime', + header: 'End time', + }, + { + id: 'objective', + accessorKey: 'objective', + header: 'Objective', + }, + { + // not sortable + id: 'statistics', + accessorKey: 'statistics', + header: 'Statistics', + cell: props => props.getValue(), + enableSorting: false, + }, + ]; + this.trials[experiment] = { + headers: headers, + trials: trials, + }; + } + return this.trials[experiment]; + } +}