-
-
-
-
-
+
-
+
diff --git a/components/league/dndContainer.tsx b/components/league/dndContainer.tsx
index e4d2a9e..2dfc084 100644
--- a/components/league/dndContainer.tsx
+++ b/components/league/dndContainer.tsx
@@ -1,8 +1,7 @@
import { useDroppable } from "@dnd-kit/core";
import { rectSortingStrategy, SortableContext } from "@dnd-kit/sortable";
import SortableItem from "./dndSortableItem";
-import {Card, Stack, Typography} from "@mui/material";
-import PlaceHolder from "@/components/league/dndPlaceHolder";
+import {Box, Card, Stack} from "@mui/material";
const SortableContainer = ({
id,
@@ -17,15 +16,14 @@ const SortableContainer = ({
id,
});
return (
-
-
{label}
+
+ {/*{label}*/}
-
+
-
{items.map((id: string) => (
))}
@@ -33,7 +31,7 @@ const SortableContainer = ({
-
+
);
};
diff --git a/components/league/dndItem.tsx b/components/league/dndItem.tsx
index 93c6cf7..deddc0a 100644
--- a/components/league/dndItem.tsx
+++ b/components/league/dndItem.tsx
@@ -1,23 +1,84 @@
import { UniqueIdentifier } from "@dnd-kit/core";
import {Card, Stack, Typography} from "@mui/material";
+import { useEffect, useState } from 'react';
+import {classFactory} from "@/src/models/ClassModel";
+import {Team, teamFactory} from "@/src/models/TeamModel";
+
+export type ItemProps = {
+ id: UniqueIdentifier
+ team?: Team
+}
+
+export default function Item(props: ItemProps) {
+ const {id} = props;
+ const emptyTeam: Team = {
+ id: 0,
+ name: '',
+ description: '',
+ classId: 0,
+ teamTagId: 0,
+ userIds: [],
+ enteredGameIds: [],
+ createdAt: '',
+ updatedAt: '',
+ };
+
+ const [team, setTeam] = useState(emptyTeam);
+ const [className, setClassName] = useState('');
+ const [experience, setExperience] = useState(0);
+
+ useEffect(() => {
+ try {
+ const descriptionData = JSON.parse(team.description);
+ if (descriptionData.value) {
+ setExperience(descriptionData.value);
+ } else {
+ setExperience(0);
+ }
+ } catch (error) {
+ setExperience(0);
+ }
+ }, [team]);
+
+ useEffect(() => {
+ const fetchTeam = async () => {
+ const fetchedTeam = await teamFactory().show(Number(id));
+ setTeam(fetchedTeam);
+ };
+
+ void fetchTeam();
+ }, [id]);
+
+ useEffect(() => {
+ const fetchClassName = async () => {
+ const fetchedClass = await classFactory().show(team.classId);
+ setClassName(fetchedClass.name);
+ };
+
+ if (team.classId) {
+ void fetchClassName();
+ }
+ }, [team]);
+
+ if (!team) {
+ return null;
+ }
-const Item = ({ id }: { id: UniqueIdentifier }) => {
return (
-
-
- チーム{id}
+
+
+ {team.id} : {team.name}
-
-
- クラス
- M1
+
+
+ クラス
+ {className}
- 経験者
- 1
+ 経験者
+ {experience}
-
+
);
-};
-export default Item;
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/components/league/dndSortableItem.tsx b/components/league/dndSortableItem.tsx
index 731fb55..575fd0b 100644
--- a/components/league/dndSortableItem.tsx
+++ b/components/league/dndSortableItem.tsx
@@ -1,7 +1,6 @@
import { useSortable } from "@dnd-kit/sortable";
import { UniqueIdentifier } from "@dnd-kit/core";
import Item from "./dndItem";
-import {Card} from "@mui/material";
const SortableItem = ({ id }: { id: UniqueIdentifier }) => {
const { attributes, listeners, setNodeRef, transform, transition } =
@@ -13,9 +12,7 @@ const SortableItem = ({ id }: { id: UniqueIdentifier }) => {
{...attributes}
{...listeners}
>
-
-
);
};
diff --git a/components/league/leagueDnd.tsx b/components/league/leagueDnd.tsx
index 94f84ba..123a77d 100644
--- a/components/league/leagueDnd.tsx
+++ b/components/league/leagueDnd.tsx
@@ -1,10 +1,18 @@
'use client'
-import {Stack} from "@mui/material";
-import React, {useState} from 'react';
+import {
+ Button,
+ Dialog,
+ DialogTitle,
+ DialogContent,
+ DialogActions,
+ Stack,
+ Alert, Snackbar, Typography, Tooltip,
+ TextField
+} from "@mui/material";
+import {HiCheck, HiPlus, HiTrash, HiXMark} from "react-icons/hi2";
import {
DndContext,
DragOverlay,
- closestCorners,
KeyboardSensor,
PointerSensor,
useSensor,
@@ -12,23 +20,300 @@ import {
UniqueIdentifier,
DragStartEvent,
DragOverEvent,
- DragEndEvent,
+ DragEndEvent, rectIntersection,
} from "@dnd-kit/core";
import {arrayMove, sortableKeyboardCoordinates} from "@dnd-kit/sortable";
import SortableContainer from "./dndContainer";
import Item from "./dndItem";
-const LeagueDnd: React.FC = () => {
+import React, {useState, useEffect} from 'react';
+import {gameFactory} from "@/src/models/GameModel";
+import {teamFactory} from "@/src/models/TeamModel";
+import {teamTagFactory} from "@/src/models/TeamTagModel";
+import {Sport} from "@/src/models/SportModel";
+
+export type LeagueDndProps = {
+ sportId: number
+ sport: Sport
+}
+
+export default function LeagueDnd(props: LeagueDndProps) {
+ const {sportId} = props;
+
// ドラッグ&ドロップでソート可能なリスト
- const [items, setItems] = useState<{
- [key: string]: string[];
- }>({
- チーム一覧: ["A", "B", "C"],
- Aリーグ: ["D", "E", "F"],
- Bリーグ: ["G", "H", "I"],
- Cリーグ: ["J", "K", "L"],
+ const [items, setItems] = useState<{ [key: string]: string[]; }>({
+ All: [],
});
+ useEffect(() => {
+ const fetchGames = async () => {
+ const games = await gameFactory().index();
+ const sportGames = games.filter(game => game.sportId === sportId);
+
+ // 各ゲームに対応するチームを取得する関数
+ const fetchTeamsForGame = async (gameId: number) => {
+ const teams = await teamFactory().index();
+ return teams.filter(team => team.enteredGameIds.includes(gameId));
+ };
+
+ // 各ゲームに対応するチームの配列を作成
+ const gameItems: Record = {};
+ // 初期化
+ gameItems['All'] = [];
+
+ for (const game of sportGames) {
+ const teams = await fetchTeamsForGame(game.id);
+ gameItems[game.name] = teams.map(team => team.id.toString());
+ }
+
+ // すべてのチームを取得
+ const allTeams = await teamFactory().index();
+ // 全てのチームタグを取得
+ const allTeamTags = await teamTagFactory().index();
+ // propsのsportId と TeamTagのsportIdが一致するものを検索
+ const sportTeamTag = allTeamTags.find(teamTag => teamTag.sportId === sportId);
+ // sportTeamTagに属するチームを抽出
+ // sportTeamTagがundefinedの場合、全てのチームを対象とする
+ const sportTeams = allTeams.filter(team => sportTeamTag ? team.teamTagId === sportTeamTag.id : true);
+
+ // どのゲームにも参加していないチームを抽出
+ const noGameTeams = sportTeams.filter(team => !team.enteredGameIds.some(id => games.map(game => game.id).includes(id)));
+
+ // All配列にどのゲームにも参加していないチームを追加
+ gameItems['All'] = noGameTeams.map(team => team.id.toString());
+
+ setItems(gameItems);
+ };
+ void fetchGames();
+ }, [sportId]);
+
+ const removeList = async (key: string) => {
+ const games = await gameFactory().index();
+
+ // Find the game to delete
+ const gameToDelete = games.find(game => game.name === key);
+
+ if (gameToDelete) {
+ // Delete the game
+ await gameFactory().delete(gameToDelete.id);
+
+ setItems(prevItems => {
+ const newItems = {...prevItems};
+
+ // Move the teams from the deleted game to the 'All' list
+ if (newItems[key].length > 0) {
+ newItems['All'] = [...newItems['All'], ...newItems[key]];
+ }
+
+ // Delete the game from the list
+ delete newItems[key];
+
+ // Create a new object and copy all lists except the deleted one
+ const reorderedItems = Object.keys(newItems).sort().reduce<{ [key: string]: string[]; }>((obj, listKey) => {
+ obj[listKey] = newItems[listKey];
+ return obj;
+ }, {});
+
+ return reorderedItems;
+ });
+
+ setDelSnackOpen(true);
+ } else {
+ console.error(`Game with name ${key} not found.`);
+ }
+ };
+
+ const updateGames = async () => {
+ // Fetch games and teams from the server
+ const games = await gameFactory().index();
+ const teams = await teamFactory().index();
+
+ // Compare the current state with the server state and update if necessary
+ for (const [key, value] of Object.entries(items)) {
+ if (key !== 'All') {
+ const game = games.find(game => game.name === key && game.sportId === props.sport.id);
+
+ // Check if the game is not undefined
+ if (!game) {
+ console.error(`Game with name ${key} not found.`);
+ continue;
+ }
+
+ const serverTeams = teams.filter(team => team.enteredGameIds.includes(game.id));
+
+ // Check if the teams in the server match with the current state
+ const isSame = value.length === serverTeams.length && value.every((teamId, index) => serverTeams[index]?.id.toString() === teamId);
+
+ // If not, update the game with the current state
+ if (!isSame) {
+ await gameFactory().update(game.id, {
+ name: key,
+ sportId: props.sport.id,
+ description: props.sport.name,
+ type: "league",
+ calculationType: "total_score",
+ weight: 0,
+ tagId: null
+ });
+
+ // Find teams that are no longer in the array and remove them
+ const teamsToRemove = serverTeams.filter(serverTeam => !value.includes(serverTeam.id.toString()));
+ for (const team of teamsToRemove) {
+ try {
+ await gameFactory().removeGameEntry(game.id, team.id);
+ } catch (error) {
+ console.error(`Failed to remove team with id ${team.id} from game with id ${game.id}. Error: ${error}`);
+ }
+ }
+
+ // Add new teams to the game
+ for (const teamId of value) {
+ // Check if the team is not in the list of teams to remove
+ if (!teamsToRemove.some(team => team.id.toString() === teamId)) {
+ await gameFactory().addGameEntries(game.id, [parseInt(teamId)]);
+ }
+ }
+
+ setMoveSnackMessage(`変更が保存されました。`)
+ setMoveSnackOpen(true)
+ }
+ }
+ }
+ };
+
+ // state
+ const [openDialog, setOpenDialog] = useState(false);
+ const [listToRemove, setListToRemove] = useState("");
+ const [delSnackOpen, setDelSnackOpen] = useState(false)
+ const [moveSnackOpen, setMoveSnackOpen] = useState(false)
+ const [moveSnackMessage, setMoveSnackMessage] = useState("")
+ const [openRenameDialog, setOpenRenameDialog] = useState(false);
+ const [gameToRename, setGameToRename] = useState("");
+ const [newGameName, setNewGameName] = useState("");
+ const [openNewGameDialog, setOpenNewGameDialog] = useState(false);
+ const [addGameName, setAddGameName] = useState("");
+ const [newErrorMessage, setNewErrorMessage] = useState("");
+ const [editErrorMessage, setEditErrorMessage] = useState("");
+
+// Open the dialog
+ const handleOpenNewGameDialog = () => {
+ setOpenNewGameDialog(true);
+ };
+
+// Close the dialog
+ const handleCloseNewGameDialog = () => {
+ setOpenNewGameDialog(false);
+ };
+
+// Create a new game and close the dialog
+ const handleCreateNewGame = async () => {
+ // Fetch all games
+ const games = await gameFactory().index();
+
+ // Check if the new game name already exists
+ if (games.some(game => game.name === addGameName && game.sportId === props.sport.id)) {
+ setNewErrorMessage("この名前は既に存在します。");
+ return;
+ }
+
+ // Create the new game
+ const newGame = await gameFactory().create({
+ name: addGameName,
+ sportId: props.sport.id,
+ description: props.sport.name,
+ type: "league",
+ calculationType: "total_score",
+ weight: 0,
+ tagId: null
+ });
+
+ // Add the new game to the items
+ setItems(prevItems => ({
+ ...prevItems,
+ [addGameName]: [],
+ }));
+
+ // Reset the new game name and close the dialog
+ setAddGameName("");
+ setOpenNewGameDialog(false);
+ setNewErrorMessage(""); // Reset the error message
+ };
+
+// Open the dialog
+ const handleOpenRenameDialog = (key: string) => {
+ setGameToRename(key);
+ setNewGameName(key); // Set the new game name to the current game name
+ setOpenRenameDialog(true);
+ };
+
+// Close the dialog
+ const handleCloseRenameDialog = () => {
+ setOpenRenameDialog(false);
+ };
+
+// Rename the game and close the dialog
+ const handleRenameGame = async () => {
+ // Fetch the game to update
+ const games = await gameFactory().index();
+ const gameToUpdate = games.find(game => game.name === gameToRename && game.sportId === props.sport.id);
+
+ if (games.some(game => game.name === newGameName && game.sportId === props.sport.id)) {
+ setEditErrorMessage("この名前は既に存在します。");
+ return;
+ }
+ if (gameToUpdate) {
+ // Update the game name
+ await gameFactory().update(gameToUpdate.id,
+ {
+ name: newGameName,
+ description: gameToUpdate.description,
+ sportId: gameToUpdate.sportId,
+ type: gameToUpdate.type,
+ calculationType: gameToUpdate.calculationType,
+ weight: gameToUpdate.weight,
+ tagId: gameToUpdate.tagId
+ }
+ );
+ } else {
+ console.error(`Game with name ${gameToRename} not found.`);
+ }
+
+ setItems(prevItems => {
+ const newItems = {...prevItems};
+ newItems[newGameName] = newItems[gameToRename];
+ delete newItems[gameToRename];
+ return newItems;
+ });
+
+ setOpenRenameDialog(false);
+ setEditErrorMessage(""); // Reset the error message
+ };
+
+ const handleDelSnackClose = () => {
+ setDelSnackOpen(false)
+ }
+
+ const handleMoveSnackClose = () => {
+ setMoveSnackOpen(false)
+ }
+
+ // Open the dialog
+ const handleOpenDialog = (key: string) => {
+ setListToRemove(key);
+ setOpenDialog(true);
+ };
+
+ // Close the dialog
+ const handleCloseDialog = () => {
+ setOpenDialog(false);
+ };
+
+ // Remove the list and close the dialog
+ const handleRemoveList = () => {
+ removeList(listToRemove);
+ setOpenDialog(false);
+ };
+
//リストのリソースid(リストの値)
const [activeId, setActiveId] = useState();
@@ -45,9 +330,12 @@ const LeagueDnd: React.FC = () => {
if (id in items) {
return id;
}
- return Object.keys(items).find((key: string) =>
+
+ const container = Object.keys(items).find((key: string) =>
items[key].includes(id.toString())
);
+
+ return container
};
// ドラッグ開始時に発火する関数
@@ -72,6 +360,7 @@ const LeagueDnd: React.FC = () => {
// container1,container2,container3,container4のいずれかを持つ
const activeContainer = findContainer(id);
const overContainer = findContainer(over?.id);
+ // console.log("Over1", id, over?.id.toString())
if (
!activeContainer ||
@@ -90,6 +379,7 @@ const LeagueDnd: React.FC = () => {
// 配列のインデックス取得
const activeIndex = activeItems.indexOf(id);
const overIndex = overItems.indexOf(overId.toString());
+ // console.log ("Over2", id, overId.toString())
let newIndex;
if (overId in prev) {
@@ -118,7 +408,9 @@ const LeagueDnd: React.FC = () => {
};
// ドラッグ終了時に発火する関数
- const handleDragEnd = (event: DragEndEvent) => {
+ const handleDragEnd = async (event: DragEndEvent) => {
+ await updateGames();
+
const {active, over} = event;
//ドラッグしたリソースのid
const id = active.id.toString();
@@ -154,46 +446,204 @@ const LeagueDnd: React.FC = () => {
),
}));
}
+
setActiveId(undefined);
};
-
return (
<>
- {/* SortableContainer */}
-
-
-
-
+ {Object.keys(items).map((key) => (
+
+ {key == 'All' &&
+ <>
+ 未登録チーム
+
+
+ >
+ }
+ {key !== 'All' &&
+ <>
+
+ {key}
+
+
+
+
+
+
+ >
+ }
+
+ ))}
+ {/* Dialog */}
+
+ {/* "New Game" Dialog */}
+
+ {/* Rename Dialog */}
+
+ {/* League Remove Snackbar */}
+
+
+ {listToRemove}が削除されました。
+
+
+ {/* League Move Snackbar */}
+
+
+ {moveSnackMessage}
+
+
{/* DragOverlay */}
{activeId ? - : null}
>
);
-};
-
-export default LeagueDnd;
+};
\ No newline at end of file
diff --git a/components/league/leagueSportsList.tsx b/components/league/leagueSportsList.tsx
new file mode 100644
index 0000000..0e180f7
--- /dev/null
+++ b/components/league/leagueSportsList.tsx
@@ -0,0 +1,23 @@
+import {ButtonLarge} from "@/components/layout/buttonLarge";
+import {Sport} from "@/src/models/SportModel";
+
+export type SportsListProps = {
+ sports: Sport[]
+}
+
+export default function LeagueSportsList(props: SportsListProps) {
+ props.sports.sort((a, b) => b.weight - a.weight);
+ return (
+ <>
+ {props.sports.map((sport) => (
+
+ {sport.name}
+
+ ))}
+ >
+ )
+}
\ No newline at end of file
diff --git a/components/sports/leagueList.tsx b/components/sports/leagueList.tsx
new file mode 100644
index 0000000..bb27b74
--- /dev/null
+++ b/components/sports/leagueList.tsx
@@ -0,0 +1,24 @@
+import {ButtonLarge} from "@/components/layout/buttonLarge";
+import {Game} from "@/src/models/GameModel";
+
+export type LeagueListProps = {
+ games: Game[]
+}
+
+export default function LeagueList(props: LeagueListProps) {
+
+
+ return (
+ <>
+ {props.games.map((game) => (
+
+ {game.name}
+
+ ))}
+ >
+ )
+}
\ No newline at end of file
diff --git a/components/sports/sportCreator.tsx b/components/sports/sportCreator.tsx
new file mode 100644
index 0000000..7042bf1
--- /dev/null
+++ b/components/sports/sportCreator.tsx
@@ -0,0 +1,145 @@
+'use client'
+import {
+ Avatar,
+ Button,
+ Card, FormControl,
+ Grid,
+ InputLabel,
+ MenuItem, MenuListProps,
+ Select,
+ Stack,
+ TextField,
+ TextFieldProps,
+ Typography
+} from "@mui/material";
+import {useRouter} from "next/navigation";
+import React, {useRef} from "react";
+import {sportFactory} from "@/src/models/SportModel";
+import {HiCheck} from "react-icons/hi2";
+import {Image, imageFactory} from "@/src/models/ImageModel";
+import {Tag, tagFactory} from "@/src/models/TagModel";
+import {useAsync} from "react-use";
+
+export default function SportCreator() {
+ const router = useRouter()
+ const [tagId, setTagId] = React.useState(null)
+ const [tags, setTags] = React.useState([])
+ const [iconId, setIconId] = React.useState(null)
+ const [images, setImages] = React.useState([])
+ const nameRef = useRef(null)
+ const descriptionRef = useRef(null)
+ const tagIdRef = useRef(null)
+
+ useAsync(async () => {
+ const fetchImages = await imageFactory().index()
+ setImages(fetchImages)
+
+ const fetchTags = await tagFactory().index()
+ setTags(fetchTags)
+ })
+
+ const handleCreate = async () => {
+
+ await sportFactory().create({
+ name: nameRef.current?.value as string,
+ description: descriptionRef.current?.value as string,
+ iconId: iconId,
+ weight: 0,
+ ruleId: 0,
+ tagId: tagId
+ })
+
+ router.push('/sports')
+ }
+
+ return (
+ <>
+
+
+
+ 競技の情報
+
+
+
+
+
+
+ アイコン
+
+
+
+
+ タグ
+
+
+
+
+ }
+ onClick={handleCreate}
+ >
+ 保存
+
+
+
+
+
+
+ >
+ )
+}
\ No newline at end of file
diff --git a/components/sports/sportEditor.tsx b/components/sports/sportEditor.tsx
new file mode 100644
index 0000000..1386b7e
--- /dev/null
+++ b/components/sports/sportEditor.tsx
@@ -0,0 +1,175 @@
+'use client'
+import React, {useRef} from "react";
+import {useAsync} from "react-use";
+import {useRouter} from "next/navigation";
+import {Sport, sportFactory} from "@/src/models/SportModel";
+import {Image, imageFactory} from "@/src/models/ImageModel";
+import {Tag, tagFactory} from "@/src/models/TagModel";
+import {
+ Alert,
+ Avatar,
+ Button,
+ Card, FormControl,
+ InputLabel,
+ MenuItem,
+ Select,
+ Snackbar,
+ Stack,
+ TextField,
+ TextFieldProps,
+ Typography
+} from "@mui/material";
+import {HiCheck, HiTrash} from "react-icons/hi2";
+
+export type SportEditorProps = {
+ sport: Sport
+}
+
+export default function SportEditor(props: SportEditorProps) {
+ const router = useRouter()
+ const [snackOpen, setSnackOpen] = React.useState(false)
+
+ const [tagId, setTagId] = React.useState(props.sport.tagId)
+ const [tags, setTags] = React.useState([])
+ const [iconId, setIconId] = React.useState(props.sport.iconId)
+ const [images, setImages] = React.useState([])
+ const nameRef = useRef(null)
+ const descriptionRef = useRef(null)
+
+ useAsync(async () => {
+ const fetchImages = await imageFactory().index()
+ setImages(fetchImages)
+
+ const fetchTags = await tagFactory().index()
+ setTags(fetchTags)
+ })
+
+ const handleCreate = async () => {
+
+ await sportFactory().update(props.sport.id,{
+ name: nameRef.current?.value as string,
+ description: descriptionRef.current?.value as string,
+ iconId: iconId,
+ weight: 0,
+ ruleId: 0,
+ tagId: tagId
+ })
+
+ router.refresh()
+ setSnackOpen(true)
+ }
+
+ const handleSnackClose = () => {
+ setSnackOpen(false)
+ }
+
+ return (
+ <>
+
+
+ 競技の情報
+
+
+
+
+
+
+ アイコン
+
+
+
+
+ タグ
+
+
+
+
+
+ }
+ onClick={handleCreate}
+ >
+ 保存
+
+
+
+
+
+
+
+ 変更が保存されました
+
+
+ >
+ )
+}
\ No newline at end of file
diff --git a/components/sports/sportInfoField.tsx b/components/sports/sportInfoField.tsx
deleted file mode 100644
index eded964..0000000
--- a/components/sports/sportInfoField.tsx
+++ /dev/null
@@ -1,213 +0,0 @@
-'use client'
-import {
- TextField,
- ToggleButtonGroup,
- ToggleButton,
- Stack, Grid,
- Card, Typography,
- FormControl,
- InputLabel,
- Select,
- MenuItem,
- SelectChangeEvent,
- Box,
- OutlinedInput,
- Chip,
- useTheme,
- IconButton,
- Tooltip,
- Theme, Avatar, Button
-} from "@mui/material";
-import React, {ReactNode} from "react";
-import { HiTrash, HiCheck, HiEllipsisHorizontal } from "react-icons/hi2"
-
-type SportInfoFieldProps = {
- img?: string;
- children?: ReactNode;
-}
-
-//タグ
-const ITEM_HEIGHT = 48;
-const ITEM_PADDING_TOP = 8;
-const MenuProps = {
- PaperProps: {
- style: {
- maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,
- width: 250,
- },
- },
-};
-
-const tags = [
- 'タグ1',
- 'タグ2',
-];
-
-function getStyles(name: string, tagName: readonly string[], theme: Theme) {
- return {
- fontWeight:
- tagName.indexOf(name) === -1
- ? theme.typography.fontWeightRegular
- : theme.typography.fontWeightMedium,
- };
-}
-
-
-export const SportInfoField: React.FC = ({img, children})=> {
- //天候
- const [weather, setWeather] = React.useState('web');
- const handleWeatherChange = (
- event: React.MouseEvent,
- newWeather: string,
- ) => {
- setWeather(newWeather);
- };
-
- //試合形式
- const [sporttype, setSportType] = React.useState('web');
- const handleSportTypeChange = (
- event: React.MouseEvent,
- newSportType: string,
- ) => {
- setSportType(newSportType);
- };
-
- //ルール
- const [rule, setRule] = React.useState('');
- const handleRuleChange = (event: SelectChangeEvent) => {
- setRule(event.target.value as string);
- };
-
- //タグ
- const theme = useTheme();
- const [tagName, setTag] = React.useState([]);
- const handleTagChange = (event: SelectChangeEvent) => {
- const {
- target: { value },
- } = event;
- setTag(
- typeof value === 'string' ? value.split(',') : value,
- );
- };
-
- return(
-
-
-
- 競技の情報
-
-
-
-
-
-
-
-
-
-
-
- 晴天時
- 雨天時
-
-
-
- リーグ
- トーナメント
-
-
-
- タグ
- }
- renderValue={(selected) => (
-
- {selected.map((value) => (
-
- ))}
-
- )}
- MenuProps={MenuProps}
- >
- {tags.map((tag) => (
-
- ))}
-
-
-
-
- ルール
-
-
-
-
- }>
- 削除
-
- }>
- 保存
-
-
- }>
- 詳細
-
-
-
-
-
-
-
- )
-}
\ No newline at end of file
diff --git a/components/sports/sportsList.tsx b/components/sports/sportsList.tsx
new file mode 100644
index 0000000..fe3962f
--- /dev/null
+++ b/components/sports/sportsList.tsx
@@ -0,0 +1,23 @@
+import {ButtonLarge} from "@/components/layout/buttonLarge";
+import {Sport} from "@/src/models/SportModel";
+
+export type SportsListProps = {
+ sports: Sport[]
+}
+
+export default function SportsList(props: SportsListProps) {
+ props.sports.sort((a, b) => b.weight - a.weight);
+ return (
+ <>
+ {props.sports.map((sport) => (
+
+ {sport.name}
+
+ ))}
+ >
+ )
+}
\ No newline at end of file
diff --git a/components/theme/theme.tsx b/components/theme/theme.tsx
index 6ee9b20..4c8fbc7 100644
--- a/components/theme/theme.tsx
+++ b/components/theme/theme.tsx
@@ -73,11 +73,11 @@ export const theme = createTheme({
width: '100%'
},
'body::-webkit-scrollbar': {
- width: '8px',
+ width: '5px',
height: '8px'
},
'::-webkit-scrollbar': {
- width: '6px',
+ width: '5px',
height: '3px'
},
'::-webkit-scrollbar-track': {
@@ -85,7 +85,7 @@ export const theme = createTheme({
borderRadius:"10px"
},
'::-webkit-scrollbar-thumb': {
- background: "rgba(47,57,118,0.2)",
+ background: "rgba(92,105,187,0.8)",
borderRadius: '10px'
}
}
diff --git a/package.json b/package.json
index 304b826..f99dc20 100644
--- a/package.json
+++ b/package.json
@@ -20,16 +20,19 @@
"@mui/x-data-grid": "^7.1.1",
"ag-grid-community": "^31.2.1",
"ag-grid-react": "^31.2.1",
+ "js-cookie": "^3.0.5",
"next": "14.1.4",
"react": "^18",
"react-dom": "^18",
"react-icons": "^5.0.1",
+ "react-use": "^17.5.0",
"reactflow": "^11.11.0",
"sharp": "^0.33.3",
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
},
"devDependencies": {
"@svgr/webpack": "^8.1.0",
+ "@types/js-cookie": "^3.0.6",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
diff --git a/yarn.lock b/yarn.lock
index 949dcc5..04bf46a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1002,16 +1002,9 @@
resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz"
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7":
- version "7.24.1"
- resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz"
- integrity sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==
- dependencies:
- regenerator-runtime "^0.14.0"
-
-"@babel/runtime@^7.24.0", "@babel/runtime@^7.8.4":
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.24.4"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz"
integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==
dependencies:
regenerator-runtime "^0.14.0"
@@ -1052,14 +1045,14 @@
"@dnd-kit/accessibility@^3.1.0":
version "3.1.0"
- resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz#1054e19be276b5f1154ced7947fc0cb5d99192e0"
+ resolved "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz"
integrity sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ==
dependencies:
tslib "^2.0.0"
"@dnd-kit/core@^6.1.0":
version "6.1.0"
- resolved "https://registry.yarnpkg.com/@dnd-kit/core/-/core-6.1.0.tgz#e81a3d10d9eca5d3b01cbf054171273a3fe01def"
+ resolved "https://registry.npmjs.org/@dnd-kit/core/-/core-6.1.0.tgz"
integrity sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg==
dependencies:
"@dnd-kit/accessibility" "^3.1.0"
@@ -1068,7 +1061,7 @@
"@dnd-kit/sortable@^8.0.0":
version "8.0.0"
- resolved "https://registry.yarnpkg.com/@dnd-kit/sortable/-/sortable-8.0.0.tgz#086b7ac6723d4618a4ccb6f0227406d8a8862a96"
+ resolved "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-8.0.0.tgz"
integrity sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g==
dependencies:
"@dnd-kit/utilities" "^3.2.2"
@@ -1076,7 +1069,7 @@
"@dnd-kit/utilities@^3.2.2":
version "3.2.2"
- resolved "https://registry.yarnpkg.com/@dnd-kit/utilities/-/utilities-3.2.2.tgz#5a32b6af356dc5f74d61b37d6f7129a4040ced7b"
+ resolved "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz"
integrity sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==
dependencies:
tslib "^2.0.0"
@@ -1121,7 +1114,7 @@
resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz"
integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==
-"@emotion/is-prop-valid@^1.2.1":
+"@emotion/is-prop-valid@^1.2.2":
version "1.2.2"
resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz"
integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==
@@ -1147,10 +1140,10 @@
"@emotion/weak-memoize" "^0.3.1"
hoist-non-react-statics "^3.3.1"
-"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3":
- version "1.1.3"
- resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz"
- integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==
+"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3", "@emotion/serialize@^1.1.4":
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz"
+ integrity sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==
dependencies:
"@emotion/hash" "^0.9.1"
"@emotion/memoize" "^0.8.1"
@@ -1164,14 +1157,14 @@
integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==
"@emotion/styled@^11.11.0":
- version "11.11.0"
- resolved "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz"
- integrity sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==
+ version "11.11.5"
+ resolved "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz"
+ integrity sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==
dependencies:
"@babel/runtime" "^7.18.3"
"@emotion/babel-plugin" "^11.11.0"
- "@emotion/is-prop-valid" "^1.2.1"
- "@emotion/serialize" "^1.1.2"
+ "@emotion/is-prop-valid" "^1.2.2"
+ "@emotion/serialize" "^1.1.4"
"@emotion/use-insertion-effect-with-fallbacks" "^1.0.1"
"@emotion/utils" "^1.2.1"
@@ -1269,9 +1262,9 @@
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
"@humanwhocodes/object-schema@^2.0.2":
- version "2.0.2"
- resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz"
- integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz"
+ integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
"@img/sharp-darwin-arm64@0.33.3":
version "0.33.3"
@@ -1417,7 +1410,7 @@
resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15":
version "1.4.15"
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
@@ -1443,10 +1436,10 @@
clsx "^2.1.0"
prop-types "^15.8.1"
-"@mui/core-downloads-tracker@^5.15.14":
- version "5.15.14"
- resolved "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.14.tgz"
- integrity sha512-on75VMd0XqZfaQW+9pGjSNiqW+ghc5E2ZSLRBXwcXl/C4YzjfyjrLPhrEpKnR9Uym9KXBvxrhoHfPcczYHweyA==
+"@mui/core-downloads-tracker@^5.15.15":
+ version "5.15.15"
+ resolved "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.15.tgz"
+ integrity sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==
"@mui/material-nextjs@^5.15.11":
version "5.15.11"
@@ -1456,14 +1449,14 @@
"@babel/runtime" "^7.23.9"
"@mui/material@^5.15.14":
- version "5.15.14"
- resolved "https://registry.npmjs.org/@mui/material/-/material-5.15.14.tgz"
- integrity sha512-kEbRw6fASdQ1SQ7LVdWR5OlWV3y7Y54ZxkLzd6LV5tmz+NpO3MJKZXSfgR0LHMP7meKsPiMm4AuzV0pXDpk/BQ==
+ version "5.15.15"
+ resolved "https://registry.npmjs.org/@mui/material/-/material-5.15.15.tgz"
+ integrity sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==
dependencies:
"@babel/runtime" "^7.23.9"
"@mui/base" "5.0.0-beta.40"
- "@mui/core-downloads-tracker" "^5.15.14"
- "@mui/system" "^5.15.14"
+ "@mui/core-downloads-tracker" "^5.15.15"
+ "@mui/system" "^5.15.15"
"@mui/types" "^7.2.14"
"@mui/utils" "^5.15.14"
"@types/react-transition-group" "^4.4.10"
@@ -1492,10 +1485,10 @@
csstype "^3.1.3"
prop-types "^15.8.1"
-"@mui/system@^5.15.14":
- version "5.15.14"
- resolved "https://registry.npmjs.org/@mui/system/-/system-5.15.14.tgz"
- integrity sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==
+"@mui/system@^5.15.14", "@mui/system@^5.15.15":
+ version "5.15.15"
+ resolved "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz"
+ integrity sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==
dependencies:
"@babel/runtime" "^7.23.9"
"@mui/private-theming" "^5.15.14"
@@ -1523,7 +1516,7 @@
"@mui/x-data-grid@^7.1.1":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-7.2.0.tgz#9f908d695467fbeaa02a3d82d94172b7db7894bc"
+ resolved "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.2.0.tgz"
integrity sha512-WKmFo0eKhj3W7Fv8u5n2XP4UcdzuJ+mEYALiMUDAYsah/hPBH9mA1miXn9DjXF3i3dxgzrTjdJemTgTJxAQZKg==
dependencies:
"@babel/runtime" "^7.24.0"
@@ -1547,12 +1540,12 @@
"@next/swc-darwin-arm64@14.1.4":
version "14.1.4"
- resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.4.tgz#a3bca0dc4393ac4cf3169bbf24df63441de66bb7"
+ resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.4.tgz"
integrity sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==
"@next/swc-darwin-x64@14.1.4":
version "14.1.4"
- resolved "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.4.tgz"
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.4.tgz#ba3683d4e2d30099f3f2864dd7349a4d9f440140"
integrity sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==
"@next/swc-linux-arm64-gnu@14.1.4":
@@ -1688,9 +1681,9 @@
zustand "^4.4.1"
"@rushstack/eslint-patch@^1.3.3":
- version "1.9.0"
- resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.9.0.tgz"
- integrity sha512-AAWymnpvHbGty1BmgbdfbqQDboXs6xN6h2yAacO4yKVyyUUBnpYkp+P9jjPrV9zrAGw7JVVriRtGOHPInnfjZQ==
+ version "1.10.1"
+ resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.1.tgz"
+ integrity sha512-S3Kq8e7LqxkA9s7HKLqXGTGck1uwis5vAXan3FnU5yw1Ec5hsSGnq4s/UCaSqABPOnOTg7zASLyst7+ohgWexg==
"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
version "8.0.0"
@@ -2025,15 +2018,25 @@
resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz"
integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==
+"@types/js-cookie@^2.2.6":
+ version "2.2.7"
+ resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz"
+ integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==
+
+"@types/js-cookie@^3.0.6":
+ version "3.0.6"
+ resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz"
+ integrity sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==
+
"@types/json5@^0.0.29":
version "0.0.29"
resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
"@types/node@^20":
- version "20.11.30"
- resolved "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz"
- integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==
+ version "20.12.5"
+ resolved "https://registry.npmjs.org/@types/node/-/node-20.12.5.tgz"
+ integrity sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==
dependencies:
undici-types "~5.26.4"
@@ -2048,9 +2051,9 @@
integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
"@types/react-dom@^18":
- version "18.2.22"
- resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz"
- integrity sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==
+ version "18.2.24"
+ resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.24.tgz"
+ integrity sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==
dependencies:
"@types/react" "*"
@@ -2062,9 +2065,9 @@
"@types/react" "*"
"@types/react@*", "@types/react@^18":
- version "18.2.73"
- resolved "https://registry.npmjs.org/@types/react/-/react-18.2.73.tgz"
- integrity sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA==
+ version "18.2.74"
+ resolved "https://registry.npmjs.org/@types/react/-/react-18.2.74.tgz"
+ integrity sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw==
dependencies:
"@types/prop-types" "*"
csstype "^3.0.2"
@@ -2120,6 +2123,11 @@
resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz"
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
+"@xobotyi/scrollbar-width@^1.9.5":
+ version "1.9.5"
+ resolved "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz"
+ integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==
+
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
@@ -2132,12 +2140,12 @@ acorn@^8.9.0:
ag-grid-community@31.2.1, ag-grid-community@^31.2.1:
version "31.2.1"
- resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-31.2.1.tgz#6031c91baa5caebccfa58a5131efc13339643e50"
+ resolved "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-31.2.1.tgz"
integrity sha512-D+gnUQ4dHZ/EQJmupQnDqcEKiCEeuK5ZxlsIpdPKgHg/23dmW+aEdivtB9nLpSc2IEK0RUpchcSxeUT37Boo5A==
ag-grid-react@^31.2.1:
version "31.2.1"
- resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-31.2.1.tgz#21be0703225e4c7ad88b1b6ca13491a6d9a072c1"
+ resolved "https://registry.npmjs.org/ag-grid-react/-/ag-grid-react-31.2.1.tgz"
integrity sha512-9UH3xxXRwZfW97oz58KboyCJl4t+zdetopieeHVcttsXX1DvGFDUIEz7A1sQaG8e1DAXLMf3IxoIPrfWheH4XA==
dependencies:
ag-grid-community "31.2.1"
@@ -2425,12 +2433,7 @@ camelcase@^6.2.0:
resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-lite@^1.0.30001579:
- version "1.0.30001600"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz"
- integrity sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==
-
-caniuse-lite@^1.0.30001587:
+caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001587:
version "1.0.30001606"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001606.tgz"
integrity sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==
@@ -2527,6 +2530,13 @@ convert-source-map@^2.0.0:
resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+copy-to-clipboard@^3.3.1:
+ version "3.3.3"
+ resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz"
+ integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==
+ dependencies:
+ toggle-selection "^1.0.6"
+
core-js-compat@^3.31.0, core-js-compat@^3.36.1:
version "3.36.1"
resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz"
@@ -2564,6 +2574,13 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2:
shebang-command "^2.0.0"
which "^2.0.1"
+css-in-js-utils@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz"
+ integrity sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==
+ dependencies:
+ hyphenate-style-name "^1.0.3"
+
css-select@^5.1.0:
version "5.1.0"
resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz"
@@ -2575,6 +2592,14 @@ css-select@^5.1.0:
domutils "^3.0.1"
nth-check "^2.0.1"
+css-tree@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
css-tree@^2.3.1:
version "2.3.1"
resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz"
@@ -2603,7 +2628,7 @@ csso@^5.0.5:
dependencies:
css-tree "~2.2.0"
-csstype@^3.0.2, csstype@^3.1.3:
+csstype@^3.0.2, csstype@^3.1.2, csstype@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
@@ -2861,10 +2886,17 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
+error-stack-parser@^2.0.6:
+ version "2.1.4"
+ resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz"
+ integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==
+ dependencies:
+ stackframe "^1.3.4"
+
es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2:
- version "1.23.2"
- resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz"
- integrity sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==
+ version "1.23.3"
+ resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz"
+ integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
dependencies:
array-buffer-byte-length "^1.0.1"
arraybuffer.prototype.slice "^1.0.3"
@@ -2905,11 +2937,11 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23
safe-regex-test "^1.0.3"
string.prototype.trim "^1.2.9"
string.prototype.trimend "^1.0.8"
- string.prototype.trimstart "^1.0.7"
+ string.prototype.trimstart "^1.0.8"
typed-array-buffer "^1.0.2"
typed-array-byte-length "^1.0.1"
typed-array-byte-offset "^1.0.2"
- typed-array-length "^1.0.5"
+ typed-array-length "^1.0.6"
unbox-primitive "^1.0.2"
which-typed-array "^1.1.15"
@@ -3226,6 +3258,21 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+fast-loops@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz"
+ integrity sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==
+
+fast-shallow-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz"
+ integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==
+
+fastest-stable-stringify@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz"
+ integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==
+
fastq@^1.6.0:
version "1.17.1"
resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz"
@@ -3484,6 +3531,11 @@ hoist-non-react-statics@^3.3.1:
dependencies:
react-is "^16.7.0"
+hyphenate-style-name@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz"
+ integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==
+
ignore@^5.2.0:
version "5.3.1"
resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz"
@@ -3515,6 +3567,14 @@ inherits@2:
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+inline-style-prefixer@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz"
+ integrity sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==
+ dependencies:
+ css-in-js-utils "^3.1.0"
+ fast-loops "^1.1.3"
+
internal-slot@^1.0.7:
version "1.0.7"
resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz"
@@ -3739,6 +3799,16 @@ jackspeak@^2.3.5:
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
+js-cookie@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz"
+ integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==
+
+js-cookie@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz"
+ integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
@@ -3885,6 +3955,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
mdn-data@2.0.28:
version "2.0.28"
resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz"
@@ -3908,7 +3983,7 @@ micromatch@^4.0.4:
braces "^3.0.2"
picomatch "^2.3.1"
-minimatch@9.0.3, minimatch@^9.0.1:
+minimatch@9.0.3:
version "9.0.3"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz"
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
@@ -3922,6 +3997,13 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
dependencies:
brace-expansion "^1.1.7"
+minimatch@^9.0.1:
+ version "9.0.4"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz"
+ integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimist@^1.2.0, minimist@^1.2.6:
version "1.2.8"
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
@@ -3942,6 +4024,20 @@ ms@^2.1.1:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+nano-css@^5.6.1:
+ version "5.6.1"
+ resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.6.1.tgz"
+ integrity sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.15"
+ css-tree "^1.1.2"
+ csstype "^3.1.2"
+ fastest-stable-stringify "^2.0.2"
+ inline-style-prefixer "^7.0.0"
+ rtl-css-js "^1.16.1"
+ stacktrace-js "^2.0.2"
+ stylis "^4.3.0"
+
nanoid@^3.3.6:
version "3.3.7"
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
@@ -4230,6 +4326,31 @@ react-transition-group@^4.4.5:
loose-envify "^1.4.0"
prop-types "^15.6.2"
+react-universal-interface@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz"
+ integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==
+
+react-use@^17.5.0:
+ version "17.5.0"
+ resolved "https://registry.npmjs.org/react-use/-/react-use-17.5.0.tgz"
+ integrity sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==
+ dependencies:
+ "@types/js-cookie" "^2.2.6"
+ "@xobotyi/scrollbar-width" "^1.9.5"
+ copy-to-clipboard "^3.3.1"
+ fast-deep-equal "^3.1.3"
+ fast-shallow-equal "^1.0.0"
+ js-cookie "^2.2.1"
+ nano-css "^5.6.1"
+ react-universal-interface "^0.6.2"
+ resize-observer-polyfill "^1.5.1"
+ screenfull "^5.1.0"
+ set-harmonic-interval "^1.0.1"
+ throttle-debounce "^3.0.1"
+ ts-easing "^0.2.0"
+ tslib "^2.1.0"
+
react@^18:
version "18.2.0"
resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
@@ -4317,9 +4438,14 @@ regjsparser@^0.9.1:
reselect@^4.1.8:
version "4.1.8"
- resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524"
+ resolved "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz"
integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==
+resize-observer-polyfill@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz"
+ integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
+
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
@@ -4360,6 +4486,13 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
+rtl-css-js@^1.16.1:
+ version "1.16.1"
+ resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz"
+ integrity sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==
+ dependencies:
+ "@babel/runtime" "^7.1.2"
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
@@ -4393,6 +4526,11 @@ scheduler@^0.23.0:
dependencies:
loose-envify "^1.1.0"
+screenfull@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz"
+ integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
+
semver@^6.3.1:
version "6.3.1"
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
@@ -4427,6 +4565,11 @@ set-function-name@^2.0.1, set-function-name@^2.0.2:
functions-have-names "^1.2.3"
has-property-descriptors "^1.0.2"
+set-harmonic-interval@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz"
+ integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==
+
sharp@^0.33.3:
version "0.33.3"
resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.3.tgz"
@@ -4508,26 +4651,56 @@ source-map-js@^1.0.1, source-map-js@^1.0.2:
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz"
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+source-map@0.5.6:
+ version "0.5.6"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
+ integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==
+
source-map@^0.5.7:
version "0.5.7"
resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
+source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+stack-generator@^2.0.5:
+ version "2.0.10"
+ resolved "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz"
+ integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==
+ dependencies:
+ stackframe "^1.3.4"
+
+stackframe@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz"
+ integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
+
+stacktrace-gps@^3.0.4:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz"
+ integrity sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==
+ dependencies:
+ source-map "0.5.6"
+ stackframe "^1.3.4"
+
+stacktrace-js@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz"
+ integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==
+ dependencies:
+ error-stack-parser "^2.0.6"
+ stack-generator "^2.0.5"
+ stacktrace-gps "^3.0.4"
+
streamsearch@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz"
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-"string-width-cjs@npm:string-width@^4.2.0":
- version "4.2.3"
- resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-string-width@^4.1.0:
+"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0:
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -4582,7 +4755,7 @@ string.prototype.trimend@^1.0.8:
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
-string.prototype.trimstart@^1.0.7:
+string.prototype.trimstart@^1.0.8:
version "1.0.8"
resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz"
integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
@@ -4591,14 +4764,7 @@ string.prototype.trimstart@^1.0.7:
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
- version "6.0.1"
- resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -4634,6 +4800,11 @@ stylis@4.2.0:
resolved "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz"
integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
+stylis@^4.3.0:
+ version "4.3.2"
+ resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz"
+ integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==
+
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
@@ -4681,6 +4852,11 @@ text-table@^0.2.0:
resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+throttle-debounce@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz"
+ integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==
+
to-fast-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
@@ -4693,11 +4869,21 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
+toggle-selection@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz"
+ integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
+
ts-api-utils@^1.0.1:
version "1.3.0"
resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz"
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
+ts-easing@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz"
+ integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==
+
tsconfig-paths@^3.15.0:
version "3.15.0"
resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz"
@@ -4708,9 +4894,9 @@ tsconfig-paths@^3.15.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tslib@^2.0.0, tslib@^2.0.3, tslib@^2.4.0:
+tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0:
version "2.6.2"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
type-check@^0.4.0, type-check@~0.4.0:
@@ -4757,7 +4943,7 @@ typed-array-byte-offset@^1.0.2:
has-proto "^1.0.3"
is-typed-array "^1.1.13"
-typed-array-length@^1.0.5:
+typed-array-length@^1.0.6:
version "1.0.6"
resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz"
integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
@@ -4770,9 +4956,9 @@ typed-array-length@^1.0.5:
possible-typed-array-names "^1.0.0"
typescript@^5:
- version "5.4.3"
- resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz"
- integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==
+ version "5.4.4"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz"
+ integrity sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==
unbox-primitive@^1.0.2:
version "1.0.2"
@@ -4914,7 +5100,8 @@ wrappy@1:
"xlsx@https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz":
version "0.20.2"
- resolved "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz#0f64eeed3f1a46e64724620c3553f2dbd3cd2d7d"
+ resolved "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
+ integrity sha512-+nKZ39+nvK7Qq6i0PvWWRA4j/EkfWOtkP/YhMtupm+lJIiHxUrgTr1CcKv1nBk1rHtkRRQ3O2+Ih/q/sA+FXZA==
yallist@^3.0.2:
version "3.1.1"