timetable-app

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit dc51623816bff8375c204a58f0a62f6194d01c87
parent 11dc017d657d2fde0ab9e887b02f3535fc207d02
Author: Yuukin256 <Yuukin256@gmail.com>
Date:   Wed, 17 Aug 2022 17:41:07 +0900

フロントの表示を実装

Diffstat:
M.devcontainer/devcontainer.json | 8+-------
M.eslintrc.yml | 1+
M.prettierignore | 1+
M.prettierrc.yml | 1+
M.vscode/extensions.json | 7+------
Anext-env.d.ts | 5+++++
Anext.config.js | 8++++++++
Mpackage.json | 29+++++++++++++++++++++++------
Asrc/components/common/Head/index.tsx | 32++++++++++++++++++++++++++++++++
Asrc/components/common/Link/index.tsx | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/components/daily/DailyView.tsx | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/components/daily/DateIndicator.tsx | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/components/layouts/Layout.tsx | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/constant/index.tsx | 39+++++++++++++++++++++++++++++++++++++++
Dsrc/data/test.csv | 1-
Asrc/hooks/useDailyTimetable.ts | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/index.ts | 24+++++++++++++++---------
Asrc/lib/createEmotionCache.ts | 5+++++
Asrc/pages/[class].tsx | 95+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/pages/_app.tsx | 36++++++++++++++++++++++++++++++++++++
Asrc/pages/about.tsx | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/pages/index.tsx | 40++++++++++++++++++++++++++++++++++++++++
Rsrc/.gitkeep -> src/styles/global.css | 0
Dsrc/types.ts | 29-----------------------------
Asrc/types/index.ts | 28++++++++++++++++++++++++++++
Msrc/utils.ts | 26++++----------------------
Mtsconfig.json | 25++++++++++++++-----------
Myarn.lock | 1443+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
28 files changed, 2104 insertions(+), 225 deletions(-)

diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json @@ -11,13 +11,7 @@ "settings": {}, // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "eg2.vscode-npm-script", - "editorconfig.editorconfig", - "orta.vscode-jest" - ], + "extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "editorconfig.editorconfig"], // Use 'forwardPorts' to make a list of ports inside the container available locally. // This can be used to network with other containers or with the host. diff --git a/.eslintrc.yml b/.eslintrc.yml @@ -4,6 +4,7 @@ env: extends: - eslint:recommended + - plugin:@next/next/recommended - plugin:@typescript-eslint/recommended - plugin:import/recommended - plugin:import/typescript diff --git a/.prettierignore b/.prettierignore @@ -1,2 +1,3 @@ node_modules/ .yarn/ +.next/ diff --git a/.prettierrc.yml b/.prettierrc.yml @@ -4,3 +4,4 @@ semi: true singleQuote: true useTabs: false tabWidth: 2 +jsxSingleQuote: true diff --git a/.vscode/extensions.json b/.vscode/extensions.json @@ -1,8 +1,3 @@ { - "recommendations": [ - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "eg2.vscode-npm-script", - "editorconfig.editorconfig", - ] + "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "editorconfig.editorconfig"] } diff --git a/next-env.d.ts b/next-env.d.ts @@ -0,0 +1,5 @@ +/// <reference types="next" /> +/// <reference types="next/image-types/global" /> + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/next.config.js b/next.config.js @@ -0,0 +1,8 @@ +/* eslint-disable */ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + trailingSlash: false, +}; + +module.exports = nextConfig; diff --git a/package.json b/package.json @@ -1,23 +1,41 @@ { - "name": "typescript-template", + "name": "timetable-app", "version": "0.1.0", "private": true, "scripts": { "prepare": "husky install", - "build": "tsc", - "dev": "ts-node", - "start": "node dist/index.js", + "dev": "next dev", + "build": "next build", + "start": "next start", "lint": "eslint src/**/*.{ts,tsx} && tsc --noEmit", "lint:fix": "eslint src/**/*.{ts,tsx} --fix", "type-check": "tsc --noEmit", "format": "prettier --write ." }, "dependencies": { + "@date-io/date-fns": "^2.14.0", + "@emotion/react": "^11.9.3", + "@emotion/styled": "^11.9.3", "@js-temporal/polyfill": "^0.4.1", - "immutable": "^4.0.0" + "@mui/icons-material": "^5.8.4", + "@mui/material": "^5.9.2", + "@mui/x-date-pickers": "^5.0.0-beta.3", + "date-fns": "^2.29.1", + "immutable": "^4.0.0", + "next": "^12.2.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-swipeable-views": "^0.14.0", + "react-swipeable-views-utils": "^0.14.0" }, "devDependencies": { + "@next/eslint-plugin-next": "^12.2.4", + "@tsconfig/strictest": "^1.0.1", "@types/node": "^17.0.33", + "@types/react": "^18.0.15", + "@types/react-dom": "^18.0.6", + "@types/react-swipeable-views": "^0.13.1", + "@types/react-swipeable-views-utils": "^0.13.3", "@typescript-eslint/eslint-plugin": "^5.17.0", "@typescript-eslint/parser": "^5.17.0", "eslint": "^8.12.0", @@ -28,7 +46,6 @@ "husky": "^7.0.4", "lint-staged": "^12.3.7", "prettier": "^2.6.1", - "ts-node": "^10.7.0", "typescript": "^4.6.3" }, "packageManager": "yarn@3.2.0" diff --git a/src/components/common/Head/index.tsx b/src/components/common/Head/index.tsx @@ -0,0 +1,32 @@ +import NextHead from 'next/head'; + +import { APP_DESCRIPTION, APP_TITLE, APP_URL } from 'constant'; + +import type { FC } from 'react'; + +type Props = { + title?: string; +}; + +const Head: FC<Props> = ({ title: pageTitle }) => { + const title = pageTitle ? `${pageTitle} | ${APP_TITLE}` : `${APP_TITLE}`; + return ( + <NextHead> + <title>{title}</title> + <meta name='viewport' content='width=device-width,initial-scale=1.0' /> + <meta name='description' content={APP_DESCRIPTION} /> + <meta property='og:url' content={APP_URL} /> + <meta property='og:title' content={title} /> + <meta property='og:site_name' content={APP_TITLE} /> + <meta property='og:description' content={APP_DESCRIPTION} /> + <meta property='og:type' content='website' /> + <meta property='og:image' content='' /> + <meta name='twitter:card' content='summary' /> + <meta name='twitter:title' content={title} /> + <meta name='twitter:description' content={APP_DESCRIPTION} /> + {/* <meta name="twitter:image" content="" />*/} + </NextHead> + ); +}; + +export default Head; diff --git a/src/components/common/Link/index.tsx b/src/components/common/Link/index.tsx @@ -0,0 +1,98 @@ +import MuiLink from '@mui/material/Link'; +import { styled } from '@mui/material/styles'; +import { clsx } from 'clsx'; +import NextLink from 'next/link'; +import { useRouter } from 'next/router'; +import * as React from 'react'; + +import type { LinkProps as MuiLinkProps } from '@mui/material/Link'; +import type { LinkProps as NextLinkProps } from 'next/link'; + +// Add support for the sx prop for consistency with the other branches. +const Anchor = styled('a')({}); + +interface NextLinkComposedProps + extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>, + Omit<NextLinkProps, 'href' | 'as' | 'onClick' | 'onMouseEnter'> { + to: NextLinkProps['href']; + linkAs?: NextLinkProps['as']; +} + +export const NextLinkComposed = React.forwardRef<HTMLAnchorElement, NextLinkComposedProps>(function NextLinkComposed( + props, + ref +) { + const { to, linkAs, replace, scroll, shallow, prefetch, locale, ...other } = props; + + return ( + <NextLink + href={to} + prefetch={prefetch} + as={linkAs} + replace={replace} + scroll={scroll} + shallow={shallow} + passHref + locale={locale} + > + <Anchor ref={ref} {...other} /> + </NextLink> + ); +}); + +export type LinkProps = { + activeClassName?: string; + as?: NextLinkProps['as']; + href: NextLinkProps['href']; + linkAs?: NextLinkProps['as']; // Useful when the as prop is shallow by styled(). + noLinkStyle?: boolean; +} & Omit<NextLinkComposedProps, 'to' | 'linkAs' | 'href'> & + Omit<MuiLinkProps, 'href'>; + +// A styled version of the Next.js Link component: +// https://nextjs.org/docs/api-reference/next/link +const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(props, ref) { + const { + activeClassName = 'active', + as, + className: classNameProps, + href, + linkAs: linkAsProp, + locale, + noLinkStyle, + prefetch, + replace, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + role, // Link don't have roles. + scroll, + shallow, + ...other + } = props; + + const router = useRouter(); + const pathname = typeof href === 'string' ? href : href.pathname; + const className = clsx(classNameProps, { + [activeClassName]: router.pathname === pathname && activeClassName, + }); + + const isExternal = typeof href === 'string' && (href.indexOf('http') === 0 || href.indexOf('mailto:') === 0); + + if (isExternal) { + if (noLinkStyle) { + return <Anchor className={className} href={href} ref={ref} {...other} />; + } + + return <MuiLink className={className} href={href} ref={ref} {...other} />; + } + + const linkAs = linkAsProp || as; + const nextjsProps = { to: href, linkAs, replace, scroll, shallow, prefetch, locale }; + + if (noLinkStyle) { + return <NextLinkComposed className={className} ref={ref} {...nextjsProps} {...other} />; + } + + return <MuiLink component={NextLinkComposed} className={className} ref={ref} {...nextjsProps} {...other} />; +}); + +export default Link; diff --git a/src/components/daily/DailyView.tsx b/src/components/daily/DailyView.tsx @@ -0,0 +1,70 @@ +import Box from '@mui/material/Box'; +import Paper from '@mui/material/Paper'; +import SwipeableViews from 'react-swipeable-views'; + +import useDailyTimetable from 'hooks/useDailyTimetable'; + +import DateIndicator from './DateIndicator'; + +import type { FC } from 'react'; +import type { Calendar } from 'types'; + +type Props = { + calendar: Calendar; +}; + +const DailyView: FC<Props> = ({ calendar }) => { + const { date, dates, index, handlers } = useDailyTimetable(calendar); + + return ( + <Box sx={{ display: 'flex', flexDirection: 'column', width: '100%' }}> + <Box sx={{ py: 1 }}> + <DateIndicator + currentDate={date} + dates={dates} + setDate={handlers.setDate} + prev={handlers.prev} + next={handlers.next} + /> + </Box> + + <Box sx={{ flexGrow: 1 }}> + {index < 0 ? ( + <Box sx={{ p: 3 }}>時間割がありません</Box> + ) : ( + <SwipeableViews + index={index} + onChangeIndex={(i) => handlers.setIndex(i)} + enableMouseEvents + style={{ padding: '10px 30px' }} + slideStyle={{ padding: '0 10px' }} + > + {calendar.toArray().map(([d, lessons]) => ( + <Paper + variant='outlined' + sx={(theme) => ({ + listStylePosition: 'inside', + [theme.breakpoints.up('xs')]: { p: 2, fontSize: 36 }, + [theme.breakpoints.up('sm')]: { py: 3, px: 5, fontSize: 48 }, + })} + key={d} + > + <ol style={{ margin: 0, padding: 0 }}> + <li>{lessons[1]}</li> + <li>{lessons[2]}</li> + <li>{lessons[3]}</li> + <li>{lessons[4]}</li> + <li>{lessons[5]}</li> + <li>{lessons[6]}</li> + <li>{lessons[7]}</li> + </ol> + </Paper> + ))} + </SwipeableViews> + )} + </Box> + </Box> + ); +}; + +export default DailyView; diff --git a/src/components/daily/DateIndicator.tsx b/src/components/daily/DateIndicator.tsx @@ -0,0 +1,72 @@ +import { Temporal } from '@js-temporal/polyfill'; +import ChevronLeftIcon from '@mui/icons-material/ChevronLeft'; +import ChevronRightIcon from '@mui/icons-material/ChevronRight'; +import EventIcon from '@mui/icons-material/Event'; +import Box from '@mui/material/Box'; +import IconButton from '@mui/material/IconButton'; +import InputAdornment from '@mui/material/InputAdornment'; +import Stack from '@mui/material/Stack'; +import TextField from '@mui/material/TextField'; +import { LocalizationProvider, MobileDatePicker } from '@mui/x-date-pickers'; +import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; +import { ja } from 'date-fns/locale'; + +import { dateToPlainDate, plainDateToDate } from 'utils'; + +import type { FC } from 'react'; + +type Props = { + dates: Temporal.PlainDate[]; + currentDate: Temporal.PlainDate | null; + setDate: (d: Temporal.PlainDate) => void; + prev: () => void; + next: () => void; +}; + +const DateIndicator: FC<Props> = ({ currentDate, dates, setDate, prev, next }) => { + const date = currentDate ?? Temporal.Now.plainDateISO(); + const handleChange = (n: Date | null) => { + if (n == null) return; + setDate(dateToPlainDate(n)); + }; + + const minDate = dates.at(0); + const maxDate = dates.at(-1); + + return ( + <LocalizationProvider dateAdapter={AdapterDateFns} adapterLocale={ja}> + <Stack direction='row' justifyContent='space-between' alignItems='center' spacing={4} width='100%' px={3}> + <IconButton disabled={minDate && date.equals(minDate)} onClick={prev}> + <ChevronLeftIcon /> + </IconButton> + + <Box sx={{ width: '12rem' }}> + <MobileDatePicker + value={plainDateToDate(date)} + onChange={handleChange} + minDate={plainDateToDate(minDate)} + maxDate={plainDateToDate(maxDate)} + shouldDisableDate={(d1) => dates.every((d2) => !dateToPlainDate(d1).equals(d2))} + renderInput={(params) => <TextField {...params} />} + InputProps={{ + fullWidth: true, + size: 'small', + startAdornment: ( + <InputAdornment position='start'> + <EventIcon fontSize='small' /> + </InputAdornment> + ), + }} + inputFormat='yyyy/MM/dd (EEEEE)' + /> + </Box> + + <IconButton disabled={maxDate && date.equals(maxDate)} onClick={next}> + <ChevronRightIcon /> + </IconButton> + </Stack> + </LocalizationProvider> + ); +}; + +export default DateIndicator; diff --git a/src/components/layouts/Layout.tsx b/src/components/layouts/Layout.tsx @@ -0,0 +1,78 @@ +import HomeIcon from '@mui/icons-material/Home'; +import InfoIcon from '@mui/icons-material/Info'; +import AppBar from '@mui/material/AppBar'; +import Box from '@mui/material/Box'; +import Container from '@mui/material/Container'; +import IconButton from '@mui/material/IconButton'; +import Toolbar from '@mui/material/Toolbar'; +import Typography from '@mui/material/Typography'; + +import { NextLinkComposed } from 'components/common/Link'; + +import type { FC, ReactNode } from 'react'; + +type Props = { + children: ReactNode; + title: string; +}; + +const Layout: FC<Props> = ({ children, title }) => { + return ( + <Container + maxWidth='sm' + disableGutters + sx={(theme) => ({ + [theme.breakpoints.up('sm')]: { + borderRight: 'solid 1px gray', + borderLeft: 'solid 1px gray', + }, + minHeight: '100vh', + display: 'flex', + flexDirection: 'column', + })} + > + <AppBar position='sticky'> + <Toolbar variant='dense' sx={{ color: 'white' }}> + <IconButton + color='inherit' + title='ホームに戻る' + edge='start' + sx={{ mr: 2 }} + component={NextLinkComposed} + to={{ + pathname: '/', + }} + > + <HomeIcon /> + </IconButton> + <Box sx={{ flexGrow: 1 }}> + <Typography variant='h1' fontSize={24} fontWeight={500}> + {title} + </Typography> + </Box> + <IconButton + color='inherit' + title='このアプリについて' + component={NextLinkComposed} + to={{ + pathname: '/about', + }} + > + <InfoIcon /> + </IconButton> + </Toolbar> + </AppBar> + <Box + sx={{ + paddingY: '10px', + flexGrow: 1, + }} + > + <main>{children}</main> + </Box> + <Box sx={{ px: 2, py: 1, fontSize: 14, fontFamily: 'serif' }}>大阪府立岸和田高等学校</Box> + </Container> + ); +}; + +export default Layout; diff --git a/src/constant/index.tsx b/src/constant/index.tsx @@ -0,0 +1,39 @@ +export const APP_TITLE = '岸高時間割アプリ'; +export const APP_DESCRIPTION = '岸和田高校の時間割を確認できるアプリ'; +export const APP_URL = ''; + +export const GRADED_CLASSES = [ + ['1-1', '1-2', '1-3', '1-4', '1-5', '1-6', '1-7', '1-8'], + ['2-1', '2-2', '2-3', '2-4', '2-5', '2-6', '2-7', '2-8'], + ['3-1', '3-2', '3-3', '3-4', '3-5', '3-6', '3-7', '3-8'], +] as const; + +export const CLASSES = [ + '1-1', + '1-2', + '1-3', + '1-4', + '1-5', + '1-6', + '1-7', + '1-8', + '2-1', + '2-2', + '2-3', + '2-4', + '2-5', + '2-6', + '2-7', + '2-8', + '3-1', + '3-2', + '3-3', + '3-4', + '3-5', + '3-6', + '3-7', + '3-8', +] as const; + +export const BUG_REPORT_FORM_URL = process.env['NEXT_PUBLIC_BUG_REPORT_FORM_URL']; +export const REQUEST_FORM_URL = process.env['NEXT_PUBLIC_REQUEST_FORM_URL']; diff --git a/src/data/test.csv b/src/data/test.csv @@ -1 +0,0 @@ -test date, data1, data2 diff --git a/src/hooks/useDailyTimetable.ts b/src/hooks/useDailyTimetable.ts @@ -0,0 +1,74 @@ +import { Temporal } from '@js-temporal/polyfill'; +import closestIndexTo from 'date-fns/closestIndexTo'; +import { useMemo, useState } from 'react'; + +import type { Dispatch, SetStateAction } from 'react'; +import type { Calendar, DayLessons } from 'types'; + +type BaseReturn = { + index: number; + date: Temporal.PlainDate | null; + lessons: DayLessons | null; + dates: Temporal.PlainDate[]; + handlers: { + prev: () => void; + next: () => void; + setDate: (d: Temporal.PlainDate) => void; + setIndex: Dispatch<SetStateAction<number>>; + }; +}; + +type Return = BaseReturn; + +const useDailyTimetable = (calendar: Calendar): Return => { + const calendarDateSeq = useMemo(() => calendar.keySeq(), [calendar]); + const dates = useMemo(() => calendarDateSeq.toArray().map((v) => Temporal.PlainDate.from(v)), [calendarDateSeq]); + + // 初期設定の日付: 16時以前なら当日; 16時以降なら翌日 + const now = Temporal.Now.zonedDateTimeISO('Asia/Tokyo'); + const duration = now.since(now.with({ hour: 16, minute: 0, second: 0 })); + const initialDate = duration.sign === -1 ? Temporal.Now.plainDateISO() : Temporal.Now.plainDateISO().add({ days: 1 }); + + const [index, setIndex] = useState<number>(() => { + const i = calendarDateSeq.indexOf(initialDate.toJSON()); + if (i !== -1) { + return i; + } + + return ( + closestIndexTo( + new Date(initialDate.toJSON()), + calendarDateSeq.toArray().map((v) => new Date(v)) + ) ?? calendar.size - 1 + ); + }); + + const dateString = calendarDateSeq.get(index); + const date = dateString ? Temporal.PlainDate.from(dateString) : null; + + const lessons = dateString ? calendar.get(dateString) ?? null : null; + + const setDate = (d: Temporal.PlainDate) => { + const newIndex = calendarDateSeq.indexOf(d.toJSON()); + if (newIndex !== -1) { + setIndex(newIndex); + } + }; + const prev = () => setIndex((old) => (old > 0 ? old - 1 : old)); + const next = () => setIndex((old) => (old !== calendar.size ? old + 1 : old)); + + return { + index, + date, + lessons, + dates, + handlers: { + setIndex, + setDate, + prev, + next, + }, + }; +}; + +export default useDailyTimetable; diff --git a/src/index.ts b/src/index.ts @@ -5,12 +5,19 @@ import { isAbstractLessonName } from './utils'; import type { Grade, Class, Calendar, Standard, Unusual } from './types'; -const main = async (g: Grade, c: Class) => { - console.log(`${g}-${c}`); +export const main = async (g: Grade, c: Class) => { + console.log(g, c); - const calendar: Calendar = Map([ - [new Temporal.PlainDate(2022, 1, 26), { 1: '水1', 2: '水2', 3: '水5', 4: '水6', 5: '水3', 6: '水4', 7: '水7' }], - ]); + let calendar: Calendar = Map(); + calendar = calendar.set(new Temporal.PlainDate(2022, 1, 26).toJSON(), { + 1: '水1', + 2: '水2', + 3: '水5', + 4: '水6', + 5: '水3', + 6: '水4', + 7: '水7', + }); const standard: Standard = { 月1: '', @@ -48,7 +55,8 @@ const main = async (g: Grade, c: Class) => { 金6: '', 金7: '', }; - const unusual: Unusual = Map([[new Temporal.PlainDate(2022, 1, 26), { 1: '数学A', 3: '古典' }]]); + let unusual: Unusual = Map(); + unusual = unusual.set(new Temporal.PlainDate(2022, 1, 26).toJSON(), { 1: '数学A', 3: '古典' }); const standardAppliedCalendar = applyStandard(calendar, standard); @@ -79,7 +87,7 @@ const applyStandard = (calendar: Calendar, standard: Standard): Calendar => { const applyUnusual = (calendar: Calendar, unusual: Unusual): Calendar => { return calendar.map((originalLessons, date) => { // この日の臨時時間割 - const unusualLessons = unusual.find((_, k) => k.equals(date)); + const unusualLessons = unusual.find((_, k) => k === date); // ない場合は終了 if (typeof unusualLessons === 'undefined') { @@ -90,5 +98,3 @@ const applyUnusual = (calendar: Calendar, unusual: Unusual): Calendar => { return merge(originalLessons, unusualLessons); }); }; - -console.log(main(2, 4)); diff --git a/src/lib/createEmotionCache.ts b/src/lib/createEmotionCache.ts @@ -0,0 +1,5 @@ +import createCache from '@emotion/cache'; + +export default function createEmotionCache() { + return createCache({ key: 'css', prepend: true }); +} diff --git a/src/pages/[class].tsx b/src/pages/[class].tsx @@ -0,0 +1,95 @@ +import { Temporal } from '@js-temporal/polyfill'; +import { Map } from 'immutable'; + +import Head from 'components/common/Head'; +import DailyView from 'components/daily/DailyView'; +import Layout from 'components/layouts/Layout'; + +import { CLASSES } from '../constant'; + +import type { GetStaticPaths, GetStaticProps, NextPage } from 'next'; +import type { Calendar } from 'types'; + +type UrlQuery = { + class: string; +}; + +type PageProps = { + class: string; +}; + +export const getStaticPaths: GetStaticPaths<UrlQuery> = async () => { + const paths = CLASSES.map((c) => ({ params: { class: c } })); + + return { + paths, + fallback: false, + }; +}; + +export const getStaticProps: GetStaticProps<PageProps, UrlQuery> = async ({ params }) => { + const className = params?.class; + + if (className == null) { + return { + notFound: true, + }; + } + + return { + props: { class: className }, + }; +}; + +const Page: NextPage<PageProps> = (props) => { + const calendar: Calendar = Map(); + const newCalendar = calendar + .set(new Temporal.PlainDate(2022, 8, 11).toJSON(), { + 1: '08/06', + 2: '英語構文', + 3: '倫理政経', + 4: '現代文', + 5: 'HR', + 6: '体育', + 7: '家庭科', + }) + .set(new Temporal.PlainDate(2022, 8, 10).toJSON(), { + 1: '数学II', + 2: '英語構文', + 3: '倫理政経', + 4: '現代文', + 5: 'HR', + 6: '体育', + 7: '家庭科', + }) + .set(new Temporal.PlainDate(2022, 8, 9).toJSON(), { + 1: '数学II', + 2: '英語構文', + 3: '倫理政経', + 4: '現代文', + 5: 'HR', + 6: '体育', + 7: '家庭科', + }) + .set(new Temporal.PlainDate(2022, 8, 14).toJSON(), { + 1: null, + 2: null, + 3: null, + 4: null, + 5: null, + 6: null, + 7: null, + }) + .sortBy((_, date) => Temporal.PlainDate.from(date), Temporal.PlainDate.compare); + + return ( + <> + <Head title={props.class} /> + <Layout title={props.class}> + <DailyView calendar={newCalendar} /> + </Layout> + </> + ); +}; + +export default Page; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx @@ -0,0 +1,36 @@ +import { CacheProvider } from '@emotion/react'; +import CssBaseline from '@mui/material/CssBaseline'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; +import Head from 'next/head'; + +import createEmotionCache from 'lib/createEmotionCache'; + +import type { EmotionCache } from '@emotion/react'; +import type { AppProps } from 'next/app'; +import 'styles/global.css'; + +const clientSideEmotionCache = createEmotionCache(); + +interface MyAppProps extends AppProps { + emotionCache?: EmotionCache; +} + +function MyApp(props: MyAppProps) { + const { Component, emotionCache = clientSideEmotionCache, pageProps } = props; + + const theme = createTheme(); + + return ( + <CacheProvider value={emotionCache}> + <Head> + <meta name='viewport' content='initial-scale=1, width=device-width' /> + </Head> + <ThemeProvider theme={theme}> + <CssBaseline /> + <Component {...pageProps} /> + </ThemeProvider> + </CacheProvider> + ); +} + +export default MyApp; diff --git a/src/pages/about.tsx b/src/pages/about.tsx @@ -0,0 +1,54 @@ +import Box from '@mui/material/Box'; +import Divider from '@mui/material/Divider'; +import Link from '@mui/material/Link'; + +import Head from 'components/common/Head'; +import Layout from 'components/layouts/Layout'; +import { BUG_REPORT_FORM_URL, REQUEST_FORM_URL } from 'constant'; + +import type { NextPage } from 'next'; + +const AboutPage: NextPage = () => { + return ( + <> + <Head title='このアプリについて' /> + <Layout title='このアプリについて'> + <Box sx={{ px: 2 }}> + <p> + 大阪府立岸和田高等学校 76期 情報ゼミ + 制作「岸高時間割アプリ」です。「課題研究」授業の活動として制作しました。曜日変更はすべて対応済みですが、臨時変更については一部対応できていないことがあります。正確性を保証することはできません(特に臨時変更)ので、参考程度に使ってください。 + </p> + + <p> + アプリの動作に不具合があった場合や、時間割の情報が間違っていた場合は、以下の Google + フォームに報告をお願いします。 + </p> + <ul> + <li> + <Link href={BUG_REPORT_FORM_URL}>不具合報告フォーム</Link> + </li> + </ul> + + <p>アプリについてなにかご意見・ご要望等ありましたら、以下の Google フォームに送信をお願いします。</p> + <ul> + <li> + <Link href={REQUEST_FORM_URL}>ご意見・ご要望送信フォーム</Link> + </li> + </ul> + + <p>今後の研究活動に活かすため、積極的に情報提供をお願いします。</p> + + <Divider /> + + <ul> + <li> + <Link href='https://www.osaka-c.ed.jp/kishiwada/'>大阪府立岸和田高等学校</Link> + </li> + </ul> + </Box> + </Layout> + </> + ); +}; + +export default AboutPage; diff --git a/src/pages/index.tsx b/src/pages/index.tsx @@ -0,0 +1,40 @@ +import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; + +import Head from 'components/common/Head'; +import Link from 'components/common/Link'; +import Layout from 'components/layouts/Layout'; +import { GRADED_CLASSES } from 'constant'; + +import type { NextPage } from 'next'; + +const Page: NextPage = () => { + return ( + <> + <Head title='トップ' /> + <Layout title='トップ'> + <Box sx={{ px: 2 }}> + <p> + 岸和田高校情報ゼミ制作「岸高時間割アプリ」です。詳細は「<Link href='/about'>このアプリについて</Link> + 」をご覧ください。 + </p> + <Stack direction='row' justifyContent='space-around' alignItems='center'> + {GRADED_CLASSES.map((classes, g) => ( + <Box sx={{ margin: 2 }} key={g}> + <ul style={{ margin: 0, padding: 0 }}> + {classes.map((c) => ( + <li key={c}> + <Link href={`/${c}`}>{c}</Link> + </li> + ))} + </ul> + </Box> + ))} + </Stack> + </Box> + </Layout> + </> + ); +}; + +export default Page; diff --git a/src/.gitkeep b/src/styles/global.css diff --git a/src/types.ts b/src/types.ts @@ -1,29 +0,0 @@ -import type { Temporal } from '@js-temporal/polyfill'; -import type { Map } from 'immutable'; - -// 学年 -export type Grade = 1 | 2 | 3; -// クラス -export type Class = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; - -type Weekday = '月' | '火' | '水' | '木' | '金'; -type SchoolPeriod = 1 | 2 | 3 | 4 | 5 | 6 | 7; - -// 月1 から 金7 (木7 以外) -export type AbstractLessonName = Exclude<`${Weekday}${SchoolPeriod}`, '木7'>; -// 授業名 -export type ActualLessonName = string; - -export type Lesson = AbstractLessonName | ActualLessonName; - -// 1日の授業 -type DayLessons = Record<SchoolPeriod, string | null>; - -// クラスの標準時間割 -export type Standard = Readonly<Record<AbstractLessonName, string>>; - -// 曜日変更込みの時間割表 (月1, 月2,… など) または、授業名代入済みの時間割表 -export type Calendar = Map<Temporal.PlainDate, DayLessons>; - -// クラスの臨時変更 -export type Unusual = Map<Temporal.PlainDate, Partial<DayLessons>>; diff --git a/src/types/index.ts b/src/types/index.ts @@ -0,0 +1,28 @@ +import type { Map } from 'immutable'; + +// 学年 +export type Grade = 1 | 2 | 3; +// クラス +export type Class = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + +type Weekday = '月' | '火' | '水' | '木' | '金'; +type SchoolPeriod = 1 | 2 | 3 | 4 | 5 | 6 | 7; + +// 月1 から 金7 (木7 以外) +export type AbstractLessonName = Exclude<`${Weekday}${SchoolPeriod}`, '木7'>; +// 授業名 +export type ActualLessonName = string; + +export type LessonName = AbstractLessonName | ActualLessonName; + +// 1日の授業 +export type DayLessons = Record<SchoolPeriod, LessonName | null>; + +// クラスの標準時間割 +export type Standard = Readonly<Record<AbstractLessonName, string>>; + +// 曜日変更込みの時間割表 (月1, 月2,… など) または、授業名代入済みの時間割表 +export type Calendar = Map<string, DayLessons>; + +// クラスの臨時変更 +export type Unusual = Map<string, Partial<DayLessons>>; diff --git a/src/utils.ts b/src/utils.ts @@ -1,29 +1,11 @@ -import { readFile, writeFile } from 'node:fs/promises'; +import { Temporal } from '@js-temporal/polyfill'; -import type { PathLike } from 'node:fs'; import type { AbstractLessonName } from 'types'; export const isAbstractLessonName = (value: string): value is AbstractLessonName => { return /((月|火|水|金)(1|2|3|4|5|6|7)|木(1|2|3|4|5|6))/.test(value); }; -const csvToArray = async (path: PathLike): Promise<string[][]> => { - const csv = await readFile(path); - const arr = csv - .toString() - .trim() - .split('\n') - .map((s) => s.split(',')); - return arr; -}; - -const arrayToCsv = async (path: PathLike, arr: (string | null)[][]): Promise<void> => { - const csvString = arr.map((v) => (v ?? '').join(',')).join('\n'); - writeFile(path, csvString); -}; - -const main = async () => { - arrayToCsv('./src/data/output.csv', await csvToArray('./src/data/test.csv')); -}; - -main(); +export const plainDateToDate = (date: Temporal.PlainDate | undefined) => (date ? new Date(date.toString()) : undefined); +export const dateToPlainDate = (date: Date) => + new Temporal.PlainDate(date.getFullYear(), date.getMonth() + 1, date.getDate()); diff --git a/tsconfig.json b/tsconfig.json @@ -1,16 +1,19 @@ { + "extends": "@tsconfig/strictest/tsconfig.json", "compilerOptions": { - "outDir": "./dist", + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "noEmit": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, "baseUrl": "./src/", - "moduleResolution": "Node", - "module": "CommonJS", - "target": "ES6", - "sourceMap": true, - "noImplicitReturns": true, - "strict": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "lib": ["ESNext", "DOM"], + "allowJs": true, + "exactOptionalPropertyTypes": false }, - "include": ["src/*.ts"] + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] } diff --git a/yarn.lock b/yarn.lock @@ -5,19 +5,292 @@ __metadata: version: 6 cacheKey: 8 -"@cspotcode/source-map-consumer@npm:0.8.0": +"@babel/code-frame@npm:^7.0.0": + version: 7.18.6 + resolution: "@babel/code-frame@npm:7.18.6" + dependencies: + "@babel/highlight": ^7.18.6 + checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.12.13": + version: 7.18.6 + resolution: "@babel/helper-module-imports@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.18.6": + version: 7.18.9 + resolution: "@babel/helper-plugin-utils@npm:7.18.9" + checksum: ebae876cd60f1fe238c7210986093845fa5c4cad5feeda843ea4d780bf068256717650376d3af2a5e760f2ed6a35c065ae144f99c47da3e54aa6cba99d8804e0 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-validator-identifier@npm:7.18.6" + checksum: e295254d616bbe26e48c196a198476ab4d42a73b90478c9842536cf910ead887f5af6b5c4df544d3052a25ccb3614866fa808dc1e3a5a4291acd444e243c0648 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/highlight@npm:7.18.6" + dependencies: + "@babel/helper-validator-identifier": ^7.18.6 + chalk: ^2.0.0 + js-tokens: ^4.0.0 + checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.12.13": + version: 7.18.6 + resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 + languageName: node + linkType: hard + +"@babel/runtime@npm:7.0.0": + version: 7.0.0 + resolution: "@babel/runtime@npm:7.0.0" + dependencies: + regenerator-runtime: ^0.12.0 + checksum: 7dbeb4bfa5762b80b4137f21009d2b754dd1adba0390d909d53397c510c1e708677302774d69386f936a26fb898f055c32a0c668e2d908d78d36f76d0c3d04dd + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.7": + version: 7.18.9 + resolution: "@babel/runtime@npm:7.18.9" + dependencies: + regenerator-runtime: ^0.13.4 + checksum: 36dd736baba7164e82b3cc9d43e081f0cb2d05ff867ad39cac515d99546cee75b7f782018b02a3dcf5f2ef3d27f319faa68965fdfec49d4912c60c6002353a2e + languageName: node + linkType: hard + +"@babel/types@npm:^7.18.6": + version: 7.18.9 + resolution: "@babel/types@npm:7.18.9" + dependencies: + "@babel/helper-validator-identifier": ^7.18.6 + to-fast-properties: ^2.0.0 + checksum: f0e0147267895fd8a5b82133e711ce7ce99941f3ce63647e0e3b00656a7afe48a8aa48edbae27543b701794d2b29a562a08f51f88f41df401abce7c3acc5e13a + languageName: node + linkType: hard + +"@date-io/core@npm:^2.14.0": + version: 2.14.0 + resolution: "@date-io/core@npm:2.14.0" + checksum: 495d6086366778590a10b554aeeaf0f22e8d7ad7eb2eeffcd16bd2864f68e9f41d956e4d5469a5f012b8bd4ff300409e5649d33bdd5d599a20296738d4f6ed12 + languageName: node + linkType: hard + +"@date-io/date-fns@npm:^2.14.0": + version: 2.14.0 + resolution: "@date-io/date-fns@npm:2.14.0" + dependencies: + "@date-io/core": ^2.14.0 + peerDependencies: + date-fns: ^2.0.0 + peerDependenciesMeta: + date-fns: + optional: true + checksum: 6904676e2db8410555f4b289b0d10ba080a47867d82c87e108d4577188cdf75774b602be7440d47850d3487c8cbed926bdf2d0cbc0d714f3450f0e651ddd6c5d + languageName: node + linkType: hard + +"@date-io/dayjs@npm:^2.14.0": + version: 2.14.0 + resolution: "@date-io/dayjs@npm:2.14.0" + dependencies: + "@date-io/core": ^2.14.0 + peerDependencies: + dayjs: ^1.8.17 + peerDependenciesMeta: + dayjs: + optional: true + checksum: 8e2433176048ba4590e124c77a21c230757fe858941877236a74f40d2cac4a9343802ccd53a19a52b36cf474119601ef6441b54aa785093e41b85b8da3cab6ba + languageName: node + linkType: hard + +"@date-io/luxon@npm:^2.14.0": + version: 2.14.0 + resolution: "@date-io/luxon@npm:2.14.0" + dependencies: + "@date-io/core": ^2.14.0 + peerDependencies: + luxon: ^1.21.3 || ^2.x + peerDependenciesMeta: + luxon: + optional: true + checksum: 68f2c2f7f94311f00c9e0e31e08b5e0ed8d7800f8d11b4e760bf1f1b56b3bbfc5252996830521ce4fcc7d267fe54cafcd22b2855995285cbb8a7bbc75470e50f + languageName: node + linkType: hard + +"@date-io/moment@npm:^2.14.0": + version: 2.14.0 + resolution: "@date-io/moment@npm:2.14.0" + dependencies: + "@date-io/core": ^2.14.0 + peerDependencies: + moment: ^2.24.0 + peerDependenciesMeta: + moment: + optional: true + checksum: ceea1f4b2245fda1b81fa9440e84cc4c3d1f8e1285a111effb3ed503e84982f227b8c6ce1cadf1d92738a3a5edb2d9c7eed8b06003c91d086680d9137fd77248 + languageName: node + linkType: hard + +"@emotion/babel-plugin@npm:^11.7.1": + version: 11.9.2 + resolution: "@emotion/babel-plugin@npm:11.9.2" + dependencies: + "@babel/helper-module-imports": ^7.12.13 + "@babel/plugin-syntax-jsx": ^7.12.13 + "@babel/runtime": ^7.13.10 + "@emotion/hash": ^0.8.0 + "@emotion/memoize": ^0.7.5 + "@emotion/serialize": ^1.0.2 + babel-plugin-macros: ^2.6.1 + convert-source-map: ^1.5.0 + escape-string-regexp: ^4.0.0 + find-root: ^1.1.0 + source-map: ^0.5.7 + stylis: 4.0.13 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2d2c4fadd389862896bcbc5f42c9b9c1a199810173fcf14e5520506c7179c2ddb991b8832fd273f42104cf0dae98886ad8e767b5e38ad235b652d903c3b8a328 + languageName: node + linkType: hard + +"@emotion/cache@npm:^11.9.3": + version: 11.9.3 + resolution: "@emotion/cache@npm:11.9.3" + dependencies: + "@emotion/memoize": ^0.7.4 + "@emotion/sheet": ^1.1.1 + "@emotion/utils": ^1.0.0 + "@emotion/weak-memoize": ^0.2.5 + stylis: 4.0.13 + checksum: 6e0aab2fa5b9b6b0b9bf66b5328ed44265c23ced16b46c13d2602c3497fabd95299f6cf2c87cbc02b630452aa3cff599c194c538125d744aa135824129698ccc + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.8.0": version: 0.8.0 - resolution: "@cspotcode/source-map-consumer@npm:0.8.0" - checksum: c0c16ca3d2f58898f1bd74c4f41a189dbcc202e642e60e489cbcc2e52419c4e89bdead02c886a12fb13ea37798ede9e562b2321df997ebc210ae9bd881561b4e + resolution: "@emotion/hash@npm:0.8.0" + checksum: 4b35d88a97e67275c1d990c96d3b0450451d089d1508619488fc0acb882cb1ac91e93246d471346ebd1b5402215941ef4162efe5b51534859b39d8b3a0e3ffaa + languageName: node + linkType: hard + +"@emotion/is-prop-valid@npm:^1.1.3": + version: 1.1.3 + resolution: "@emotion/is-prop-valid@npm:1.1.3" + dependencies: + "@emotion/memoize": ^0.7.4 + checksum: 511997c3bbaab5a967db65b65a111afc46c4aac8b3b87a436fd9e3dc2891829a9ada1405b77326f407d93934ee3b831e62248b498c071089312c5be080af75dd + languageName: node + linkType: hard + +"@emotion/memoize@npm:^0.7.4, @emotion/memoize@npm:^0.7.5": + version: 0.7.5 + resolution: "@emotion/memoize@npm:0.7.5" + checksum: 83da8d4a7649a92c72f960817692bc6be13cc13e107b9f7e878d63766525ed4402881bfeb3cda61145c050281e7e260f114a0a2870515527346f2ef896b915b3 languageName: node linkType: hard -"@cspotcode/source-map-support@npm:0.7.0": - version: 0.7.0 - resolution: "@cspotcode/source-map-support@npm:0.7.0" +"@emotion/react@npm:^11.9.3": + version: 11.9.3 + resolution: "@emotion/react@npm:11.9.3" + dependencies: + "@babel/runtime": ^7.13.10 + "@emotion/babel-plugin": ^11.7.1 + "@emotion/cache": ^11.9.3 + "@emotion/serialize": ^1.0.4 + "@emotion/utils": ^1.1.0 + "@emotion/weak-memoize": ^0.2.5 + hoist-non-react-statics: ^3.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@babel/core": + optional: true + "@types/react": + optional: true + checksum: 19bc7205e85e87cadebbe5a926d45103b836af70ab6972ea4c333c8dd01b463fc9646d4e4097a36f145a05dd4bc388739667437b990f8cf7f7f925f9610d1aa8 + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.0.2, @emotion/serialize@npm:^1.0.4": + version: 1.0.4 + resolution: "@emotion/serialize@npm:1.0.4" dependencies: - "@cspotcode/source-map-consumer": 0.8.0 - checksum: 9faddda7757cd778b5fd6812137b2cc265810043680d6399acc20441668fafcdc874053be9dccd0d9110087287bfad27eb3bf342f72bceca9aa9059f5d0c4be8 + "@emotion/hash": ^0.8.0 + "@emotion/memoize": ^0.7.4 + "@emotion/unitless": ^0.7.5 + "@emotion/utils": ^1.0.0 + csstype: ^3.0.2 + checksum: e8cc342056734e176ea837fe44035126dea174962db40852a7ced499d258c0056b0fd3c298743c446f9ba0f2647cb42dfb623b8e5783c265deb9eb20138d68e7 + languageName: node + linkType: hard + +"@emotion/sheet@npm:^1.1.1": + version: 1.1.1 + resolution: "@emotion/sheet@npm:1.1.1" + checksum: b916ac665735ef6dfda26b09f2d3493789d432d649733db9da18c4db0115e7fdadeb8d45f6490320248916bb13d978bba74c914b711ac96f659b76a5e52d5cd2 + languageName: node + linkType: hard + +"@emotion/styled@npm:^11.9.3": + version: 11.9.3 + resolution: "@emotion/styled@npm:11.9.3" + dependencies: + "@babel/runtime": ^7.13.10 + "@emotion/babel-plugin": ^11.7.1 + "@emotion/is-prop-valid": ^1.1.3 + "@emotion/serialize": ^1.0.4 + "@emotion/utils": ^1.1.0 + peerDependencies: + "@babel/core": ^7.0.0 + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@babel/core": + optional: true + "@types/react": + optional: true + checksum: 16d9ef8c5840b13ec47f91f9963b64ec8a94197fe99bb3bd4e9f7404a09bb65a333e9ab6590af97c0090360816db70e8c920731198c3a30fbb2c2cfd5e8d8a65 + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.7.5": + version: 0.7.5 + resolution: "@emotion/unitless@npm:0.7.5" + checksum: f976e5345b53fae9414a7b2e7a949aa6b52f8bdbcc84458b1ddc0729e77ba1d1dfdff9960e0da60183877873d3a631fa24d9695dd714ed94bcd3ba5196586a6b + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.0.0, @emotion/utils@npm:^1.1.0": + version: 1.1.0 + resolution: "@emotion/utils@npm:1.1.0" + checksum: d3b681ca3a23b07033ac6c6937e71010a5549ac8ccec325eb6c91a7e48d9a73db83fa5dadc58be981bb125d7c00fedca868ea4362b1da9e02866615f96be4df1 + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.2.5": + version: 0.2.5 + resolution: "@emotion/weak-memoize@npm:0.2.5" + checksum: 27d402b0c683b94658220b6d47840346ee582329ca2a15ec9c233492e0f1a27687ccb233b76eedc922f2e185e444cc89f7b97a81a1d3e5ae9f075bab08e965ea languageName: node linkType: hard @@ -66,6 +339,329 @@ __metadata: languageName: node linkType: hard +"@material-ui/types@npm:^4.0.0": + version: 4.1.1 + resolution: "@material-ui/types@npm:4.1.1" + dependencies: + "@types/react": "*" + checksum: 987a4ae1848b25ca14d644fa59d4c5ba46b5f1900318930b48bcc63b92b12757cc4413c8e50d3e7660c39b2f44653ce831f818cb648bac3836f14b7de8193e3e + languageName: node + linkType: hard + +"@mui/base@npm:5.0.0-alpha.91": + version: 5.0.0-alpha.91 + resolution: "@mui/base@npm:5.0.0-alpha.91" + dependencies: + "@babel/runtime": ^7.17.2 + "@emotion/is-prop-valid": ^1.1.3 + "@mui/types": ^7.1.5 + "@mui/utils": ^5.9.1 + "@popperjs/core": ^2.11.5 + clsx: ^1.2.1 + prop-types: ^15.8.1 + react-is: ^18.2.0 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 12c6b398f32725de8b2a1944dd893c9412f090bd3173e67f20edfce0888c7de9ce2cc81923440a23f46ea37ef77f21088be88a7d222d95ca5063cbf4846cf256 + languageName: node + linkType: hard + +"@mui/icons-material@npm:^5.8.4": + version: 5.8.4 + resolution: "@mui/icons-material@npm:5.8.4" + dependencies: + "@babel/runtime": ^7.17.2 + peerDependencies: + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 1df0ffb08670628968b803c7048fc645df5e2870860759626d80a355fdef62498e60e4ebed2d47ca8b3600e6ecb6db1829bec5acf3a766ff41e518007c7e2f5b + languageName: node + linkType: hard + +"@mui/material@npm:^5.9.2": + version: 5.9.2 + resolution: "@mui/material@npm:5.9.2" + dependencies: + "@babel/runtime": ^7.17.2 + "@mui/base": 5.0.0-alpha.91 + "@mui/system": ^5.9.2 + "@mui/types": ^7.1.5 + "@mui/utils": ^5.9.1 + "@types/react-transition-group": ^4.4.5 + clsx: ^1.2.1 + csstype: ^3.1.0 + prop-types: ^15.8.1 + react-is: ^18.2.0 + react-transition-group: ^4.4.2 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 50c21c730e3da9f1ba544b3c75747e8b3cb4726b22950043106ecc9aabd1f9e3e137fac5ea90c46c358207755385d9f9f6754cf2512544b332dd9cac982d6da3 + languageName: node + linkType: hard + +"@mui/private-theming@npm:^5.9.1": + version: 5.9.1 + resolution: "@mui/private-theming@npm:5.9.1" + dependencies: + "@babel/runtime": ^7.17.2 + "@mui/utils": ^5.9.1 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 98684e5992dcd915f1f518d07dc61e8d4b4b442be3838e87c246da38959e613e2dbf07c4316f21600738aa2b4cc97a1cca591b2680a2c601ef2972161810af28 + languageName: node + linkType: hard + +"@mui/styled-engine@npm:^5.8.7": + version: 5.8.7 + resolution: "@mui/styled-engine@npm:5.8.7" + dependencies: + "@babel/runtime": ^7.17.2 + "@emotion/cache": ^11.9.3 + csstype: ^3.1.0 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: b350758d8a117b37eb109c9d81e2aa0f2ca38269ca7e22744ea7f85aa6dda1139792b9ec1223a5ee2fa54f4897a093a63b8bb3db190824a5887678babe7bc898 + languageName: node + linkType: hard + +"@mui/system@npm:^5.9.2": + version: 5.9.2 + resolution: "@mui/system@npm:5.9.2" + dependencies: + "@babel/runtime": ^7.17.2 + "@mui/private-theming": ^5.9.1 + "@mui/styled-engine": ^5.8.7 + "@mui/types": ^7.1.5 + "@mui/utils": ^5.9.1 + clsx: ^1.2.1 + csstype: ^3.1.0 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 9d0ebb98bf0023ba38a18331d73d2b518d6f0b85decbe94afbd508435db2ab86c2fc5b4df61261465078e6a0ac3dcbb975c2af8c998886b9201e27fa76ef2d1c + languageName: node + linkType: hard + +"@mui/types@npm:^7.1.5": + version: 7.1.5 + resolution: "@mui/types@npm:7.1.5" + peerDependencies: + "@types/react": "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ce866083bfaef7c2231077b7d5db3db20e2a9b17758e4337aeac12bbae2063ea15b95f8384661dd4f260c51e6dfb098a0f768bf26daaad91e7e1233f794191f0 + languageName: node + linkType: hard + +"@mui/utils@npm:^5.4.1, @mui/utils@npm:^5.9.1": + version: 5.9.1 + resolution: "@mui/utils@npm:5.9.1" + dependencies: + "@babel/runtime": ^7.17.2 + "@types/prop-types": ^15.7.5 + "@types/react-is": ^16.7.1 || ^17.0.0 + prop-types: ^15.8.1 + react-is: ^18.2.0 + peerDependencies: + react: ^17.0.0 || ^18.0.0 + checksum: efd604249ab19a3203df0677ab6f2781de747dcd7d09097a32c20bee08a9b70a8f97834dc6e1e1cf49178b1cfd2a83c5ae030d0c2ec33d200d5ea2b509069bbb + languageName: node + linkType: hard + +"@mui/x-date-pickers@npm:^5.0.0-beta.3": + version: 5.0.0-beta.3 + resolution: "@mui/x-date-pickers@npm:5.0.0-beta.3" + dependencies: + "@babel/runtime": ^7.18.6 + "@date-io/core": ^2.14.0 + "@date-io/date-fns": ^2.14.0 + "@date-io/dayjs": ^2.14.0 + "@date-io/luxon": ^2.14.0 + "@date-io/moment": ^2.14.0 + "@mui/utils": ^5.4.1 + "@types/react-transition-group": ^4.4.5 + clsx: ^1.2.1 + prop-types: ^15.7.2 + react-transition-group: ^4.4.2 + rifm: ^0.12.1 + peerDependencies: + "@emotion/react": ^11.9.0 + "@emotion/styled": ^11.8.1 + "@mui/material": ^5.4.1 + "@mui/system": ^5.4.1 + date-fns: ^2.25.0 + dayjs: ^1.10.7 + luxon: ^1.28.0 || ^2.0.0 || ^3.0.0 + moment: ^2.29.1 + react: ^17.0.2 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + checksum: 59ee61be98c9265cfcbace053d879a4d1a755583cc5bef16530d102db56029a825df577283c6977958a342b1f7354b17b3cb4ebc95ac4b4ba1cb9a6f808ab121 + languageName: node + linkType: hard + +"@next/env@npm:12.2.3": + version: 12.2.3 + resolution: "@next/env@npm:12.2.3" + checksum: e96dcbea3fbb3d6b6a0799fe2e41c4929ded383659709f5bd00b6479b0711b89891b72fb28753b428933871d5fd91792fa54bc64a74a038c704b5862d40821ec + languageName: node + linkType: hard + +"@next/eslint-plugin-next@npm:^12.2.4": + version: 12.2.4 + resolution: "@next/eslint-plugin-next@npm:12.2.4" + dependencies: + glob: 7.1.7 + checksum: c8320cb62dd22070679996f8df9c34fd76fd76fbb2215f26df51c498b73a0cb9e1aeb55abb1cf9afcffcf3571115a0ac351dcce7d6636d4abd1be96516eb2cbb + languageName: node + linkType: hard + +"@next/swc-android-arm-eabi@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-android-arm-eabi@npm:12.2.3" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@next/swc-android-arm64@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-android-arm64@npm:12.2.3" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-darwin-arm64@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-darwin-arm64@npm:12.2.3" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-darwin-x64@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-darwin-x64@npm:12.2.3" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@next/swc-freebsd-x64@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-freebsd-x64@npm:12.2.3" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@next/swc-linux-arm-gnueabihf@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-linux-arm-gnueabihf@npm:12.2.3" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@next/swc-linux-arm64-gnu@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-linux-arm64-gnu@npm:12.2.3" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@next/swc-linux-arm64-musl@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-linux-arm64-musl@npm:12.2.3" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@next/swc-linux-x64-gnu@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-linux-x64-gnu@npm:12.2.3" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@next/swc-linux-x64-musl@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-linux-x64-musl@npm:12.2.3" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@next/swc-win32-arm64-msvc@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-win32-arm64-msvc@npm:12.2.3" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@next/swc-win32-ia32-msvc@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-win32-ia32-msvc@npm:12.2.3" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@next/swc-win32-x64-msvc@npm:12.2.3": + version: 12.2.3 + resolution: "@next/swc-win32-x64-msvc@npm:12.2.3" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -93,31 +689,26 @@ __metadata: languageName: node linkType: hard -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.8 - resolution: "@tsconfig/node10@npm:1.0.8" - checksum: b8d5fffbc6b17ef64ef74f7fdbccee02a809a063ade785c3648dae59406bc207f70ea2c4296f92749b33019fa36a5ae716e42e49cc7f1bbf0fd147be0d6b970a +"@popperjs/core@npm:^2.11.5": + version: 2.11.5 + resolution: "@popperjs/core@npm:2.11.5" + checksum: fd7f9dca3fb716d7426332b6ee283f88d2724c0ab342fb678865a640bad403dfb9eeebd8204a406986162f7e2b33394f104320008b74d0e9066d7322f70ea35d languageName: node linkType: hard -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node12@npm:1.0.9" - checksum: a01b2400ab3582b86b589c6d31dcd0c0656f333adecde85d6d7d4086adb059808b82692380bb169546d189bf771ae21d02544a75b57bd6da4a5dd95f8567bec9 +"@swc/helpers@npm:0.4.3": + version: 0.4.3 + resolution: "@swc/helpers@npm:0.4.3" + dependencies: + tslib: ^2.4.0 + checksum: 5c2f173e950dd3929d84ae48b3586a274d5a874e7cf2013b3d8081e4f8c723fa3a4d4e63b263e84bb7f06431f87b640e91a12655410463c81a3dc2bbc15eceda languageName: node linkType: hard -"@tsconfig/node14@npm:^1.0.0": +"@tsconfig/strictest@npm:^1.0.1": version: 1.0.1 - resolution: "@tsconfig/node14@npm:1.0.1" - checksum: 976345e896c0f059867f94f8d0f6ddb8b1844fb62bf36b727de8a9a68f024857e5db97ed51d3325e23e0616a5e48c034ff51a8d595b3fe7e955f3587540489be - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.2 - resolution: "@tsconfig/node16@npm:1.0.2" - checksum: ca94d3639714672bbfd55f03521d3f56bb6a25479bd425da81faf21f13e1e9d15f40f97377dedbbf477a5841c5b0c8f4cd1b391f33553d750b9202c54c2c07aa + resolution: "@tsconfig/strictest@npm:1.0.1" + checksum: 608399038a9d798de675c08d5c31c002b5e0c0734127a679b7dfa6d7cf2510295ba6c9d59a96efdec969ec3585cf164232d46fea09b7dc9fe6c5bd85333743c0 languageName: node linkType: hard @@ -142,6 +733,85 @@ __metadata: languageName: node linkType: hard +"@types/parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "@types/parse-json@npm:4.0.0" + checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b + languageName: node + linkType: hard + +"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.5": + version: 15.7.5 + resolution: "@types/prop-types@npm:15.7.5" + checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.0.6": + version: 18.0.6 + resolution: "@types/react-dom@npm:18.0.6" + dependencies: + "@types/react": "*" + checksum: db571047af1a567631758700b9f7d143e566df939cfe5fbf7535347cc0c726a1cdbb5e3f8566d076e54cf708b6c1166689de194a9ba09ee35efc9e1d45911685 + languageName: node + linkType: hard + +"@types/react-is@npm:^16.7.1 || ^17.0.0": + version: 17.0.3 + resolution: "@types/react-is@npm:17.0.3" + dependencies: + "@types/react": "*" + checksum: 6abb7c47d54f012272650df8a962a28bd82f219291e5ef8b4dfa7fe0bb98ae243b060bf9fbe8ceff6213141794855a006db194b490b00ffd15842ae19d0ce1f0 + languageName: node + linkType: hard + +"@types/react-swipeable-views-utils@npm:^0.13.3": + version: 0.13.3 + resolution: "@types/react-swipeable-views-utils@npm:0.13.3" + dependencies: + "@material-ui/types": ^4.0.0 + "@types/react": "*" + "@types/react-swipeable-views": "*" + checksum: 6ac25780701839b8a9d8b3f9e6fb72a5baeab26d294f94ff8b5cb6a2dbeb80ffa39b06812e2603f3ece17aaff8e7249cae9e14f56e68f36d6b84871bc6480938 + languageName: node + linkType: hard + +"@types/react-swipeable-views@npm:*, @types/react-swipeable-views@npm:^0.13.1": + version: 0.13.1 + resolution: "@types/react-swipeable-views@npm:0.13.1" + dependencies: + "@types/react": "*" + checksum: 47908514a541d40c454b09c3eb47e6bbe55742c37e88181b412052297941191d08b1fc0ec176b6c886bb3f22a8d66aff9bdeb2c26496c6335a7579e9aea02302 + languageName: node + linkType: hard + +"@types/react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "@types/react-transition-group@npm:4.4.5" + dependencies: + "@types/react": "*" + checksum: 265f1c74061556708ffe8d15559e35c60d6c11478c9950d3735575d2c116ca69f461d85effa06d73a613eb8b73c84fd32682feb57cf7c5f9e4284021dbca25b0 + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^18.0.15": + version: 18.0.15 + resolution: "@types/react@npm:18.0.15" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: e22cc388d1c145aa184787e44dc28db4789976c704cd5db475c170bb76a560eb81def5f346cfe750949bb3d43ad88822b8cbb9f19b1286e3795892a8263e7715 + languageName: node + linkType: hard + +"@types/scheduler@npm:*": + version: 0.16.2 + resolution: "@types/scheduler@npm:0.16.2" + checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.17.0": version: 5.23.0 resolution: "@typescript-eslint/eslint-plugin@npm:5.23.0" @@ -268,14 +938,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 - languageName: node - linkType: hard - -"acorn@npm:^8.4.1, acorn@npm:^8.7.1": +"acorn@npm:^8.7.1": version: 8.7.1 resolution: "acorn@npm:8.7.1" bin: @@ -329,6 +992,15 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -345,13 +1017,6 @@ __metadata: languageName: node linkType: hard -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 - languageName: node - linkType: hard - "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -398,6 +1063,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-macros@npm:^2.6.1": + version: 2.8.0 + resolution: "babel-plugin-macros@npm:2.8.0" + dependencies: + "@babel/runtime": ^7.7.2 + cosmiconfig: ^6.0.0 + resolve: ^1.12.0 + checksum: 59b09a21cf3ae1e14186c1b021917d004b49b953824b24953a54c6502da79e8051d4ac31cfd4a0ae7f6ea5ddf1f7edd93df4895dd3c3982a5b2431859c2889ac + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -441,6 +1117,24 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001332": + version: 1.0.30001370 + resolution: "caniuse-lite@npm:1.0.30001370" + checksum: 28e1fd4d623a52945220b189b703556178ec8a185d317e4ae2557a24f68f88bd8168db67700970164690dbf7d29df69efbd318b54457b335a4361314bb530792 + languageName: node + linkType: hard + +"chalk@npm:^2.0.0": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + "chalk@npm:^4.0.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -487,6 +1181,22 @@ __metadata: languageName: node linkType: hard +"clsx@npm:^1.2.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -496,6 +1206,13 @@ __metadata: languageName: node linkType: hard +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -524,10 +1241,25 @@ __metadata: languageName: node linkType: hard -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff +"convert-source-map@npm:^1.5.0": + version: 1.8.0 + resolution: "convert-source-map@npm:1.8.0" + dependencies: + safe-buffer: ~5.1.1 + checksum: 985d974a2d33e1a2543ada51c93e1ba2f73eaed608dc39f229afc78f71dcc4c8b7d7c684aa647e3c6a3a204027444d69e53e169ce94e8d1fa8d7dee80c9c8fed + languageName: node + linkType: hard + +"cosmiconfig@npm:^6.0.0": + version: 6.0.0 + resolution: "cosmiconfig@npm:6.0.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.7.2 + checksum: 8eed7c854b91643ecb820767d0deb038b50780ecc3d53b0b19e03ed8aabed4ae77271198d1ae3d49c3b110867edf679f5faad924820a8d1774144a87cb6f98fc languageName: node linkType: hard @@ -542,6 +1274,20 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.0.2, csstype@npm:^3.1.0": + version: 3.1.0 + resolution: "csstype@npm:3.1.0" + checksum: 644e986cefab86525f0b674a06889cfdbb1f117e5b7d1ce0fc55b0423ecc58807a1ea42ecc75c4f18999d14fc42d1d255f84662a45003a52bb5840e977eb2ffd + languageName: node + linkType: hard + +"date-fns@npm:^2.29.1": + version: 2.29.1 + resolution: "date-fns@npm:2.29.1" + checksum: 9d07f77dffc1eb8c213391bde39f2963ffe7c0019d9edde14487882d627224f3a39b963e6e99d0cc58afff220a6a1a7e8864d2789958f4eaa77714de94d4d076 + languageName: node + linkType: hard + "debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" @@ -589,13 +1335,6 @@ __metadata: languageName: node linkType: hard -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d - languageName: node - linkType: hard - "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -623,6 +1362,16 @@ __metadata: languageName: node linkType: hard +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": ^7.8.7 + csstype: ^3.0.2 + checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -644,6 +1393,15 @@ __metadata: languageName: node linkType: hard +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + "es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1, es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5": version: 1.20.0 resolution: "es-abstract@npm:1.20.0" @@ -695,6 +1453,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -1012,6 +1777,13 @@ __metadata: languageName: node linkType: hard +"find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf + languageName: node + linkType: hard + "find-up@npm:^2.1.0": version: 2.1.0 resolution: "find-up@npm:2.1.0" @@ -1124,6 +1896,20 @@ __metadata: languageName: node linkType: hard +"glob@npm:7.1.7": + version: 7.1.7 + resolution: "glob@npm:7.1.7" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.0.4 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: b61f48973bbdcf5159997b0874a2165db572b368b931135832599875919c237fc05c12984e38fe828e69aa8a921eb0e8a4997266211c517c9cfaae8a93988bb8 + languageName: node + linkType: hard + "glob@npm:^7.1.3, glob@npm:^7.2.0": version: 7.2.2 resolution: "glob@npm:7.2.2" @@ -1168,6 +1954,13 @@ __metadata: languageName: node linkType: hard +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -1209,6 +2002,15 @@ __metadata: languageName: node linkType: hard +"hoist-non-react-statics@npm:^3.3.1": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + languageName: node + linkType: hard + "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -1239,7 +2041,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -1291,6 +2093,13 @@ __metadata: languageName: node linkType: hard +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -1317,7 +2126,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": version: 2.9.0 resolution: "is-core-module@npm:2.9.0" dependencies: @@ -1448,6 +2257,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -1466,6 +2282,13 @@ __metadata: languageName: node linkType: hard +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -1491,6 +2314,13 @@ __metadata: languageName: node linkType: hard +"keycode@npm:^2.1.7": + version: 2.2.1 + resolution: "keycode@npm:2.2.1" + checksum: 7a5c775b2410a3b6d9c07a415ecb70639187a965be239d2c11c71079cb1ca2f9dede94b86426f3ece475dc8ae3debf2367531bbcafc0af8c82f157d9a4f7e6cb + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -1508,6 +2338,13 @@ __metadata: languageName: node linkType: hard +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + "lint-staged@npm:^12.3.7": version: 12.4.1 resolution: "lint-staged@npm:12.4.1" @@ -1582,6 +2419,17 @@ __metadata: languageName: node linkType: hard +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -1591,13 +2439,6 @@ __metadata: languageName: node linkType: hard -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 - languageName: node - linkType: hard - "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -1666,6 +2507,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.4": + version: 3.3.4 + resolution: "nanoid@npm:3.3.4" + bin: + nanoid: bin/nanoid.cjs + checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -1673,6 +2523,75 @@ __metadata: languageName: node linkType: hard +"next@npm:^12.2.3": + version: 12.2.3 + resolution: "next@npm:12.2.3" + dependencies: + "@next/env": 12.2.3 + "@next/swc-android-arm-eabi": 12.2.3 + "@next/swc-android-arm64": 12.2.3 + "@next/swc-darwin-arm64": 12.2.3 + "@next/swc-darwin-x64": 12.2.3 + "@next/swc-freebsd-x64": 12.2.3 + "@next/swc-linux-arm-gnueabihf": 12.2.3 + "@next/swc-linux-arm64-gnu": 12.2.3 + "@next/swc-linux-arm64-musl": 12.2.3 + "@next/swc-linux-x64-gnu": 12.2.3 + "@next/swc-linux-x64-musl": 12.2.3 + "@next/swc-win32-arm64-msvc": 12.2.3 + "@next/swc-win32-ia32-msvc": 12.2.3 + "@next/swc-win32-x64-msvc": 12.2.3 + "@swc/helpers": 0.4.3 + caniuse-lite: ^1.0.30001332 + postcss: 8.4.14 + styled-jsx: 5.0.2 + use-sync-external-store: 1.2.0 + peerDependencies: + fibers: ">= 3.1.0" + node-sass: ^6.0.0 || ^7.0.0 + react: ^17.0.2 || ^18.0.0-0 + react-dom: ^17.0.2 || ^18.0.0-0 + sass: ^1.3.0 + dependenciesMeta: + "@next/swc-android-arm-eabi": + optional: true + "@next/swc-android-arm64": + optional: true + "@next/swc-darwin-arm64": + optional: true + "@next/swc-darwin-x64": + optional: true + "@next/swc-freebsd-x64": + optional: true + "@next/swc-linux-arm-gnueabihf": + optional: true + "@next/swc-linux-arm64-gnu": + optional: true + "@next/swc-linux-arm64-musl": + optional: true + "@next/swc-linux-x64-gnu": + optional: true + "@next/swc-linux-x64-musl": + optional: true + "@next/swc-win32-arm64-msvc": + optional: true + "@next/swc-win32-ia32-msvc": + optional: true + "@next/swc-win32-x64-msvc": + optional: true + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + bin: + next: dist/bin/next + checksum: b13b42fbb327adca51abeef68aca4b31c82297f07eb3a12d31a3bf2c1aa9ca34cf1ab41bc2b9f4d3162623e70a1ddf230da39fd3ce241b1eea113a4a010a11fd + languageName: node + linkType: hard + "normalize-path@npm:^3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" @@ -1689,6 +2608,13 @@ __metadata: languageName: node linkType: hard +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + "object-inspect@npm:^1.12.0, object-inspect@npm:^1.9.0": version: 1.12.0 resolution: "object-inspect@npm:1.12.0" @@ -1801,6 +2727,18 @@ __metadata: languageName: node linkType: hard +"parse-json@npm:^5.0.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": ^7.0.0 + error-ex: ^1.3.1 + json-parse-even-better-errors: ^2.3.0 + lines-and-columns: ^1.1.6 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -1836,6 +2774,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + "picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -1852,6 +2797,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:8.4.14": + version: 8.4.14 + resolution: "postcss@npm:8.4.14" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: fe58766ff32e4becf65a7d57678995cfd239df6deed2fe0557f038b47c94e4132e7e5f68b5aa820c13adfec32e523b693efaeb65798efb995ce49ccd83953816 + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -1868,6 +2824,17 @@ __metadata: languageName: node linkType: hard +"prop-types@npm:^15.5.4, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.1.1 resolution: "punycode@npm:2.1.1" @@ -1882,6 +2849,122 @@ __metadata: languageName: node linkType: hard +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + +"react-event-listener@npm:^0.6.0": + version: 0.6.6 + resolution: "react-event-listener@npm:0.6.6" + dependencies: + "@babel/runtime": ^7.2.0 + prop-types: ^15.6.0 + warning: ^4.0.1 + peerDependencies: + react: ^16.3.0 + checksum: 0287e0ae8cbf0a4c03889ffc2b745f5494b3edea0f4667357d709f5646dd78c7289ce305b6f473ec6ac5789f8a937c86b7e543d0249f0bf787bccdb1eab7ecd0 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-is@npm:^18.2.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + languageName: node + linkType: hard + +"react-swipeable-views-core@npm:^0.14.0": + version: 0.14.0 + resolution: "react-swipeable-views-core@npm:0.14.0" + dependencies: + "@babel/runtime": 7.0.0 + warning: ^4.0.1 + checksum: 7683bcb809b57d502603396d8560677105b5af1f4db3ecad6cef03a548ae45462af78156516f8fe2f32d36b1bbd295ed2aab49f0d967ac077b3bd902697bfb07 + languageName: node + linkType: hard + +"react-swipeable-views-utils@npm:^0.14.0": + version: 0.14.0 + resolution: "react-swipeable-views-utils@npm:0.14.0" + dependencies: + "@babel/runtime": 7.0.0 + keycode: ^2.1.7 + prop-types: ^15.6.0 + react-event-listener: ^0.6.0 + react-swipeable-views-core: ^0.14.0 + shallow-equal: ^1.2.1 + checksum: 560f3f1000254adfe7ba2c82c133dbd26404a3cfa05794e15eb090056c13f3494aa61f34e133d5e2c970a2eb797a0f55fd8a9bb3bbd85c78770c11912a26b9bb + languageName: node + linkType: hard + +"react-swipeable-views@npm:^0.14.0": + version: 0.14.0 + resolution: "react-swipeable-views@npm:0.14.0" + dependencies: + "@babel/runtime": 7.0.0 + prop-types: ^15.5.4 + react-swipeable-views-core: ^0.14.0 + react-swipeable-views-utils: ^0.14.0 + warning: ^4.0.1 + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 + checksum: 477bcf2d6b88312cd74c069c23aff48983209ce74b8d10c0d6adabf00795735f55a9c12dc3f23e5d7168308959f18c178d486821abec02e8a562295eada3568b + languageName: node + linkType: hard + +"react-transition-group@npm:^4.4.2": + version: 4.4.2 + resolution: "react-transition-group@npm:4.4.2" + dependencies: + "@babel/runtime": ^7.5.5 + dom-helpers: ^5.0.1 + loose-envify: ^1.4.0 + prop-types: ^15.6.2 + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: b67bf5b3e86dbab72d658b9a52a3589e5960583ab28c7c66272427d8fe30d4c7de422d5046ae96bd2683cdf80cc3264b2516f5ce80cae1dbe6cf3ca6dda392c5 + languageName: node + linkType: hard + +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.12.0": + version: 0.12.1 + resolution: "regenerator-runtime@npm:0.12.1" + checksum: 348c401336bcebe2be17fd4f24c5b0a1ed75bff3024dc817a69cdc776b48b98c7f6f3b98e1baa4220569440bb9215e1fff3dcb01c8aad3ff2ed3732e30d017bf + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.13.4": + version: 0.13.9 + resolution: "regenerator-runtime@npm:0.13.9" + checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.4.1": version: 1.4.3 resolution: "regexp.prototype.flags@npm:1.4.3" @@ -1907,6 +2990,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.12.0": + version: 1.22.1 + resolution: "resolve@npm:1.22.1" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e + languageName: node + linkType: hard + "resolve@npm:^1.20.0, resolve@npm:^1.22.0": version: 1.22.0 resolution: "resolve@npm:1.22.0" @@ -1920,6 +3016,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^1.12.0#~builtin<compat/resolve>": + version: 1.22.1 + resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b + languageName: node + linkType: hard + "resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.0#~builtin<compat/resolve>": version: 1.22.0 resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin<compat/resolve>::version=1.22.0&hash=07638b" @@ -1957,6 +3066,15 @@ __metadata: languageName: node linkType: hard +"rifm@npm:^0.12.1": + version: 0.12.1 + resolution: "rifm@npm:0.12.1" + peerDependencies: + react: ">=16.8" + checksum: 7f11621b6a14885bdee0b49c21174627272a5f683f74aaf8444570dae319f86de38d2af55c17e08af1ebb837bf956894971cceadeaca890e4c9cd1d46f02a385 + languageName: node + linkType: hard + "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -1986,6 +3104,22 @@ __metadata: languageName: node linkType: hard +"safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c + languageName: node + linkType: hard + +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + "semver@npm:^7.3.5": version: 7.3.7 resolution: "semver@npm:7.3.7" @@ -1997,6 +3131,13 @@ __metadata: languageName: node linkType: hard +"shallow-equal@npm:^1.2.1": + version: 1.2.1 + resolution: "shallow-equal@npm:1.2.1" + checksum: 4f1645cc516e7754c4438db687e1da439a5f29a7dba2ba90c5f88e5708aeb17bc4355ba45cad805b0e95dc898e37d8bf6d77d854919c7512f89939986cff8cd1 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -2070,6 +3211,20 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + "string-argv@npm:^0.3.1": version: 0.3.1 resolution: "string-argv@npm:0.3.1" @@ -2160,6 +3315,36 @@ __metadata: languageName: node linkType: hard +"styled-jsx@npm:5.0.2": + version: 5.0.2 + resolution: "styled-jsx@npm:5.0.2" + peerDependencies: + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" + peerDependenciesMeta: + "@babel/core": + optional: true + babel-plugin-macros: + optional: true + checksum: 86d55819ebeabd283a574d2f44f7d3f8fa6b8c28fa41687ece161bf1e910e04965611618921d8f5cd33dc6dae1033b926a70421ae5ea045440a9861edc3e0d87 + languageName: node + linkType: hard + +"stylis@npm:4.0.13": + version: 4.0.13 + resolution: "stylis@npm:4.0.13" + checksum: 8ea7a87028b6383c6a982231c4b5b6150031ce028e0fdaf7b2ace82253d28a8af50cc5a9da8a421d3c7c4441592f393086e332795add672aa4a825f0fe3713a3 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -2197,6 +3382,52 @@ __metadata: languageName: node linkType: hard +"timetable-app@workspace:.": + version: 0.0.0-use.local + resolution: "timetable-app@workspace:." + dependencies: + "@date-io/date-fns": ^2.14.0 + "@emotion/react": ^11.9.3 + "@emotion/styled": ^11.9.3 + "@js-temporal/polyfill": ^0.4.1 + "@mui/icons-material": ^5.8.4 + "@mui/material": ^5.9.2 + "@mui/x-date-pickers": ^5.0.0-beta.3 + "@next/eslint-plugin-next": ^12.2.4 + "@tsconfig/strictest": ^1.0.1 + "@types/node": ^17.0.33 + "@types/react": ^18.0.15 + "@types/react-dom": ^18.0.6 + "@types/react-swipeable-views": ^0.13.1 + "@types/react-swipeable-views-utils": ^0.13.3 + "@typescript-eslint/eslint-plugin": ^5.17.0 + "@typescript-eslint/parser": ^5.17.0 + date-fns: ^2.29.1 + eslint: ^8.12.0 + eslint-config-prettier: ^8.5.0 + eslint-import-resolver-typescript: ^2.7.0 + eslint-plugin-import: ^2.25.4 + eslint-plugin-unused-imports: ^2.0.0 + husky: ^7.0.4 + immutable: ^4.0.0 + lint-staged: ^12.3.7 + next: ^12.2.3 + prettier: ^2.6.1 + react: ^18.2.0 + react-dom: ^18.2.0 + react-swipeable-views: ^0.14.0 + react-swipeable-views-utils: ^0.14.0 + typescript: ^4.6.3 + languageName: unknown + linkType: soft + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -2206,44 +3437,6 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.7.0": - version: 10.7.0 - resolution: "ts-node@npm:10.7.0" - dependencies: - "@cspotcode/source-map-support": 0.7.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.0 - yn: 3.1.1 - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 2a379e43f7478d0b79e1e63af91fe222d83857727957df4bd3bdf3c0a884de5097b12feb9bbf530074526b8874c0338b0e6328cf334f3a5e2c49c71e837273f7 - languageName: node - linkType: hard - "tsconfig-paths@npm:^3.14.1": version: 3.14.1 resolution: "tsconfig-paths@npm:3.14.1" @@ -2263,7 +3456,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0, tslib@npm:^2.3.1": +"tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0": version: 2.4.0 resolution: "tslib@npm:2.4.0" checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 @@ -2304,28 +3497,6 @@ __metadata: languageName: node linkType: hard -"typescript-template@workspace:.": - version: 0.0.0-use.local - resolution: "typescript-template@workspace:." - dependencies: - "@js-temporal/polyfill": ^0.4.1 - "@types/node": ^17.0.33 - "@typescript-eslint/eslint-plugin": ^5.17.0 - "@typescript-eslint/parser": ^5.17.0 - eslint: ^8.12.0 - eslint-config-prettier: ^8.5.0 - eslint-import-resolver-typescript: ^2.7.0 - eslint-plugin-import: ^2.25.4 - eslint-plugin-unused-imports: ^2.0.0 - husky: ^7.0.4 - immutable: ^4.0.0 - lint-staged: ^12.3.7 - prettier: ^2.6.1 - ts-node: ^10.7.0 - typescript: ^4.6.3 - languageName: unknown - linkType: soft - "typescript@npm:^4.6.3": version: 4.6.4 resolution: "typescript@npm:4.6.4" @@ -2367,10 +3538,12 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache-lib@npm:^3.0.0": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 +"use-sync-external-store@npm:1.2.0": + version: 1.2.0 + resolution: "use-sync-external-store@npm:1.2.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 5c639e0f8da3521d605f59ce5be9e094ca772bd44a4ce7322b055a6f58eeed8dda3c94cabd90c7a41fb6fa852210092008afe48f7038792fd47501f33299116a languageName: node linkType: hard @@ -2381,6 +3554,15 @@ __metadata: languageName: node linkType: hard +"warning@npm:^4.0.1": + version: 4.0.3 + resolution: "warning@npm:4.0.3" + dependencies: + loose-envify: ^1.0.0 + checksum: 4f2cb6a9575e4faf71ddad9ad1ae7a00d0a75d24521c193fa464f30e6b04027bd97aa5d9546b0e13d3a150ab402eda216d59c1d0f2d6ca60124d96cd40dfa35c + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -2448,16 +3630,9 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^1.10.2": +"yaml@npm:^1.10.2, yaml@npm:^1.7.2": version: 1.10.2 resolution: "yaml@npm:1.10.2" checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f languageName: node linkType: hard - -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 - languageName: node - linkType: hard