From 063eca7e046a0921f9f867955128da3228bc8187 Mon Sep 17 00:00:00 2001 From: Robin Meischke Date: Thu, 20 Oct 2022 08:52:31 +0200 Subject: [PATCH 1/4] fix: date filter comparing date and time --- src/filters/dateFilter.tsx | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/filters/dateFilter.tsx b/src/filters/dateFilter.tsx index f6690d1..5b796f2 100644 --- a/src/filters/dateFilter.tsx +++ b/src/filters/dateFilter.tsx @@ -1,8 +1,14 @@ import { Select, Text } from '@mantine/core'; import { DatePicker, DateRangePicker } from '@mantine/dates'; +import dayjs from 'dayjs'; import { Filter } from 'tabler-icons-react'; +import isSameOrBefore from 'dayjs/plugin/isSameOrBefore'; +import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'; import { DataGridFilterFn, DataGridFilterProps } from '../types'; +dayjs.extend(isSameOrBefore); +dayjs.extend(isSameOrAfter); + type FilterState = { op: DateFilterOperator; value: string | null | [string | null, string | null]; @@ -48,7 +54,10 @@ function toString(value: Date | null | [Date | null, Date | null]): FilterState[ const DateInput = ({ filter, onFilterChange, placeholder }: DateInputProps) => ( onFilterChange({ ...filter, value: toString(value) })} + onChange={(value) => { + console.log(value); + onFilterChange({ ...filter, value: toString(value) }); + }} placeholder={placeholder} rightSection={} allowFreeInput @@ -73,7 +82,7 @@ export type DateFilterOptions = { export const createDateFilter = ({ title, fixedOperator, labels, placeholder = 'Filter value' }: DateFilterOptions) => { const filterFn: DataGridFilterFn = (row, columnId, filter: FilterState) => { if (!filter.value) return true; - const rowValue = new Date(row.getValue(columnId)); + const rowValue = dayjs(row.getValue(columnId)); const op = filter.op || DateFilterOperator.Equals; const value = toValue(filter.value); if ( @@ -83,21 +92,21 @@ export const createDateFilter = ({ title, fixedOperator, labels, placeholder = ' value[0] instanceof Date && value[1] instanceof Date ) { - return value[0] <= rowValue && rowValue <= value[1]; + return dayjs(value[0]).isSameOrBefore(rowValue, 'day') && rowValue.isSameOrBefore(dayjs(value[1]), 'day'); } else if (value instanceof Date) { switch (op) { case DateFilterOperator.Equals: - return rowValue === value; + return rowValue.isSame(value, 'day'); case DateFilterOperator.NotEquals: - return rowValue !== value; + return !rowValue.isSame(value, 'day'); case DateFilterOperator.GreaterThan: - return rowValue > value; + return rowValue.isAfter(value, 'day'); case DateFilterOperator.GreaterThanOrEquals: - return rowValue >= value; + return rowValue.isSameOrAfter(value); case DateFilterOperator.LowerThan: - return rowValue < value; + return rowValue.isBefore(value, 'day'); case DateFilterOperator.LowerThanOrEquals: - return rowValue <= value; + return rowValue.isSameOrBefore(value, 'day'); } } return true; From 3b43553035ca4396d463e3215178cc03a435367d Mon Sep 17 00:00:00 2001 From: Robin Meischke Date: Thu, 20 Oct 2022 09:47:20 +0200 Subject: [PATCH 2/4] feat: add time filter to date --- src/filters/dateFilter.tsx | 145 +++++++++++++++++++++++++++---------- 1 file changed, 108 insertions(+), 37 deletions(-) diff --git a/src/filters/dateFilter.tsx b/src/filters/dateFilter.tsx index 5b796f2..3a3ab53 100644 --- a/src/filters/dateFilter.tsx +++ b/src/filters/dateFilter.tsx @@ -1,5 +1,5 @@ -import { Select, Text } from '@mantine/core'; -import { DatePicker, DateRangePicker } from '@mantine/dates'; +import { Checkbox, Select, Text } from '@mantine/core'; +import { DatePicker, DateRangePicker, DateRangePickerValue, TimeInput, TimeRangeInput } from '@mantine/dates'; import dayjs from 'dayjs'; import { Filter } from 'tabler-icons-react'; import isSameOrBefore from 'dayjs/plugin/isSameOrBefore'; @@ -9,8 +9,11 @@ import { DataGridFilterFn, DataGridFilterProps } from '../types'; dayjs.extend(isSameOrBefore); dayjs.extend(isSameOrAfter); +type DateNullArray = [Date | null, Date | null]; + type FilterState = { op: DateFilterOperator; + withTime?: boolean; value: string | null | [string | null, string | null]; }; @@ -26,12 +29,13 @@ export enum DateFilterOperator { type DateInputProps = DataGridFilterProps & { placeholder: string; + withTime: boolean; }; function toValue(value: string | null): Date | null; -function toValue(value: [string | null, string | null]): [Date | null, Date | null]; -function toValue(value: FilterState['value']): Date | null | [Date | null, Date | null]; -function toValue(value: FilterState['value']): Date | null | [Date | null, Date | null] { +function toValue(value: [string | null, string | null]): DateNullArray; +function toValue(value: FilterState['value']): Date | null | DateNullArray; +function toValue(value: FilterState['value']): Date | null | DateNullArray { if (Array.isArray(value)) { return [toValue(value[0]), toValue(value[1])]; } @@ -42,8 +46,8 @@ function toValue(value: FilterState['value']): Date | null | [Date | null, Date } function toString(value: Date | null): string | null; -function toString(value: [Date | null, Date | null]): [string | null, string | null]; -function toString(value: Date | null | [Date | null, Date | null]): FilterState['value'] { +function toString(value: DateNullArray): [string | null, string | null]; +function toString(value: Date | null | DateNullArray): FilterState['value'] { if (Array.isArray(value)) { return [toString(value[0]), toString(value[1])]; } else { @@ -51,40 +55,88 @@ function toString(value: Date | null | [Date | null, Date | null]): FilterState[ } } -const DateInput = ({ filter, onFilterChange, placeholder }: DateInputProps) => ( - { - console.log(value); - onFilterChange({ ...filter, value: toString(value) }); - }} - placeholder={placeholder} - rightSection={} - allowFreeInput - /> -); - -const DateRangeInput = ({ filter, onFilterChange, placeholder }: DateInputProps) => ( - onFilterChange({ ...filter, value: toString(value) })} - placeholder={placeholder} - rightSection={} - /> -); +function combineTimeAndDate(time: Date | null, date: Date | null) { + if (!time && !date) return null; + if (!time) return date; + if (!date) return time; + const hour = dayjs(time).hour(); + const minute = dayjs(time).minute(); + const dateAndTime = dayjs(date).hour(hour).minute(minute); + return dateAndTime.toDate(); +} + +const DateInput = ({ filter, onFilterChange, placeholder, withTime }: DateInputProps) => { + const filterValue = Array.isArray(filter.value) ? null : toValue(filter.value); + return ( + <> + { + onFilterChange({ ...filter, value: toString(combineTimeAndDate(filterValue, value)) }); + }} + placeholder={placeholder} + rightSection={} + allowFreeInput + /> + {withTime && ( + onFilterChange({ ...filter, value: toString(combineTimeAndDate(value, filterValue)) })} + /> + )} + + ); +}; + +const arrayToValue = (value: DateNullArray, old: DateNullArray, time: boolean): DateNullArray => { + if (time) { + return [combineTimeAndDate(value[0], old[0]), combineTimeAndDate(value[1], old[1])]; + } else { + return [combineTimeAndDate(old[0], value[0]), combineTimeAndDate(old[1], value[1])]; + } +}; + +const DateRangeInput = ({ filter, onFilterChange, placeholder, withTime }: DateInputProps) => { + const filterValue = Array.isArray(filter.value) ? toValue(filter.value) : ([null, null] as DateNullArray); + + return ( + <> + onFilterChange({ ...filter, value: toString(arrayToValue(value, filterValue, false)) })} + placeholder={placeholder} + rightSection={} + /> + {withTime && ( + onFilterChange({ ...filter, value: toString(arrayToValue(value, filterValue, true)) })} + /> + )} + + ); +}; export type DateFilterOptions = { title?: string; fixedOperator?: DateFilterOperator; labels?: Partial>; placeholder?: string; + timeLabel?: string; }; -export const createDateFilter = ({ title, fixedOperator, labels, placeholder = 'Filter value' }: DateFilterOptions) => { +export const createDateFilter = ({ + title, + fixedOperator, + labels, + placeholder = 'Filter value', + timeLabel = 'with Time', +}: DateFilterOptions) => { const filterFn: DataGridFilterFn = (row, columnId, filter: FilterState) => { if (!filter.value) return true; const rowValue = dayjs(row.getValue(columnId)); const op = filter.op || DateFilterOperator.Equals; const value = toValue(filter.value); + const filterOn = filter.withTime ? 'minute' : 'day'; if ( op === DateFilterOperator.Range && Array.isArray(value) && @@ -92,21 +144,21 @@ export const createDateFilter = ({ title, fixedOperator, labels, placeholder = ' value[0] instanceof Date && value[1] instanceof Date ) { - return dayjs(value[0]).isSameOrBefore(rowValue, 'day') && rowValue.isSameOrBefore(dayjs(value[1]), 'day'); + return dayjs(value[0]).isSameOrBefore(rowValue, filterOn) && rowValue.isSameOrBefore(dayjs(value[1]), filterOn); } else if (value instanceof Date) { switch (op) { case DateFilterOperator.Equals: - return rowValue.isSame(value, 'day'); + return rowValue.isSame(value, filterOn); case DateFilterOperator.NotEquals: - return !rowValue.isSame(value, 'day'); + return !rowValue.isSame(value, filterOn); case DateFilterOperator.GreaterThan: - return rowValue.isAfter(value, 'day'); + return rowValue.isAfter(value, filterOn); case DateFilterOperator.GreaterThanOrEquals: return rowValue.isSameOrAfter(value); case DateFilterOperator.LowerThan: - return rowValue.isBefore(value, 'day'); + return rowValue.isBefore(value, filterOn); case DateFilterOperator.LowerThanOrEquals: - return rowValue.isSameOrBefore(value, 'day'); + return rowValue.isSameOrBefore(value, filterOn); } } return true; @@ -115,6 +167,7 @@ export const createDateFilter = ({ title, fixedOperator, labels, placeholder = ' filterFn.init = () => ({ op: fixedOperator || DateFilterOperator.GreaterThan, + withTime: false, value: null, }); @@ -135,10 +188,28 @@ export const createDateFilter = ({ title, fixedOperator, labels, placeholder = ' /> )} + onFilterChange({ ...filter, withTime: e.target.checked })} + /> + {filter.op === DateFilterOperator.Range ? ( - + <> + + ) : ( - + )} ); From 0d0a36065cbc498555e06152a456dcae220158a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20K=C3=BCchlin?= Date: Fri, 28 Oct 2022 17:51:16 +0200 Subject: [PATCH 3/4] feat: component overrides added feat: new mantine styles added docs: column drag&drop example added --- docs/pages/Demo.tsx | 28 +- docs/pages/examples/ColumnDragDropExample.tsx | 118 +++ .../examples/CustomPaginationExample.tsx | 72 ++ docs/pages/examples/index.ts | 20 + package.json | 46 +- pnpm-lock.yaml | 914 ++++++++++-------- src/DataGrid.styles.ts | 2 + src/DataGrid.tsx | 75 +- src/GlobalFilter.tsx | 1 + src/Pagination.tsx | 2 +- src/TableComponents.tsx | 64 ++ src/index.ts | 21 +- src/types.ts | 33 +- 13 files changed, 935 insertions(+), 461 deletions(-) create mode 100644 docs/pages/examples/ColumnDragDropExample.tsx create mode 100644 docs/pages/examples/CustomPaginationExample.tsx create mode 100644 src/TableComponents.tsx diff --git a/docs/pages/Demo.tsx b/docs/pages/Demo.tsx index 397b02d..3988557 100644 --- a/docs/pages/Demo.tsx +++ b/docs/pages/Demo.tsx @@ -18,16 +18,16 @@ import { import { useState } from 'react'; import { + createBooleanFilter, createDateFilter, + createNumberFilter, + createStringFilter, DataGrid, DataGridFilterFn, DataGridFiltersState, DataGridPaginationState, DataGridSortingState, - createBooleanFilter, highlightFilterValue, - createNumberFilter, - createStringFilter, StringFilterOperator, } from '../../src'; import { Data, demoData } from '../demoData'; @@ -102,6 +102,8 @@ export default function Demo() { noFlexLayout: false, withColumnResizing: true, striped: true, + withBorder: false, + withColumnBorders: false, highlightOnHover: true, loading: false, showEmpty: false, @@ -150,6 +152,8 @@ export default function Demo() { withColumnResizing={state.withColumnResizing} noFlexLayout={state.noFlexLayout} striped={state.striped} + withBorder={state.withBorder} + withColumnBorders={state.withColumnBorders} highlightOnHover={state.highlightOnHover} loading={state.loading} iconColor={state.iconColor} @@ -325,6 +329,24 @@ export default function Demo() { }) } /> + + update({ + withBorder: e.target.checked, + }) + } + /> + + update({ + withColumnBorders: e.target.checked, + }) + } + /> ['columns'] = [ + { id: 'cat', accessorFn: (row) => row.cat }, + { id: 'fish', accessorFn: (row) => row.fish }, + { id: 'city', accessorFn: (row) => row.city }, + { id: 'value', accessorFn: (row) => row.value }, + ]; + const [columnOrder, setColumnOrder] = useState( + columns.map((column) => column.id as string) //must start out with populated columnOrder so we can splice + ); + + const resetOrder = () => setColumnOrder(columns.map((column) => column.id as string)); + const [activeId, setActiveId] = useState(null); + const sensors = useSensors(useSensor(MouseSensor, {}), useSensor(TouchSensor, {}), useSensor(KeyboardSensor, {})); + console.log(columnOrder); + + return ( + <> + + { + const { active, over } = event; + if (over && active.id !== over.id) { + setColumnOrder((data) => { + const oldIndex = columnOrder.indexOf(String(active.id)); + const newIndex = columnOrder.indexOf(String(over.id)); + return arrayMove(data, oldIndex, newIndex); + }); + } + + setActiveId(null); + }} + onDragStart={(e) => setActiveId(String(e.active.id))} + onDragCancel={() => setActiveId(null)} + collisionDetection={closestCenter} + modifiers={[restrictToHorizontalAxis]} + > + + + + {activeId} + + + + + + + ( + + + {children} + + + ), + headerCell: ({ children, header, ...props }) => ( + + {children} + + ), + }} + /> + + + ); +} +const DraggableColumnHeader = ({ children, header, ...props }: DataGridHeaderCellProps) => { + const { attributes, listeners, transform, transition, setNodeRef } = useSortable({ + id: header.column.id, + }); + + return ( + + + {children} + + + + + + ); +}; diff --git a/docs/pages/examples/CustomPaginationExample.tsx b/docs/pages/examples/CustomPaginationExample.tsx new file mode 100644 index 0000000..3c9034b --- /dev/null +++ b/docs/pages/examples/CustomPaginationExample.tsx @@ -0,0 +1,72 @@ +import { Center, Pagination } from '@mantine/core'; +import { + booleanFilterFn, + DataGrid, + dateFilterFn, + highlightFilterValue, + numberFilterFn, + stringFilterFn, +} from '../../../src'; +import { demoData } from '../../demoData'; + +export default function CustomPaginationExample() { + return ( + ( +
+ table.setPageIndex(Number(pageNum) - 1)} + siblings={1} + color="red" + /> +
+ ), + }} + columns={[ + { + accessorKey: 'text', + header: 'Text that is too long for a Header', + filterFn: stringFilterFn, + size: 300, + cell: highlightFilterValue, + }, + { + header: 'Animal', + columns: [ + { accessorKey: 'cat', filterFn: stringFilterFn }, + { + accessorKey: 'fish', + filterFn: stringFilterFn, + }, + ], + }, + { + accessorKey: 'city', + filterFn: stringFilterFn, + }, + { accessorKey: 'value', filterFn: numberFilterFn }, + { + accessorKey: 'date', + cell: (cell) => cell.getValue()?.toLocaleDateString(), + filterFn: dateFilterFn, + }, + { + accessorKey: 'bool', + filterFn: booleanFilterFn, + }, + ]} + /> + ); +} diff --git a/docs/pages/examples/index.ts b/docs/pages/examples/index.ts index 7bff36d..6dbc851 100644 --- a/docs/pages/examples/index.ts +++ b/docs/pages/examples/index.ts @@ -51,6 +51,14 @@ import ExternalFilterExample from './ExternalFilterExample'; // @ts-ignore import ExternalFilterExampleCode from './ExternalFilterExample.tsx?raw'; +import ColumnDragDropExample from './ColumnDragDropExample'; +// @ts-ignore +import ColumnDragDropExampleCode from './ColumnDragDropExample.tsx?raw'; + +import CustomPaginationExample from './CustomPaginationExample'; +// @ts-ignore +import CustomPaginationExampleCode from './CustomPaginationExample.tsx?raw'; + export type Example = { label: string; path: string; @@ -138,4 +146,16 @@ export const examples = { element: ExternalFilterExample, code: ExternalFilterExampleCode, }), + columnDragDrop: ex({ + label: 'Column Drag&Drop', + path: '/example/column-drag-drop', + element: ColumnDragDropExample, + code: ColumnDragDropExampleCode, + }), + customPagination: ex({ + label: 'Custom Pagination', + path: '/example/pagination', + element: CustomPaginationExample, + code: CustomPaginationExampleCode, + }), }; diff --git a/package.json b/package.json index 3f78267..45be188 100644 --- a/package.json +++ b/package.json @@ -31,12 +31,13 @@ "prepare": "husky install" }, "dependencies": { - "@emotion/react": "^11.10.4", - "@mantine/core": "^5.4.0", - "@mantine/dates": "^5.4.0", - "@mantine/hooks": "^5.4.0", - "@tanstack/react-table": "^8.5.13", - "dayjs": "^1.11.5", + "@emotion/react": "11.10.5", + "@mantine/core": "5.6.3", + "@mantine/dates": "5.6.3", + "@mantine/hooks": "5.6.3", + "@tanstack/react-table": "8.5.18", + "@types/react-window": "^1.8.5", + "dayjs": "1.11.6", "react": "^18.2.0", "react-dom": "^18.2.0", "tabler-icons-react": "^1.55.0" @@ -44,17 +45,21 @@ "devDependencies": { "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.1.0", - "@faker-js/faker": "^7.5.0", - "@mantine/prism": "^5.4.0", - "@types/node": "^18.7.18", - "@types/react": "^18.0.20", - "@types/react-dom": "^18.0.6", - "@typescript-eslint/eslint-plugin": "^5.38.0", - "@typescript-eslint/parser": "^5.38.0", - "@vitejs/plugin-react": "^2.1.0", - "eslint": "^8.23.1", + "@dnd-kit/core": "^6.0.5", + "@dnd-kit/modifiers": "^6.0.0", + "@dnd-kit/sortable": "^7.0.1", + "@dnd-kit/utilities": "^3.2.0", + "@faker-js/faker": "7.6.0", + "@mantine/prism": "5.6.3", + "@types/node": "18.11.7", + "@types/react": "18.0.24", + "@types/react-dom": "18.0.8", + "@typescript-eslint/eslint-plugin": "5.41.0", + "@typescript-eslint/parser": "5.41.0", + "@vitejs/plugin-react": "2.2.0", + "eslint": "8.26.0", "eslint-config-prettier": "^8.5.0", - "eslint-import-resolver-typescript": "^3.5.1", + "eslint-import-resolver-typescript": "3.5.2", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react-hooks": "^4.6.0", @@ -62,12 +67,13 @@ "lint-staged": "^13.0.3", "prettier": "^2.7.1", "react-markdown": "^8.0.3", - "react-router-dom": "^6.4.0", + "react-router-dom": "6.4.2", + "react-window": "^1.8.7", "remark-gfm": "^3.0.1", "rollup": "^2.79.0", - "rollup-plugin-visualizer": "^5.8.1", - "typescript": "^4.8.3", - "vite": "^3.1.3" + "rollup-plugin-visualizer": "5.8.3", + "typescript": "4.8.4", + "vite": "3.2.1" }, "peerDependencies": { "@mantine/core": "^5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0bd063..f0d0206 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,23 +3,28 @@ lockfileVersion: 5.4 specifiers: '@commitlint/cli': ^17.1.2 '@commitlint/config-conventional': ^17.1.0 - '@emotion/react': ^11.10.4 - '@faker-js/faker': ^7.5.0 - '@mantine/core': ^5.4.0 - '@mantine/dates': ^5.4.0 - '@mantine/hooks': ^5.4.0 - '@mantine/prism': ^5.4.0 - '@tanstack/react-table': ^8.5.13 - '@types/node': ^18.7.18 - '@types/react': ^18.0.20 - '@types/react-dom': ^18.0.6 - '@typescript-eslint/eslint-plugin': ^5.38.0 - '@typescript-eslint/parser': ^5.38.0 - '@vitejs/plugin-react': ^2.1.0 - dayjs: ^1.11.5 - eslint: ^8.23.1 + '@dnd-kit/core': ^6.0.5 + '@dnd-kit/modifiers': ^6.0.0 + '@dnd-kit/sortable': ^7.0.1 + '@dnd-kit/utilities': ^3.2.0 + '@emotion/react': 11.10.5 + '@faker-js/faker': 7.6.0 + '@mantine/core': 5.6.3 + '@mantine/dates': 5.6.3 + '@mantine/hooks': 5.6.3 + '@mantine/prism': 5.6.3 + '@tanstack/react-table': 8.5.18 + '@types/node': 18.11.7 + '@types/react': 18.0.24 + '@types/react-dom': 18.0.8 + '@types/react-window': ^1.8.5 + '@typescript-eslint/eslint-plugin': 5.41.0 + '@typescript-eslint/parser': 5.41.0 + '@vitejs/plugin-react': 2.2.0 + dayjs: 1.11.6 + eslint: 8.26.0 eslint-config-prettier: ^8.5.0 - eslint-import-resolver-typescript: ^3.5.1 + eslint-import-resolver-typescript: 3.5.2 eslint-plugin-import: ^2.26.0 eslint-plugin-prettier: ^4.2.1 eslint-plugin-react-hooks: ^4.6.0 @@ -29,21 +34,23 @@ specifiers: react: ^18.2.0 react-dom: ^18.2.0 react-markdown: ^8.0.3 - react-router-dom: ^6.4.0 + react-router-dom: 6.4.2 + react-window: ^1.8.7 remark-gfm: ^3.0.1 rollup: ^2.79.0 - rollup-plugin-visualizer: ^5.8.1 + rollup-plugin-visualizer: 5.8.3 tabler-icons-react: ^1.55.0 - typescript: ^4.8.3 - vite: ^3.1.3 + typescript: 4.8.4 + vite: 3.2.1 dependencies: - '@emotion/react': 11.10.4_axxkdcpdr7up57umjkldobkynm - '@mantine/core': 5.4.0_oihobwhbj453cnyslcmpoj2bia - '@mantine/dates': 5.4.0_agnxxn4gdlpmzvqyxbks5w2vau - '@mantine/hooks': 5.4.0_react@18.2.0 - '@tanstack/react-table': 8.5.13_biqbaboplfbrettd7655fr4n2y - dayjs: 1.11.5 + '@emotion/react': 11.10.5_5ihuxrpe4zse4p4tf6ubxcyzuu + '@mantine/core': 5.6.3_4md2hhxmujtaycbumrxkp2e5ju + '@mantine/dates': 5.6.3_3cbqb57scbmxhjsfdecukkvura + '@mantine/hooks': 5.6.3_react@18.2.0 + '@tanstack/react-table': 8.5.18_biqbaboplfbrettd7655fr4n2y + '@types/react-window': 1.8.5 + dayjs: 1.11.6 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 tabler-icons-react: 1.55.0_react@18.2.0 @@ -51,30 +58,35 @@ dependencies: devDependencies: '@commitlint/cli': 17.1.2 '@commitlint/config-conventional': 17.1.0 - '@faker-js/faker': 7.5.0 - '@mantine/prism': 5.4.0_4nihu2fnob2c2gd6dzqgplmj4m - '@types/node': 18.7.18 - '@types/react': 18.0.20 - '@types/react-dom': 18.0.6 - '@typescript-eslint/eslint-plugin': 5.38.0_wsb62dxj2oqwgas4kadjymcmry - '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha - '@vitejs/plugin-react': 2.1.0_vite@3.1.3 - eslint: 8.23.1 - eslint-config-prettier: 8.5.0_eslint@8.23.1 - eslint-import-resolver-typescript: 3.5.1_hdzsmr7kawaomymueo2tso6fjq - eslint-plugin-import: 2.26.0_qidincc6lbiur5hfuez2qbs5ge - eslint-plugin-prettier: 4.2.1_cabrci5exjdaojcvd6xoxgeowu - eslint-plugin-react-hooks: 4.6.0_eslint@8.23.1 + '@dnd-kit/core': 6.0.5_biqbaboplfbrettd7655fr4n2y + '@dnd-kit/modifiers': 6.0.0_vvd3dzag27tc7rclyb2whqqnpe + '@dnd-kit/sortable': 7.0.1_vvd3dzag27tc7rclyb2whqqnpe + '@dnd-kit/utilities': 3.2.0_react@18.2.0 + '@faker-js/faker': 7.6.0 + '@mantine/prism': 5.6.3_hliqdvg4trnmlenfv3ync25tfa + '@types/node': 18.11.7 + '@types/react': 18.0.24 + '@types/react-dom': 18.0.8 + '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + '@vitejs/plugin-react': 2.2.0_vite@3.2.1 + eslint: 8.26.0 + eslint-config-prettier: 8.5.0_eslint@8.26.0 + eslint-import-resolver-typescript: 3.5.2_mynvxvmq5qtyojffiqgev4x7mm + eslint-plugin-import: 2.26.0_r2te5lumhbgztz2yv5ofo3mkvi + eslint-plugin-prettier: 4.2.1_aniwkeyvlpmwkidetuytnokvcm + eslint-plugin-react-hooks: 4.6.0_eslint@8.26.0 husky: 8.0.1 lint-staged: 13.0.3 prettier: 2.7.1 - react-markdown: 8.0.3_w5j4k42lgipnm43s3brx6h3c34 - react-router-dom: 6.4.0_biqbaboplfbrettd7655fr4n2y + react-markdown: 8.0.3_bbvjflvjoibwhtpmedigb26h6y + react-router-dom: 6.4.2_biqbaboplfbrettd7655fr4n2y + react-window: 1.8.7_biqbaboplfbrettd7655fr4n2y remark-gfm: 3.0.1 rollup: 2.79.0 - rollup-plugin-visualizer: 5.8.1_rollup@2.79.0 - typescript: 4.8.3 - vite: 3.1.3 + rollup-plugin-visualizer: 5.8.3_rollup@2.79.0 + typescript: 4.8.4 + vite: 3.2.1 packages: @@ -91,24 +103,24 @@ packages: dependencies: '@babel/highlight': 7.18.6 - /@babel/compat-data/7.19.1: - resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} + /@babel/compat-data/7.20.0: + resolution: {integrity: sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==} engines: {node: '>=6.9.0'} - /@babel/core/7.19.1: - resolution: {integrity: sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==} + /@babel/core/7.19.6: + resolution: {integrity: sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.0 - '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.19.1 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helpers': 7.19.0 - '@babel/parser': 7.19.1 + '@babel/generator': 7.20.0 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.6 + '@babel/helper-module-transforms': 7.19.6 + '@babel/helpers': 7.20.0 + '@babel/parser': 7.20.0 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.0 + '@babel/types': 7.20.0 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -117,11 +129,11 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator/7.19.0: - resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} + /@babel/generator/7.20.0: + resolution: {integrity: sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 @@ -129,17 +141,17 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 dev: true - /@babel/helper-compilation-targets/7.19.1_@babel+core@7.19.1: - resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==} + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.19.6: + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.19.1 - '@babel/core': 7.19.1 + '@babel/compat-data': 7.20.0 + '@babel/core': 7.19.6 '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 @@ -153,32 +165,32 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 - /@babel/helper-module-transforms/7.19.0: - resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} + /@babel/helper-module-transforms/7.19.6: + resolution: {integrity: sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.18.6 + '@babel/helper-simple-access': 7.19.4 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.0 + '@babel/types': 7.20.0 transitivePeerDependencies: - supports-color @@ -186,21 +198,26 @@ packages: resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} engines: {node: '>=6.9.0'} - /@babel/helper-simple-access/7.18.6: - resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} + /@babel/helper-simple-access/7.19.4: + resolution: {integrity: sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 /@babel/helper-string-parser/7.18.10: resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} @@ -210,13 +227,13 @@ packages: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} - /@babel/helpers/7.19.0: - resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} + /@babel/helpers/7.20.0: + resolution: {integrity: sha512-aGMjYraN0zosCEthoGLdqot1oRsmxVTQRHadsUPz5QM44Zej2PYRz7XiDE7GqnkZnNtLbOuxqoZw42vkU7+XEQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 - '@babel/types': 7.19.0 + '@babel/traverse': 7.20.0 + '@babel/types': 7.20.0 transitivePeerDependencies: - supports-color @@ -228,63 +245,63 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser/7.19.1: - resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} + /@babel/parser/7.20.0: + resolution: {integrity: sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.20.0 - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.1: + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.6: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.1 + '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.19.1: + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.19.6: resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.1 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.19.1 + '@babel/core': 7.19.6 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.19.6 dev: true - /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.19.1: + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.19.6: resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.1 + '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-react-jsx-source/7.18.6_@babel+core@7.19.1: - resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==} + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.19.6: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.1 + '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 dev: true - /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.19.1: + /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.19.6: resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.1 + '@babel/core': 7.19.6 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-module-imports': 7.18.6 '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.1 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.6 '@babel/types': 7.19.0 dev: true @@ -299,21 +316,21 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 + '@babel/parser': 7.20.0 + '@babel/types': 7.20.0 - /@babel/traverse/7.19.1: - resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} + /@babel/traverse/7.20.0: + resolution: {integrity: sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.0 + '@babel/generator': 7.20.0 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.19.1 - '@babel/types': 7.19.0 + '@babel/parser': 7.20.0 + '@babel/types': 7.20.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -326,6 +343,15 @@ packages: '@babel/helper-string-parser': 7.18.10 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + dev: true + + /@babel/types/7.20.0: + resolution: {integrity: sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 /@commitlint/cli/17.1.2: resolution: {integrity: sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw==} @@ -412,11 +438,11 @@ packages: '@types/node': 14.18.29 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 4.1.0_3owiowz3ujipd4k6pbqn3n7oui + cosmiconfig-typescript-loader: 4.1.0_nxlrwu45zhpwmwjzs33dzt3ak4 lodash: 4.17.21 resolve-from: 5.0.0 - ts-node: 10.9.1_bidgzm5cq2du6gnjtweqqjrrn4 - typescript: 4.8.3 + ts-node: 10.9.1_evej5wzm4hojmu6uzxwpspdmsu + typescript: 4.8.4 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -496,33 +522,88 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@emotion/babel-plugin/11.10.2_@babel+core@7.19.1: - resolution: {integrity: sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA==} + /@dnd-kit/accessibility/3.0.1_react@18.2.0: + resolution: {integrity: sha512-HXRrwS9YUYQO9lFRc/49uO/VICbM+O+ZRpFDe9Pd1rwVv2PCNkRiTZRdxrDgng/UkvdC3Re9r2vwPpXXrWeFzg==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + tslib: 2.4.0 + dev: true + + /@dnd-kit/core/6.0.5_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-3nL+Zy5cT+1XwsWdlXIvGIFvbuocMyB4NBxTN74DeBaBqeWdH9JsnKwQv7buZQgAHmAH+eIENfS1ginkvW6bCw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@dnd-kit/accessibility': 3.0.1_react@18.2.0 + '@dnd-kit/utilities': 3.2.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + tslib: 2.4.0 + dev: true + + /@dnd-kit/modifiers/6.0.0_vvd3dzag27tc7rclyb2whqqnpe: + resolution: {integrity: sha512-V3+JSo6/BTcgPRHiNUTSKgqVv/doKXg+T4Z0QvKiiXp+uIyJTUtPkQOBRQApUWi3ApBhnoWljyt/3xxY4fTd0Q==} + peerDependencies: + '@dnd-kit/core': ^6.0.0 + dependencies: + '@dnd-kit/core': 6.0.5_biqbaboplfbrettd7655fr4n2y + '@dnd-kit/utilities': 3.2.0_react@18.2.0 + tslib: 2.4.0 + transitivePeerDependencies: + - react + dev: true + + /@dnd-kit/sortable/7.0.1_vvd3dzag27tc7rclyb2whqqnpe: + resolution: {integrity: sha512-n77qAzJQtMMywu25sJzhz3gsHnDOUlEjTtnRl8A87rWIhnu32zuP+7zmFjwGgvqfXmRufqiHOSlH7JPC/tnJ8Q==} + peerDependencies: + '@dnd-kit/core': ^6.0.4 + react: '>=16.8.0' + dependencies: + '@dnd-kit/core': 6.0.5_biqbaboplfbrettd7655fr4n2y + '@dnd-kit/utilities': 3.2.0_react@18.2.0 + react: 18.2.0 + tslib: 2.4.0 + dev: true + + /@dnd-kit/utilities/3.2.0_react@18.2.0: + resolution: {integrity: sha512-h65/pn2IPCCIWwdlR2BMLqRkDxpTEONA+HQW3n765HBijLYGyrnTCLa2YQt8VVjjSQD6EfFlTE6aS2Q/b6nb2g==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + tslib: 2.4.0 + dev: true + + /@emotion/babel-plugin/11.10.5_@babel+core@7.19.6: + resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.19.1 + '@babel/core': 7.19.6 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.1 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.6 '@babel/runtime': 7.19.0 '@emotion/hash': 0.9.0 '@emotion/memoize': 0.8.0 - '@emotion/serialize': 1.1.0 + '@emotion/serialize': 1.1.1 babel-plugin-macros: 3.1.0 convert-source-map: 1.8.0 escape-string-regexp: 4.0.0 find-root: 1.1.0 source-map: 0.5.7 - stylis: 4.0.13 + stylis: 4.1.3 - /@emotion/cache/11.10.3: - resolution: {integrity: sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ==} + /@emotion/cache/11.10.5: + resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} dependencies: '@emotion/memoize': 0.8.0 - '@emotion/sheet': 1.2.0 + '@emotion/sheet': 1.2.1 '@emotion/utils': 1.2.0 '@emotion/weak-memoize': 0.3.0 - stylis: 4.0.13 + stylis: 4.1.3 /@emotion/hash/0.9.0: resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} @@ -530,8 +611,8 @@ packages: /@emotion/memoize/0.8.0: resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} - /@emotion/react/11.10.4_axxkdcpdr7up57umjkldobkynm: - resolution: {integrity: sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==} + /@emotion/react/11.10.5_5ihuxrpe4zse4p4tf6ubxcyzuu: + resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} peerDependencies: '@babel/core': ^7.0.0 '@types/react': '*' @@ -542,20 +623,20 @@ packages: '@types/react': optional: true dependencies: - '@babel/core': 7.19.1 + '@babel/core': 7.19.6 '@babel/runtime': 7.19.0 - '@emotion/babel-plugin': 11.10.2_@babel+core@7.19.1 - '@emotion/cache': 11.10.3 - '@emotion/serialize': 1.1.0 + '@emotion/babel-plugin': 11.10.5_@babel+core@7.19.6 + '@emotion/cache': 11.10.5 + '@emotion/serialize': 1.1.1 '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 '@emotion/utils': 1.2.0 '@emotion/weak-memoize': 0.3.0 - '@types/react': 18.0.20 + '@types/react': 18.0.24 hoist-non-react-statics: 3.3.2 react: 18.2.0 - /@emotion/serialize/1.1.0: - resolution: {integrity: sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA==} + /@emotion/serialize/1.1.1: + resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} dependencies: '@emotion/hash': 0.9.0 '@emotion/memoize': 0.8.0 @@ -563,8 +644,8 @@ packages: '@emotion/utils': 1.2.0 csstype: 3.1.1 - /@emotion/sheet/1.2.0: - resolution: {integrity: sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w==} + /@emotion/sheet/1.2.1: + resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} /@emotion/unitless/0.8.0: resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} @@ -582,19 +663,17 @@ packages: /@emotion/weak-memoize/0.3.0: resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} - /@esbuild/android-arm/0.15.8: - resolution: {integrity: sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q==} + /@esbuild/android-arm/0.15.12: + resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true - dependencies: - esbuild-wasm: 0.15.8 dev: true optional: true - /@esbuild/linux-loong64/0.15.8: - resolution: {integrity: sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg==} + /@esbuild/linux-loong64/0.15.12: + resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -602,8 +681,8 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.2: - resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==} + /@eslint/eslintrc/1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -619,48 +698,44 @@ packages: - supports-color dev: true - /@faker-js/faker/7.5.0: - resolution: {integrity: sha512-8wNUCCUHvfvI0gQpDUho/3gPzABffnCn5um65F8dzQ86zz6dlt4+nmAA7PQUc8L+eH+9RgR/qzy5N/8kN0Ozdw==} + /@faker-js/faker/7.6.0: + resolution: {integrity: sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==} engines: {node: '>=14.0.0', npm: '>=6.0.0'} dev: true - /@floating-ui/core/0.7.3: - resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} + /@floating-ui/core/1.0.1: + resolution: {integrity: sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==} - /@floating-ui/dom/0.5.4: - resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} + /@floating-ui/dom/1.0.3: + resolution: {integrity: sha512-6H1kwjkOZKabApNtXRiYHvMmYJToJ1DV7rQ3xc/WJpOABhQIOJJOdz2AOejj8X+gcybaFmBpisVTZxBZAM3V0w==} dependencies: - '@floating-ui/core': 0.7.3 + '@floating-ui/core': 1.0.1 - /@floating-ui/react-dom-interactions/0.6.6_7ey2zzynotv32rpkwno45fsx4e: - resolution: {integrity: sha512-qnao6UPjSZNHnXrF+u4/n92qVroQkx0Umlhy3Avk1oIebm/5ee6yvDm4xbHob0OjY7ya8WmUnV3rQlPwX3Atwg==} + /@floating-ui/react-dom-interactions/0.10.2_knhnagtyfncgg2hpin7s37uixq: + resolution: {integrity: sha512-KhF+UN+MVqUx1bG1fe0aAiBl1hbz07Uin6UW70mxwUDhaGpitM16CYvGri1EqGY4hnWK8TQknDSP8iQFOxjhsg==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/react-dom': 0.7.2_7ey2zzynotv32rpkwno45fsx4e - aria-hidden: 1.2.1_w5j4k42lgipnm43s3brx6h3c34 + '@floating-ui/react-dom': 1.0.0_biqbaboplfbrettd7655fr4n2y + aria-hidden: 1.2.1_bbvjflvjoibwhtpmedigb26h6y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - use-isomorphic-layout-effect: 1.1.2_w5j4k42lgipnm43s3brx6h3c34 transitivePeerDependencies: - '@types/react' - /@floating-ui/react-dom/0.7.2_7ey2zzynotv32rpkwno45fsx4e: - resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} + /@floating-ui/react-dom/1.0.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-uiOalFKPG937UCLm42RxjESTWUVpbbatvlphQAU6bsv+ence6IoVG8JOUZcy8eW81NkU+Idiwvx10WFLmR4MIg==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/dom': 0.5.4 + '@floating-ui/dom': 1.0.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - use-isomorphic-layout-effect: 1.1.2_w5j4k42lgipnm43s3brx6h3c34 - transitivePeerDependencies: - - '@types/react' - /@humanwhocodes/config-array/0.10.4: - resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} + /@humanwhocodes/config-array/0.11.6: + resolution: {integrity: sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -670,10 +745,6 @@ packages: - supports-color dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: - resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} - dev: true - /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -722,78 +793,78 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@mantine/core/5.4.0_oihobwhbj453cnyslcmpoj2bia: - resolution: {integrity: sha512-zvWFk4RMdKdAQgS+E+NlfhnfJQR5mbv2OuNkMWgoVaoVuESz+ePFJCWK2fu7NkdU1q0r+URTAqPrQGG18AYI8Q==} + /@mantine/core/5.6.3_4md2hhxmujtaycbumrxkp2e5ju: + resolution: {integrity: sha512-joEeRblARR/faeOjOeETY4l4osYEFfgZV0+i8BO7TyalZ+ONMUurYWJp0a5iX4Gf3M6uNO9lbBLlsOy2vDnNew==} peerDependencies: - '@mantine/hooks': 5.4.0 + '@mantine/hooks': 5.6.3 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/react-dom-interactions': 0.6.6_7ey2zzynotv32rpkwno45fsx4e - '@mantine/hooks': 5.4.0_react@18.2.0 - '@mantine/styles': 5.4.0_7xbt6cqxny5okm7nuwm4cfiesq - '@mantine/utils': 5.4.0_react@18.2.0 + '@floating-ui/react-dom-interactions': 0.10.2_knhnagtyfncgg2hpin7s37uixq + '@mantine/hooks': 5.6.3_react@18.2.0 + '@mantine/styles': 5.6.3_sogmqz4enknxtkxk3k5s6bqwnq + '@mantine/utils': 5.6.3_react@18.2.0 '@radix-ui/react-scroll-area': 1.0.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-textarea-autosize: 8.3.4_w5j4k42lgipnm43s3brx6h3c34 + react-textarea-autosize: 8.3.4_bbvjflvjoibwhtpmedigb26h6y transitivePeerDependencies: - '@emotion/react' - '@types/react' - /@mantine/dates/5.4.0_agnxxn4gdlpmzvqyxbks5w2vau: - resolution: {integrity: sha512-6x3s+A72Ma15QeEMM5XfbIW5y0HrjihlKxeh87wMRwDpgimoyNBqDeGhpQJOZ9vyI2k5e1F5Ocvc9xCPJeEeDw==} + /@mantine/dates/5.6.3_3cbqb57scbmxhjsfdecukkvura: + resolution: {integrity: sha512-VDKbUPNVI+WB7/ejfErOGmXK486fJG7SQz+TU+YiVa6OzMfBfYyvw28rGR4Jg83EdwugZ3loKBhUVsRrAVyAoA==} peerDependencies: - '@mantine/core': 5.4.0 - '@mantine/hooks': 5.4.0 + '@mantine/core': 5.6.3 + '@mantine/hooks': 5.6.3 dayjs: '>=1.0.0' react: '>=16.8.0' dependencies: - '@mantine/core': 5.4.0_oihobwhbj453cnyslcmpoj2bia - '@mantine/hooks': 5.4.0_react@18.2.0 - '@mantine/utils': 5.4.0_react@18.2.0 - dayjs: 1.11.5 + '@mantine/core': 5.6.3_4md2hhxmujtaycbumrxkp2e5ju + '@mantine/hooks': 5.6.3_react@18.2.0 + '@mantine/utils': 5.6.3_react@18.2.0 + dayjs: 1.11.6 react: 18.2.0 dev: false - /@mantine/hooks/5.4.0_react@18.2.0: - resolution: {integrity: sha512-3Rw4UKNd57+J0q8aLJKCPNNqhtcQ01yGAt/JUaDOuwrJBm+htgE+bTTR6RHhx+F8CDqdKJHCNYgrJJuENkuHow==} + /@mantine/hooks/5.6.3_react@18.2.0: + resolution: {integrity: sha512-de3Fm7Z2MrWms8Ah/YbG9fr6CLLtAfz5LCwtqnRXgOetqbu38ZERYNi7TMFxnhGdZko90QjdIpiQRJBsfVax+g==} peerDependencies: react: '>=16.8.0' dependencies: react: 18.2.0 - /@mantine/prism/5.4.0_4nihu2fnob2c2gd6dzqgplmj4m: - resolution: {integrity: sha512-jVJcB0P0xZeFXkVuHf8qAYa4AOLL1Yf7Abx2A89GUzj5/H7gBRZOlemU0NFDSEBIIJ/2hsXeDxEAmo6rC2pzTw==} + /@mantine/prism/5.6.3_hliqdvg4trnmlenfv3ync25tfa: + resolution: {integrity: sha512-dqBgTgQDzt5Iw2NktRKo+EesFhmhkvyumwPQHFahFsV0WjDZ5jqbRRf5vOHHuXjn7LS2JbDCok+vi2BNoZ4iZQ==} peerDependencies: - '@mantine/core': 5.4.0 - '@mantine/hooks': 5.4.0 + '@mantine/core': 5.6.3 + '@mantine/hooks': 5.6.3 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 5.4.0_oihobwhbj453cnyslcmpoj2bia - '@mantine/hooks': 5.4.0_react@18.2.0 - '@mantine/utils': 5.4.0_react@18.2.0 + '@mantine/core': 5.6.3_4md2hhxmujtaycbumrxkp2e5ju + '@mantine/hooks': 5.6.3_react@18.2.0 + '@mantine/utils': 5.6.3_react@18.2.0 prism-react-renderer: 1.3.5_react@18.2.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true - /@mantine/styles/5.4.0_7xbt6cqxny5okm7nuwm4cfiesq: - resolution: {integrity: sha512-WnCRaqX8D1l4Y7QQD4e/tBKkLgTHbl0BeAOe/U4UDBM916mEboOmR8sa81zCUj4eJQoMlloe0WR1+erYX4JHLQ==} + /@mantine/styles/5.6.3_sogmqz4enknxtkxk3k5s6bqwnq: + resolution: {integrity: sha512-kgaEb1zTmZnSrcuY+ivEpBaaK9ELkWV/mBjjEVDc3fvRbcZioRFD/UUOhga4wLxU6TzLD/juAh1LPqZ3v3kwKQ==} peerDependencies: '@emotion/react': '>=11.9.0' react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@emotion/react': 11.10.4_axxkdcpdr7up57umjkldobkynm + '@emotion/react': 11.10.5_5ihuxrpe4zse4p4tf6ubxcyzuu clsx: 1.1.1 csstype: 3.0.9 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - /@mantine/utils/5.4.0_react@18.2.0: - resolution: {integrity: sha512-XZE168OhQxrNz9wrFYFOdGDVxDH3wP0uZ5apBezHvf0D74qyUZjGzndkfXbvAq+/mVnMZA/fKju9ydo/IXMftg==} + /@mantine/utils/5.6.3_react@18.2.0: + resolution: {integrity: sha512-GrDvXJG7inJaQHjsfg8pOYFE/vNpHMKScQM0M4hKlDoVjXsQUPxw8Lx4A7jhmVf2eNJUqvOQ9A1jbO7W7bedcA==} peerDependencies: react: '>=16.8.0' dependencies: @@ -933,25 +1004,25 @@ packages: '@babel/runtime': 7.19.0 react: 18.2.0 - /@remix-run/router/1.0.0: - resolution: {integrity: sha512-SCR1cxRSMNKjaVYptCzBApPDqGwa3FGdjVHc+rOToocNPHQdIYLZBfv/3f+KvYuXDkUGVIW9IAzmPNZDRL1I4A==} + /@remix-run/router/1.0.2: + resolution: {integrity: sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==} engines: {node: '>=14'} dev: true - /@tanstack/react-table/8.5.13_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-k52HsnonKwDZMCIy59HfehTnkJYlqkqyvC+BAV0DyWdN9WmSbVq+Kf+luJVENQnXcnEX47dBHiHAjqZu592ZLQ==} + /@tanstack/react-table/8.5.18_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-4YGK7cMOi4kTmLxbJkqzBx1Fd8AIcF/uILdh3tgYUbX+HwV6BcA2tzQAnkk8E4dlznOkbxTDZODUfCFbkRvvNw==} engines: {node: '>=12'} peerDependencies: react: '>=16' react-dom: '>=16' dependencies: - '@tanstack/table-core': 8.5.13 + '@tanstack/table-core': 8.5.18 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: false - /@tanstack/table-core/8.5.13: - resolution: {integrity: sha512-kvDRjC7LrLNNNgUMfsBz3nHOwbBLFdosWQ16dfbD9D/OJrvFHRXoUIPzF0MNqqSPghaj7/18fnwXHGypvzoh9Q==} + /@tanstack/table-core/8.5.18: + resolution: {integrity: sha512-gOLQtWm7f1CNdOE/pTapANq7n1juEHQIk4czR1yZklNPlh+Pd4lW521GnrS9aULL62yN1KUTmJvKEr+hqcvOuw==} engines: {node: '>=12'} dev: false @@ -1013,8 +1084,8 @@ packages: resolution: {integrity: sha512-LhF+9fbIX4iPzhsRLpK5H7iPdvW8L4IwGciXQIOEcuF62+9nw/VQVsOViAOOGxY3OlOKGLFv0sWwJXdwQeTn6A==} dev: true - /@types/node/18.7.18: - resolution: {integrity: sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==} + /@types/node/18.11.7: + resolution: {integrity: sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==} dev: true /@types/normalize-package-data/2.4.1: @@ -1027,14 +1098,20 @@ packages: /@types/prop-types/15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom/18.0.6: - resolution: {integrity: sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==} + /@types/react-dom/18.0.8: + resolution: {integrity: sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==} dependencies: - '@types/react': 18.0.20 + '@types/react': 18.0.24 dev: true - /@types/react/18.0.20: - resolution: {integrity: sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==} + /@types/react-window/1.8.5: + resolution: {integrity: sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==} + dependencies: + '@types/react': 18.0.24 + dev: false + + /@types/react/18.0.24: + resolution: {integrity: sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -1043,12 +1120,16 @@ packages: /@types/scheduler/0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.38.0_wsb62dxj2oqwgas4kadjymcmry: - resolution: {integrity: sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==} + /@typescript-eslint/eslint-plugin/5.41.0_huremdigmcnkianavgfk3x6iou: + resolution: {integrity: sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -1058,23 +1139,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha - '@typescript-eslint/scope-manager': 5.38.0 - '@typescript-eslint/type-utils': 5.38.0_irgkl5vooow2ydyo6aokmferha - '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/type-utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.23.1 + eslint: 8.26.0 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.3 - typescript: 4.8.3 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.38.0_irgkl5vooow2ydyo6aokmferha: - resolution: {integrity: sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==} + /@typescript-eslint/parser/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1083,26 +1164,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.38.0 - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 debug: 4.3.4 - eslint: 8.23.1 - typescript: 4.8.3 + eslint: 8.26.0 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.38.0: - resolution: {integrity: sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA==} + /@typescript-eslint/scope-manager/5.41.0: + resolution: {integrity: sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/visitor-keys': 5.38.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/visitor-keys': 5.41.0 dev: true - /@typescript-eslint/type-utils/5.38.0_irgkl5vooow2ydyo6aokmferha: - resolution: {integrity: sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==} + /@typescript-eslint/type-utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -1111,23 +1192,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 - '@typescript-eslint/utils': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 + '@typescript-eslint/utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.23.1 - tsutils: 3.21.0_typescript@4.8.3 - typescript: 4.8.3 + eslint: 8.26.0 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.38.0: - resolution: {integrity: sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA==} + /@typescript-eslint/types/5.41.0: + resolution: {integrity: sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.38.0_typescript@4.8.3: - resolution: {integrity: sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg==} + /@typescript-eslint/typescript-estree/5.41.0_typescript@4.8.4: + resolution: {integrity: sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1135,58 +1216,60 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/visitor-keys': 5.38.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/visitor-keys': 5.41.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.3 - typescript: 4.8.3 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.38.0_irgkl5vooow2ydyo6aokmferha: - resolution: {integrity: sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==} + /@typescript-eslint/utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.38.0 - '@typescript-eslint/types': 5.38.0 - '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.8.3 - eslint: 8.23.1 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 + eslint: 8.26.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.23.1 + eslint-utils: 3.0.0_eslint@8.26.0 + semver: 7.3.7 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.38.0: - resolution: {integrity: sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w==} + /@typescript-eslint/visitor-keys/5.41.0: + resolution: {integrity: sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/types': 5.41.0 eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-react/2.1.0_vite@3.1.3: - resolution: {integrity: sha512-am6rPyyU3LzUYne3Gd9oj9c4Rzbq5hQnuGXSMT6Gujq45Il/+bunwq3lrB7wghLkiF45ygMwft37vgJ/NE8IAA==} + /@vitejs/plugin-react/2.2.0_vite@3.2.1: + resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 dependencies: - '@babel/core': 7.19.1 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.19.1 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.19.1 - '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.19.1 - '@babel/plugin-transform-react-jsx-source': 7.18.6_@babel+core@7.19.1 - magic-string: 0.26.3 + '@babel/core': 7.19.6 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.19.6 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.19.6 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.19.6 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.19.6 + magic-string: 0.26.7 react-refresh: 0.14.0 - vite: 3.1.3 + vite: 3.2.1 transitivePeerDependencies: - supports-color dev: true @@ -1287,7 +1370,7 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-hidden/1.2.1_w5j4k42lgipnm43s3brx6h3c34: + /aria-hidden/1.2.1_bbvjflvjoibwhtpmedigb26h6y: resolution: {integrity: sha512-PN344VAf9j1EAi+jyVHOJ8XidQdPVssGco39eNcsGdM4wcsILtxrKLkbuiMfLWYROK1FjRQasMWCBttrhjnr6A==} engines: {node: '>=10'} peerDependencies: @@ -1297,7 +1380,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.20 + '@types/react': 18.0.24 react: 18.2.0 tslib: 2.4.0 @@ -1551,7 +1634,7 @@ packages: dependencies: safe-buffer: 5.1.2 - /cosmiconfig-typescript-loader/4.1.0_3owiowz3ujipd4k6pbqn3n7oui: + /cosmiconfig-typescript-loader/4.1.0_nxlrwu45zhpwmwjzs33dzt3ak4: resolution: {integrity: sha512-HbWIuR5O+XO5Oj9SZ5bzgrD4nN+rfhrm2PMb0FVx+t+XIvC45n8F0oTNnztXtspWGw0i2IzHaUWFD5LzV1JB4A==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -1562,8 +1645,8 @@ packages: dependencies: '@types/node': 14.18.29 cosmiconfig: 7.0.1 - ts-node: 10.9.1_bidgzm5cq2du6gnjtweqqjrrn4 - typescript: 4.8.3 + ts-node: 10.9.1_evej5wzm4hojmu6uzxwpspdmsu + typescript: 4.8.4 dev: true /cosmiconfig/7.0.1: @@ -1600,8 +1683,8 @@ packages: engines: {node: '>=8'} dev: true - /dayjs/1.11.5: - resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==} + /dayjs/1.11.6: + resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==} dev: false /debug/2.6.9: @@ -1788,19 +1871,17 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.15.8: - resolution: {integrity: sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw==} + /esbuild-android-64/0.15.12: + resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true - dependencies: - esbuild-wasm: 0.15.8 dev: true optional: true - /esbuild-android-arm64/0.15.8: - resolution: {integrity: sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ==} + /esbuild-android-arm64/0.15.12: + resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1808,8 +1889,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.8: - resolution: {integrity: sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA==} + /esbuild-darwin-64/0.15.12: + resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1817,8 +1898,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.8: - resolution: {integrity: sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw==} + /esbuild-darwin-arm64/0.15.12: + resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1826,8 +1907,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.8: - resolution: {integrity: sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw==} + /esbuild-freebsd-64/0.15.12: + resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1835,8 +1916,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.8: - resolution: {integrity: sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w==} + /esbuild-freebsd-arm64/0.15.12: + resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1844,8 +1925,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.8: - resolution: {integrity: sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg==} + /esbuild-linux-32/0.15.12: + resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1853,8 +1934,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.8: - resolution: {integrity: sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA==} + /esbuild-linux-64/0.15.12: + resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1862,8 +1943,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.8: - resolution: {integrity: sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q==} + /esbuild-linux-arm/0.15.12: + resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1871,8 +1952,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.8: - resolution: {integrity: sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg==} + /esbuild-linux-arm64/0.15.12: + resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1880,8 +1961,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.8: - resolution: {integrity: sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA==} + /esbuild-linux-mips64le/0.15.12: + resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1889,8 +1970,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.8: - resolution: {integrity: sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg==} + /esbuild-linux-ppc64le/0.15.12: + resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1898,8 +1979,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.8: - resolution: {integrity: sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA==} + /esbuild-linux-riscv64/0.15.12: + resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1907,8 +1988,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.8: - resolution: {integrity: sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA==} + /esbuild-linux-s390x/0.15.12: + resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1916,8 +1997,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.8: - resolution: {integrity: sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw==} + /esbuild-netbsd-64/0.15.12: + resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1925,8 +2006,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.8: - resolution: {integrity: sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA==} + /esbuild-openbsd-64/0.15.12: + resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1934,8 +2015,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.8: - resolution: {integrity: sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA==} + /esbuild-sunos-64/0.15.12: + resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1943,16 +2024,8 @@ packages: dev: true optional: true - /esbuild-wasm/0.15.8: - resolution: {integrity: sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.8: - resolution: {integrity: sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg==} + /esbuild-windows-32/0.15.12: + resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1960,8 +2033,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.8: - resolution: {integrity: sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA==} + /esbuild-windows-64/0.15.12: + resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1969,8 +2042,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.8: - resolution: {integrity: sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg==} + /esbuild-windows-arm64/0.15.12: + resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1978,34 +2051,34 @@ packages: dev: true optional: true - /esbuild/0.15.8: - resolution: {integrity: sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q==} + /esbuild/0.15.12: + resolution: {integrity: sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.8 - '@esbuild/linux-loong64': 0.15.8 - esbuild-android-64: 0.15.8 - esbuild-android-arm64: 0.15.8 - esbuild-darwin-64: 0.15.8 - esbuild-darwin-arm64: 0.15.8 - esbuild-freebsd-64: 0.15.8 - esbuild-freebsd-arm64: 0.15.8 - esbuild-linux-32: 0.15.8 - esbuild-linux-64: 0.15.8 - esbuild-linux-arm: 0.15.8 - esbuild-linux-arm64: 0.15.8 - esbuild-linux-mips64le: 0.15.8 - esbuild-linux-ppc64le: 0.15.8 - esbuild-linux-riscv64: 0.15.8 - esbuild-linux-s390x: 0.15.8 - esbuild-netbsd-64: 0.15.8 - esbuild-openbsd-64: 0.15.8 - esbuild-sunos-64: 0.15.8 - esbuild-windows-32: 0.15.8 - esbuild-windows-64: 0.15.8 - esbuild-windows-arm64: 0.15.8 + '@esbuild/android-arm': 0.15.12 + '@esbuild/linux-loong64': 0.15.12 + esbuild-android-64: 0.15.12 + esbuild-android-arm64: 0.15.12 + esbuild-darwin-64: 0.15.12 + esbuild-darwin-arm64: 0.15.12 + esbuild-freebsd-64: 0.15.12 + esbuild-freebsd-arm64: 0.15.12 + esbuild-linux-32: 0.15.12 + esbuild-linux-64: 0.15.12 + esbuild-linux-arm: 0.15.12 + esbuild-linux-arm64: 0.15.12 + esbuild-linux-mips64le: 0.15.12 + esbuild-linux-ppc64le: 0.15.12 + esbuild-linux-riscv64: 0.15.12 + esbuild-linux-s390x: 0.15.12 + esbuild-netbsd-64: 0.15.12 + esbuild-openbsd-64: 0.15.12 + esbuild-sunos-64: 0.15.12 + esbuild-windows-32: 0.15.12 + esbuild-windows-64: 0.15.12 + esbuild-windows-arm64: 0.15.12 dev: true /escalade/3.1.1: @@ -2025,13 +2098,13 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-prettier/8.5.0_eslint@8.23.1: + /eslint-config-prettier/8.5.0_eslint@8.26.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.23.1 + eslint: 8.26.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -2043,17 +2116,17 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/3.5.1_hdzsmr7kawaomymueo2tso6fjq: - resolution: {integrity: sha512-U7LUjNJPYjNsHvAUAkt/RU3fcTSpbllA0//35B4eLYTX74frmOepbt7F7J3D1IGtj9k21buOpaqtDd4ZlS/BYQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + /eslint-import-resolver-typescript/3.5.2_mynvxvmq5qtyojffiqgev4x7mm: + resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' dependencies: debug: 4.3.4 enhanced-resolve: 5.10.0 - eslint: 8.23.1 - eslint-plugin-import: 2.26.0_qidincc6lbiur5hfuez2qbs5ge + eslint: 8.26.0 + eslint-plugin-import: 2.26.0_r2te5lumhbgztz2yv5ofo3mkvi get-tsconfig: 4.2.0 globby: 13.1.2 is-core-module: 2.10.0 @@ -2063,7 +2136,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_hm5uhrsezvrmv7cxvacxm66s4i: + /eslint-module-utils/2.7.4_kvqmcmijsn75hj4rq4hhnsexmq: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -2084,16 +2157,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m debug: 3.2.7 - eslint: 8.23.1 + eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.1_hdzsmr7kawaomymueo2tso6fjq + eslint-import-resolver-typescript: 3.5.2_mynvxvmq5qtyojffiqgev4x7mm transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.26.0_qidincc6lbiur5hfuez2qbs5ge: + /eslint-plugin-import/2.26.0_r2te5lumhbgztz2yv5ofo3mkvi: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -2103,14 +2176,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.38.0_irgkl5vooow2ydyo6aokmferha + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.23.1 + eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_hm5uhrsezvrmv7cxvacxm66s4i + eslint-module-utils: 2.7.4_kvqmcmijsn75hj4rq4hhnsexmq has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -2124,7 +2197,7 @@ packages: - supports-color dev: true - /eslint-plugin-prettier/4.2.1_cabrci5exjdaojcvd6xoxgeowu: + /eslint-plugin-prettier/4.2.1_aniwkeyvlpmwkidetuytnokvcm: resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2135,19 +2208,19 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.23.1 - eslint-config-prettier: 8.5.0_eslint@8.23.1 + eslint: 8.26.0 + eslint-config-prettier: 8.5.0_eslint@8.26.0 prettier: 2.7.1 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.23.1: + /eslint-plugin-react-hooks/4.6.0_eslint@8.26.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.23.1 + eslint: 8.26.0 dev: true /eslint-scope/5.1.1: @@ -2166,13 +2239,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.23.1: + /eslint-utils/3.0.0_eslint@8.26.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.23.1 + eslint: 8.26.0 eslint-visitor-keys: 2.1.0 dev: true @@ -2186,15 +2259,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.23.1: - resolution: {integrity: sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==} + /eslint/8.26.0: + resolution: {integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.2 - '@humanwhocodes/config-array': 0.10.4 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.6 '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -2202,7 +2275,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.23.1 + eslint-utils: 3.0.0_eslint@8.26.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -2212,12 +2285,12 @@ packages: find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.17.0 - globby: 11.1.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 js-sdsl: 4.1.4 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 @@ -2767,6 +2840,11 @@ packages: engines: {node: '>=8'} dev: true + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + /is-plain-obj/1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} @@ -3015,8 +3093,8 @@ packages: yallist: 4.0.0 dev: true - /magic-string/0.26.3: - resolution: {integrity: sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==} + /magic-string/0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 @@ -3167,6 +3245,10 @@ packages: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: true + /memoize-one/5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + dev: true + /meow/8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -3721,8 +3803,8 @@ packages: hasBin: true dev: true - /postcss/8.4.16: - resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + /postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -3803,7 +3885,7 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true - /react-markdown/8.0.3_w5j4k42lgipnm43s3brx6h3c34: + /react-markdown/8.0.3_bbvjflvjoibwhtpmedigb26h6y: resolution: {integrity: sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A==} peerDependencies: '@types/react': '>=16' @@ -3811,7 +3893,7 @@ packages: dependencies: '@types/hast': 2.3.4 '@types/prop-types': 15.7.5 - '@types/react': 18.0.20 + '@types/react': 18.0.24 '@types/unist': 2.0.6 comma-separated-tokens: 2.0.2 hast-util-whitespace: 2.0.0 @@ -3835,29 +3917,30 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-router-dom/6.4.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-4Aw1xmXKeleYYQ3x0Lcl2undHR6yMjXZjd9DKZd53SGOYqirrUThyUb0wwAX5VZAyvSuzjNJmZlJ3rR9+/vzqg==} + /react-router-dom/6.4.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-yM1kjoTkpfjgczPrcyWrp+OuQMyB1WleICiiGfstnQYo/S8hPEEnVjr/RdmlH6yKK4Tnj1UGXFSa7uwAtmDoLQ==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: + '@remix-run/router': 1.0.2 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-router: 6.4.0_react@18.2.0 + react-router: 6.4.2_react@18.2.0 dev: true - /react-router/6.4.0_react@18.2.0: - resolution: {integrity: sha512-B+5bEXFlgR1XUdHYR6P94g299SjrfCBMmEDJNcFbpAyRH1j1748yt9NdDhW3++nw1lk3zQJ6aOO66zUx3KlTZg==} + /react-router/6.4.2_react@18.2.0: + resolution: {integrity: sha512-Rb0BAX9KHhVzT1OKhMvCDMw776aTYM0DtkxqUBP8dNBom3mPXlfNs76JNGK8wKJ1IZEY1+WGj+cvZxHVk/GiKw==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.0.0 + '@remix-run/router': 1.0.2 react: 18.2.0 dev: true - /react-textarea-autosize/8.3.4_w5j4k42lgipnm43s3brx6h3c34: + /react-textarea-autosize/8.3.4_bbvjflvjoibwhtpmedigb26h6y: resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} engines: {node: '>=10'} peerDependencies: @@ -3866,10 +3949,23 @@ packages: '@babel/runtime': 7.19.0 react: 18.2.0 use-composed-ref: 1.3.0_react@18.2.0 - use-latest: 1.2.1_w5j4k42lgipnm43s3brx6h3c34 + use-latest: 1.2.1_bbvjflvjoibwhtpmedigb26h6y transitivePeerDependencies: - '@types/react' + /react-window/1.8.7_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-JHEZbPXBpKMmoNO1bNhoXOOLg/ujhL/BU4IqVU9r8eQPcy5KQnGHIHDRkJ0ns9IM5+Aq5LNwt3j8t3tIrePQzA==} + engines: {node: '>8.0.0'} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.19.0 + memoize-one: 5.2.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + /react/18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -4017,33 +4113,32 @@ packages: glob: 7.2.3 dev: true - /rollup-plugin-visualizer/5.8.1_rollup@2.79.0: - resolution: {integrity: sha512-NBT/xN/LWCwDM2/j5vYmjzpEAKHyclo/8Cv8AfTCwgADAG+tLJDy1vzxMw6NO0dSDjmTeRELD9UU3FwknLv0GQ==} + /rollup-plugin-visualizer/5.8.3_rollup@2.79.0: + resolution: {integrity: sha512-QGJk4Bqe4AOat5AjipOh8esZH1nck5X2KFpf4VytUdSUuuuSwvIQZjMGgjcxe/zXexltqaXp5Vx1V3LmnQH15Q==} engines: {node: '>=14'} hasBin: true peerDependencies: - rollup: ^2.0.0 + rollup: 2.x || 3.x peerDependenciesMeta: rollup: optional: true dependencies: - nanoid: 3.3.4 open: 8.4.0 rollup: 2.79.0 source-map: 0.7.4 yargs: 17.5.1 dev: true - /rollup/2.78.1: - resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} + /rollup/2.79.0: + resolution: {integrity: sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true - /rollup/2.79.0: - resolution: {integrity: sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==} + /rollup/2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -4300,8 +4395,8 @@ packages: inline-style-parser: 0.1.1 dev: true - /stylis/4.0.13: - resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} + /stylis/4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -4391,7 +4486,7 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-node/10.9.1_bidgzm5cq2du6gnjtweqqjrrn4: + /ts-node/10.9.1_evej5wzm4hojmu6uzxwpspdmsu: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -4410,14 +4505,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.7.18 + '@types/node': 18.11.7 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.8.3 + typescript: 4.8.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -4438,14 +4533,14 @@ packages: /tslib/2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - /tsutils/3.21.0_typescript@4.8.3: + /tsutils/3.21.0_typescript@4.8.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.8.3 + typescript: 4.8.4 dev: true /type-check/0.4.0: @@ -4480,8 +4575,8 @@ packages: engines: {node: '>=8'} dev: true - /typescript/4.8.3: - resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} + /typescript/4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -4576,7 +4671,7 @@ packages: dependencies: react: 18.2.0 - /use-isomorphic-layout-effect/1.1.2_w5j4k42lgipnm43s3brx6h3c34: + /use-isomorphic-layout-effect/1.1.2_bbvjflvjoibwhtpmedigb26h6y: resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -4585,10 +4680,10 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.20 + '@types/react': 18.0.24 react: 18.2.0 - /use-latest/1.2.1_w5j4k42lgipnm43s3brx6h3c34: + /use-latest/1.2.1_bbvjflvjoibwhtpmedigb26h6y: resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -4597,9 +4692,9 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.20 + '@types/react': 18.0.24 react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2_w5j4k42lgipnm43s3brx6h3c34 + use-isomorphic-layout-effect: 1.1.2_bbvjflvjoibwhtpmedigb26h6y /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -4643,14 +4738,15 @@ packages: vfile-message: 3.1.2 dev: true - /vite/3.1.3: - resolution: {integrity: sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==} + /vite/3.2.1: + resolution: {integrity: sha512-ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: less: '*' sass: '*' stylus: '*' + sugarss: '*' terser: ^5.4.0 peerDependenciesMeta: less: @@ -4659,13 +4755,15 @@ packages: optional: true stylus: optional: true + sugarss: + optional: true terser: optional: true dependencies: - esbuild: 0.15.8 - postcss: 8.4.16 + esbuild: 0.15.12 + postcss: 8.4.18 resolve: 1.22.1 - rollup: 2.78.1 + rollup: 2.79.1 optionalDependencies: fsevents: 2.3.2 dev: true diff --git a/src/DataGrid.styles.ts b/src/DataGrid.styles.ts index 7fa31d5..da5a8a6 100644 --- a/src/DataGrid.styles.ts +++ b/src/DataGrid.styles.ts @@ -29,6 +29,8 @@ export default createStyles( table: { borderCollapse: 'separate', borderSpacing: 0, + borderLeft: 'none', + borderRight: 'none', }, thead: { position: 'relative', diff --git a/src/DataGrid.tsx b/src/DataGrid.tsx index 26eb233..d3df679 100644 --- a/src/DataGrid.tsx +++ b/src/DataGrid.tsx @@ -17,14 +17,20 @@ import { } from '@tanstack/react-table'; import { RefCallback, useCallback, useEffect, useImperativeHandle, useState } from 'react'; import { BoxOff } from 'tabler-icons-react'; - -import useStyles from './DataGrid.styles'; - import { ColumnFilter } from './ColumnFilter'; import { ColumnSorter } from './ColumnSorter'; +import useStyles from './DataGrid.styles'; import { GlobalFilter, globalFilterFn } from './GlobalFilter'; -import { DEFAULT_INITIAL_SIZE, Pagination } from './Pagination'; +import { DEFAULT_INITIAL_SIZE, Pagination as DefaultPagination } from './Pagination'; import { getRowSelectionColumn } from './RowSelection'; +import { + DefaultBodyCell, + DefaultBodyRow, + DefaultBodyWrapper, + DefaultHeaderCell, + DefaultHeaderRow, + DefaultHeaderWrapper, +} from './TableComponents'; import { DataGridProps } from './types'; export function useDataGrid(): [Table | null, RefCallback>] { @@ -45,6 +51,8 @@ export function DataGrid({ withFixedHeader, noEllipsis, striped, + withBorder, + withColumnBorders, highlightOnHover, horizontalSpacing, verticalSpacing = 'xs', @@ -78,8 +86,17 @@ export function DataGrid({ iconColor, empty, locale, + // component overrides + components: { headerWrapper, headerRow, headerCell, bodyWrapper, bodyRow, bodyCell, pagination } = {}, ...others }: DataGridProps) { + const HeaderWrapper = headerWrapper ?? DefaultHeaderWrapper; + const HeaderRow = headerRow ?? DefaultHeaderRow; + const HeaderCell = headerCell ?? DefaultHeaderCell; + const BodyWrapper = bodyWrapper ?? DefaultBodyWrapper; + const BodyRow = bodyRow ?? DefaultBodyRow; + const BodyCell = bodyCell ?? DefaultBodyCell; + const Pagination = pagination ?? DefaultPagination; const { classes, theme, cx } = useStyles( { height, @@ -228,7 +245,18 @@ export function DataGrid({ return ( {withGlobalFilter && } - + { + const border = `1px solid ${theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]}`; + return { + viewport: { + borderLeft: withBorder ? border : '', + borderRight: withBorder ? border : '', + }, + }; + }} + > ({ style={{ width: tableWidth, }} + withBorder={withBorder} + withColumnBorders={withColumnBorders} > - + {table.getHeaderGroups().map((group) => ( - + {group.headers.map((header) => ( - ({ )} )} - + ))} - + ))} - - + + {table.getRowModel().rows.length > 0 ? ( table.getRowModel().rows.map((row) => { const rowProps = onRow ? onRow(row) : {}; return ( - + {row.getVisibleCells().map((cell) => { const cellProps = onCell ? onCell(cell) : {}; return ( - ({ {flexRender(cell.column.columnDef.cell, cell.getContext())} - + ); })} - + ); }) ) : ( @@ -325,7 +366,7 @@ export function DataGrid({ )} - + diff --git a/src/GlobalFilter.tsx b/src/GlobalFilter.tsx index 246a8d3..f907c00 100644 --- a/src/GlobalFilter.tsx +++ b/src/GlobalFilter.tsx @@ -37,6 +37,7 @@ export function GlobalFilter({ table, className, locale }: GlobalFilterPr ); } +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const globalFilterFn: FilterFn = (row, columnId: string, filterValue: string) => { const value = row.getValue(columnId); if (!value) return false; diff --git a/src/Pagination.tsx b/src/Pagination.tsx index 91623c7..7b2b135 100644 --- a/src/Pagination.tsx +++ b/src/Pagination.tsx @@ -6,7 +6,7 @@ export const DEFAULT_PAGE_SIZES = ['10', '25', '50', '100']; export const DEFAULT_INITIAL_PAGE = 0; export const DEFAULT_INITIAL_SIZE = 10; -type PaginationProps = { +export type PaginationProps = { table: Table; classes: string[]; pageSizes?: string[]; diff --git a/src/TableComponents.tsx b/src/TableComponents.tsx new file mode 100644 index 0000000..bea7358 --- /dev/null +++ b/src/TableComponents.tsx @@ -0,0 +1,64 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import { Cell, Header, HeaderGroup, Row, Table } from '@tanstack/react-table'; +import { ComponentType, CSSProperties, PropsWithChildren } from 'react'; + +export type DataGridHeaderWrapperProps = PropsWithChildren<{ + table: Table; + className: string; + role: 'rowgroup'; +}>; + +export type DataGridHeaderRowProps = PropsWithChildren<{ + table: Table; + headerGroup: HeaderGroup; + className: string; + role: 'row'; +}>; + +export type DataGridHeaderCellProps = PropsWithChildren<{ + table: Table; + header: Header; + className: string; + style: CSSProperties; + colSpan: number; + role: 'columnheader'; +}>; + +export type DataGridBodyWrapperProps = PropsWithChildren<{ + table: Table; + className: string; + role: 'rowgroup'; +}>; + +export type DataGridBodyRowProps = PropsWithChildren<{ + table: Table; + row: Row; + className: string; + role: 'row'; +}>; + +export type DataGridBodyCellProps = PropsWithChildren<{ + table: Table; + cell: Cell; + className: string; + style: CSSProperties; + role: 'cell'; +}>; + +export const DefaultHeaderWrapper: ComponentType> = ({ table, ...rest }) => ( + +); +export const DefaultHeaderRow: ComponentType> = ({ table, headerGroup, ...rest }) => ( + +); +export const DefaultHeaderCell: ComponentType> = ({ table, header, ...rest }) => ( + +); +export const DefaultBodyWrapper: ComponentType> = ({ table, ...rest }) => ( + +); +export const DefaultBodyRow: ComponentType> = ({ table, row, ...rest }) => ; +export const DefaultBodyCell: ComponentType> = ({ table, cell, ...rest }) => ( + +); diff --git a/src/index.ts b/src/index.ts index 14cdd2b..dc2f8cb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,14 +1,13 @@ +export { ExternalColumnFilter } from './ColumnFilter'; +export type { ExternalColumnFilterProps } from './ColumnFilter'; export { DataGrid, useDataGrid } from './DataGrid'; export * from './filters'; export type { - DataGridFilterFn, - DataGridFilterProps, - DataGridFiltersState, - DataGridPaginationState, - DataGridSortingState, - OnChangeCallback, - DataGridProps, -} from './types'; - -export { ExternalColumnFilter } from './ColumnFilter'; -export type { ExternalColumnFilterProps } from './ColumnFilter'; + DataGridBodyCellProps, + DataGridBodyRowProps, + DataGridBodyWrapperProps, + DataGridHeaderCellProps, + DataGridHeaderRowProps, + DataGridHeaderWrapperProps, +} from './TableComponents'; +export * from './types'; diff --git a/src/types.ts b/src/types.ts index 428a113..28e6166 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,9 +1,9 @@ -import { ComponentPropsWithoutRef, ComponentType, HTMLAttributes, ReactElement, ReactNode, Ref } from 'react'; import { DefaultProps, MantineColor, MantineNumberSize, Selectors } from '@mantine/core'; import { Cell, ColumnDef, ColumnFiltersState, + ColumnOrderState, FilterFn, InitialTableState, PaginationState, @@ -14,7 +14,17 @@ import { Table, TableState, } from '@tanstack/react-table'; +import { ComponentPropsWithoutRef, ComponentType, HTMLAttributes, ReactElement, ReactNode, Ref } from 'react'; import useStyles from './DataGrid.styles'; +import { PaginationProps } from './Pagination'; +import { + DataGridBodyCellProps, + DataGridBodyRowProps, + DataGridBodyWrapperProps, + DataGridHeaderCellProps, + DataGridHeaderRowProps, + DataGridHeaderWrapperProps, +} from './TableComponents'; export type DataGridStylesNames = Selectors; @@ -23,6 +33,7 @@ export type OnChangeCallback = (arg0: T) => void; export type DataGridSortingState = SortingState; export type DataGridPaginationState = PaginationState; export type DataGridFiltersState = ColumnFiltersState; +export type DataGridColumnOrderState = ColumnOrderState; export type DataGridLocale = { pagination?: (firstRowNum: number, lastRowNum: number, maxRows: number) => ReactNode; pageSize?: ReactNode; @@ -57,6 +68,10 @@ export interface DataGridProps debug?: boolean; /** If true every odd row of table will have gray background color */ striped?: boolean; + /** If true table has a border */ + withBorder?: boolean; + /** If true columns have a border */ + withColumnBorders?: boolean; /** If true row will have hover color */ highlightOnHover?: boolean; /** Horizontal cells spacing from theme.spacing or number to set value in px */ @@ -160,6 +175,11 @@ export interface DataGridProps * The i18n text including pagination text, pageSize text, globalSearch placeholder, etc */ locale?: DataGridLocale; + + /** + * Component overrides + */ + components?: Partial>; } export type DataGridFilterFn = FilterFn & { @@ -175,3 +195,14 @@ export type DataGridFilterProps = { filter: T; onFilterChange(value: T): void; }; + +// component types +export type DataGridComponents = { + headerWrapper: ComponentType>; + headerRow: ComponentType>; + headerCell: ComponentType>; + bodyWrapper: ComponentType>; + bodyRow: ComponentType>; + bodyCell: ComponentType>; + pagination: ComponentType>; +}; From 46b345e7e3a22b39df9091a0779a6d93e359b45d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20K=C3=BCchlin?= Date: Fri, 28 Oct 2022 17:53:37 +0200 Subject: [PATCH 4/4] v0.0.21 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 45be188..a3d0366 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mantine-data-grid", - "version": "0.0.20", + "version": "0.0.21", "homepage": "https://kuechlin.github.io/mantine-data-grid/", "repository": { "type": "git",