refractor + style tweaks

- bugfix on lower
- delay between 0-60 minutes
- action buttons in dropdown
- added button for toggling element visibility
- several css and code cleanups
- renamed settingsAPI
This commit is contained in:
cv
2021-04-24 10:32:19 +02:00
parent 11fca1ab6d
commit ea92fc7de7
44 changed files with 835 additions and 572 deletions
+9 -9
View File
@@ -1,4 +1,4 @@
import { Route, Switch } from 'react-router-dom';
import { Route } from 'react-router-dom';
import './App.css';
import Editor from './features/editors/Editor';
import DefaultPresenter from './features/viewers/DefaultPresenter';
@@ -22,14 +22,14 @@ function App() {
return (
<SocketProvider>
<QueryClientProvider client={queryClient}>
<div className='App'>
<Route exact path='/' component={SDefault} />
<Route exact path='/sm' component={SStageManager} />
<Route exact path='/speaker' component={SSpeaker} />
<Route exact path='/speakersimple' component={SSpeakerSimple} />
<Route exact path='/editor' component={Editor} />
<Route path='/lower' component={SLowerThird} />
</div>
<div className='App'>
<Route exact path='/' component={PresenterView} />
<Route exact path='/sm' component={SStageManager} />
<Route exact path='/speaker' component={SSpeaker} />
<Route exact path='/speakersimple' component={SSpeakerSimple} />
<Route exact path='/editor' component={Editor} />
<Route path='/lower' component={SLowerThird} />
</div>
</QueryClientProvider>
</SocketProvider>
);
+21
View File
@@ -0,0 +1,21 @@
import axios from 'axios';
import { NODE_PORT } from './apiConstants';
// get origin from URL
const serverURL = window.location.origin.replace(
window.location.port,
`${NODE_PORT}/`
);
export const eventNamespace = 'event';
export const eventURL = serverURL + eventNamespace;
export const fetchEvent = async () => {
const res = await axios.get(eventURL);
return res.data;
};
export const postEvent = async (data) => {
const res = await axios.post(eventURL, data);
return res;
};
-23
View File
@@ -1,23 +0,0 @@
import axios from 'axios';
import { NODE_PORT } from '../api/apiConstants';
// get origin from URL
const serverURL = window.location.origin.replace(
window.location.port,
`${NODE_PORT}/`
);
export const settingsNamespace = 'settings';
export const settingsURL = serverURL + settingsNamespace;
export const fetchSettings = async () => {
const res = await axios.get(settingsURL);
return res.data;
};
export const postSettings = async (data) => {
console.log('debug sending', data)
console.log('debug await', await axios.post(settingsURL, data))
const res = await axios.post(settingsURL, data);
return res;
};
@@ -8,6 +8,7 @@ export default function AddIconBtn(props) {
icon={<FiPlus />}
colorScheme='blue'
onClick={props.clickHandler}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -8,6 +8,7 @@ export default function BlockIconBtn(props) {
icon={<FiMinusCircle />}
colorScheme='purple'
onClick={props.clickHandler}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -9,6 +9,7 @@ export default function CollapseIconBtn(props) {
colorScheme='orange'
variant={props.active ? 'solid' : 'outline'}
onClick={props.clickHandler}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -8,6 +8,7 @@ export default function DelayIconBtn(props) {
icon={<FiClock />}
colorScheme='yellow'
onClick={props.clickHandler}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -8,6 +8,7 @@ export default function DeleteIconBtn(props) {
icon={<FiMinus />}
colorScheme='red'
onClick={props.clickHandler}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -5,11 +5,12 @@ export default function NextIconBtn(props) {
return (
<IconButton
icon={<FiSkipForward />}
colorScheme= 'whiteAlpha'
colorScheme='whiteAlpha'
backgroundColor='#ffffff05'
variant= 'outline'
variant='outline'
onClick={props.clickHandler}
width={90}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -8,7 +8,8 @@ export default function PauseIconBtn(props) {
colorScheme='orange'
variant={props.active ? 'solid' : 'outline'}
onClick={props.clickHandler}
width={90}
width={120}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -5,11 +5,12 @@ export default function PrevIconBtn(props) {
return (
<IconButton
icon={<FiSkipBack />}
colorScheme= 'whiteAlpha'
colorScheme='whiteAlpha'
backgroundColor='#ffffff05'
variant= 'outline'
variant='outline'
onClick={props.clickHandler}
width={90}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -0,0 +1,16 @@
import { IconButton } from '@chakra-ui/button';
import { FiRefreshCcw } from 'react-icons/fi';
export default function ReloadIconButton(props) {
return (
<IconButton
icon={<FiRefreshCcw />}
colorScheme='whiteAlpha'
backgroundColor='#ffffff05'
variant='outline'
onClick={props.clickHandler}
width={90}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -8,7 +8,9 @@ export default function RollIconBtn(props) {
colorScheme='blue'
variant={props.active ? 'solid' : 'outline'}
onClick={props.clickHandler}
width={90}
width={120}
disabled
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -9,6 +9,7 @@ export default function SettingsIconBtn(props) {
isRound
variant='outline'
onClick={props.clickHandler}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -8,7 +8,8 @@ export default function StartIconBtn(props) {
colorScheme='green'
variant={props.active ? 'solid' : 'outline'}
onClick={props.clickHandler}
width={90}
width={120}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -0,0 +1,16 @@
import { IconButton } from '@chakra-ui/button';
import { FiCornerLeftUp } from 'react-icons/fi';
export default function UnloadIconBtn(props) {
return (
<IconButton
icon={<FiCornerLeftUp />}
colorScheme='whiteAlpha'
backgroundColor='#ffffff05'
variant='outline'
onClick={props.clickHandler}
width={90}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -9,6 +9,7 @@ export default function VisibleIconBtn(props) {
colorScheme='blue'
variant={props.active ? 'solid' : 'outline'}
onClick={props.clickHandler}
_focus={{ boxShadow: 'none' }}
/>
);
}
@@ -1,5 +1,4 @@
import EditableTimer from '../../input/EditableTimer';
import DelayValue from '../../input/DelayValue';
import { showWarningToast } from '../../helpers/toastManager';
export default function EventTimes(props) {
@@ -24,7 +23,6 @@ export default function EventTimes(props) {
return (
<>
<DelayValue delay={delay} />
<EditableTimer
name='timeStart'
validate={handleValidate}
+2 -2
View File
@@ -1,11 +1,11 @@
import { millisToMinutes } from '../dateConfig';
import style from './EditableTimer.module.css';
import style from '../../features/editors/list/Block.module.css';
export default function DelayValue(props) {
const { delay } = props;
const delayed = delay > 0;
return (
<div className={delayed ? style.delayValue : undefined}>
<div className={style.delayValue}>
{delayed && <span>{`+ ${millisToMinutes(delay)}`}</span>}
</div>
);
+10 -2
View File
@@ -1,8 +1,10 @@
import { Editable, EditableInput, EditablePreview } from '@chakra-ui/editable';
import { useState } from 'react';
import style from './EditableText.module.css';
export default function EditableText(props) {
const { label, defaultValue, placeholder, submitHandler } = props;
const [text, setText] = useState(props.defaultValue || '');
const handleSubmit = (submitedVal) => {
// No need to update if it hasnt changed
@@ -11,19 +13,25 @@ export default function EditableText(props) {
submitHandler(submitedVal);
};
const handleChange = (val) => {
if (val.length < 40) setText(val);
console.log(val.length);
};
return (
<div className={style.block}>
<span className={props.underlined ? style.titleUnderlined : style.title}>
{label}
</span>
<Editable
onChange={(v) => handleChange(v)}
onSubmit={(v) => handleSubmit(v)}
defaultValue={defaultValue}
value={text}
placeholder={placeholder}
className={style.inline}
>
<EditablePreview />
<EditableInput className={style.editable13} />
<EditableInput />
</Editable>
</div>
);
@@ -14,13 +14,11 @@
.block {
display: 'block';
overflow: hidden;
max-width: 100%;
}
.inline {
display: inline;
}
.editable13 {
width: '13em';
min-width: '13em';
width: max-content;
}
@@ -1,6 +1,5 @@
.time {
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.05);
border-radius: 4px;
width: 5em;
height: fit-content;
@@ -10,17 +9,9 @@
.delayedEditable {
text-align: center;
border-radius: 4px;
border: 1px solid rgba(255, 255, 255, 0.05);
}
.delayedEditable {
border: 1px solid #d69e2e55;
}
.delayValue {
color: #fff;
border-radius: 4px;
padding: 0.3em 0;
text-align: center;
align-self: flex-start;
background-color: #d69e2e55;
}
+4 -2
View File
@@ -22,14 +22,16 @@ export default function TimeInput(props) {
}, [props.value]);
const handleChange = (val) => {
if (val <= 999) setValue(val);
if (val <= 666) setValue(val);
};
const handleSubmit = (val) => {
if (val === props.value) return;
if (val === '') setValue(0);
if (val > 0 && val < 60) {
if (val >= 0 && val <= 60) {
props.submitHandler(val);
} else {
setValue(60);
}
};
@@ -8,6 +8,8 @@ import PauseIconBtn from '../../common/components/buttons/PauseIconBtn';
import PrevIconBtn from '../../common/components/buttons/PrevIconBtn';
import NextIconBtn from '../../common/components/buttons/NextIconBtn';
import RollIconBtn from '../../common/components/buttons/RollIconBtn';
import UnloadIconBtn from '../../common/components/buttons/UnloadIconBtn';
import ReloadIconButton from '../../common/components/buttons/ReloadIconBtn';
export default function PlaybackControl() {
const socket = useSocket();
@@ -19,6 +21,14 @@ export default function PlaybackControl() {
expectedFinish: null,
});
const resetTimer = () => {
setTimer({
currentSeconds: null,
startedAt: null,
expectedFinish: null,
});
};
// handle incoming messages
useEffect(() => {
if (socket == null) return;
@@ -56,9 +66,11 @@ export default function PlaybackControl() {
break;
case 'previous':
socket.emit('set-playstate', 'previous');
resetTimer();
break;
case 'next':
socket.emit('set-playstate', 'next');
resetTimer();
break;
default:
break;
@@ -93,13 +105,17 @@ export default function PlaybackControl() {
active={playback === 'pause'}
clickHandler={() => playbackControl('pause')}
/>
<PrevIconBtn clickHandler={() => playbackControl('previous')} />
<NextIconBtn clickHandler={() => playbackControl('next')} />
<RollIconBtn
active={playback === 'roll'}
clickHandler={() => playbackControl('roll')}
/>
</div>
<div className={style.playbackContainer}>
<PrevIconBtn clickHandler={() => playbackControl('previous')} />
<NextIconBtn clickHandler={() => playbackControl('next')} />
<UnloadIconBtn clickHandler={() => playbackControl('unload')} />
<ReloadIconButton clickHandler={() => playbackControl('reload')} />
</div>
</div>
);
}
@@ -7,7 +7,7 @@
padding: 2vh;
display: grid;
grid-template-rows: 1fr 1fr 1fr;
grid-template-rows: 38vh 1fr 1fr;
grid-template-columns: 1fr 25vw 25vw 5vw;
grid-template-areas:
'even mess play sett'
@@ -67,7 +67,6 @@
.mainContainer > div {
border-radius: 0.5em;
height: 100%;
margin-top: 1.5vh;
background-color: rgba(255, 255, 255, 0.13);
padding: 0.8em 1.5em;
@@ -0,0 +1,49 @@
import { Menu, MenuButton, MenuItem, MenuList } from '@chakra-ui/menu';
import { IconButton } from '@chakra-ui/button';
import { FiZap, FiPlus, FiMinus, FiMinusCircle, FiClock } from 'react-icons/fi';
export default function ActionButtons(props) {
const { showDel, showAdd, showDelay, showBlock } = props;
const menuStyle = {
color: '#000000',
backgroundColor: 'rgba(255,255,255,0.67)',
};
return (
<Menu>
<MenuButton
as={IconButton}
aria-label='Options'
size='xs'
icon={<FiZap />}
_hover={{ bg: 'pink.500' }}
_expanded={{ bg: 'pink.300' }}
_focus={{ boxShadow: 'none' }}
colorScheme='pink'
/>
<MenuList style={menuStyle}>
{showDel && (
<MenuItem icon={<FiMinus />} onClick={props.deleteHandler}>
Delete
</MenuItem>
)}
{showAdd && (
<MenuItem icon={<FiPlus />} onClick={props.addHandler}>
Event next
</MenuItem>
)}
{showDelay && (
<MenuItem icon={<FiClock />} onClick={props.delayHandler}>
Delay next
</MenuItem>
)}
{showBlock && (
<MenuItem icon={<FiMinusCircle />} onClick={props.blockHandler}>
Block next
</MenuItem>
)}
</MenuList>
</Menu>
);
}
@@ -27,8 +27,7 @@
gap: 0.5em;
align-content: center;
align-self: flex-start;
opacity: 0.4;
opacity: 0.8;
transition: linear 0.1s;
}
@@ -52,7 +51,8 @@
padding-left: 1em;
display: grid;
grid-template-columns: 3em auto auto 1fr auto;
grid-template-columns: auto 2em auto auto 1fr auto;
justify-content: center;
align-content: center;
align-items: baseline;
@@ -74,6 +74,45 @@
);
}
.drag {
color: rgba(255, 255, 255, 0.37);
align-self: center;
/* cursor: grab; Later */
}
.indicators {
display: flex;
flex-direction: column;
align-self: flex-start;
font-size: 0.75em;
overflow: hidden;
min-width: 0;
justify-content: center;
}
.next {
color: #4bffabcc;
width: max-content;
padding: 0 0.2em;
}
.nextDisabled {
color: rgba(255, 255, 255, 0.17);
}
.delayValue {
color: #d69e2eaa;
padding: 0 0.2em;
text-align: center;
align-self: flex-start;
width: max-content;
}
.next:after,
.delayValue:after {
content: '\200b';
}
.titleContainer,
.detailedContainer {
background-color: rgba(255, 255, 255, 0.05);
@@ -124,4 +163,4 @@
);
justify-content: space-between;
}
}
@@ -1,6 +1,4 @@
import AddIconBtn from '../../../common/components/buttons/AddIconBtn';
import DelayIconBtn from '../../../common/components/buttons/DelayIconBtn';
import DeleteIconBtn from '../../../common/components/buttons/DeleteIconBtn';
import ActionButtons from './ActionButtons';
import style from './Block.module.css';
export default function BlockBlock(props) {
@@ -19,9 +17,15 @@ export default function BlockBlock(props) {
return (
<div className={style.block}>
<div className={style.actionOverlay}>
<DeleteIconBtn clickHandler={deleteHandler} />
<AddIconBtn clickHandler={addHandler} />
<DelayIconBtn clickHandler={delayHandler} />
<ActionButtons
showDel
deleteHandler={deleteHandler}
showAdd
addHandler={addHandler}
showDelay
delayHandler={delayHandler}
showBlock
/>
</div>
</div>
);
@@ -1,8 +1,7 @@
import AddIconBtn from '../../../common/components/buttons/AddIconBtn';
import DeleteIconBtn from '../../../common/components/buttons/DeleteIconBtn';
import { millisToMinutes } from '../../../common/dateConfig';
import TimeInput from '../../../common/input/TimeInput';
import style from './Block.module.css';
import ActionButtons from './ActionButtons';
export default function DelayBlock(props) {
const { data, eventsHandler, index } = props;
@@ -13,6 +12,7 @@ export default function DelayBlock(props) {
const submitHandler = (value) => {
// convert to ms and patch
console.log('debug adding', { id: data.id, duration: value * 1000 * 60 });
eventsHandler('patch', { id: data.id, duration: value * 1000 * 60 });
};
@@ -27,8 +27,12 @@ export default function DelayBlock(props) {
submitHandler={submitHandler}
/>
<div className={style.actionOverlay}>
<DeleteIconBtn clickHandler={deleteHandler} />
<AddIconBtn clickHandler={addHandler} />
<ActionButtons
showDel
deleteHandler={deleteHandler}
showAdd
addHandler={addHandler}
/>
</div>
</div>
);
+35 -13
View File
@@ -1,16 +1,16 @@
import { FiChevronDown, FiChevronUp } from 'react-icons/fi';
import { FiChevronDown, FiChevronUp, FiMoreVertical } from 'react-icons/fi';
import { useState } from 'react';
import AddIconBtn from '../../../common/components/buttons/AddIconBtn';
import BlockIconBtn from '../../../common/components/buttons/BlockIconBtn';
import DelayIconBtn from '../../../common/components/buttons/DelayIconBtn';
import DeleteIconBtn from '../../../common/components/buttons/DeleteIconBtn';
import EventTimes from '../../../common/components/eventTimes/EventTimes';
import { showErrorToast } from '../../../common/helpers/toastManager';
import style from './Block.module.css';
import EditableText from '../../../common/input/EditableText';
import DelayValue from '../../../common/input/DelayValue';
import ActionButtons from './ActionButtons';
import VisibleIconBtn from '../../../common/components/buttons/VisibleIconBtn';
export default function EventBlock(props) {
const { data, selected, delay, index, eventsHandler } = props;
const [visible, setVisible] = useState(false);
const [more, setMore] = useState(false);
@@ -52,8 +52,18 @@ export default function EventBlock(props) {
updateValues('presenter', v);
};
// TODO: implement functionality to select next
let isNext = false;
return (
<div className={selected ? style.eventRowActive : style.eventRow}>
<span className={style.drag}>
<FiMoreVertical />
</span>
<div className={style.indicators}>
<div className={isNext ? style.next : style.nextDisabled}>Next</div>
<DelayValue delay={delay} />
</div>
<EventTimes
updateValues={updateValues}
timeStart={data.timeStart}
@@ -67,22 +77,22 @@ export default function EventBlock(props) {
label='Title'
defaultValue={data.title}
placeholder='Add Title'
underlined
submitHandler={handleTitleSubmit}
underlined
/>
<EditableText
label='Subtitle'
defaultValue={data.subtitle}
placeholder='Add Subtitle'
underlined
submitHandler={handleSubtitleSubmit}
underlined
/>
<EditableText
label='Presenter'
defaultValue={data.subtitle}
defaultValue={data.presenter}
placeholder='Add Presenter name'
underlined
submitHandler={handlePresenterSubmit}
underlined
/>
</div>
) : (
@@ -92,6 +102,7 @@ export default function EventBlock(props) {
defaultValue={data.title}
placeholder='Add Title'
submitHandler={handleTitleSubmit}
isTight
/>
</div>
)}
@@ -100,10 +111,21 @@ export default function EventBlock(props) {
</div>
</div>
<div className={style.actionOverlay}>
<DeleteIconBtn clickHandler={deleteHandler} />
<AddIconBtn clickHandler={addHandler} />
<DelayIconBtn clickHandler={delayHandler} />
<BlockIconBtn clickHandler={blockHandler} />
<VisibleIconBtn
clickHandler={() => setVisible(!visible)}
active={visible}
/>
<ActionButtons
showDel
deleteHandler={deleteHandler}
showAdd
addHandler={addHandler}
showDelay
delayHandler={delayHandler}
showBlock
blockHandler={blockHandler}
showPublic
/>
</div>
</div>
);
@@ -24,11 +24,14 @@ export default function EventListWrapper() {
// we optimistically update here
onMutate: async (newEvent) => {
// cancel ongoing queries
queryClient.cancelQueries(eventsNamespace);
queryClient.cancelQueries(eventsNamespace, { exact: true });
// Snapshot the previous value
const previousEvents = queryClient.getQueryData(eventsNamespace);
let previousEvents = queryClient.getQueryData(eventsNamespace);
if (previousEvents == null) {
await queryClient.refetchQueries();
previousEvents = queryClient.getQueryData(eventsNamespace);
}
// optimistically update object, temp ID until refetch
let optimistic = [...previousEvents];
optimistic.splice(newEvent.order, 0, {
@@ -8,7 +8,7 @@
border-radius: 4px;
padding: 8px;
overflow-y: scroll;
height: 71vh;
height: 73vh;
}
.empty {
@@ -17,6 +17,9 @@ export default function EventListMenu(props) {
variant: 'outline',
colorScheme: 'whiteAlpha',
backgroundColor: '#ffffff05',
_hover: { bg: 'blue.800' },
_expanded: { bg: 'blue.400' },
_focus: { boxShadow: 'none' },
};
const menuStyle = {
+10 -10
View File
@@ -15,15 +15,15 @@ import {
Textarea,
} from '@chakra-ui/react';
import {
fetchSettings,
postSettings,
settingsNamespace,
} from '../../app/api/settingsApi';
fetchEvent,
postEvent,
eventNamespace,
} from '../../app/api/eventApi';
import { useQuery } from 'react-query';
import { useEffect, useState } from 'react';
export default function SettingsModal(props) {
const { data, status, isError } = useQuery(settingsNamespace, fetchSettings);
const { data, status, isError } = useQuery(eventNamespace, fetchEvent);
const [formData, setFormData] = useState({
title: '',
url: '',
@@ -48,7 +48,7 @@ export default function SettingsModal(props) {
event.preventDefault();
setSubmitting(true);
await postSettings(formData).then(setSubmitting(false)).then(onClose);
await postEvent(formData).then(setSubmitting(false)).then(onClose);
};
return (
@@ -77,7 +77,7 @@ export default function SettingsModal(props) {
size='sm'
name='title'
placeholder='Event Title'
autocomplete='off'
autoComplete='off'
value={formData.title}
onChange={(event) =>
setFormData({ ...formData, title: event.target.value })
@@ -97,7 +97,7 @@ export default function SettingsModal(props) {
size='sm'
name='url'
placeholder='www.onsite.no'
autocomplete='off'
autoComplete='off'
value={formData.url}
onChange={(event) =>
setFormData({ ...formData, url: event.target.value })
@@ -117,7 +117,7 @@ export default function SettingsModal(props) {
size='sm'
name='pubInfo'
placeholder='Information to be shown on public screens'
autocomplete='off'
autoComplete='off'
value={formData.publicInfo}
onChange={(event) =>
setFormData({
@@ -140,7 +140,7 @@ export default function SettingsModal(props) {
size='sm'
name='backstageInfo'
placeholder='Information to be shown on backstage screens'
autocomplete='off'
autoComplete='off'
value={formData.backstageInfo}
onChange={(event) =>
setFormData({
+35 -8
View File
@@ -1,7 +1,7 @@
import { useEffect, useState } from 'react';
import { useQuery } from 'react-query';
import { eventsNamespace, fetchAllEvents } from '../../app/api/eventsApi';
import { fetchSettings, settingsNamespace } from '../../app/api/settingsApi';
import { fetchEvent, eventNamespace } from '../../app/api/eventApi';
import { useSocket } from '../../app/context/socketContext';
import { stringFromMillis } from '../../common/dateConfig';
@@ -16,9 +16,10 @@ const withSocket = (Component) => {
data: genData,
status: genDataStatus,
isError: genDataIsError,
} = useQuery(settingsNamespace, fetchSettings);
} = useQuery(eventNamespace, fetchEvent);
const [events, setEvents] = useState([]);
const [publicEvents, setPublicEvents] = useState([]);
const [backstageEvents, setBackstageEvents] = useState([]);
const socket = useSocket();
const [pres, setPres] = useState({
@@ -54,6 +55,7 @@ const withSocket = (Component) => {
publicInfo: '',
backstageInfo: '',
});
const [playback, setPlayback] = useState(null);
// Ask for update on load
useEffect(() => {
@@ -79,6 +81,11 @@ const withSocket = (Component) => {
setTimer({ ...data });
});
// Handle playstate
socket.on('playstate', (data) => {
setPlayback(data);
});
// Handle titles
socket.on('titles', (data) => {
setTitles({ ...data });
@@ -95,6 +102,12 @@ const withSocket = (Component) => {
// Ask for up to data
socket.emit('get-presenter');
// ask for timer
socket.emit('get-timer');
// ask for playstate
socket.emit('get-playstate');
// Ask for up titles
socket.emit('get-titles');
@@ -107,6 +120,7 @@ const withSocket = (Component) => {
socket.off('messages-presenter');
socket.off('messages-lower');
socket.off('timer');
socket.off('playstate');
socket.off('titles');
socket.off('selected-id');
};
@@ -117,9 +131,11 @@ const withSocket = (Component) => {
if (eventsData == null) return;
// filter just events with title
const e = eventsData.filter((d) => d.type === 'event' && d.title !== '');
const pe = eventsData.filter((d) => d.type === 'event' && d.title !== '');
setPublicEvents(pe);
setEvents(e);
// everything goes backstage
setBackstageEvents(eventsData);
}, [eventsData]);
// Set general data
@@ -133,12 +149,17 @@ const withSocket = (Component) => {
/*** WRAP INFORMATION RELATED TO TITLES ***/
/*** ---------------------------------- ***/
/********************************************/
// is there a now field?
let showNow = true;
if (!titles.titleNow && !titles.subtitleNow && !titles.presenterNow)
showNow = false;
// is there a next field?
let showNext = true;
if (!titles.titleNext && !titles.subtitleNext && !titles.presenterNext)
showNext = false;
const titleManager = { ...titles, showNext: showNext };
const titleManager = { ...titles, showNow: showNow, showNext: showNext };
/******************************************/
/*** + timeManager ***/
@@ -152,7 +173,12 @@ const withSocket = (Component) => {
// get clock
let clock = stringFromMillis(timer.clock);
const timeManager = { ...timer, finished: finished, clock: clock };
const timeManager = {
...timer,
finished: finished,
clock: clock,
playstate: playback,
};
return (
<Component
@@ -162,7 +188,8 @@ const withSocket = (Component) => {
lower={lower}
title={titleManager}
time={timeManager}
events={events}
events={publicEvents}
backstageEvents={backstageEvents}
selectedId={selectedId}
general={general}
/>
@@ -5,7 +5,7 @@ import Paginator from './Paginator';
import NavLogo from '../../../common/components/nav/NavLogo';
export default function StageManager(props) {
const { pres, publ, lower, title, time, events, selectedId, general } = props;
const { publ, title, time, events, selectedId, general } = props;
// Format messages
const showPubl = publ.text !== '' && publ.visible;
@@ -19,18 +19,24 @@ export default function StageManager(props) {
<NavLogo />
<div className={style.eventTitle}>{general.title}</div>
<div className={style.nowContainer}>
<div className={style.label}>Now</div>
<div className={style.nowTitle}>{title.titleNow}</div>
<div className={style.nowSubtitle}>{title.subtitleNow}</div>
<div className={style.nowPresenter}>{title.presenterNow}</div>
</div>
<div className={style.nextContainer}>
<div className={style.label}>Next</div>
<div className={style.nextTitle}>{title.titleNext}</div>
<div className={style.nextSubtitle}>{title.subtitleNext}</div>
<div className={style.nextPresenter}>{title.presenterNext}</div>
</div>
{title.showNow && (
<div className={style.nowContainer}>
<div className={style.label}>Now</div>
<div className={style.nowTitle}>{title.titleNow}</div>
<div className={style.nowSubtitle}>{title.subtitleNow}</div>
<div className={style.nowPresenter}>{title.presenterNow}</div>
</div>
)}
{title.showNext && (
<div className={style.nextContainer}>
<div className={style.label}>Next</div>
<div className={style.nextTitle}>{title.titleNext}</div>
<div className={style.nextSubtitle}>{title.subtitleNext}</div>
<div className={style.nextPresenter}>{title.presenterNext}</div>
</div>
)}
<div className={style.todayContainer}>
<div className={style.label}>Today</div>
<div className={style.entriesContainer}>
+7 -5
View File
@@ -2,16 +2,18 @@ import { AnimatePresence, motion } from 'framer-motion';
import style from './Lower.module.css';
export default function Lower(props) {
const { pres, publ, lower, title, time, events, selectedId, general } = props;
const { lower, title, time, general } = props;
// getting config from URL
// like http://localhost:3000/lower?bg=ff2&text=f00&size=0.6&transition=5
// getting config from URL: preset, size, transition, bg, text, key
// eg. http://localhost:3000/lower?bg=ff2&text=f00&size=0.6&transition=5
let params = new URLSearchParams(props.location.search);
// Preset: choose from an animation preset, not yet
const preset = params.get('preset') ? params.get('preset') : 1;
const size = params.get('size') ? params.get('size') : 1;
const transitionIn = params.get('transition') ? params.get('transition') : 3;
const textColour = params.get('bg') ? `#${params.get('text')}` : '#fffffa';
const textColour = params.get('text') ? `#${params.get('text')}` : '#fffffa';
const bgColour = params.get('bg') ? `#${params.get('bg')}` : '#00000033';
const key = params.get('key') ? `#${params.get('key')}` : 'null';
@@ -87,7 +89,7 @@ export default function Lower(props) {
},
},
};
return (
<div
className={style.lowerThird}
@@ -11,7 +11,7 @@
.lowerContainer {
position: absolute;
top: 70vh;
top: 75vh;
background-color: #00000033;
padding: 1vw 1vw 1vw 0;
@@ -4,9 +4,10 @@ import NavLogo from '../../../common/components/nav/NavLogo';
import style from './PresenterView.module.css';
export default function PresenterView(props) {
const { pres, publ, lower, title, time } = props;
const { pres, title, time } = props;
let showOverlay = pres.text !== '' && pres.visible;
const showOverlay = pres.text !== '' && pres.visible;
const isPlaying = time.playstate === 'start';
return (
<div
@@ -33,14 +34,18 @@ export default function PresenterView(props) {
{time.finished ? (
<div className={style.finished}>TIME UP</div>
) : (
<div className={style.countdown}>
<div className={isPlaying ? style.countdown : style.countdownPaused}>
<Countdown time={time.currentSeconds} hideZeroHours />
</div>
)}
</div>
{!time.finished && (
<div className={style.progressContainer}>
<div
className={
isPlaying ? style.progressContainer : style.progressContainerPaused
}
>
<MyProgressBar
now={time.currentSeconds}
complete={time.durationSeconds}
@@ -49,12 +54,14 @@ export default function PresenterView(props) {
</div>
)}
<div className={style.nowContainer}>
<div className={style.label}>Now</div>
<div className={style.title}>{title.titleNow}</div>
<div className={style.subtitle}>{title.subtitleNow}</div>
<div className={style.presenter}>{title.presenterNow}</div>
</div>
{title.showNow && (
<div className={style.nowContainer}>
<div className={style.label}>Now</div>
<div className={style.title}>{title.titleNow}</div>
<div className={style.subtitle}>{title.subtitleNow}</div>
<div className={style.presenter}>{title.presenterNow}</div>
</div>
)}
{title.showNext && (
<div className={style.nextContainer}>
@@ -101,10 +101,21 @@
padding: 0;
}
.progressContainer {
.countdown {
opacity: 1;
}
.progressContainer,
.progressContainerPaused {
grid-area: prog;
width: 80%;
margin: 0 auto;
opacity: 1;
}
.countdownPaused,
.progressContainerPaused {
opacity: 0.6;
}
.container__grayFinished {
+431 -402
View File
@@ -1120,7 +1120,14 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13":
version "7.13.17"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec"
integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
version "7.13.10"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
@@ -1164,520 +1171,532 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@chakra-ui/accordion@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/accordion/-/accordion-1.2.1.tgz#2e48ed5e79c58d5915a807fc03a486f54325005a"
integrity sha512-gc7x9XFDYYJ/1JqpT6a1IUhNu/Qayzv+bXXijNRHCHgaXuoO0YjiyGDBXEUpMEtwNhv7ENKPSi1V/pNjeZzGwQ==
"@chakra-ui/accordion@1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/accordion/-/accordion-1.3.0.tgz#60a8cb65e68a7ea74ee64236a605250731a9d45a"
integrity sha512-gfLzgYAigq4FMjy48uzI6QRWgB8qDTZGt9Bgg+JgBmg8DL2Cgi5qL0Q3So5KJWP0NC04fxEUMNstrBlL59lIGw==
dependencies:
"@chakra-ui/descendant" "1.1.1"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/transition" "1.1.2"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/descendant" "2.0.0"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/transition" "1.2.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/alert@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/alert/-/alert-1.2.1.tgz#77349c6c6cc7c771c12a156ffd52075927761e03"
integrity sha512-uM77sPKH8gY3UtL8nUE8H96JZlEs40SwAJU386uavCdKuD0MikJY6WYUxl22OTnAZ3HoZcxiySSwZ4T/JPagbg==
"@chakra-ui/alert@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/alert/-/alert-1.2.4.tgz#c7b36da60f40cc7fb748caaee045e6e66431457c"
integrity sha512-Ql46IUFU+BPPZetTSfoAyeecT/wKlfudeidW12aFskQa2j/g+YytXyHBbDfkZYgtnWzoZOsO2itV8sqqdJ4ieQ==
dependencies:
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/avatar@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/avatar/-/avatar-1.2.1.tgz#2b137bce6d4cf949d45a651ee9ba79a285d14480"
integrity sha512-CapaLdQflGup875pvMgX43TNXPwZhpGHtR1dmLgMw/AtNYwPQEm710cKSLv6IThmDNlE7iII/nZoxrhxpnzRMQ==
"@chakra-ui/avatar@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/avatar/-/avatar-1.2.4.tgz#d13dae1106805d512b19506d95294f5e22a60db7"
integrity sha512-6l6sEHUlVWZUehfYm5hygHoMMOup7gwcB1354iZON67IiEOKTWgoZRjo2Vt85pdB2QZU7RCOAhmOltpny5SPZw==
dependencies:
"@chakra-ui/image" "1.0.11"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/image" "1.0.14"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/breadcrumb@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/breadcrumb/-/breadcrumb-1.2.1.tgz#773893ce8491bc5ac2c99406181e9e2ad588a1c1"
integrity sha512-K42NXaCqTlU4048POEQAoTr086pdQnCE3b7/STZeeKZb4GiW01R5kGl2zPblqcC8Qoariwh4CWDoOMFHkOWcmA==
"@chakra-ui/breadcrumb@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/breadcrumb/-/breadcrumb-1.2.4.tgz#401e3abfb8c28917311e3e0ef6d2c94a04b33fc2"
integrity sha512-ZQwNjUAnSVpySfZN7KTP9CUUd/+ttuMCbwYHWx+tbirFVmQeyA7/YuIbh0KNlvB0/pVMSH43DRHyImj3dICEAw==
dependencies:
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/button@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/button/-/button-1.2.1.tgz#cbfa597e98635f76451f62b0590323e73a511fbc"
integrity sha512-p63593BCuoSEGHO7CBvEKusu2SE6bSgnuXjqA63tl8uYcpS58rIsu53fPyo20oYyc/Ns8iCT33My6W28fHE7cw==
"@chakra-ui/button@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/button/-/button-1.3.1.tgz#23c248e7d0700bb3cc36eb658435ab845b8bb9ab"
integrity sha512-TqoMjKxvrbPaVYK+rRYPZw1YavbvAIdRiyuYFUvmQHNZTHeHLKlQbgJI2K6uYI+MduhU618CDAloXnKxn7mmOA==
dependencies:
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/spinner" "1.1.5"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/spinner" "1.1.8"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/checkbox@1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/checkbox/-/checkbox-1.4.1.tgz#22b2b6100ff2ee0d5fee2984def4180625ce5aa3"
integrity sha512-09Ef1fvFF3cPHFMGO131AbPT8ufzr8gR7UiqY0a8Xu3O7pMO7ECk5ucjjIDipvrPMGmiemzeqXB5fu4gJ3s9Bg==
"@chakra-ui/checkbox@1.5.1":
version "1.5.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/checkbox/-/checkbox-1.5.1.tgz#a84e0d18214d6dc71f33d30ae9b501b98849d8b8"
integrity sha512-j+OX3rrqj98K4hMu7irxc4FWd639yFdUgUVor7ze9iSSBFzt5lfLXBBjzfy1lFB3GmbMNZCobhO7eD1bNug8sA==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/visually-hidden" "1.0.8"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/visually-hidden" "1.0.11"
"@chakra-ui/clickable@1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/clickable/-/clickable-1.1.1.tgz#b21a56fd3795521470dab18b26d89ff039556a29"
integrity sha512-B0okFSJ27WV5hakz3yIVQAFPfjX+Oa31QtwDKfA9ZA+A17iN8+uLLrK6c+YmnUzrv7T3W1/WYbSK1X1d57d19g==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/close-button@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/close-button/-/close-button-1.1.5.tgz#810030345bd52d5adc0eb1443585dd4e031380cd"
integrity sha512-Yo/MKv3S0Gg5rzvl3FvRrdvex4WbrdWHH3phEyTymNGCI+JVs50e1c+h2tvYYIUiSiLWlhARPJDsHqOYbot9bg==
dependencies:
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/color-mode@1.1.4":
"@chakra-ui/clickable@1.1.4":
version "1.1.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/color-mode/-/color-mode-1.1.4.tgz#622ccd626a29ed0b9d0cc42874e210659c956f4b"
integrity sha512-EpLKTGYgERU4dWALE4p/7XLeKYnuuGs4ZR+9omnCJzF1YU4ya8UK+poQHYqlG5RzlHBWivVrbT0UdQzuanw+jw==
resolved "https://registry.yarnpkg.com/@chakra-ui/clickable/-/clickable-1.1.4.tgz#ff813fdfc5a31a2eb2dc27f39221a9922b71a04a"
integrity sha512-ETpjwr50u7baOujex4Og1om2P/nfGss8f6YYvsewGqI81OUUmOpz2sr87I+gvoZwqwMHQkOksOY1L2BK1MrO9A==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/control-box@1.0.8":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/control-box/-/control-box-1.0.8.tgz#9cfda7ff5eb990d2e61c7d3dd5ab8f6be97c236a"
integrity sha512-DumHauP2OMRyiKhkvKV00nJWXZ4HTBQ3k6dLKhQTdZdtQlHciFkQRu3gvHHkk9R2b+ke0vbxyWT7wNsfyR7GMQ==
"@chakra-ui/close-button@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/close-button/-/close-button-1.1.8.tgz#02a208c13202a53dc7777f75d7f7fcc2011ab5dc"
integrity sha512-TsDeY2QCyrdDSkB6B0LSh2IZleJ4gkkr+KZaL46WxHRim3CoqrbicQP9n9QZxXrTGa+lsb5+jvB2YrO6I8qquQ==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/counter@1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/counter/-/counter-1.1.1.tgz#55591cefc882828402987cc787b657ca49876834"
integrity sha512-MOK84KrfmDMBwsfDeo26NEOlBZjcTbn6ZIdaYCF/5JmuOwRDBbbQDwJ8CSF87hocJD6tgwkS+WwSmRLZs+eOjg==
"@chakra-ui/color-mode@1.1.7":
version "1.1.7"
resolved "https://registry.yarnpkg.com/@chakra-ui/color-mode/-/color-mode-1.1.7.tgz#ad5fc6c631884906ed60ab35849dd4270d27a075"
integrity sha512-av2lH0iFinL4rN1BlSxu8eoted4p+qzOIiLhXcGFNodp73r9I3A2vspaZYke/xMrAwFaZq6wCIl+BwXNHAGRDA==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/control-box@1.0.11":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@chakra-ui/control-box/-/control-box-1.0.11.tgz#616afe751cd1b740488afd0ed77b666557307e9e"
integrity sha512-NQCa/HKMG8gW0vOLc+iCuiLRxv3w7K/Hc63ThneW3uR2awAH5hjmO+Xh+0HLYvePocJulqVUbjuJxoQGLMcFPA==
dependencies:
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/counter@1.1.4":
version "1.1.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/counter/-/counter-1.1.4.tgz#a2c63d96e9cdb7b94aaeb041ea4757f0c4eb3163"
integrity sha512-fmhAbpOdw1PyZs7CiW5jltaBacHIyN+9HyMj6igqJnLaxYvvphUdv94+2pv1nAPgWSLRah3EzNSnjVjXy+5OGA==
dependencies:
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/css-reset@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/css-reset/-/css-reset-1.0.0.tgz#8395921b35ef27bee0579a4d730c5ab7f7b39734"
integrity sha512-UaPsImGHvCgFO3ayp6Ugafu2/3/EG8wlW/8Y9Ihfk1UFv8cpV+3BfWKmuZ7IcmxcBL9dkP6E8p3/M1T0FB92hg==
"@chakra-ui/descendant@1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/descendant/-/descendant-1.1.1.tgz#963b21ac2b94a0f31cf3301816822a0f098b14e6"
integrity sha512-PlhxAIQr+1UGymBWbe0gGzTcRk7n1fZSJiFVFxA+VNXXdXbJhffZtZOBLZqer/drU9SdnPnpOwchw7BehNUGxA==
"@chakra-ui/descendant@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/descendant/-/descendant-2.0.0.tgz#719a2f585a73e60db01233a9193dbf22823355a5"
integrity sha512-kdesvjzeTxoLStpgbtMN5JMO3qhhRmZVVH8u2juTB9QIPGs1052Brb3Hcv96kQj7RyigCvarFF9KmvX4BUSdUA==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "^1.1.2"
"@chakra-ui/editable@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/editable/-/editable-1.2.1.tgz#b7184cc5fc994c05b478972f66a86263bcc2664a"
integrity sha512-50pfRS8aRZ+cqrlvkjAuJt4LkaszaTbvnY/3QN61SFphw3rkC54vxDmQwE7/+OguBAst/hmVzMa2QZCTe5hcQg==
"@chakra-ui/editable@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/editable/-/editable-1.2.4.tgz#a481d37ff65040dccd6e94320ffffb1f9f0afc7d"
integrity sha512-DftEZTz7S0KZX9No5dw3MNVOWXZnOSt2m15/SqxUcZnkJgTLRtK9yPaqVjZFBcjvgh4QNn2HEY15oy9VSWF0Nw==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/focus-lock@1.1.4":
version "1.1.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/focus-lock/-/focus-lock-1.1.4.tgz#5245aabb71093bfd38597f3d0245615c0c549be8"
integrity sha512-xH7g+us4lXmQVlZGjFj7AF6O83y1xNIJPip20bB0D7u/hhMWhGD1lmrk9DeUMtSKoeOxB0yvJ092uVTRBL0UBA==
"@chakra-ui/focus-lock@1.1.7":
version "1.1.7"
resolved "https://registry.yarnpkg.com/@chakra-ui/focus-lock/-/focus-lock-1.1.7.tgz#b15d9786621ddff9b7eb07e81f70b6565a6693f1"
integrity sha512-Z3iscVlil0QTrTrv2MCPs4biMuMqXoNoSKDrz7lLoYHQWhiHIMMx9kivyvAXqxai7M1bPcGxvh8XwwoZfv2V3A==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/utils" "1.7.0"
react-focus-lock "2.5.0"
"@chakra-ui/form-control@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/form-control/-/form-control-1.3.1.tgz#28db8a019c047e66d4a39498434ba3668e5ca8f4"
integrity sha512-UDw4MnabC/Hc2MS5LZaqB3BD3tyz8HO0ShqtasUlSm+TzV2yq2fnCFDEuDhwFflyHtnBAhFht73ZaaWWW7RXeQ==
"@chakra-ui/form-control@1.3.4":
version "1.3.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/form-control/-/form-control-1.3.4.tgz#dd19693cbba5ca19ff4a70a680011509406d4b7a"
integrity sha512-BYJaZMhvAo8csqQ9mNp9i4gACLr/DraJstF1M9WRKjlpst7WK6+bRmG0Cn0ifx8EKfag3VaZMf/iOkoZjF0xuA==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/hooks@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/hooks/-/hooks-1.3.1.tgz#a37982855baf8c87d3f3586827003648b13f6276"
integrity sha512-aMx3I8pbHkFHzCdaD8TmZLLPc8i8Y0gLCsSzCooIM0TJq7Dcw072uUMyucQlg+w7zPtvK87GFFYLYZVax503ew==
"@chakra-ui/hooks@1.5.1":
version "1.5.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/hooks/-/hooks-1.5.1.tgz#cae769a35fda0bb07512b52bf4e13fba740a72c5"
integrity sha512-vKAXXsvOPu+juy07Acn8ozRCeCc/hteJaAMLE2QR/nHcjU/45+ClkCO23Q0upI1hBlV5t/NwUzkUQ+U1rTxAyw==
dependencies:
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
compute-scroll-into-view "1.0.14"
copy-to-clipboard "3.3.1"
"@chakra-ui/icon@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/icon/-/icon-1.1.5.tgz#f37abe47fd176a4c291d2037df2d6ed480622c09"
integrity sha512-VCzR1L3CJlAxp0IilqCdsF9O/Nncp9Sb2ndQvnQcfbo0GEgQmsH2CBQnmlwnClBQGYhwi6srP9GErYg8ah9LQw==
"@chakra-ui/icon@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/icon/-/icon-1.1.8.tgz#fbee1c8e0ae848daeb05275049f0764d854dca59"
integrity sha512-kbIPtRd9pD/iTXyzRn2s10w4uX54nNTnoNy/wP0k1145lOHPtlumRMJNSV6cxy+pnwS/YN6xNACfKy6yRQyIVA==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/image@1.0.11":
"@chakra-ui/image@1.0.14":
version "1.0.14"
resolved "https://registry.yarnpkg.com/@chakra-ui/image/-/image-1.0.14.tgz#c907dfbfb30da9892b59a1e323d9d09aef50e4e6"
integrity sha512-OvtXgXEPSfB+XVhMDNLMBMC1zwVZ3avgh3yDztYkkAl6y7LH756NX8OkW9OEYMIMDQWjjIp63dQufgwik1jzug==
dependencies:
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/input@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/input/-/input-1.2.4.tgz#34ee847c3f3751e01cd9c541b2a889a61abacd4e"
integrity sha512-TCSOQpraTqCetlJw8xYvuu6XhijwA0387s1N7+zM/sb1+HgWGG/qwaG6VEPqOrJ9r7nTgW7FkYA1Vc3ol8BOlw==
dependencies:
"@chakra-ui/form-control" "1.3.4"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/layout@1.4.4":
version "1.4.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/layout/-/layout-1.4.4.tgz#3db5b364b2b44e4c8c7ad6b773357aed41519090"
integrity sha512-CtcwgVivcBOM7bn+BHa/BbZ60moLvYWA9V2ukqhKJxLfSBoh/RTqH1q4Qmig+KbQ/xdbKcHTvanJjrMyn1jrpg==
dependencies:
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/live-region@1.0.11":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@chakra-ui/image/-/image-1.0.11.tgz#de1ee15e81253ca0d71fc99a06a61d3bf749e8d5"
integrity sha512-ZaVw96aaR77oYowj7Hjyt3zVTD/w7FI7+g/TLWizhmiMHX614BZ37oPCa9h7nGojm+DwrvMNvyzWKMji4t+i/A==
resolved "https://registry.yarnpkg.com/@chakra-ui/live-region/-/live-region-1.0.11.tgz#34092c8431b952f5b9739ce3eba7a9a13d351b90"
integrity sha512-/YsiA7cLuphlkvsfbEnlohSen8A+vPfi2XmzEcribO8P29qKd4yU5LjvGCGgQWNbiA6CcJmaKMJ1/yR3fRb8dQ==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/input@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/input/-/input-1.2.1.tgz#e4cef42616ab4bb76afede2597aece1651730c42"
integrity sha512-ynfBduWv0krGK3O3QOJmRXSyGaT+cHRrVB4Y1dINkcW/fhyec0UrUr1kFdBu8vApWpgptJ2o/7hdbIFo4OjQTw==
"@chakra-ui/media-query@1.0.12":
version "1.0.12"
resolved "https://registry.yarnpkg.com/@chakra-ui/media-query/-/media-query-1.0.12.tgz#84d71f3b2053c194587a596e43947b34da50d104"
integrity sha512-Q2MKzjVxWRo3bfj3GIhzLQqXRNAYZ0gIq/ga+ywSZ4Khfrpcpt/zUnP+mA6+wL7jFMwV4Tw+sC1j3/KxPOMX+Q==
dependencies:
"@chakra-ui/form-control" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/layout@1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/layout/-/layout-1.4.1.tgz#0c369e074391bbdebc698d7c1c3f7ff231023eb4"
integrity sha512-pnbkYyvOzFosA5NgPFSqYJrrWeJU11KL/0sb1UP4uUb7NkO809Dsz6SVW96YCcQmSWv7n5qNENqSkFWDQKrjsA==
"@chakra-ui/menu@1.6.0":
version "1.6.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/menu/-/menu-1.6.0.tgz#9998424655a3ddb984fd558b537e3daa1b7b3352"
integrity sha512-6fMTEcUYYuRi2vpfrgSErWE2KJ23jq280V4R0U8oIyuPdYpd8Te173VVTXLHnh9ArFOvq4SXdk8wZ05MZ05Xbg==
dependencies:
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/clickable" "1.1.4"
"@chakra-ui/descendant" "2.0.0"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/popper" "2.1.2"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/transition" "1.2.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/live-region@1.0.8":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/live-region/-/live-region-1.0.8.tgz#0f9bd3fef53e1ce29bc9a90273ee4a29e2673b97"
integrity sha512-Wm1aRVNuODOxuxosdoDQ2248uDOOQZsqYM9mmBHa0z6DMhV7qrt8M9WRnbtVogjlotxwINqaMou+qkoGQEunmg==
"@chakra-ui/modal@1.8.4":
version "1.8.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/modal/-/modal-1.8.4.tgz#50821e09581342b4db9c39439b923625003811a1"
integrity sha512-u1v2W4Zulz6eQzqVDDyyX/NlRIkOLDTvejUOSW9H1jlRYxFD349yulAPq2c9JxRCoT07/Qu0Pz4k9tITC5IvGQ==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/media-query@1.0.9":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@chakra-ui/media-query/-/media-query-1.0.9.tgz#7d05197576502ca8e92400003b87f82787308f00"
integrity sha512-2GSGZJtl8iVximQqaxlXOk6JH61K4k3z7I6XGCyWC5k8NPRLnHmtue5vp2CmrzXE6u91HX+snFnSHJoVXepIow==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/menu@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/menu/-/menu-1.3.1.tgz#78ac11a96506d52c7871814c32218403904d9e9e"
integrity sha512-zQQBPP0L1PY12dKsBakL3TIaoHgjIkcSBAGA706jJP47BvKIYGD4IEt1kMt/sHkKXrAbZevOsT5H/ayGkzKEhw==
dependencies:
"@chakra-ui/clickable" "1.1.1"
"@chakra-ui/descendant" "1.1.1"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/popper" "2.1.0"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/transition" "1.1.2"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/modal@1.8.1":
version "1.8.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/modal/-/modal-1.8.1.tgz#1e5cd22a990a82271b9eaf6d83710bbaf1b552f1"
integrity sha512-2hvL4PGEdYRHvpmNUglrGVPMe51cTojTZlQyVuGvVJNE1EG2jro/Xxgrahcia3ljMtJNgUe2Lj+QVl2MG3BbUQ==
dependencies:
"@chakra-ui/close-button" "1.1.5"
"@chakra-ui/focus-lock" "1.1.4"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/portal" "1.2.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/transition" "1.1.2"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/close-button" "1.1.8"
"@chakra-ui/focus-lock" "1.1.7"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/portal" "1.2.4"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/transition" "1.2.2"
"@chakra-ui/utils" "1.7.0"
aria-hidden "^1.1.1"
react-remove-scroll "2.4.1"
"@chakra-ui/number-input@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/number-input/-/number-input-1.2.1.tgz#1ee061da061452e24935829df0f3e44e244708b7"
integrity sha512-QXlzmm/ZJlJuNcaEgr5FgEjuxCWw7X5hoPYfxlcZdirtaMHY5xw6oHDtwTgtwqlCvDq7z7FQvJx623Zg1w4I1A==
"@chakra-ui/number-input@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/number-input/-/number-input-1.2.4.tgz#0ca307805a08c8771467136355babbc6e4ac24c9"
integrity sha512-2szmts7ex7EEbZZ2hqxk4lV0IFqDB1+/Ga2MoR9QkW8v+Vv9rPSzVrGwaltDlK0Rr9UXYvgBlnNpqhqbvQg4AA==
dependencies:
"@chakra-ui/counter" "1.1.1"
"@chakra-ui/form-control" "1.3.1"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/counter" "1.1.4"
"@chakra-ui/form-control" "1.3.4"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/pin-input@1.5.1":
version "1.5.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/pin-input/-/pin-input-1.5.1.tgz#a5e415734447f0d8ad6e09d423f060ffdd1bed14"
integrity sha512-N4edUiY+SUwHl9NBmPPvqJE+o03xvl4k2qieT0A3gaO4y17A2eIynggzv4FpWbedjds5Kg4Sjn0RJaMFTwL5Bg==
"@chakra-ui/pin-input@1.6.0":
version "1.6.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/pin-input/-/pin-input-1.6.0.tgz#e15339f6a760a5eb7a5151d3c4b5998fa2860d6f"
integrity sha512-Pri6lD+APiIkDkWvpgdFFXy4PzFj1XgxbvlmPUlafo97EwCtPSg3QWtOCdPWKtSpWMj1W4X/ZIsmelm/K9MKkw==
dependencies:
"@chakra-ui/descendant" "1.1.1"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/descendant" "2.0.0"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/popover@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/popover/-/popover-1.5.0.tgz#43f0546e5cd02f9024ebe5a4bf072d2dc924dfe1"
integrity sha512-G/k7B6wG0TjFfCXo/y+YMHfM7WFy/7pIqgzEh958aG4pfvqKxRbGMrkcGXFx8d5ZW8dZi05Wq9KHohDWNzbt1A==
"@chakra-ui/popover@1.6.1":
version "1.6.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/popover/-/popover-1.6.1.tgz#cc7c81f4967a9038293bdb648116331c59983b28"
integrity sha512-w3xZK9t65AsiGuU6YXf1cpN/GBz4eJWZCDKVwJriHlKkq6L9umPtVjDGMgKegoTwnCokl8gFSxZp9yr2ACOQHQ==
dependencies:
"@chakra-ui/close-button" "1.1.5"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/popper" "2.1.0"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/close-button" "1.1.8"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/popper" "2.1.2"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/popper@2.1.0":
version "2.1.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/popper/-/popper-2.1.0.tgz#d213b63bca5937321b5acc005eaabfc72c04b4a4"
integrity sha512-1irixePeBJvc2GTciHx1+WpJaD9xQ/6ZZ/x4A38Ppz+rCS20QWIpBwLeehg18XAJbikcUK59lHmwzgw5RAOu3g==
"@chakra-ui/popper@2.1.2":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@chakra-ui/popper/-/popper-2.1.2.tgz#a3948c338c0ff4948a659fad34dcbc3d2bf7ea31"
integrity sha512-X0GlUwOlX4coDO+JOYR52HZt8HsWGZmwL8GWr+DmRZvjBfRl7zKv8cAd4urYz5zwAo9TQfMb5bitjM/HPl3MvA==
dependencies:
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/react-utils" "1.1.2"
"@popperjs/core" "2.4.4"
"@chakra-ui/portal@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/portal/-/portal-1.2.1.tgz#4b08a0011cbd49b925ef1a3d04aded3c31073439"
integrity sha512-dhgS7hO26cD7yjh/i7a0EzpnW5ZcT2sl1jNz9rxLmcCtipAeaM/IvC6l/u1AisGZ/L8Wp2lOuEbtuZSpuNaqNw==
"@chakra-ui/portal@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/portal/-/portal-1.2.4.tgz#a9038e9ed1ebd73834588fbe2c97230b1c92be79"
integrity sha512-clxYTpXQVSGcL6/+xrhYwKO9syOiPKrQLoe1fUJRp5QtppQ+JHJLKjbRkPujImHczMm2NZPfEqvuKYyHaZjDjw==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/progress@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/progress/-/progress-1.1.5.tgz#097b4e6376c9e56e2c66d7067382d76bd8789eb4"
integrity sha512-iJFMgVTx0g/Y1pYNHHDTS/tJTS3zHKbkd1UgedzXvOw3G/BmkZ1irJaOwYZvkns3nfe0dYw2bQ4ZkAVBdHJpRQ==
"@chakra-ui/progress@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/progress/-/progress-1.1.8.tgz#a9ce66b72643ad496dc4b329a68262b8aa5abab3"
integrity sha512-3plfN2XxbjsfyPQc2JIcIgYS9Ofz16Sz0AQM8BZ3eziB17DaeFQua0nep76wFwjgKBuZUPO+lK7QYHMx0eLDdQ==
dependencies:
"@chakra-ui/theme-tools" "1.1.3"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/theme-tools" "1.1.6"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/radio@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/radio/-/radio-1.3.1.tgz#39985ae1919bc54ecf2ed9bf91d36b56b34d3975"
integrity sha512-BtbJW8Y1+QKtAcNvM1DAohjlVEnJgWhc5BELOI/RqZuTAVtFRqHtdRphJPiCO8eZ/PnCRhCd0gjgr5Oo2MV5Lw==
"@chakra-ui/radio@1.3.4":
version "1.3.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/radio/-/radio-1.3.4.tgz#cb11bd6ad6a1a6bb694d839ca4f7f9c3f92039bd"
integrity sha512-OuYLs/IJIBPMGsB6Zwf5ohoWYGmZq134sBa4iI3aKjlVfBpqLUHX3dtln1dj6alRlThW8npeJC5j3nmjrZ6pfA==
dependencies:
"@chakra-ui/form-control" "1.3.1"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/visually-hidden" "1.0.8"
"@chakra-ui/form-control" "1.3.4"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/visually-hidden" "1.0.11"
"@chakra-ui/react-utils@1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/react-utils/-/react-utils-1.1.1.tgz#13467fbbfe140144a1956b41e831ea4f2d7486e7"
integrity sha512-L5G3e9kTVD5k6T/Aywtq+GegNq/4b+xWkQ4e5DJ5/pS5efsOoaSZcwC61tzGSGLZe+8LBRgaAcIf/aNN3GPjEw==
"@chakra-ui/react-env@1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@chakra-ui/react-env/-/react-env-1.0.3.tgz#ea97d7d1aeebdfac6c7510b4b71a0c46b26174e6"
integrity sha512-9oYWKCIMxRboSgMI1ur4fQqwQm6zZGp0ilm/9BcpCTHa1FXLlOh19GE2L6PkcOahM8icbw6bXX35VdpgIIoOZg==
dependencies:
"@chakra-ui/utils" "^1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/react-utils@1.1.2", "@chakra-ui/react-utils@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@chakra-ui/react-utils/-/react-utils-1.1.2.tgz#7ea80b6ae25bd7b182095cc9ffaad23c464408b5"
integrity sha512-S8jPVKGZH2qF7ZGxl/0DF/dXXI2AxDNGf4Ahi2LGHqajMvqBB7vtYIRRmIA7+jAnErhzO8WUi3i4Z7oScp6xSA==
dependencies:
"@chakra-ui/utils" "^1.7.0"
"@chakra-ui/react@^1.4.1":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/react/-/react-1.5.0.tgz#bf3326e2c1ff1da8a1e05a933d369af702cf4ad8"
integrity sha512-bk4ZmP+gpC78kD4YoAoFM7VFhyCS45vCQu2k8EsGySiFRGAVREo3y4Gw2FnZ/sL59UnwvJrKemIns71qdiKW9w==
version "1.6.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/react/-/react-1.6.0.tgz#6eb5aa1563e0d36e008b03f94d112e0aaaaf0a6e"
integrity sha512-xz6buC2jb7VVspV8SadR9pkEYbBCHOQ+MwcJTm+cveZVWfeth1SwU0Jb7pT4UEDB/OVv2LlaqnYUzsnc585Tpw==
dependencies:
"@chakra-ui/accordion" "1.2.1"
"@chakra-ui/alert" "1.2.1"
"@chakra-ui/avatar" "1.2.1"
"@chakra-ui/breadcrumb" "1.2.1"
"@chakra-ui/button" "1.2.1"
"@chakra-ui/checkbox" "1.4.1"
"@chakra-ui/close-button" "1.1.5"
"@chakra-ui/control-box" "1.0.8"
"@chakra-ui/counter" "1.1.1"
"@chakra-ui/accordion" "1.3.0"
"@chakra-ui/alert" "1.2.4"
"@chakra-ui/avatar" "1.2.4"
"@chakra-ui/breadcrumb" "1.2.4"
"@chakra-ui/button" "1.3.1"
"@chakra-ui/checkbox" "1.5.1"
"@chakra-ui/close-button" "1.1.8"
"@chakra-ui/control-box" "1.0.11"
"@chakra-ui/counter" "1.1.4"
"@chakra-ui/css-reset" "1.0.0"
"@chakra-ui/editable" "1.2.1"
"@chakra-ui/form-control" "1.3.1"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/image" "1.0.11"
"@chakra-ui/input" "1.2.1"
"@chakra-ui/layout" "1.4.1"
"@chakra-ui/live-region" "1.0.8"
"@chakra-ui/media-query" "1.0.9"
"@chakra-ui/menu" "1.3.1"
"@chakra-ui/modal" "1.8.1"
"@chakra-ui/number-input" "1.2.1"
"@chakra-ui/pin-input" "1.5.1"
"@chakra-ui/popover" "1.5.0"
"@chakra-ui/popper" "2.1.0"
"@chakra-ui/portal" "1.2.1"
"@chakra-ui/progress" "1.1.5"
"@chakra-ui/radio" "1.3.1"
"@chakra-ui/select" "1.1.5"
"@chakra-ui/skeleton" "1.1.8"
"@chakra-ui/slider" "1.2.1"
"@chakra-ui/spinner" "1.1.5"
"@chakra-ui/stat" "1.1.5"
"@chakra-ui/switch" "1.2.1"
"@chakra-ui/system" "1.6.1"
"@chakra-ui/table" "1.2.0"
"@chakra-ui/tabs" "1.3.1"
"@chakra-ui/tag" "1.1.5"
"@chakra-ui/textarea" "1.1.5"
"@chakra-ui/theme" "1.8.1"
"@chakra-ui/toast" "1.2.2"
"@chakra-ui/tooltip" "1.3.1"
"@chakra-ui/transition" "1.1.2"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/visually-hidden" "1.0.8"
"@chakra-ui/editable" "1.2.4"
"@chakra-ui/form-control" "1.3.4"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/image" "1.0.14"
"@chakra-ui/input" "1.2.4"
"@chakra-ui/layout" "1.4.4"
"@chakra-ui/live-region" "1.0.11"
"@chakra-ui/media-query" "1.0.12"
"@chakra-ui/menu" "1.6.0"
"@chakra-ui/modal" "1.8.4"
"@chakra-ui/number-input" "1.2.4"
"@chakra-ui/pin-input" "1.6.0"
"@chakra-ui/popover" "1.6.1"
"@chakra-ui/popper" "2.1.2"
"@chakra-ui/portal" "1.2.4"
"@chakra-ui/progress" "1.1.8"
"@chakra-ui/radio" "1.3.4"
"@chakra-ui/react-env" "1.0.3"
"@chakra-ui/select" "1.1.8"
"@chakra-ui/skeleton" "1.1.11"
"@chakra-ui/slider" "1.2.4"
"@chakra-ui/spinner" "1.1.8"
"@chakra-ui/stat" "1.1.8"
"@chakra-ui/switch" "1.2.4"
"@chakra-ui/system" "1.6.4"
"@chakra-ui/table" "1.2.3"
"@chakra-ui/tabs" "1.5.0"
"@chakra-ui/tag" "1.1.8"
"@chakra-ui/textarea" "1.1.8"
"@chakra-ui/theme" "1.8.4"
"@chakra-ui/toast" "1.2.5"
"@chakra-ui/tooltip" "1.3.4"
"@chakra-ui/transition" "1.2.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/visually-hidden" "1.0.11"
"@chakra-ui/select@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/select/-/select-1.1.5.tgz#250f47383bab3655b4975e4bb5b5ef6038c3b24f"
integrity sha512-noftoX3isfJ08bzh2YR/Q1ITE6ldQcxD7XzTRBH3lTDwUK6oyMfKpsTYXLXFgigyp7aiJoM/Vw2DbDAkJf2xVA==
dependencies:
"@chakra-ui/form-control" "1.3.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/skeleton@1.1.8":
"@chakra-ui/select@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/skeleton/-/skeleton-1.1.8.tgz#4ce58b312b75299027fcbe43701d7402b22fd46d"
integrity sha512-dzi9vq/KVNuW2dgP8jyQTxQPFJsoiVjkEnqOaEKHPS4O8IW1e0HTz3/uaHjUaJB9+7Fx/QEEy8iZ554sJ+wklw==
resolved "https://registry.yarnpkg.com/@chakra-ui/select/-/select-1.1.8.tgz#273c66c302338b4bb525adcc7db31ab05ca45062"
integrity sha512-XdWaE6wTMZ5JebNFK2BqCW6UFg9OEJ/ThRtA4A8UCXriOv+hjWGjudHIiUsEl+6+j02iOfqw64IT1xJcGgH0bw==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/media-query" "1.0.9"
"@chakra-ui/system" "1.6.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/form-control" "1.3.4"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/slider@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/slider/-/slider-1.2.1.tgz#cc07f9ee3723006f4d7bf0582a1b11c67c309af0"
integrity sha512-1Ue1loDwB2R/BfvYwNRPBaRnkxm7VW2DkBNYSaA4vxriDc9coXAgo8ATP8iDj5ii8eUvd/JZqeSdYhhwtE2Tgg==
"@chakra-ui/skeleton@1.1.11":
version "1.1.11"
resolved "https://registry.yarnpkg.com/@chakra-ui/skeleton/-/skeleton-1.1.11.tgz#eab4c7d190f6d8e7e6ca86cfb1618a0bcefc8c32"
integrity sha512-Xh0iD84m5+OJxCr69rgDy4ediFNTNourk1QlMVVf7w2BAFVeDMM29wKkkjze9jGjfRdwKu9BxPyFz7Q5U0YxhQ==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/media-query" "1.0.12"
"@chakra-ui/system" "1.6.4"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/spinner@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/spinner/-/spinner-1.1.5.tgz#44f8c1fb24bf6534171152011146ef495c380b51"
integrity sha512-QN611tTVKzv150R2WWCVN+QYC0kmOZl36JFUQCdOpS8JT9zPukBcn57kxt6gwodsUo1RddfN+h0Vei6D6XWwZw==
"@chakra-ui/slider@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/slider/-/slider-1.2.4.tgz#9ba481404260beddf069fad4823b31b93478ef97"
integrity sha512-tZD1cHdJ/1RbpPodDlOuhkPE9XoRq6v/GKXDNJZiLuAoWr8gNf7auG3G7iJx2KmO/Px1CrbHSeNL1ufDt5YKew==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/visually-hidden" "1.0.8"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/stat@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/stat/-/stat-1.1.5.tgz#2a6f8af842cd26a2f1738f799663c797aea49b38"
integrity sha512-R9dynWIV6FnSop4p/w/QPAJ25jb0p0AjsGmPVJ7sjbob46+58iWvDB5N54Tcjw4XBnQ4E0+Ba/t0d7ecTBiF+w==
"@chakra-ui/spinner@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/spinner/-/spinner-1.1.8.tgz#766404a98924f693ce66c040baff3af4fe1dc81e"
integrity sha512-aE3X9Rq2MYjF7YjTDLyfJvj07y/Wp3reeRoXe6Yz8yDfLX14tOPK+k/iDSFnUHtwB4D7fxQX5kpQ65bqVbg3Qg==
dependencies:
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/visually-hidden" "1.0.8"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/visually-hidden" "1.0.11"
"@chakra-ui/styled-system@1.10.1":
version "1.10.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/styled-system/-/styled-system-1.10.1.tgz#6f6774bec8c0fec768ae8ea57686563f888378b6"
integrity sha512-fmLNnYmk6WbTSrApubsIRr9LOc5lclLkCa8DOP9mRTaUPKboy61c1p6vSYgto5DZVvNxEUqfuneboCUWk5ew+g==
"@chakra-ui/stat@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/stat/-/stat-1.1.8.tgz#0a53e292b5a1ac2333bcd8eda877fedd30013a25"
integrity sha512-TeEnOLTjYztBsUoNV/1WfFpWWou7wUvm7SfaSsmvXf14drclyc5cXHdPvcFKLd1R+jMMlsMAEqZ9szU9UZCdxw==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/visually-hidden" "1.0.11"
"@chakra-ui/styled-system@1.10.4":
version "1.10.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/styled-system/-/styled-system-1.10.4.tgz#70ea7dddec69dd9912ec1f65d502097f1f0b8cc6"
integrity sha512-NPfbdjMreEX5rTAXgiFCoh5OotMO+hVLO/ixnn84SpWCUFPRxN8v129DQ+J7VhaKNUqWPMidzx47FmY3RwEJTw==
dependencies:
"@chakra-ui/utils" "1.7.0"
csstype "^3.0.6"
"@chakra-ui/switch@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/switch/-/switch-1.2.1.tgz#ec2a4c8886dc6b902fddb67f6a1e4d824df28105"
integrity sha512-j4cRz9OHJNlH6YdDBoWT0vP+wZ9cHSPruWSS4q+tMF6Qcba8bsN7RWivy2MC6uKns2uLOLSCNgfM10VsR3z3gg==
"@chakra-ui/switch@1.2.4":
version "1.2.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/switch/-/switch-1.2.4.tgz#63c705fb3e108bf3b17a1cf045cd5545d82ad64e"
integrity sha512-pXEXQl4OjUUWqXx3vvXYIrnBHkn2P6H3sARcKs5g7ZwYDQsGgzrEu09HEO9CH/vEQr6XforT5LEQl6LFyApAwg==
dependencies:
"@chakra-ui/checkbox" "1.4.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/checkbox" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/system@1.6.1":
version "1.6.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/system/-/system-1.6.1.tgz#20ca13148a78aa3a1662df8be021449af8b712dc"
integrity sha512-zwH9jiGcYd5IZ5454EMfslEcbpigl6Kz/jBE1gsAA97SZFPxUhVamYKn0l2bhaYoRS9ZnDpKx93pFskLCMhBHQ==
"@chakra-ui/system@1.6.4":
version "1.6.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/system/-/system-1.6.4.tgz#827867b9bea2c9ce72fdc31001f2cb1b07df6ed2"
integrity sha512-sj93AHFIC8XaQnv3CgQt3Zyr7P3fYUbGMxHKxGDMcSplg+lwOoWVX3UhY3HKCezblsib1+HFhB37oFp7jHlJ4A==
dependencies:
"@chakra-ui/color-mode" "1.1.4"
"@chakra-ui/styled-system" "1.10.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/color-mode" "1.1.7"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/styled-system" "1.10.4"
"@chakra-ui/utils" "1.7.0"
react-fast-compare "3.2.0"
"@chakra-ui/table@1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/table/-/table-1.2.0.tgz#022495814001b609b3a76e1a2de18424346e007f"
integrity sha512-c9EwHoLASHm723rmyBe/6cwyYecv6YNxj1DxhsirdrtpAVwqDXmX+WJlpxzbo9SMV45LATHSgZH6oZ7MlDg8zg==
"@chakra-ui/table@1.2.3":
version "1.2.3"
resolved "https://registry.yarnpkg.com/@chakra-ui/table/-/table-1.2.3.tgz#6a6754f1d3c55c7ad6a3084c680e01c08ad5d82a"
integrity sha512-nWpZpuS4SnzqDiXb+U03bcOYcmgJNBfd/2O2i2n3EYGwwg+6iso4QPWM+PP4xu+PxeBtQtQ+CPKkERLNka0NiQ==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/tabs@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/tabs/-/tabs-1.3.1.tgz#a8fcbeb28db07a4a89bc1a806a4d1d918f076e91"
integrity sha512-/Fy+rGSNX6NWYDa9rrsx8J/HJ4tEt3v3jVDBScU5RYjhO3M6nOSZtsdlHn6H5FiGqj2sw5MEZoySeV/neFuOkw==
"@chakra-ui/tabs@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/tabs/-/tabs-1.5.0.tgz#8f31f6b076ed6d56c931ff3142696cfc2992dab6"
integrity sha512-J3VIRdQeh8u8lsOhuGvrJVHWS7Bz2V9RAKqgSsTcKPVd8EKo50Yv61LgMR0+C1ba1thlbzoY2+Yoz8HFCQzIKg==
dependencies:
"@chakra-ui/clickable" "1.1.1"
"@chakra-ui/descendant" "1.1.1"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/react-utils" "1.1.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/clickable" "1.1.4"
"@chakra-ui/descendant" "2.0.0"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/tag@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/tag/-/tag-1.1.5.tgz#36b2443a87cf75ab6c843af840d33f7cbb8b9ba2"
integrity sha512-fNL86m2C3M8tBLYOVgvJKaVRZii/tPcUX7bFASwAKFwaLmQ5ZuM6r14OkQcZXuM96gznzMQXDle1F2r8HiCFeA==
"@chakra-ui/tag@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/tag/-/tag-1.1.8.tgz#bccdb4eb624d068358ef59c5449f2b2766a0ac6d"
integrity sha512-ebbFX5XUQlVNIynTxoFOeAJdGubGWtsbuwkPY/2c96hhrrWzb6IdK1CvKy5trhGWpKGtNJ7w+kcaDHQRX7oDvg==
dependencies:
"@chakra-ui/icon" "1.1.5"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/icon" "1.1.8"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/textarea@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/textarea/-/textarea-1.1.5.tgz#0456fa05f978e0736e6e452ef917fff7a14fefbb"
integrity sha512-e3yCv0n1ij2gUqEBv0xyasbiIdV0UNSi8Bof0cbCIVXf02yb52w4s93EGEHaI10+z8zCniJPflIUghjVl3zMkg==
"@chakra-ui/textarea@1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/textarea/-/textarea-1.1.8.tgz#695be8f52b4ee93557ffdc460a3cbdd2f896fe3d"
integrity sha512-L4xhCB6HSvR7A4XbrGu0xjnfBFqGtZfYZolz5VTfGbw0Zbc3B7wW59zL6XR2+wfkJhXzygy8tVQEn1n6u59EnQ==
dependencies:
"@chakra-ui/form-control" "1.3.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/form-control" "1.3.4"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/theme-tools@1.1.3":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@chakra-ui/theme-tools/-/theme-tools-1.1.3.tgz#16b1404d530eca7c51f2ccb57d0bb33c81d0501d"
integrity sha512-Vw8YZwRtbzoDMOY+RxWwSpAXSwfg1S+CSJCry7gpehvumgApoBZFkbfrnXmiuOm4YsJcKgdMNdIhtFRNhtwD1w==
"@chakra-ui/theme-tools@1.1.6":
version "1.1.6"
resolved "https://registry.yarnpkg.com/@chakra-ui/theme-tools/-/theme-tools-1.1.6.tgz#b97a37135f17454ff4b326b9790e57d409fddd81"
integrity sha512-VnAO9AAJGr967mHtAnJCq9mKzfka8I9Ya/6hYU/t1EaaMLy1IseIGkRX3hGYwpl3RZBXGamMxc4C5fJ0TKI4Lg==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@types/tinycolor2" "1.4.2"
tinycolor2 "1.4.2"
"@chakra-ui/theme@1.8.1":
version "1.8.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/theme/-/theme-1.8.1.tgz#584b1a0c05c250e60aa78d2776c615a1b248ec17"
integrity sha512-EPjXK9eAL3wOe86M0HrsfkVoRBn5VXzeSAeKvxkRXELxaPwnz5X/HOpGvA2J0zlwYqv1K11jxavVNZ8F1rQT7A==
"@chakra-ui/theme@1.8.4":
version "1.8.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/theme/-/theme-1.8.4.tgz#acf467c818f11aa5bcf1acd2e025063afb51aaad"
integrity sha512-fmzl4gHpETwv7QvvWs1cLouXOTjkzsVWURZNzkDFWm/wOV8IQ2GsDFjP+dA5J2pvHIB6KovyXoN3BdTz9qdPqw==
dependencies:
"@chakra-ui/theme-tools" "1.1.3"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/theme-tools" "1.1.6"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/toast@1.2.2":
version "1.2.2"
resolved "https://registry.yarnpkg.com/@chakra-ui/toast/-/toast-1.2.2.tgz#6b5e5dc401d5fa00de6f8d250ede2c7014fccb5a"
integrity sha512-6jsBoHc55P2fPH75uS6wOC2e+lgC5OS1x0FtJo2d+NN/U0l1f8Kxxp2v8OIA6U96Pl0HRXR03M0THOwFQTgEaQ==
"@chakra-ui/toast@1.2.5":
version "1.2.5"
resolved "https://registry.yarnpkg.com/@chakra-ui/toast/-/toast-1.2.5.tgz#65393572b1ed6aca199e421f65cf62606639583e"
integrity sha512-+Yw4Y68LdMUVsBMAjSQXFs5S+eIEzk5rFcxGYNNvCBWj/2jCuHv/pb0gI9Qk6o/z4zuY4vnGXGYBGYCdo8zOzg==
dependencies:
"@chakra-ui/alert" "1.2.1"
"@chakra-ui/close-button" "1.1.5"
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/theme" "1.8.1"
"@chakra-ui/transition" "1.1.2"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/alert" "1.2.4"
"@chakra-ui/close-button" "1.1.8"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/theme" "1.8.4"
"@chakra-ui/transition" "1.2.2"
"@chakra-ui/utils" "1.7.0"
"@reach/alert" "0.13.2"
"@chakra-ui/tooltip@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/tooltip/-/tooltip-1.3.1.tgz#3737688e105852b31c44da8c7ff00bca5d86835c"
integrity sha512-6S58jDa0ZnzgCNrEmaAi8bEjgCj9Dn77LE4ywAkrbh9hHzFuDLl1l2waLBUHBgVrJQ7aY3wgTWE3pMOPuHAWWw==
"@chakra-ui/tooltip@1.3.4":
version "1.3.4"
resolved "https://registry.yarnpkg.com/@chakra-ui/tooltip/-/tooltip-1.3.4.tgz#fcca05091cf0086014c209919505e35601a505d6"
integrity sha512-EnaYXZ4VbMlN12vpobKe5XXBAUxzaBQmxLTzEKlCEYBnhOu9qDR6fRUgF7nwcR8urgNBMfO1t3uED971upOMjQ==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/popper" "2.1.0"
"@chakra-ui/portal" "1.2.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/visually-hidden" "1.0.8"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/popper" "2.1.2"
"@chakra-ui/portal" "1.2.4"
"@chakra-ui/react-utils" "1.1.2"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/visually-hidden" "1.0.11"
"@chakra-ui/transition@1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@chakra-ui/transition/-/transition-1.1.2.tgz#40f492bcaa9c73175c20ccaff7f07d7cfa21c6bc"
integrity sha512-8mT/zd4I8lfwBCQxlmL5jGvjYpJdXm4hLird9taec1VKNF74pRoOvzicdJaEZItR7YnHubH7+kRHDGhYcXSh0Q==
"@chakra-ui/transition@1.2.2":
version "1.2.2"
resolved "https://registry.yarnpkg.com/@chakra-ui/transition/-/transition-1.2.2.tgz#eeeea236b287aa8818b87676e96cceaf83f3a803"
integrity sha512-NzNE0LyD4QzvkmgpfnjshA5sxzC14bMpgLBIXklrOyUEjV7b04erYOXd3iS26JWyu4nPTyMYXH5ipxKcI1SjSA==
dependencies:
"@chakra-ui/hooks" "1.3.1"
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/hooks" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@chakra-ui/utils@1.5.1", "@chakra-ui/utils@^1.5.1":
version "1.5.1"
resolved "https://registry.yarnpkg.com/@chakra-ui/utils/-/utils-1.5.1.tgz#a01fd14f6d948a13c2644cfa844f410299135ffc"
integrity sha512-J8P9wA96Kaxu4oHh+8s1rEL2VABWK/io8sBck19eOXKfVXJ55KyVwGZTrsVID0No43b7WzJx6n/xsMKkn39Peg==
"@chakra-ui/utils@1.7.0", "@chakra-ui/utils@^1.7.0":
version "1.7.0"
resolved "https://registry.yarnpkg.com/@chakra-ui/utils/-/utils-1.7.0.tgz#21c4807f56487284b93773da22665b63730a784c"
integrity sha512-fMZOnWBh/TzAYufkpeVw3yMNxKmYHEkB93luDpIJgxGt4mrbl+A66pd5GvJSGK1N34WYbjWRiJrrSvRI548eZA==
dependencies:
"@types/lodash.mergewith" "4.6.6"
css-box-model "1.2.1"
framesync "5.3.0"
lodash.mergewith "4.6.2"
"@chakra-ui/visually-hidden@1.0.8":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@chakra-ui/visually-hidden/-/visually-hidden-1.0.8.tgz#aa4ec1cdec99437f11527af24b3f44b7b0fe7b8f"
integrity sha512-WTbXK9aonPYcttgqb6v+cKAwKYJ4C0iPtr90cEQTosSk08YlC1yz1G1vfU269u5grY8y7QAUgmM/alCm0HdRoA==
"@chakra-ui/visually-hidden@1.0.11":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@chakra-ui/visually-hidden/-/visually-hidden-1.0.11.tgz#011dfe91817bc5b40548c0504dac57552f63d70c"
integrity sha512-gk2GVdEesFLN6Xrx2/kHfyzmT9nu0iVpvkY2tWnIVvSgpWh5zwGFO/DNpnxOkx9k9Pd/ffhCgki9OkpPL1NO9A==
dependencies:
"@chakra-ui/utils" "1.5.1"
"@chakra-ui/utils" "1.7.0"
"@cnakazawa/watch@^1.0.3":
version "1.0.4"
@@ -4622,11 +4641,16 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
csstype@^3.0.2, csstype@^3.0.6:
csstype@^3.0.2:
version "3.0.7"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b"
integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==
csstype@^3.0.6:
version "3.0.8"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340"
integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==
cyclist@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
@@ -11739,11 +11763,16 @@ tslib@^1.0.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.3, tslib@^2.1.0:
tslib@^2.0.3:
version "2.1.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
tslib@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
tsutils@^3.17.1:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+4 -2
View File
@@ -23,7 +23,9 @@ const cors = require('cors');
// Import Routes
const eventsRouter = require('./routes/eventsRouter.js');
const settingsRouter = require('./routes/settingsRouter.js');
const eventRouter = require('./routes/eventRouter.js');
// No settings yet
// const settingsRouter = require('./routes/settingsRouter.js');
// Setup default port
const port = process.env.PORT || config.server.port;
@@ -46,7 +48,7 @@ app.use(express.json());
// Implement route endpoints
app.use('/events', eventsRouter);
app.use('/settings', settingsRouter);
app.use('/event', eventRouter);
// implement general router
app.get('/', function (req, res) {
@@ -1,12 +1,12 @@
// get database
const db = require('../app.js').db;
const table = 'settings';
const table = 'event';
function getSettings() {
return db.get(table).value();
}
// Create controller for GET request to 'settings'
// Create controller for GET request to 'event'
// Returns ACK message
exports.getAll = async (req, res) => {
const settings = getSettings();
@@ -14,7 +14,7 @@ exports.getAll = async (req, res) => {
else res.sendStatus(400);
};
// Create controller for POST request to 'settings'
// Create controller for POST request to 'event'
// Returns ACK message
exports.post = async (req, res) => {
if (!req.body) {
@@ -32,7 +32,7 @@ exports.post = async (req, res) => {
}
};
// Create controller for GET request to 'settings/title'
// Create controller for GET request to 'event/title'
// Returns ACK message
exports.titleGet = async (req, res) => {
const settings = getSettings();
@@ -41,7 +41,7 @@ exports.titleGet = async (req, res) => {
else res.sendStatus(400);
};
// Create controller for POST request to 'settings/title'
// Create controller for POST request to 'event/title'
// Returns ACK message
exports.titlePost = async (req, res) => {
if (!req.body) {
@@ -58,7 +58,7 @@ exports.titlePost = async (req, res) => {
}
};
// Create controller for GET request to '/settings/url'
// Create controller for GET request to '/event/url'
// Returns ACK message
exports.urlGet = async (req, res) => {
let event = getEventOptions();
@@ -67,7 +67,7 @@ exports.urlGet = async (req, res) => {
else res.sendStatus(400);
};
// Create controller for POST request to '/settings/url'
// Create controller for POST request to '/event/url'
// Returns ACK message
exports.urlPost = async (req, res) => {
if (!req.body) {
@@ -84,7 +84,7 @@ exports.urlPost = async (req, res) => {
}
};
// Create controller for GET request to 'settings/publicInfo'
// Create controller for GET request to 'event/publicInfo'
// Returns ACK message
exports.publicInfoGet = async (req, res) => {
const settings = getSettings();
@@ -93,7 +93,7 @@ exports.publicInfoGet = async (req, res) => {
else res.sendStatus(400);
};
// Create controller for POST request to '/settings/publicInfo'
// Create controller for POST request to '/event/publicInfo'
// Returns ACK message
exports.publicInfoPost = async (req, res) => {
if (!req.body) {
@@ -110,7 +110,7 @@ exports.publicInfoPost = async (req, res) => {
}
};
// Create controller for GET request to 'settings/backstageInfo'
// Create controller for GET request to 'event/backstageInfo'
// Returns ACK message
exports.backstageInfoGet = async (req, res) => {
const settings = getSettings();
@@ -119,7 +119,7 @@ exports.backstageInfoGet = async (req, res) => {
else res.sendStatus(400);
};
// Create controller for POST request to '/settings/info'
// Create controller for POST request to '/event/info'
// Returns ACK message
exports.backstageInfoPost = async (req, res) => {
if (!req.body) {
@@ -136,7 +136,7 @@ exports.backstageInfoPost = async (req, res) => {
}
};
// Create controller for GET request to 'settings/osc'
// Create controller for GET request to 'event/osc'
// Returns ACK message
exports.osc = async (req, res) => {
res.send('Not yet implemented').status(500);
@@ -2,36 +2,36 @@ const express = require('express');
const router = express.Router();
// import event controller
const settingsController = require('../controllers/settingsController');
const eventController = require('../controllers/eventController');
// create route between controller and '/settings' endpoint
router.get('/', settingsController.getAll);
router.get('/', eventController.getAll);
// create route between controller and '/settings' endpoint
router.post('/', settingsController.post);
router.post('/', eventController.post);
// create route between controller and '/event/title' endpoint
router.get('/title', settingsController.titleGet);
router.get('/title', eventController.titleGet);
// create route between controller and '/event/title' endpoint
router.post('/title', settingsController.titlePost);
router.post('/title', eventController.titlePost);
// create route between controller and '/event/info' endpoint
router.get('/publicInfo', settingsController.publicInfoGet);
router.get('/publicInfo', eventController.publicInfoGet);
// create route between controller and '/event/info' endpoint
router.post('/publicInfo', settingsController.publicInfoPost);
router.post('/publicInfo', eventController.publicInfoPost);
// create route between controller and '/event/info' endpoint
router.get('/backstageInfo', settingsController.backstageInfoGet);
router.get('/backstageInfo', eventController.backstageInfoGet);
// create route between controller and '/event/info' endpoint
router.post('/backstageInfo', settingsController.backstageInfoPost);
router.post('/backstageInfo', eventController.backstageInfoPost);
// create route between controller and '/event/url' endpoint
router.get('/url', settingsController.urlGet);
router.get('/url', eventController.urlGet);
// create route between controller and '/event/url' endpoint
router.post('/url', settingsController.urlPost);
router.post('/url', eventController.urlPost);
module.exports = router;