diff --git a/deploy-dev.sh b/deploy-dev.sh
new file mode 100644
index 0000000..2628f3e
--- /dev/null
+++ b/deploy-dev.sh
@@ -0,0 +1,7 @@
+BASEDIR=$(dirname "$0")
+
+npx webpack --mode production --progress || exit $?
+
+rsync -azv $BASEDIR/public/* system-praktyk@kadet.net:~/dev/front
+rsync -azv $BASEDIR/build/* system-praktyk@kadet.net:~/dev/front
+
diff --git a/deploy-stg.sh b/deploy-stg.sh
new file mode 100644
index 0000000..b62a27d
--- /dev/null
+++ b/deploy-stg.sh
@@ -0,0 +1,7 @@
+BASEDIR=$(dirname "$0")
+
+npx webpack --mode production --progress || exit $?
+
+rsync -azv $BASEDIR/public/* system-praktyk@kadet.net:~/stg/front
+rsync -azv $BASEDIR/build/* system-praktyk@kadet.net:~/stg/front
+
diff --git a/package.json b/package.json
index 7610207..e01bd37 100644
--- a/package.json
+++ b/package.json
@@ -5,11 +5,14 @@
"dependencies": {
"@babel/core": "7.9.0",
"@babel/preset-typescript": "^7.10.1",
+ "@ckeditor/ckeditor5-build-classic": "^23.1.0",
+ "@ckeditor/ckeditor5-react": "^3.0.0",
"@date-io/moment": "^1.3.13",
"@material-ui/core": "^4.10.1",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "^4.0.0-alpha.55",
"@material-ui/pickers": "^3.2.10",
+ "@svgr/webpack": "^5.5.0",
"@types/classnames": "^2.2.10",
"@types/node": "^12.0.0",
"@types/react": "^16.9.0",
@@ -38,9 +41,9 @@
"i18next": "^19.6.0",
"i18next-browser-languagedetector": "^5.0.0",
"jsonwebtoken": "^8.5.1",
+ "material-table": "^1.69.1",
"material-ui-dropzone": "^3.3.0",
"mdi-material-ui": "^6.17.0",
- "moment-timezone": "^2.26.0",
"moment-timezone": "^0.5.31",
"node-sass": "^4.14.1",
"optimize-css-assets-webpack-plugin": "5.0.3",
diff --git a/public/img/pg-logo.svg b/public/img/pg-logo.svg
new file mode 100644
index 0000000..a7c3d65
--- /dev/null
+++ b/public/img/pg-logo.svg
@@ -0,0 +1,53 @@
+
+
diff --git a/public/index.html b/public/index.html
index 987754d..c4577dc 100644
--- a/public/index.html
+++ b/public/index.html
@@ -5,6 +5,7 @@
+
Zgłoszenie praktyki studenckiej
diff --git a/src/api/dto/course.ts b/src/api/dto/course.ts
index 8b13f1f..62bcda0 100644
--- a/src/api/dto/course.ts
+++ b/src/api/dto/course.ts
@@ -17,7 +17,6 @@ export const courseDtoTransformer: Transformer = {
id: subject.id,
name: subject.name,
desiredSemesters: [],
- possibleProgramEntries: [], // todo
};
}
}
diff --git a/src/api/dto/type.ts b/src/api/dto/type.ts
index 213dcb1..611a805 100644
--- a/src/api/dto/type.ts
+++ b/src/api/dto/type.ts
@@ -19,7 +19,9 @@ export const internshipTypeDtoTransformer: Transformer= 4,
}
},
reverseTransform(subject: InternshipType, context?: unknown): InternshipTypeDTO {
diff --git a/src/api/index.ts b/src/api/index.ts
index 5f76ba3..930d924 100644
--- a/src/api/index.ts
+++ b/src/api/index.ts
@@ -13,7 +13,7 @@ import * as internship from "./internship";
import * as upload from "./upload";
export const axios = Axios.create({
- baseURL: process.env.API_BASE_URL || "https://system-praktyk.stg.kadet.net/api/",
+ baseURL: process.env.API_BASE_URL || `https://${window.location.hostname}/api/`,
})
axios.interceptors.request.use(config => {
diff --git a/src/api/internship.ts b/src/api/internship.ts
index ba09dfa..b17c190 100644
--- a/src/api/internship.ts
+++ b/src/api/internship.ts
@@ -21,20 +21,21 @@ export class ValidationError extends Error {
}
}
+interface ApiError {
+ key: string;
+ parameters: { [name: string]: string },
+}
+
interface UpdateResponse {
status: SubmissionState;
- errors?: string[];
+ errors?: ApiError[];
}
export async function update(internship: Nullable): Promise {
const response = (await axios.put(INTERNSHIP_REGISTRATION_ENDPOINT, internship)).data;
if (response.status == SubmissionState.Draft) {
- throw new ValidationError(
- response.errors?.map(
- msg => ({ key: msg, parameters: {} })
- ) || []
- );
+ throw new ValidationError(response.errors || []);
}
return response.status;
diff --git a/src/api/page.ts b/src/api/page.ts
index 1a5cd02..a94def4 100644
--- a/src/api/page.ts
+++ b/src/api/page.ts
@@ -3,7 +3,7 @@ import { PageDTO, pageDtoTransformer } from "./dto/page"
import { axios } from "@/api/index";
import { prepare } from "@/routing";
-const STATIC_PAGE_ENDPOINT = "/staticPage/:slug"
+export const STATIC_PAGE_ENDPOINT = "/staticPage/:slug"
export async function get(slug: string): Promise {
const response = await axios.get(prepare(STATIC_PAGE_ENDPOINT, { slug }))
diff --git a/src/api/type.ts b/src/api/type.ts
index aa6c577..08ad36f 100644
--- a/src/api/type.ts
+++ b/src/api/type.ts
@@ -2,7 +2,7 @@ import { InternshipType } from "@/data";
import { axios } from "@/api/index";
import { InternshipTypeDTO, internshipTypeDtoTransformer } from "@/api/dto/type";
-const AVAILABLE_INTERNSHIP_TYPES = '/internshipTypes';
+const AVAILABLE_INTERNSHIP_TYPES = '/internshipTypes/current';
export async function available(): Promise {
const response = await axios.get(AVAILABLE_INTERNSHIP_TYPES);
diff --git a/src/api/upload.ts b/src/api/upload.ts
index 4657fce..43aab7a 100644
--- a/src/api/upload.ts
+++ b/src/api/upload.ts
@@ -2,6 +2,7 @@ import { axios } from "@/api/index";
import { InternshipDocument } from "@/api/dto/internship-registration";
import { prepare } from "@/routing";
import { Identifiable } from "@/data";
+import store from "@/state/store";
export enum UploadType {
Ipp = "IppScan",
@@ -17,6 +18,7 @@ export interface DocumentFileInfo extends Identifiable {
const CREATE_DOCUMENT_ENDPOINT = '/document';
const DOCUMENT_UPLOAD_ENDPOINT = '/document/:id/scan';
+const DOCUMENT_DOWNLOAD_ENDPOINT = 'document/:id/scan/download';
export async function create(type: UploadType) {
const response = await axios.post(CREATE_DOCUMENT_ENDPOINT, { type });
@@ -35,3 +37,7 @@ export async function fileinfo(document: InternshipDocument): Promise(prepare(DOCUMENT_UPLOAD_ENDPOINT, { id: document.id as string }));
return response.data;
}
+
+export function link(document: InternshipDocument): string {
+ return axios.defaults.baseURL + prepare(DOCUMENT_DOWNLOAD_ENDPOINT, { id: document.id as string }) + "?auth=" + store.getState().user.token;
+}
diff --git a/src/app.tsx b/src/app.tsx
index 607090a..47d9ad6 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -15,6 +15,7 @@ import { getLocale, Locale } from "@/state/reducer/settings";
import i18n from "@/i18n";
import moment from "moment-timezone";
import { Container } from "@material-ui/core";
+import { useCurrentUser } from "@/hooks";
const UserMenu = (props: HTMLProps) => {
const student = useSelector(state => state.student as Student);
@@ -62,6 +63,7 @@ const LanguageSwitcher = ({ className, ...props }: HTMLProps)
function App() {
const { t } = useTranslation();
const locale = useSelector(state => getLocale(state.settings));
+ const user = useCurrentUser();
useEffect(() => {
i18n.changeLanguage(locale);
@@ -96,13 +98,19 @@ function App() {
{
- { routes.map(({ name, content, middlewares = [], ...route }) =>
- { processMiddlewares([ ...middlewares, content ]) }
- ) }
+ { routes.map(({ name, content, middlewares = [], ...route }) =>
+ {
+ const Next = () => processMiddlewares([ ...middlewares, content ])
+ return
+ } } />
+ ) }
}
diff --git a/src/components/actions.tsx b/src/components/actions.tsx
index 79ce5e2..5259037 100644
--- a/src/components/actions.tsx
+++ b/src/components/actions.tsx
@@ -1,8 +1,12 @@
import React, { HTMLProps } from "react";
import { useHorizontalSpacing } from "@/styles";
-export const Actions = (props: HTMLProps) => {
- const classes = useHorizontalSpacing(2);
+export type ActionsProps = {
+ spacing?: number;
+} & HTMLProps;
- return
+export const Actions = ({ spacing = 2, ...props }: ActionsProps) => {
+ const classes = useHorizontalSpacing(spacing);
+
+ return
}
diff --git a/src/components/async.tsx b/src/components/async.tsx
index 6b90ce6..f99fbca 100644
--- a/src/components/async.tsx
+++ b/src/components/async.tsx
@@ -9,21 +9,22 @@ type AsyncProps = {
children: (value: TValue) => JSX.Element,
loading?: () => JSX.Element,
error?: (error: TError) => JSX.Element,
+ keepValue?: boolean;
}
const defaultLoading = () => ;
const defaultError = (error: any) => { error.message };
export function Async(
- { async, children: render, loading = defaultLoading, error = defaultError }: AsyncProps
+ { async, children: render, loading = defaultLoading, error = defaultError, keepValue = false }: AsyncProps
) {
- if (async.isLoading || (!async.error && !async.value)) {
- return loading();
+ if (async.value && (!async.isLoading || keepValue)) {
+ return render(async.value as TValue);
}
if (typeof async.error !== "undefined") {
return error(async.error);
}
- return render(async.value as TValue);
+ return loading();
}
diff --git a/src/components/confirm.tsx b/src/components/confirm.tsx
new file mode 100644
index 0000000..d08032e
--- /dev/null
+++ b/src/components/confirm.tsx
@@ -0,0 +1,46 @@
+import { useState } from "react";
+import React from "react";
+import { createPortal } from "react-dom";
+import { Button, ButtonProps, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from "@material-ui/core";
+import { useTranslation } from "react-i18next";
+
+export type ConfirmProps = {
+ children: (action: () => void) => React.ReactNode,
+ title?: string,
+ content?: React.ReactNode,
+ onConfirm?: () => void,
+ onCancel?: () => void,
+ confirm?: (props: Pick) => React.ReactNode,
+}
+
+export function Confirm({ children, title, content, confirm, onConfirm, onCancel }: ConfirmProps) {
+ const [ open, setOpen ] = useState(false);
+ const { t } = useTranslation();
+
+ const handleCancel = () => {
+ setOpen(false);
+ onCancel?.();
+ }
+
+ const handleConfirm = () => {
+ setOpen(false);
+ onConfirm?.();
+ }
+
+ return <>
+ { children(() => { setOpen(true) }) }
+ { createPortal(
+ ,
+ document.getElementById("modals") as Element,
+ ) }
+ >
+}
diff --git a/src/components/contact.tsx b/src/components/contact.tsx
new file mode 100644
index 0000000..03b5cea
--- /dev/null
+++ b/src/components/contact.tsx
@@ -0,0 +1,74 @@
+import React, { useState } from "react";
+import { useTranslation } from "react-i18next";
+import { useSpacing } from "@/styles";
+import { Field, Form, Formik } from "formik";
+import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle, Typography } from "@material-ui/core";
+import { CKEditorField } from "@/field/ckeditor";
+import { Actions } from "@/components/actions";
+import { Cancel, Send } from "mdi-material-ui";
+import { createPortal } from "react-dom";
+import { capitalize } from "@/helpers";
+
+export type ContactFormValues = {
+ content: string;
+}
+
+const initialContactFormValues: ContactFormValues = {
+ content: "",
+}
+
+export type ContactDialogProps = {
+ onSend: (values: ContactFormValues) => void;
+} & DialogProps;
+
+export function ContactForm() {
+ const { t } = useTranslation();
+ const spacing = useSpacing(2);
+
+ return
+
+
+}
+
+export function ContactDialog({ onSend, ...props }: ContactDialogProps) {
+ const spacing = useSpacing(2);
+ const { t } = useTranslation();
+
+ return
+}
+
+export type ContactActionProps = {
+ children: (props: { action: () => void }) => React.ReactNode
+};
+
+export function ContactAction({ children }: ContactActionProps) {
+ const [open, setOpen] = useState(false);
+
+ const handleClose = () => { setOpen(false) };
+ const handleSubmit = (values: ContactFormValues) => {
+ setOpen(false);
+ }
+
+ return <>
+ { children({ action: () => setOpen(true) }) }
+ { createPortal(
+ ,
+ document.getElementById("modals") as HTMLElement
+ ) }
+ >
+}
diff --git a/src/components/fileinfo.tsx b/src/components/fileinfo.tsx
index 544baee..6989f91 100644
--- a/src/components/fileinfo.tsx
+++ b/src/components/fileinfo.tsx
@@ -84,7 +84,7 @@ export const FileInfo = ({ document, ...props }: FileInfoProps) => {
- }>{ t("download") }
+ } href={ api.upload.link(document) }>{ t("download") }
}
diff --git a/src/data/internship.ts b/src/data/internship.ts
index b819581..e448bc1 100644
--- a/src/data/internship.ts
+++ b/src/data/internship.ts
@@ -6,6 +6,8 @@ import { Company, Office } from "@/data/company";
export interface InternshipType extends Identifiable {
label: Multilingual,
description?: Multilingual,
+ requiresDeanApproval: boolean,
+ requiresInsurance: boolean,
}
export interface InternshipProgramEntry extends Identifiable {
diff --git a/src/data/page.ts b/src/data/page.ts
index ca7e3c9..e775e36 100644
--- a/src/data/page.ts
+++ b/src/data/page.ts
@@ -5,3 +5,5 @@ export interface Page extends Identifiable {
content: Multilingual;
slug: string;
}
+
+export default Page;
diff --git a/src/field/ckeditor.tsx b/src/field/ckeditor.tsx
new file mode 100644
index 0000000..07e4ea3
--- /dev/null
+++ b/src/field/ckeditor.tsx
@@ -0,0 +1,23 @@
+import { FieldProps } from "formik";
+
+// @ts-ignore
+import { CKEditor } from '@ckeditor/ckeditor5-react';
+// @ts-ignore
+import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
+import { FormControl, FormControlLabel, FormControlProps, FormLabel, TextFieldProps } from "@material-ui/core";
+import React from "react";
+
+export type CKEditorFieldProps = FieldProps & FormControlProps & { label?: string };
+
+export function CKEditorField({ field, form, error, label, ...props }: CKEditorFieldProps) {
+ const handleChange = (_: unknown, editor: any) => {
+ const data = editor.getData();
+ form.setFieldValue(field.name, data);
+ form.setFieldTouched(field.name);
+ }
+
+ return
+ { label }
+
+
+}
diff --git a/src/forms/internship.tsx b/src/forms/internship.tsx
index f5bfe04..e8dd4c9 100644
--- a/src/forms/internship.tsx
+++ b/src/forms/internship.tsx
@@ -112,7 +112,7 @@ const InternshipProgramForm = () => {
if (ev.target.checked) {
setSelectedProgramEntries([ ...selectedProgramEntries, entry ]);
} else {
- setSelectedProgramEntries(selectedProgramEntries.filter(cur => cur != entry));
+ setSelectedProgramEntries(selectedProgramEntries.filter(cur => cur.id != entry.id));
}
}
@@ -133,6 +133,7 @@ const InternshipProgramForm = () => {
onBlur={ handleBlur }
/>
+ { values.kind?.requiresDeanApproval && { t("internship.kind-requires-dean-approval") } }
{/**/}
{/* {*/}
{/* values.kind === InternshipType.Other &&*/}
@@ -159,6 +160,7 @@ const InternshipProgramForm = () => {
const InternshipDurationForm = () => {
const { t } = useTranslation();
+ const edition = useCurrentEdition();
const {
values: { startDate, endDate, workingHours },
errors,
@@ -174,6 +176,8 @@ const InternshipDurationForm = () => {
const hours = useMemo(() => overrideHours !== null ? overrideHours : computedHours || null, [overrideHours, computedHours]);
const weeks = useMemo(() => hours !== null ? Math.floor(hours / workingHours) : null, [ hours ]);
+ const requiresDeanApproval = useMemo(() => edition?.startDate?.isAfter(startDate) || edition?.endDate?.isBefore(endDate), [ startDate, endDate ])
+
useUpdateEffect(() => {
setFieldTouched("hours", true);
setFieldValue("hours", hours, true);
@@ -200,6 +204,9 @@ const InternshipDurationForm = () => {
minDate={ startDate }
/>
+ { requiresDeanApproval &&
+ { t("internship.duration-requires-dean-approval") }
+ }
{
{ errors.length > 0 &&
{ t('internship.validation.has-errors') }
- { errors.map(message => - { t(`internship.validation.${message.key}`, message.parameters) }
) }
+ { errors.map(message => - { t(`validation.api.${message.key}`, message.parameters) }
) }
}
{ t('internship.sections.intern-info') }
diff --git a/src/forms/plan.tsx b/src/forms/plan.tsx
index 57e560d..08ddcc0 100644
--- a/src/forms/plan.tsx
+++ b/src/forms/plan.tsx
@@ -32,9 +32,10 @@ export const PlanForm = () => {
if (!destination) {
destination = await api.upload.create(UploadType.Ipp);
- dispatch({ type: InternshipPlanActions.Send, document: destination });
}
+ dispatch({ type: InternshipPlanActions.Send, document: destination });
+
await api.upload.upload(destination, file);
history.push("/");
diff --git a/src/forms/student.tsx b/src/forms/student.tsx
index 3d3cead..422e9fc 100644
--- a/src/forms/student.tsx
+++ b/src/forms/student.tsx
@@ -6,6 +6,7 @@ import { useTranslation } from "react-i18next";
import { useFormikContext } from "formik";
import { InternshipFormValues } from "@/forms/internship";
import { useCurrentEdition } from "@/hooks";
+import { ContactAction } from "@/components/contact";
export const StudentForm = () => {
const { t } = useTranslation();
@@ -36,8 +37,10 @@ export const StudentForm = () => {
- skontaktuj się z opiekunem }>
- Powyższe dane nie są poprawne?
+ {
+ ({ action }) =>
+ } }>
+ { t("incorrect-data-question") }
diff --git a/src/helpers.ts b/src/helpers.ts
index 34dae24..cfb9ee9 100644
--- a/src/helpers.ts
+++ b/src/helpers.ts
@@ -2,6 +2,7 @@ export type Nullable = { [P in keyof T]: T[P] | null }
export type Subset = { [K in keyof T]?: Subset }
export type Dictionary = { [key: string]: T };
+export type OneOrMany = T | T[];
export type Index = string | symbol | number;
@@ -26,3 +27,23 @@ export function throttle(decorated: (...args: TArgs) => voi
}, time);
}
}
+
+export function encapsulate(value: OneOrMany): T[] {
+ if (value instanceof Array) {
+ return value;
+ }
+
+ return [ value ];
+}
+
+export function one(value: OneOrMany): T {
+ if (value instanceof Array) {
+ return value[0];
+ }
+
+ return value;
+}
+
+export function capitalize(value: string): string {
+ return value.charAt(0).toUpperCase() + value.slice(1);
+}
diff --git a/src/hooks/state.ts b/src/hooks/state.ts
index 9fc52a6..9422e15 100644
--- a/src/hooks/state.ts
+++ b/src/hooks/state.ts
@@ -3,6 +3,7 @@ import { AppState } from "@/state/reducer";
import { Edition, getEditionDeadlines } from "@/data/edition";
import { editionSerializationTransformer } from "@/serialization";
import { Student } from "@/data";
+import { UserState } from "@/state/reducer/user";
export const useCurrentStudent = () => useSelector(
state => state.student
@@ -16,3 +17,7 @@ export const useDeadlines = () => {
const edition = useCurrentEdition() as Edition;
return getEditionDeadlines(edition);
}
+
+export const useCurrentUser = () => useSelector(
+ state => state.user
+)
diff --git a/src/hooks/useAsync.ts b/src/hooks/useAsync.ts
index d7fbf9b..775d8fc 100644
--- a/src/hooks/useAsync.ts
+++ b/src/hooks/useAsync.ts
@@ -19,7 +19,6 @@ export function useAsync(supplier: Promise | (() => Promise<
useEffect(() => {
setLoading(true);
setError(undefined);
- setValue(undefined);
const myMagicNumber = semaphore.value + 1;
semaphore.value = myMagicNumber;
@@ -54,9 +53,9 @@ export function useAsync(supplier: Promise | (() => Promise<
};
}
-export function useAsyncState(initial: Promise | undefined): AsyncState {
+export function useAsyncState(initial?: Promise | undefined): AsyncState {
const [promise, setPromise] = useState | undefined>(initial);
- const asyncState = useAsync(promise);
+ const asyncState = useAsync(promise);
return [ asyncState, setPromise ];
}
diff --git a/src/i18n.ts b/src/i18n.ts
index a5e47ec..fe8160e 100644
--- a/src/i18n.ts
+++ b/src/i18n.ts
@@ -10,9 +10,11 @@ import { convertToRoman } from "@/utils/numbers";
const resources = {
en: {
translation: require('../translations/en.yaml'),
+ management: require('../translations/management.en.yaml'),
},
pl: {
translation: require('../translations/pl.yaml'),
+ management: require('../translations/management.pl.yaml'),
}
}
diff --git a/src/management/api/edition.ts b/src/management/api/edition.ts
new file mode 100644
index 0000000..7317572
--- /dev/null
+++ b/src/management/api/edition.ts
@@ -0,0 +1,17 @@
+import { axios } from "@/api";
+import { EditionDTO, editionDtoTransformer } from "@/api/dto/edition";
+import { Edition } from "@/data/edition";
+import { prepare } from "@/routing";
+
+const MANAGEMENT_EDITION_INDEX_ENDPOINT = '/management/editions';
+const MANAGEMENT_EDITION_ENDPOINT = '/management/editions/:edition';
+
+export async function all(): Promise {
+ const response = await axios.get(MANAGEMENT_EDITION_INDEX_ENDPOINT);
+ return response.data.map(dto => editionDtoTransformer.transform(dto));
+}
+
+export async function details(edition: string): Promise {
+ const response = await axios.get(prepare(MANAGEMENT_EDITION_ENDPOINT, { edition }));
+ return editionDtoTransformer.transform(response.data);
+}
diff --git a/src/management/api/index.ts b/src/management/api/index.ts
new file mode 100644
index 0000000..e2390f7
--- /dev/null
+++ b/src/management/api/index.ts
@@ -0,0 +1,11 @@
+import * as edition from "./edition"
+import * as page from "./page"
+import * as type from "./type"
+
+export const api = {
+ edition,
+ page,
+ type
+}
+
+export default api;
diff --git a/src/management/api/page.ts b/src/management/api/page.ts
new file mode 100644
index 0000000..aa0ce1e
--- /dev/null
+++ b/src/management/api/page.ts
@@ -0,0 +1,30 @@
+import { Page } from "@/data/page";
+import pageDtoTransformer, { PageDTO } from "@/api/dto/page";
+import { axios } from "@/api";
+import { STATIC_PAGE_ENDPOINT } from "@/api/page";
+import { prepare } from "@/routing";
+import { encapsulate, OneOrMany } from "@/helpers";
+
+const STATIC_PAGE_INDEX_ENDPOINT = "/staticPage";
+
+export { get, STATIC_PAGE_ENDPOINT } from "@/api/page"
+
+export async function all(): Promise {
+ const response = await axios.get(STATIC_PAGE_INDEX_ENDPOINT);
+ return response.data.map(dto => pageDtoTransformer.transform(dto));
+}
+
+export async function remove(page: OneOrMany>): Promise {
+ const pages = encapsulate(page);
+
+ await Promise.all(pages.map(page => axios.delete(prepare(STATIC_PAGE_ENDPOINT, { slug: page.slug }))));
+}
+
+export async function save(page: Page): Promise {
+ const response = await axios.put(
+ STATIC_PAGE_INDEX_ENDPOINT,
+ pageDtoTransformer.reverseTransform(page),
+ );
+
+ return pageDtoTransformer.transform(response.data);
+}
diff --git a/src/management/api/type.ts b/src/management/api/type.ts
new file mode 100644
index 0000000..178f5a1
--- /dev/null
+++ b/src/management/api/type.ts
@@ -0,0 +1,28 @@
+import { InternshipType } from "@/data";
+import { axios } from "@/api";
+import { InternshipTypeDTO, internshipTypeDtoTransformer } from "@/api/dto/type";
+import { encapsulate, OneOrMany } from "@/helpers";
+import { prepare } from "@/routing";
+
+const INTERNSHIP_TYPE_INDEX_ENDPOINT = '/internshipTypes'
+const INTERNSHIP_TYPE_ENDPOINT = INTERNSHIP_TYPE_INDEX_ENDPOINT + "/:id";
+
+export async function all(): Promise {
+ const response = await axios.get(INTERNSHIP_TYPE_INDEX_ENDPOINT);
+ return response.data.map(dto => internshipTypeDtoTransformer.transform(dto))
+}
+
+export async function remove(type: OneOrMany): Promise {
+ await Promise.all(encapsulate(type).map(
+ type => axios.delete(prepare(INTERNSHIP_TYPE_ENDPOINT, { id: type.id as string }))
+ ));
+}
+
+export async function save(type: InternshipType): Promise {
+ await axios.put(
+ INTERNSHIP_TYPE_INDEX_ENDPOINT,
+ internshipTypeDtoTransformer.reverseTransform(type)
+ );
+
+ return type;
+}
diff --git a/src/management/common/BulkActions.tsx b/src/management/common/BulkActions.tsx
new file mode 100644
index 0000000..69679ea
--- /dev/null
+++ b/src/management/common/BulkActions.tsx
@@ -0,0 +1,15 @@
+import { Actions, ActionsProps } from "@/components";
+import React from "react";
+import { Typography } from "@material-ui/core";
+import { useTranslation } from "react-i18next";
+
+export type BulkActionsProps = ActionsProps;
+
+export const BulkActions = ({ children, ...props }: BulkActionsProps) => {
+ const { t } = useTranslation("management");
+
+ return
+ { t("actions.bulk") }:
+ { children }
+ ;
+};
diff --git a/src/management/common/DeleteResourceAction.tsx b/src/management/common/DeleteResourceAction.tsx
new file mode 100644
index 0000000..55e3508
--- /dev/null
+++ b/src/management/common/DeleteResourceAction.tsx
@@ -0,0 +1,56 @@
+import React from "react";
+import { OneOrMany } from "@/helpers";
+import useTheme from "@material-ui/core/styles/useTheme";
+import { Trans, useTranslation } from "react-i18next";
+import { Confirm } from "@/components/confirm";
+import { Button, IconButton, Tooltip } from "@material-ui/core";
+import { Delete } from "mdi-material-ui";
+import { createBoundComponent } from "@/management/common/helpers";
+
+export type DeleteResourceActionProps = {
+ onDelete: (resource: OneOrMany) => void;
+ resource: OneOrMany;
+ label: (resource: T) => string;
+ children?: (action: any) => React.ReactNode;
+};
+
+export function DeleteResourceAction({ onDelete, resource, children, label }: DeleteResourceActionProps) {
+ const theme = useTheme();
+ const { t } = useTranslation("management");
+
+ const confirmation = <>
+ { !Array.isArray(resource)
+ ?
+ Czy na pewno chcesz usunąć { label(resource) }?
+
+ : <>
+ { t("confirm.bulk-delete") }
+
+ { resource.map(current => - { label(current) }
) }
+
+ >
+ }
+ >;
+
+ return onDelete(resource) }
+ content={ confirmation }
+ confirm={ props =>
+ }
+ style={{
+ backgroundColor: theme.palette.error.dark,
+ color: theme.palette.error.contrastText,
+ }}
+ { ...props }>
+ { t("actions.delete") }
+
+ }
+ >
+ { action => children ? children(action) : }
+ ;
+}
+
+export function createDeleteAction(props: Pick, 'label' | 'onDelete'>) {
+ return createBoundComponent(DeleteResourceAction, props);
+}
+
diff --git a/src/management/common/LabelWithIcon.tsx b/src/management/common/LabelWithIcon.tsx
new file mode 100644
index 0000000..e1d2649
--- /dev/null
+++ b/src/management/common/LabelWithIcon.tsx
@@ -0,0 +1,28 @@
+import React from "react";
+import { createStyles, makeStyles, Theme } from "@material-ui/core/styles";
+
+const useStyles = makeStyles((theme: Theme) => createStyles({
+ root: {
+ display: "flex",
+ alignItems: "center"
+ },
+ icon: {
+ marginRight: theme.spacing(1),
+ display: "flex",
+ alignItems: "center"
+ }
+}))
+
+export type LabelWithIconProps = {
+ icon: React.ReactNode,
+ children: React.ReactChildren,
+}
+
+export function LabelWithIcon({ icon, children }: LabelWithIconProps) {
+ const classes = useStyles();
+
+ return
+
{ icon }
+ { children }
+
+}
diff --git a/src/management/common/MaterialTableTitle.tsx b/src/management/common/MaterialTableTitle.tsx
new file mode 100644
index 0000000..ab9dcd8
--- /dev/null
+++ b/src/management/common/MaterialTableTitle.tsx
@@ -0,0 +1,11 @@
+import React from "react";
+import { AsyncResult } from "@/hooks";
+import { CircularProgress } from "@material-ui/core";
+
+export type MaterialTableTitleProps = { result: AsyncResult, label: React.ReactNode } & React.HTMLProps;
+
+export const MaterialTableTitle = ({ label, result, style, ...props }: MaterialTableTitleProps) =>
+
+ { label }
+ { result.isLoading && }
+
diff --git a/src/management/common/MultilangualCell.tsx b/src/management/common/MultilangualCell.tsx
new file mode 100644
index 0000000..cd3346f
--- /dev/null
+++ b/src/management/common/MultilangualCell.tsx
@@ -0,0 +1,15 @@
+import { Multilingual } from "@/data";
+import React from "react";
+import { Chip } from "@material-ui/core";
+
+export type MultilingualCellProps = { value: Multilingual }
+
+export const MultilingualCell = ({ value }: MultilingualCellProps) => {
+ return <>
+ { Object.keys(value).map(language =>
+
+ { value[language as keyof Multilingual
] }
+ ) }
+ >
+}
+
diff --git a/src/management/common/helpers.tsx b/src/management/common/helpers.tsx
new file mode 100644
index 0000000..cf2d6e5
--- /dev/null
+++ b/src/management/common/helpers.tsx
@@ -0,0 +1,35 @@
+import React from "react";
+import { Column } from "material-table";
+import { Actions } from "@/components";
+import { Trans } from "react-i18next";
+import { Multilingual } from "@/data";
+
+export function actionsColumn(render: (value: T) => React.ReactNode): Column {
+ return {
+ title: ,
+ render: value => { render(value) },
+ sorting: false,
+ width: 0,
+ resizable: false,
+ removable: false,
+ searchable: false,
+ }
+}
+
+export function createBoundComponent(Component: React.ComponentType, bound: Pick) {
+ return (props: Omit) => ;
+}
+
+export type Comparator = (a: T, b: T) => number;
+export type MultilingualComparator = Comparator>;
+
+export function createMultilingualComparator(comparator: Comparator): MultilingualComparator {
+ return (a, b) => comparator(a.pl, b.pl);
+}
+
+export const multilingualStringComparator = createMultilingualComparator((a, b) => a && b ? a.localeCompare(b) : 0)
+export const multilingualNumberComparator = createMultilingualComparator((a, b) => a - b)
+
+export function fieldComparator(field: K, comparator: Comparator): Comparator {
+ return (a, b) => comparator(a[field], b[field])
+}
diff --git a/src/management/edition/list.tsx b/src/management/edition/list.tsx
new file mode 100644
index 0000000..d718651
--- /dev/null
+++ b/src/management/edition/list.tsx
@@ -0,0 +1,81 @@
+import React, { useCallback, useEffect } from "react";
+import { Page } from "@/pages/base";
+import { useTranslation } from "react-i18next";
+import { useAsync, useAsyncState } from "@/hooks";
+import api from "@/management/api";
+import { Async } from "@/components/async";
+import { Container, Typography } from "@material-ui/core";
+import MaterialTable, { Action, Column } from "material-table";
+import { Edition } from "@/data/edition";
+import { Pencil } from "mdi-material-ui";
+import { Management } from "../main";
+import { createPortal } from "react-dom";
+import { EditStaticPageDialog } from "@/management/page/create";
+
+export type EditionDetailsProps = {
+ edition: string;
+}
+
+export function EditionDetails({ edition, ...props }: EditionDetailsProps) {
+ const result = useAsync(useCallback(() => api.edition.details(edition), [ edition ]));
+
+ return { edition => { JSON.stringify(edition, null, 2) }
}
+}
+
+export function EditionsManagement() {
+ const { t } = useTranslation("management");
+ const editions = useAsync(useCallback(api.edition.all, []));
+
+ const columns: Column[] = [
+ {
+ title: t("edition.field.id"),
+ field: "id",
+ cellStyle: { whiteSpace: "nowrap" }
+ },
+ {
+ title: t("edition.field.start"),
+ render: edition => edition.startDate.format("DD.MM.yyyy"),
+ customSort: (a, b) => b.startDate.unix() - a.startDate.unix(),
+ },
+ {
+ title: t("edition.field.end"),
+ render: edition => edition.endDate.format("DD.MM.yyyy"),
+ customSort: (a, b) => b.endDate.unix() - a.endDate.unix(),
+ },
+ {
+ title: t("edition.field.course"),
+ customSort: (a, b) => a.course.name.localeCompare(b.course.name),
+ render: edition => edition.course.name,
+ },
+ ]
+
+ const actions: Action[] = [
+ {
+ icon: () => ,
+ onClick: () => {},
+ }
+ ]
+
+ return
+
+
+ { t("edition.index.title") }
+
+ { t("edition.index.title") }
+
+
+
+ { editions =>
+ }
+ title={ t("edition.index.title") }
+ options={{ search: false, actionsColumnIndex: -1 }}
+ />
+ }
+
+
+ ;
+}
diff --git a/src/management/main.tsx b/src/management/main.tsx
new file mode 100644
index 0000000..4a990ce
--- /dev/null
+++ b/src/management/main.tsx
@@ -0,0 +1,54 @@
+import { BreadcrumbsProps, Container, Link, List, ListItem, ListItemIcon, ListItemText, Paper } from "@material-ui/core";
+import { Page } from "@/pages/base";
+import React from "react";
+import { Link as RouterLink } from "react-router-dom";
+import { route } from "@/routing";
+import { useTranslation } from "react-i18next";
+import { CalendarClock, FileCertificateOutline, FileDocumentMultipleOutline } from "mdi-material-ui";
+
+export const Management = {
+ Breadcrumbs: ({ children, ...props }: BreadcrumbsProps) => {
+ const { t } = useTranslation();
+
+ return
+ { t("management:title") }
+ { children }
+ ;
+ }
+}
+
+type ManagementLinkProps = React.PropsWithChildren<{
+ icon: JSX.Element,
+ route: string,
+}>;
+
+const ManagementLink = ({ icon, route, children }: ManagementLinkProps) =>
+
+ { icon }
+ { children }
+
+
+export const ManagementIndex = () => {
+ const { t } = useTranslation();
+
+ return
+
+ { t("management:title") }
+
+
+
+
+ } route={ route("management:editions") }>
+ { t("management:edition.index.title") }
+
+ } route={ route("management:types") }>
+ { t("management:type.index.title") }
+
+ } route={ route("management:static_pages") }>
+ { t("management:page.index.title") }
+
+
+
+
+
+}
diff --git a/src/management/middleware.tsx b/src/management/middleware.tsx
new file mode 100644
index 0000000..7dd339d
--- /dev/null
+++ b/src/management/middleware.tsx
@@ -0,0 +1,14 @@
+import { isLoggedInMiddleware } from "@/middleware";
+import { useCurrentUser } from "@/hooks";
+import React from "react";
+import { Middleware } from "@/routing";
+
+export const isManagerMiddleware: Middleware = Next => isLoggedInMiddleware(() => {
+ const user = useCurrentUser();
+
+ if (user.isManager) {
+ return ;
+ }
+
+ return ;
+})
diff --git a/src/management/page/edit.tsx b/src/management/page/edit.tsx
new file mode 100644
index 0000000..c185e49
--- /dev/null
+++ b/src/management/page/edit.tsx
@@ -0,0 +1,46 @@
+import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from "@material-ui/core";
+import React from "react";
+import { Form, Formik } from "formik";
+import { initialStaticPageFormValues, StaticPageForm, StaticPageFormValues, staticPageFormValuesTransformer } from "@/management/page/form";
+import { Actions } from "@/components";
+import { Save } from "@material-ui/icons";
+import { useTranslation } from "react-i18next";
+import { Cancel } from "mdi-material-ui";
+import { useSpacing } from "@/styles";
+import { default as StaticPage } from "@/data/page";
+
+export type EditStaticPageDialogProps = {
+ onSave?: (page: StaticPage) => void;
+ page?: StaticPage;
+} & DialogProps;
+
+export function EditStaticPageDialog({ onSave, page, ...props }: EditStaticPageDialogProps) {
+ const { t } = useTranslation("management");
+ const spacing = useSpacing(3);
+
+ const handleSubmit = (values: StaticPageFormValues) => {
+ onSave?.(staticPageFormValuesTransformer.reverseTransform(values));
+ };
+
+ const initialValues = page
+ ? staticPageFormValuesTransformer.transform(page)
+ : initialStaticPageFormValues;
+
+ return
+}
+
diff --git a/src/management/page/form.tsx b/src/management/page/form.tsx
new file mode 100644
index 0000000..fe28dd6
--- /dev/null
+++ b/src/management/page/form.tsx
@@ -0,0 +1,40 @@
+import { default as StaticPage } from "@/data/page";
+import { identityTransformer, Transformer } from "@/serialization";
+import { Field, Form, FormikFormProps } from "formik";
+import React from "react";
+import { TextField as TextFieldFormik } from "formik-material-ui";
+import { Typography } from "@material-ui/core";
+import { useTranslation } from "react-i18next";
+import { useSpacing } from "@/styles";
+import { CKEditorField } from "@/field/ckeditor";
+
+export type StaticPageFormValues = StaticPage;
+
+export const initialStaticPageFormValues: StaticPageFormValues = {
+ slug: "",
+ title: {
+ en: "",
+ pl: "",
+ },
+ content: {
+ en: "",
+ pl: "",
+ }
+}
+
+export const staticPageFormValuesTransformer: Transformer = identityTransformer;
+
+export function StaticPageForm() {
+ const { t } = useTranslation("management");
+ const spacing = useSpacing(2);
+
+ return
+
+ { t("page.field.title") }
+
+
+ { t("page.field.content") }
+
+
+
+}
diff --git a/src/management/page/list.tsx b/src/management/page/list.tsx
new file mode 100644
index 0000000..4a9a8e1
--- /dev/null
+++ b/src/management/page/list.tsx
@@ -0,0 +1,157 @@
+import { Page } from "@/pages/base";
+import { Management } from "@/management/main";
+import { Box, Button, CircularProgress, Container, IconButton, Tooltip, Typography } from "@material-ui/core";
+import React, { useEffect, useState } from "react";
+import { Trans, useTranslation } from "react-i18next";
+import { useAsyncState } from "@/hooks";
+import api from "@/management/api";
+import { Async } from "@/components/async";
+import MaterialTable, { Action, Column } from "material-table";
+import { default as StaticPage } from "@/data/page";
+import { Delete, FileFind, Pencil, Refresh } from "mdi-material-ui";
+import { encapsulate, one, OneOrMany } from "@/helpers";
+import { Actions } from "@/components";
+import { useSpacing } from "@/styles";
+import { useHistory } from "react-router-dom";
+import { Add, Edit } from "@material-ui/icons";
+import { createPortal } from "react-dom";
+import { EditStaticPageDialog } from "@/management/page/edit";
+import { Confirm } from "@/components/confirm";
+import useTheme from "@material-ui/core/styles/useTheme";
+import { BulkActions } from "@/management/common/BulkActions";
+import { MaterialTableTitle } from "@/management/common/MaterialTableTitle";
+import { actionsColumn, fieldComparator, multilingualStringComparator } from "@/management/common/helpers";
+import { createDeleteAction } from "@/management/common/DeleteResourceAction";
+import { MultilingualCell } from "@/management/common/MultilangualCell";
+
+const label = (page: StaticPage) => page.title.pl;
+
+export const StaticPageManagement = () => {
+ const { t } = useTranslation("management");
+ const [ result, setPagesPromise ] = useAsyncState();
+ const [ selected, setSelected ] = useState([]);
+ const spacing = useSpacing(2);
+
+ const updatePageList = () => {
+ setPagesPromise(api.page.all());
+ }
+
+ useEffect(updatePageList, []);
+
+ const EditStaticPageAction = ({ page }: { page: StaticPage }) => {
+ const [ open, setOpen ] = useState(false);
+
+ const handlePageCreation = async (page: StaticPage) => {
+ await api.page.save(page);
+ setOpen(false);
+ updatePageList();
+ }
+
+ return <>
+
+ setOpen(true) }>
+
+ { open && createPortal(
+ setOpen(false) }/>,
+ document.getElementById("modals") as Element
+ ) }
+ >
+ }
+
+ const CreateStaticPageAction = () => {
+ const [ open, setOpen ] = useState(false);
+
+ const handlePageCreation = async (page: StaticPage) => {
+ await api.page.save(page);
+ setOpen(false);
+ updatePageList();
+ }
+
+ return <>
+ } onClick={ () => setOpen(true) }>{ t("create") }
+ { createPortal(
+ setOpen(false) }/>,
+ document.getElementById("modals") as Element
+ ) }
+ >
+ }
+
+ const handlePageDeletion = async (page: OneOrMany) => {
+ await api.page.remove(page);
+ updatePageList();
+ }
+
+ const DeleteStaticPageAction = createDeleteAction({ label, onDelete: handlePageDeletion })
+
+ const PreviewStaticPageAction = ({ page }: { page: StaticPage }) => {
+ const history = useHistory();
+ const handlePagePreview = async () => history.push(`/${page.slug}`);
+
+ return
+
+ ;
+ }
+
+ const columns: Column[] = [
+ {
+ render: page => ,
+ title: t("page.field.title"),
+ customSort: fieldComparator("title", multilingualStringComparator),
+ },
+ {
+ field: "slug",
+ title: t("page.field.slug"),
+ },
+ actionsColumn(page => <>
+
+
+
+ >)
+ ];
+
+ const PagePreview = ({ page }: { page: StaticPage }) =>
+
+
+
Polski
+
{ page.title.pl }
+
+
+
+
English
+
{ page.title.en }
+
+
+
+
+ return
+
+
+ { t("page.index.title") }
+
+ { t("page.index.title") }
+
+
+
+
+ }>{ t("refresh") }
+
+ { selected.length > 0 &&
+
+ { action => } onClick={ action }>{ t("actions.delete") } }
+
+ }
+ {
+ pages => }
+ columns={ columns }
+ data={ pages }
+ detailPanel={ page => }
+ onSelectionChange={ pages => setSelected(pages) }
+ options={{ selection: true }}
+ />
+ }
+
+
+}
+
+export default StaticPageManagement;
diff --git a/src/management/routing.tsx b/src/management/routing.tsx
new file mode 100644
index 0000000..a994e67
--- /dev/null
+++ b/src/management/routing.tsx
@@ -0,0 +1,22 @@
+import { Route } from "@/routing";
+import { isManagerMiddleware } from "@/management/middleware";
+import { EditionsManagement } from "@/management/edition/list";
+import React from "react";
+import { ManagementIndex } from "@/management/main";
+import StaticPageManagement from "@/management/page/list";
+import { InternshipTypeManagement } from "@/management/type/list";
+
+export const managementRoutes: Route[] = ([
+ { name: "index", path: "/", content: ManagementIndex, exact: true },
+
+ { name: "editions", path: "/editions", content: EditionsManagement },
+ { name: "types", path: "/types", content: InternshipTypeManagement },
+ { name: "static_pages", path: "/static-pages", content: StaticPageManagement }
+] as Route[]).map(
+ ({ name, path, middlewares = [], ...route }): Route => ({
+ name: `management:${ name }`,
+ path: `/management${ path }`,
+ middlewares: [ isManagerMiddleware, ...middlewares ],
+ ...route
+ })
+);
diff --git a/src/management/type/edit.tsx b/src/management/type/edit.tsx
new file mode 100644
index 0000000..6b15745
--- /dev/null
+++ b/src/management/type/edit.tsx
@@ -0,0 +1,47 @@
+import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from "@material-ui/core";
+import React from "react";
+import { Form, Formik } from "formik";
+import { initialStaticPageFormValues, StaticPageForm, StaticPageFormValues, staticPageFormValuesTransformer } from "@/management/page/form";
+import { Actions } from "@/components";
+import { Save } from "@material-ui/icons";
+import { useTranslation } from "react-i18next";
+import { Cancel } from "mdi-material-ui";
+import { useSpacing } from "@/styles";
+import { initialInternshipTypeFormValues, InternshipTypeForm, InternshipTypeFormValues, internshipTypeFormValuesTransformer } from "@/management/type/form";
+import { InternshipType } from "@/data";
+
+export type EditInternshipTypeDialogProps = {
+ onSave?: (page: InternshipType) => void;
+ value?: InternshipType;
+} & DialogProps;
+
+export function EditInternshipTypeDialog({ onSave, value, ...props }: EditInternshipTypeDialogProps) {
+ const { t } = useTranslation("management");
+ const spacing = useSpacing(3);
+
+ const handleSubmit = (values: InternshipTypeFormValues) => {
+ onSave?.(internshipTypeFormValuesTransformer.reverseTransform(values));
+ };
+
+ const initialValues = value
+ ? internshipTypeFormValuesTransformer.transform(value)
+ : initialInternshipTypeFormValues;
+
+ return
+}
+
diff --git a/src/management/type/form.tsx b/src/management/type/form.tsx
new file mode 100644
index 0000000..5b7a04c
--- /dev/null
+++ b/src/management/type/form.tsx
@@ -0,0 +1,55 @@
+import React from "react";
+import { InternshipType } from "@/data";
+import { useTranslation } from "react-i18next";
+import { useSpacing } from "@/styles";
+import { Field } from "formik";
+import { TextField as TextFieldFormik, Checkbox as CheckboxFormik } from "formik-material-ui";
+import { FormControlLabel, FormGroup, Typography } from "@material-ui/core";
+import { CKEditorField } from "@/field/ckeditor";
+import { AccountCheck, ShieldCheck } from "mdi-material-ui";
+import { identityTransformer, Transformer } from "@/serialization";
+import { LabelWithIcon } from "@/management/common/LabelWithIcon";
+
+export type InternshipTypeFormValues = Omit;
+
+export const initialInternshipTypeFormValues: InternshipTypeFormValues = {
+ label: {
+ pl: "",
+ en: "",
+ },
+ description: {
+ pl: "",
+ en: "",
+ },
+ requiresInsurance: false,
+ requiresDeanApproval: false,
+}
+
+export const internshipTypeFormValuesTransformer: Transformer = identityTransformer;
+
+export function InternshipTypeForm() {
+ const { t } = useTranslation("management");
+ const spacing = useSpacing(2);
+
+ return
+ { t("type.field.label") }
+
+
+ { t("type.field.description") }
+
+
+
+ { t("type.field.flags") }
+
+ }
+ label={ }>{ t("type.flag.dean-approval") } }
+ />
+ }
+ label={ }>{ t("type.flag.insurance") } }
+ />
+
+
+
+}
diff --git a/src/management/type/list.tsx b/src/management/type/list.tsx
new file mode 100644
index 0000000..7d34c66
--- /dev/null
+++ b/src/management/type/list.tsx
@@ -0,0 +1,149 @@
+import { Page } from "@/pages/base";
+import React, { useEffect, useState } from "react";
+import { useTranslation } from "react-i18next";
+import { useAsyncState } from "@/hooks";
+import { InternshipType } from "@/data";
+import api from "@/management/api";
+import { Management } from "@/management/main";
+import { Button, Container, IconButton, Tooltip, Typography } from "@material-ui/core";
+import { Async } from "@/components/async";
+import MaterialTable, { Column } from "material-table";
+import { MaterialTableTitle } from "@/management/common/MaterialTableTitle";
+import { actionsColumn, fieldComparator, multilingualStringComparator } from "@/management/common/helpers";
+import { AccountCheck, Delete, Refresh, ShieldCheck } from "mdi-material-ui";
+import { OneOrMany } from "@/helpers";
+import { createDeleteAction } from "@/management/common/DeleteResourceAction";
+import { BulkActions } from "@/management/common/BulkActions";
+import { useSpacing } from "@/styles";
+import { Actions } from "@/components";
+import { MultilingualCell } from "@/management/common/MultilangualCell";
+import { default as StaticPage } from "@/data/page";
+import { Add, Edit } from "@material-ui/icons";
+import { createPortal } from "react-dom";
+import { EditStaticPageDialog } from "@/management/page/edit";
+import { EditInternshipTypeDialog } from "@/management/type/edit";
+
+const title = "type.index.title";
+
+const label = (type: InternshipType) => type?.label?.pl;
+
+export const InternshipTypeManagement = () => {
+ const { t } = useTranslation("management");
+ const [result, setTypesPromise] = useAsyncState();
+ const [selected, setSelected] = useState([]);
+ const spacing = useSpacing(2);
+
+ const updateTypeList = () => {
+ setTypesPromise(api.type.all());
+ }
+
+ const handleTypeDelete = async (type: OneOrMany) => {
+ await api.type.remove(type);
+ updateTypeList();
+ }
+
+ useEffect(updateTypeList, []);
+
+ const DeleteTypeAction = createDeleteAction({ label, onDelete: handleTypeDelete });
+
+ const CreateTypeAction = () => {
+ const [ open, setOpen ] = useState(false);
+
+ const handleTypeCreation = async (value: InternshipType) => {
+ await api.type.save(value);
+ setOpen(false);
+ updateTypeList();
+ }
+
+ return <>
+ } onClick={ () => setOpen(true) }>{ t("create") }
+ { open && createPortal(
+ setOpen(false) }/>,
+ document.getElementById("modals") as Element
+ ) }
+ >
+ }
+
+ const EditTypeAction = ({ resource }: { resource: InternshipType }) => {
+ const [ open, setOpen ] = useState(false);
+
+ const handleTypeCreation = async (value: InternshipType) => {
+ await api.type.save(value);
+ setOpen(false);
+ updateTypeList();
+ }
+
+ return <>
+
+ setOpen(true) }>
+
+ { open && createPortal(
+ setOpen(false) }/>,
+ document.getElementById("modals") as Element
+ ) }
+ >
+ }
+
+ const columns: Column[] = [
+ {
+ field: "id",
+ title: "ID",
+ width: 0,
+ defaultSort: "asc",
+ filtering: false,
+ },
+ {
+ title: t("type.field.label"),
+ render: type => ,
+ customSort: fieldComparator("label", multilingualStringComparator),
+ },
+ {
+ title: t("type.field.description"),
+ render: type => type.description && ,
+ sorting: false,
+ },
+ {
+ title: t("type.field.flags"),
+ render: type =>
+ { type.requiresDeanApproval &&
}
+ { type.requiresInsurance &&
}
+
,
+ width: 0,
+ filtering: true,
+ sorting: false,
+ },
+ actionsColumn(type => <>
+
+
+ >)
+ ];
+
+ return
+
+
+ { t(title) }
+
+ { t(title) }
+
+
+
+
+ }>{ t("refresh") }
+
+ { selected.length > 0 &&
+
+ { action => } onClick={ action }>{ t("actions.delete") } }
+
+ }
+ {
+ pages => }
+ columns={ columns }
+ data={ pages }
+ onSelectionChange={ pages => setSelected(pages) }
+ options={ { selection: true, pageSize: 10 } }
+ />
+ }
+
+
+}
diff --git a/src/middleware.tsx b/src/middleware.tsx
index 621d234..1ffdfb0 100644
--- a/src/middleware.tsx
+++ b/src/middleware.tsx
@@ -1,8 +1,8 @@
import { Middleware, route } from "@/routing";
import { useSelector } from "react-redux";
import { AppState, isReady } from "@/state/reducer";
-import { Redirect } from "react-router-dom";
-import React from "react";
+import { Redirect, useRouteMatch } from "react-router-dom";
+import React, { useEffect } from "react";
import { UserState } from "@/state/reducer/user";
export const isReadyMiddleware: Middleware = Next => isLoggedInMiddleware(() => {
@@ -22,5 +22,7 @@ export const isLoggedInMiddleware: Middleware = Next => {
return ;
}
+ window.sessionStorage.setItem('back-path', window.location.pathname);
+
return ;
}
diff --git a/src/pages/edition/register.tsx b/src/pages/edition/register.tsx
index 634636d..0fb3393 100644
--- a/src/pages/edition/register.tsx
+++ b/src/pages/edition/register.tsx
@@ -12,18 +12,19 @@ import { Alert } from "@material-ui/lab";
import { Subset } from "@/helpers";
import { useDispatch } from "@/state/actions";
import { loginToEdition } from "@/pages/edition/pick";
-import { useHistory } from "react-router-dom";
+import { useHistory, useRouteMatch } from "react-router-dom";
import { useDebouncedEffect } from "@/hooks/useDebouncedEffect";
export const RegisterEditionPage = () => {
const { t } = useTranslation();
- const [key, setKey] = useState("");
- const [{ value: edition, isLoading }, setEdition] = useAsyncState | null>(undefined);
-
const classes = useVerticalSpacing(3);
const dispatch = useDispatch();
const history = useHistory();
+ const match = useRouteMatch();
+
+ const [key, setKey] = useState(match.params['edition'] || "");
+ const [{ value: edition, isLoading }, setEdition] = useAsyncState | null>(undefined);
useDebouncedEffect(() => {
setEdition(api.edition.get(key));
diff --git a/src/pages/steps/common.tsx b/src/pages/steps/common.tsx
index 58fdb8e..6a7d61f 100644
--- a/src/pages/steps/common.tsx
+++ b/src/pages/steps/common.tsx
@@ -4,6 +4,7 @@ import { createStyles, makeStyles } from "@material-ui/core/styles";
import { useTranslation } from "react-i18next";
import React from "react";
import { CommentQuestion } from "mdi-material-ui/index";
+import { ContactAction } from "@/components/contact";
export const getColorByStatus = (status: SubmissionStatus, theme: Theme) => {
switch (status) {
@@ -46,8 +47,12 @@ export const Status = ({ submission } : SubmissionStatusProps) => {
return { t(`submission.status.${ status }`) };
}
-export const ContactAction = (props: ButtonProps) => {
+export const ContactButton = (props: ButtonProps) => {
const { t } = useTranslation();
- return } variant="outlined" color="primary" { ...props }>{ t('contact') }
+ return {
+ ({ action }) => } variant="outlined" color="primary" { ...props } onClick={ action}>
+ { t('contact') }
+ }
+
}
diff --git a/src/pages/steps/insurance.tsx b/src/pages/steps/insurance.tsx
index b005389..252902d 100644
--- a/src/pages/steps/insurance.tsx
+++ b/src/pages/steps/insurance.tsx
@@ -4,7 +4,7 @@ import { InsuranceState } from "@/state/reducer/insurance";
import { Actions, Step } from "@/components";
import { useTranslation } from "react-i18next";
import React from "react";
-import { ContactAction } from "@/pages/steps/common";
+import { ContactButton } from "@/pages/steps/common";
import { useDeadlines } from "@/hooks";
import { StepProps } from "@material-ui/core";
@@ -17,7 +17,7 @@ export const InsuranceStep = (props: StepProps) => {
return
{ t(`steps.insurance.instructions`) }
-
+
}
diff --git a/src/pages/steps/plan.tsx b/src/pages/steps/plan.tsx
index 2e15ec3..7d4d523 100644
--- a/src/pages/steps/plan.tsx
+++ b/src/pages/steps/plan.tsx
@@ -9,7 +9,7 @@ import { Link as RouterLink, useHistory } from "react-router-dom";
import { Actions, Step } from "@/components";
import React, { HTMLProps } from "react";
import { Alert, AlertTitle } from "@material-ui/lab";
-import { ContactAction, Status } from "@/pages/steps/common";
+import { ContactButton, Status } from "@/pages/steps/common";
import { Description as DescriptionIcon } from "@material-ui/icons";
import { useDeadlines } from "@/hooks";
import { InternshipDocument } from "@/api/dto/internship-registration";
@@ -56,9 +56,9 @@ const PlanActions = () => {
case "declined":
return
- { t('fix-errors') }
+ { t('send-again') }
-
+
case "draft":
return
diff --git a/src/pages/steps/proposal.tsx b/src/pages/steps/proposal.tsx
index 9996ba4..697e904 100644
--- a/src/pages/steps/proposal.tsx
+++ b/src/pages/steps/proposal.tsx
@@ -10,7 +10,7 @@ import { Actions, Step } from "@/components";
import { route } from "@/routing";
import { Link as RouterLink } from "react-router-dom";
import { ClipboardEditOutline, FileFind } from "mdi-material-ui/index";
-import { ContactAction, Status } from "@/pages/steps/common";
+import { ContactButton, Status } from "@/pages/steps/common";
import { useDeadlines } from "@/hooks";
const ProposalActions = () => {
@@ -43,7 +43,7 @@ const ProposalActions = () => {
case "declined":
return
{ t('fix-errors') }
-
+
case "draft":
return
diff --git a/src/pages/user/login.tsx b/src/pages/user/login.tsx
index ffdd9c9..2515e92 100644
--- a/src/pages/user/login.tsx
+++ b/src/pages/user/login.tsx
@@ -1,6 +1,6 @@
import React, { Dispatch, useEffect } from "react";
import { Page } from "@/pages/base";
-import { Button, CircularProgress, Container, Typography } from "@material-ui/core";
+import { Button, CircularProgress, Container, SvgIcon, Typography } from "@material-ui/core";
import { Action, StudentActions, useDispatch } from "@/state/actions";
import { Route, Switch, useHistory, useLocation, useRouteMatch } from "react-router-dom";
import { route } from "@/routing";
@@ -12,13 +12,22 @@ import { UserActions } from "@/state/actions/user";
import { getAuthorizeUrl } from "@/api/user";
import { useTranslation } from "react-i18next";
import { Loading } from "@/components/loading";
+import GUTLogo from "!@svgr/webpack!@/../public/img/pg-logo.svg";
-const authorizeUser = (code?: string) => async (dispatch: Dispatch, getState: () => AppState): Promise => {
+
+type AuthorizeUserOptions = {
+ isStudent?: boolean;
+ isManager?: boolean;
+}
+
+const authorizeUser = (code?: string, { isStudent = false, isManager = false }: AuthorizeUserOptions = { isStudent: true }) => async (dispatch: Dispatch, getState: () => AppState): Promise => {
const token = await api.user.login(code);
dispatch({
type: UserActions.Login,
token,
+ isStudent,
+ isManager,
})
const student = await api.student.current();
@@ -36,23 +45,32 @@ export const UserLoginPage = () => {
const query = new URLSearchParams(useLocation().search);
const { t } = useTranslation();
- const handleSampleLogin = async () => {
- await dispatch(authorizeUser());
+ const redirectAfterLogin = () => {
+ history.push(window.sessionStorage.getItem('back-path') || "/");
+ }
- history.push(route("home"));
+ const handleSampleAdminLogin = async () => {
+ await dispatch(authorizeUser(undefined, { isManager: true }));
+
+ history.push(route("management:index"));
+ }
+
+ const handleSampleStudentLogin = async () => {
+ await dispatch(authorizeUser());
+ redirectAfterLogin();
}
const handlePgLogin = async () => {
history.push(route("user_login") + "/pg");
}
- const classes = useVerticalSpacing(3);
+ const classes = useVerticalSpacing(2);
useEffect(() => {
(async function() {
if (location.pathname === `${match.path}/check/pg`) {
await dispatch(authorizeUser(query.get("code") as string));
- history.push("/");
+ redirectAfterLogin();
}
})();
}, [ match.path ]);
@@ -61,14 +79,21 @@ export const UserLoginPage = () => {
return
- Zaloguj się
+ { t("login") }
-
-
+
+ }>
+ { t("login-as.gut-account") }
+
+ { t("login-as.sample") }
+
+
{
diff --git a/src/routing.tsx b/src/routing.tsx
index 8b88172..a88566b 100644
--- a/src/routing.tsx
+++ b/src/routing.tsx
@@ -10,8 +10,9 @@ import PickEditionPage from "@/pages/edition/pick";
import { isLoggedInMiddleware, isReadyMiddleware } from "@/middleware";
import UserFillPage from "@/pages/user/fill";
import UserProfilePage from "@/pages/user/profile";
+import { managementRoutes } from "@/management/routing";
-type Route = {
+export type Route = {
name?: string;
content: () => ReactComponentElement,
condition?: () => boolean,
@@ -36,6 +37,7 @@ export const routes: Route[] = [
// edition
{ name: "edition_register", path: "/edition/register", exact: true, content: () => , middlewares: [ isLoggedInMiddleware ] },
+ { name: "edition_register_exact", path: "/edition/register/:edition", exact: true, content: () => , middlewares: [ isLoggedInMiddleware ] },
{ name: "edition_pick", path: "/edition/pick", exact: true, content: () => , middlewares: [ isLoggedInMiddleware ] },
// internship
@@ -48,8 +50,10 @@ export const routes: Route[] = [
{ name: "user_fill", path: "/user/data", content: () => , middlewares: [ isLoggedInMiddleware ] },
{ name: "user_profile", path: "/user/profile", content: () => , middlewares: [ isLoggedInMiddleware ] },
+ ...managementRoutes,
+
// fallback route for 404 pages
- { name: "fallback", path: "*", content: () => }
+ { name: "fallback", path: "*", content: () => },
]
const routeNameMap = new Map(routes.filter(({ name }) => !!name).map(({ name, path }) => [name, path instanceof Array ? path[0] : path])) as Map
diff --git a/src/serialization/types.ts b/src/serialization/types.ts
index 424786d..23b1ae1 100644
--- a/src/serialization/types.ts
+++ b/src/serialization/types.ts
@@ -19,3 +19,8 @@ export type SerializationTransformer> = Transfo
export type OneWayTransformer = {
transform(subject: TFrom, context?: TContext): TResult;
}
+
+export const identityTransformer: Transformer = {
+ transform: subject => subject,
+ reverseTransform: subject => subject
+}
diff --git a/src/state/actions/user.ts b/src/state/actions/user.ts
index 655c1cb..faf7e13 100644
--- a/src/state/actions/user.ts
+++ b/src/state/actions/user.ts
@@ -7,6 +7,8 @@ export enum UserActions {
export interface LoginAction extends Action {
token: string;
+ isStudent: boolean;
+ isManager: boolean;
}
export type LogoutAction = Action;
diff --git a/src/state/reducer/user.ts b/src/state/reducer/user.ts
index 1757986..6fb312d 100644
--- a/src/state/reducer/user.ts
+++ b/src/state/reducer/user.ts
@@ -3,10 +3,14 @@ import { UserAction, UserActions } from "@/state/actions/user";
export type UserState = {
loggedIn: boolean;
token?: string;
+ isManager: boolean;
+ isStudent: boolean;
}
const initialUserState: UserState = {
loggedIn: false,
+ isManager: false,
+ isStudent: false,
}
const userReducer = (state: UserState = initialUserState, action: UserAction): UserState => {
@@ -16,12 +20,12 @@ const userReducer = (state: UserState = initialUserState, action: UserAction): U
...state,
loggedIn: true,
token: action.token,
+ isManager: action.isManager,
+ isStudent: action.isManager,
}
case UserActions.Logout:
- return {
- loggedIn: false
- };
+ return initialUserState;
}
return state;
diff --git a/src/styles/footer.scss b/src/styles/footer.scss
index 943ddb0..3c851bf 100644
--- a/src/styles/footer.scss
+++ b/src/styles/footer.scss
@@ -10,5 +10,34 @@
}
.footer__copyright {
- text-align: right;
+ margin-left: auto;
+}
+
+.footer__menu {
+ display: block;
+ padding: 0;
+ margin: 0;
+
+ li {
+ display: inline-block;
+
+ &:not(:first-child) {
+ margin-left: .5rem;
+ &::before {
+ content: "•";
+ opacity: 0.6;
+ margin-right: .5rem;
+ }
+ }
+ }
+
+ a {
+ color: white;
+ text-decoration: none;
+ opacity: 0.8;
+
+ &:hover {
+ opacity: 1.0;
+ }
+ }
}
diff --git a/translations/management.en.yaml b/translations/management.en.yaml
new file mode 100644
index 0000000..e69de29
diff --git a/translations/management.pl.yaml b/translations/management.pl.yaml
new file mode 100644
index 0000000..1367f4e
--- /dev/null
+++ b/translations/management.pl.yaml
@@ -0,0 +1,51 @@
+title: Zarządzanie
+
+create: utwórz
+refresh: $t(translation:refresh)
+save: zapisz
+cancel: anuluj
+
+actions:
+ label: Akcje
+ bulk: Akcje masowe
+ preview: Podgląd
+ delete: Usuń
+ edit: Edytuj
+
+edition:
+ index:
+ title: "Edycje praktyk"
+ field:
+ id: Identyfikator
+ start: Początek
+ end: Koniec
+ course: Kierunek
+
+type:
+ index:
+ title: "Rodzeje praktyki"
+ edit:
+ title: "Edytuj rodzaj praktyki"
+ create:
+ title: "Utwórz rodzaj praktyki"
+ field:
+ label: "Rodzaj praktyki"
+ description: "Opis"
+ flags: "Wymogi"
+ flag:
+ dean-approval: "Wymaga zgody dziekana"
+ insurance: "Wymaga ubezpieczenia"
+
+page:
+ index:
+ title: Strony statyczne
+ field:
+ title: Tytuł
+ content: Treść
+ slug: Adres
+ create:
+ title: Utwórz stronę statyczną
+ edit:
+ title: Zmień stronę statyczną
+ confirm:
+ bulk-delete: Czy na pewno chcesz usunąć wszystkie wybrane strony?
diff --git a/translations/pl.yaml b/translations/pl.yaml
index 32e762e..d5d2c18 100644
--- a/translations/pl.yaml
+++ b/translations/pl.yaml
@@ -5,6 +5,11 @@ login: zaloguj się
login-in-progress: Logowanie w toku, proszę czekać...
logout: wyloguj się
logged-in-as: zalogowany jako <1>{{ name }}1>
+login-as:
+ sample: "Przykładowe konta"
+ gut-account: "Zaloguj z pomocą konta politechnicznego"
+ sample-student: "Zaloguj jako przykładowy student"
+ sample-manager: "Zaloguj jako przykładowy pełnomocnik/administrator"
until: do {{ date, DD MMMM YYYY }}
not-before: od {{ date, DD MMMM YYYY }}
@@ -21,12 +26,15 @@ contact: skontaktuj się z pełnomocnikiem
comments: Zgłoszone uwagi
send-again: wyślij ponownie
cancel: anuluj
+send: wyślij
accept: zaakceptuj
accept-with-comments: zaakceptuj z uwagami
accept-without-comments: zaakceptuj bez uwag
discard: zgłoś uwagi
+incorrect-data-question: "Powyższe dane nie są poprawne?"
+
dropzone: "Przeciągnij i upuść plik bądź kliknij, aby wybrać"
pages:
@@ -58,6 +66,10 @@ forms:
sections:
personal: "Dane osobowe"
studies: "Dane kierunkowe"
+ contact:
+ title: $t(contact)
+ field:
+ content: "Treść"
internship:
fields:
start-date: Data rozpoczęcia praktyki
@@ -123,6 +135,8 @@ internship:
intern:
semester: semestr {{ semester, roman }}
album: "numer albumu {{ album }}"
+ kind-requires-dean-approval: "Ten rodzaj praktyki/umowy wymaga akceptacji przez dziekana!"
+ duration-requires-dean-approval: "Taki okres trwania praktyki wymaga akceptacji przez dziekana!"
date-range: "{{ start, DD MMMM YYYY }} - {{ end, DD MMMM YYYY }}"
duration_2: "{{ duration, weeks }} tygodni"
duration_0: "{{ duration, weeks }} tydzień"
@@ -190,7 +204,7 @@ steps:
draft: >
W porozumieniu z firmą w której odbywają się praktyki należy sporządzić Indywidualny Plan Praktyk zgodnie z
załączonym szablonem a następnie wysłać go do weryfikacji. Indywidualny Plan Praktyk musi zostać zatwierdzony
- oraz podpisany przez Twojego zakłądowego opiekuna praktyki.
+ oraz podpisany przez Twojego zakładowego opiekuna praktyki.
awaiting: >
Twój indywidualny program praktyki został poprawnie zapisany w systemie. Musi on jeszcze zostać zweryfikowany i
zatwierdzony. Po weryfikacji zostaniesz poinformowany o akceptacji bądź konieczności wprowadzenia zmian.
@@ -211,7 +225,16 @@ steps:
instructions: >
Należy zgłosić się do pełnomocnika ds. praktyk Twojego kierunku i podpisać umowę ubezpieczenia. (TODO)
+language:
+ pl: Polski
+ en: Angielski
+
validation:
+ api:
+ GreaterThanOrEqualValidator: Wartość pola "{{ PropertyName }}" musi być większa bądź równa {{ ComparisonValue }}.
+ NotEmptyValidator: Wartosć pola "{{ PropertyName }}" nie może być pusta.
+ NotNullValidator: Wartosć pola "{{ PropertyName }}" nie może być pusta.
+ PredicateValidator: Wartosć pola "{{ PropertyName }}" nie spełnia warunków walidacji.
required: "To pole jest wymagane"
email: "Wprowadź poprawny adres e-mail"
phone: "Wprowadź poprawny numer telefonu"
@@ -220,3 +243,5 @@ validation:
contact-coordinator: "Skontaktuj się z koordynatorem"
download: "pobierz"
+management: "zarządzanie"
+refresh: "odśwież"
diff --git a/webpack.config.js b/webpack.config.js
index 201baa4..71d5061 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -59,7 +59,7 @@ const config = {
port: parseInt(process.env.APP_PORT || "3000"),
proxy: {
"/api": {
- target: "https://system-praktyk.stg.kadet.net/api/",
+ target: "https://system-praktyk.dev.kadet.net/api/",
changeOrigin: true,
pathRewrite: {
"^/api": ''
diff --git a/yarn.lock b/yarn.lock
index 281e4cd..1ee59b7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -16,6 +16,13 @@
dependencies:
"@babel/highlight" "^7.10.1"
+"@babel/code-frame@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
+ integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
+ dependencies:
+ "@babel/highlight" "^7.10.4"
+
"@babel/compat-data@^7.10.1", "@babel/compat-data@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.1.tgz#b1085ffe72cd17bf2c0ee790fc09f9626011b2db"
@@ -25,6 +32,11 @@
invariant "^2.2.4"
semver "^5.5.0"
+"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9"
+ integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==
+
"@babel/core@7.9.0":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
@@ -47,6 +59,28 @@
semver "^5.4.1"
source-map "^0.5.0"
+"@babel/core@^7.12.3":
+ version "7.12.3"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8"
+ integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.12.1"
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helpers" "^7.12.1"
+ "@babel/parser" "^7.12.3"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.12.1"
+ "@babel/types" "^7.12.1"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.19"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
"@babel/generator@^7.10.1", "@babel/generator@^7.9.0":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9"
@@ -57,6 +91,15 @@
lodash "^4.17.13"
source-map "^0.5.0"
+"@babel/generator@^7.12.1", "@babel/generator@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de"
+ integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==
+ dependencies:
+ "@babel/types" "^7.12.5"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
"@babel/helper-annotate-as-pure@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268"
@@ -64,6 +107,13 @@
dependencies:
"@babel/types" "^7.10.1"
+"@babel/helper-annotate-as-pure@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3"
+ integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz#0ec7d9be8174934532661f87783eb18d72290059"
@@ -72,6 +122,14 @@
"@babel/helper-explode-assignable-expression" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3"
+ integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
"@babel/helper-builder-react-jsx-experimental@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz#9a7d58ad184d3ac3bafb1a452cec2bad7e4a0bc8"
@@ -81,6 +139,15 @@
"@babel/helper-module-imports" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-builder-react-jsx-experimental@^7.12.1":
+ version "7.12.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz#55fc1ead5242caa0ca2875dcb8eed6d311e50f48"
+ integrity sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-module-imports" "^7.12.1"
+ "@babel/types" "^7.12.1"
+
"@babel/helper-builder-react-jsx@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.1.tgz#a327f0cf983af5554701b1215de54a019f09b532"
@@ -89,6 +156,24 @@
"@babel/helper-annotate-as-pure" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-builder-react-jsx@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d"
+ integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-compilation-targets@^7.12.1":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831"
+ integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==
+ dependencies:
+ "@babel/compat-data" "^7.12.5"
+ "@babel/helper-validator-option" "^7.12.1"
+ browserslist "^4.14.5"
+ semver "^5.5.0"
+
"@babel/helper-compilation-targets@^7.8.7":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz#a17d9723b6e2c750299d2a14d4637c76936d8285"
@@ -112,6 +197,17 @@
"@babel/helper-replace-supers" "^7.10.1"
"@babel/helper-split-export-declaration" "^7.10.1"
+"@babel/helper-create-class-features-plugin@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e"
+ integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-member-expression-to-functions" "^7.12.1"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.12.1"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+
"@babel/helper-create-regexp-features-plugin@^7.10.1", "@babel/helper-create-regexp-features-plugin@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz#1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd"
@@ -121,6 +217,15 @@
"@babel/helper-regex" "^7.10.1"
regexpu-core "^4.7.0"
+"@babel/helper-create-regexp-features-plugin@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8"
+ integrity sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-regex" "^7.10.4"
+ regexpu-core "^4.7.1"
+
"@babel/helper-define-map@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz#5e69ee8308648470dd7900d159c044c10285221d"
@@ -130,6 +235,15 @@
"@babel/types" "^7.10.1"
lodash "^4.17.13"
+"@babel/helper-define-map@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30"
+ integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/types" "^7.10.5"
+ lodash "^4.17.19"
+
"@babel/helper-explode-assignable-expression@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz#e9d76305ee1162ca467357ae25df94f179af2b7e"
@@ -138,6 +252,13 @@
"@babel/traverse" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-explode-assignable-expression@^7.10.4":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633"
+ integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==
+ dependencies:
+ "@babel/types" "^7.12.1"
+
"@babel/helper-function-name@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4"
@@ -147,6 +268,15 @@
"@babel/template" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-function-name@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
+ integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
"@babel/helper-get-function-arity@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d"
@@ -154,6 +284,13 @@
dependencies:
"@babel/types" "^7.10.1"
+"@babel/helper-get-function-arity@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
+ integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
"@babel/helper-hoist-variables@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz#7e77c82e5dcae1ebf123174c385aaadbf787d077"
@@ -161,6 +298,13 @@
dependencies:
"@babel/types" "^7.10.1"
+"@babel/helper-hoist-variables@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e"
+ integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
"@babel/helper-member-expression-to-functions@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz#432967fd7e12a4afef66c4687d4ca22bc0456f15"
@@ -168,6 +312,13 @@
dependencies:
"@babel/types" "^7.10.1"
+"@babel/helper-member-expression-to-functions@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c"
+ integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==
+ dependencies:
+ "@babel/types" "^7.12.1"
+
"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.1", "@babel/helper-module-imports@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876"
@@ -175,6 +326,13 @@
dependencies:
"@babel/types" "^7.10.1"
+"@babel/helper-module-imports@^7.12.1":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
+ integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
+ dependencies:
+ "@babel/types" "^7.12.5"
+
"@babel/helper-module-transforms@^7.10.1", "@babel/helper-module-transforms@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz#24e2f08ee6832c60b157bb0936c86bef7210c622"
@@ -188,6 +346,21 @@
"@babel/types" "^7.10.1"
lodash "^4.17.13"
+"@babel/helper-module-transforms@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
+ integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==
+ dependencies:
+ "@babel/helper-module-imports" "^7.12.1"
+ "@babel/helper-replace-supers" "^7.12.1"
+ "@babel/helper-simple-access" "^7.12.1"
+ "@babel/helper-split-export-declaration" "^7.11.0"
+ "@babel/helper-validator-identifier" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.12.1"
+ "@babel/types" "^7.12.1"
+ lodash "^4.17.19"
+
"@babel/helper-optimise-call-expression@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz#b4a1f2561870ce1247ceddb02a3860fa96d72543"
@@ -195,11 +368,23 @@
dependencies:
"@babel/types" "^7.10.1"
+"@babel/helper-optimise-call-expression@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
+ integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==
+ dependencies:
+ "@babel/types" "^7.10.4"
+
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.1", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz#ec5a5cf0eec925b66c60580328b122c01230a127"
integrity sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==
+"@babel/helper-plugin-utils@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
+ integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
+
"@babel/helper-regex@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz#021cf1a7ba99822f993222a001cc3fec83255b96"
@@ -207,6 +392,13 @@
dependencies:
lodash "^4.17.13"
+"@babel/helper-regex@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0"
+ integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==
+ dependencies:
+ lodash "^4.17.19"
+
"@babel/helper-remap-async-to-generator@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz#bad6aaa4ff39ce8d4b82ccaae0bfe0f7dbb5f432"
@@ -218,6 +410,15 @@
"@babel/traverse" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-remap-async-to-generator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd"
+ integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-wrap-function" "^7.10.4"
+ "@babel/types" "^7.12.1"
+
"@babel/helper-replace-supers@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz#ec6859d20c5d8087f6a2dc4e014db7228975f13d"
@@ -228,6 +429,16 @@
"@babel/traverse" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-replace-supers@^7.12.1":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9"
+ integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.12.1"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/traverse" "^7.12.5"
+ "@babel/types" "^7.12.5"
+
"@babel/helper-simple-access@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz#08fb7e22ace9eb8326f7e3920a1c2052f13d851e"
@@ -236,6 +447,20 @@
"@babel/template" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-simple-access@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136"
+ integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==
+ dependencies:
+ "@babel/types" "^7.12.1"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
+ integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
+ dependencies:
+ "@babel/types" "^7.12.1"
+
"@babel/helper-split-export-declaration@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f"
@@ -243,11 +468,28 @@
dependencies:
"@babel/types" "^7.10.1"
+"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
+ integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
+ dependencies:
+ "@babel/types" "^7.11.0"
+
"@babel/helper-validator-identifier@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5"
integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==
+"@babel/helper-validator-identifier@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
+ integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+
+"@babel/helper-validator-option@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9"
+ integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==
+
"@babel/helper-wrap-function@^7.10.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz#956d1310d6696257a7afd47e4c42dfda5dfcedc9"
@@ -258,6 +500,25 @@
"@babel/traverse" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/helper-wrap-function@^7.10.4":
+ version "7.12.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9"
+ integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helpers@^7.12.1":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e"
+ integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==
+ dependencies:
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.12.5"
+ "@babel/types" "^7.12.5"
+
"@babel/helpers@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973"
@@ -276,11 +537,34 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
+"@babel/highlight@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
+ integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
"@babel/parser@^7.10.1", "@babel/parser@^7.9.0":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0"
integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==
+"@babel/parser@^7.10.4", "@babel/parser@^7.12.3", "@babel/parser@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0"
+ integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==
+
+"@babel/plugin-proposal-async-generator-functions@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e"
+ integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.12.1"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+
"@babel/plugin-proposal-async-generator-functions@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz#6911af5ba2e615c4ff3c497fe2f47b35bf6d7e55"
@@ -298,6 +582,14 @@
"@babel/helper-create-class-features-plugin" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
+"@babel/plugin-proposal-class-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de"
+ integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-proposal-decorators@7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz#2156860ab65c5abf068c3f67042184041066543e"
@@ -307,6 +599,14 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-decorators" "^7.8.3"
+"@babel/plugin-proposal-dynamic-import@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc"
+ integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+
"@babel/plugin-proposal-dynamic-import@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz#e36979dc1dc3b73f6d6816fc4951da2363488ef0"
@@ -315,6 +615,22 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
+"@babel/plugin-proposal-export-namespace-from@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4"
+ integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-json-strings@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c"
+ integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+
"@babel/plugin-proposal-json-strings@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz#b1e691ee24c651b5a5e32213222b2379734aff09"
@@ -323,6 +639,14 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-json-strings" "^7.8.0"
+"@babel/plugin-proposal-logical-assignment-operators@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751"
+ integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
"@babel/plugin-proposal-nullish-coalescing-operator@7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2"
@@ -331,6 +655,14 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c"
+ integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+
"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz#02dca21673842ff2fe763ac253777f235e9bbf78"
@@ -347,6 +679,14 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-numeric-separator" "^7.8.3"
+"@babel/plugin-proposal-numeric-separator@^7.12.1":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz#b1ce757156d40ed79d59d467cb2b154a5c4149ba"
+ integrity sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
"@babel/plugin-proposal-numeric-separator@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz#a9a38bc34f78bdfd981e791c27c6fdcec478c123"
@@ -355,6 +695,15 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-numeric-separator" "^7.10.1"
+"@babel/plugin-proposal-object-rest-spread@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069"
+ integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.12.1"
+
"@babel/plugin-proposal-object-rest-spread@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz#cba44908ac9f142650b4a65b8aa06bf3478d5fb6"
@@ -364,6 +713,14 @@
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
"@babel/plugin-transform-parameters" "^7.10.1"
+"@babel/plugin-proposal-optional-catch-binding@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942"
+ integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+
"@babel/plugin-proposal-optional-catch-binding@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz#c9f86d99305f9fa531b568ff5ab8c964b8b223d2"
@@ -380,6 +737,15 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
+"@babel/plugin-proposal-optional-chaining@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797"
+ integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+
"@babel/plugin-proposal-optional-chaining@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz#15f5d6d22708629451a91be28f8facc55b0e818c"
@@ -388,6 +754,22 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
+"@babel/plugin-proposal-private-methods@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389"
+ integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072"
+ integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz#dc04feb25e2dd70c12b05d680190e138fa2c0c6f"
@@ -403,6 +785,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+"@babel/plugin-syntax-class-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978"
+ integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-decorators@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.1.tgz#16b869c4beafc9a442565147bda7ce0967bd4f13"
@@ -417,6 +806,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+ integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
"@babel/plugin-syntax-flow@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz#cd4bbca62fb402babacb174f64f8734310d742f0"
@@ -438,6 +834,20 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-syntax-jsx@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926"
+ integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
@@ -452,6 +862,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-object-rest-spread@^7.8.0":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
@@ -473,6 +890,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+"@babel/plugin-syntax-top-level-await@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0"
+ integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-top-level-await@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz#8b8733f8c57397b3eaa47ddba8841586dcaef362"
@@ -487,6 +911,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-arrow-functions@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3"
+ integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-arrow-functions@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz#cb5ee3a36f0863c06ead0b409b4cc43a889b295b"
@@ -494,6 +925,15 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-async-to-generator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1"
+ integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==
+ dependencies:
+ "@babel/helper-module-imports" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.12.1"
+
"@babel/plugin-transform-async-to-generator@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz#e5153eb1a3e028f79194ed8a7a4bf55f862b2062"
@@ -503,6 +943,13 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/helper-remap-async-to-generator" "^7.10.1"
+"@babel/plugin-transform-block-scoped-functions@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9"
+ integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-block-scoped-functions@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz#146856e756d54b20fff14b819456b3e01820b85d"
@@ -510,6 +957,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-block-scoping@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1"
+ integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-block-scoping@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz#47092d89ca345811451cd0dc5d91605982705d5e"
@@ -518,6 +972,20 @@
"@babel/helper-plugin-utils" "^7.10.1"
lodash "^4.17.13"
+"@babel/plugin-transform-classes@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6"
+ integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-define-map" "^7.10.4"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.12.1"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+ globals "^11.1.0"
+
"@babel/plugin-transform-classes@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz#6e11dd6c4dfae70f540480a4702477ed766d733f"
@@ -532,6 +1000,13 @@
"@babel/helper-split-export-declaration" "^7.10.1"
globals "^11.1.0"
+"@babel/plugin-transform-computed-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852"
+ integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-computed-properties@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz#59aa399064429d64dce5cf76ef9b90b7245ebd07"
@@ -539,6 +1014,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-destructuring@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847"
+ integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-destructuring@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz#abd58e51337815ca3a22a336b85f62b998e71907"
@@ -546,6 +1028,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-dotall-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975"
+ integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz#920b9fec2d78bb57ebb64a644d5c2ba67cc104ee"
@@ -554,6 +1044,13 @@
"@babel/helper-create-regexp-features-plugin" "^7.10.1"
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-duplicate-keys@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228"
+ integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-duplicate-keys@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz#c900a793beb096bc9d4d0a9d0cde19518ffc83b9"
@@ -561,6 +1058,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-exponentiation-operator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0"
+ integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-exponentiation-operator@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz#279c3116756a60dd6e6f5e488ba7957db9c59eb3"
@@ -577,6 +1082,13 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-flow" "^7.8.3"
+"@babel/plugin-transform-for-of@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa"
+ integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-for-of@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz#ff01119784eb0ee32258e8646157ba2501fcfda5"
@@ -584,6 +1096,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-function-name@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667"
+ integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-function-name@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz#4ed46fd6e1d8fde2a2ec7b03c66d853d2c92427d"
@@ -592,6 +1112,13 @@
"@babel/helper-function-name" "^7.10.1"
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57"
+ integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-literals@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz#5794f8da82846b22e4e6631ea1658bce708eb46a"
@@ -599,6 +1126,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-member-expression-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad"
+ integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-member-expression-literals@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz#90347cba31bca6f394b3f7bd95d2bbfd9fce2f39"
@@ -606,6 +1140,15 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-modules-amd@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9"
+ integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
"@babel/plugin-transform-modules-amd@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz#65950e8e05797ebd2fe532b96e19fc5482a1d52a"
@@ -615,6 +1158,16 @@
"@babel/helper-plugin-utils" "^7.10.1"
babel-plugin-dynamic-import-node "^2.3.3"
+"@babel/plugin-transform-modules-commonjs@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648"
+ integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-simple-access" "^7.12.1"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
"@babel/plugin-transform-modules-commonjs@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz#d5ff4b4413ed97ffded99961056e1fb980fb9301"
@@ -625,6 +1178,17 @@
"@babel/helper-simple-access" "^7.10.1"
babel-plugin-dynamic-import-node "^2.3.3"
+"@babel/plugin-transform-modules-systemjs@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086"
+ integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.10.4"
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-validator-identifier" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
"@babel/plugin-transform-modules-systemjs@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz#9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6"
@@ -635,6 +1199,14 @@
"@babel/helper-plugin-utils" "^7.10.1"
babel-plugin-dynamic-import-node "^2.3.3"
+"@babel/plugin-transform-modules-umd@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902"
+ integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-modules-umd@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz#ea080911ffc6eb21840a5197a39ede4ee67b1595"
@@ -643,6 +1215,13 @@
"@babel/helper-module-transforms" "^7.10.1"
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753"
+ integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+
"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c"
@@ -650,6 +1229,13 @@
dependencies:
"@babel/helper-create-regexp-features-plugin" "^7.8.3"
+"@babel/plugin-transform-new-target@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0"
+ integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-new-target@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz#6ee41a5e648da7632e22b6fb54012e87f612f324"
@@ -657,6 +1243,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-object-super@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e"
+ integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.12.1"
+
"@babel/plugin-transform-object-super@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz#2e3016b0adbf262983bf0d5121d676a5ed9c4fde"
@@ -673,6 +1267,20 @@
"@babel/helper-get-function-arity" "^7.10.1"
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-parameters@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d"
+ integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-property-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd"
+ integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-property-literals@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz#cffc7315219230ed81dc53e4625bf86815b6050d"
@@ -680,6 +1288,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-react-constant-elements@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz#4471f0851feec3231cc9aaa0dccde39947c1ac1e"
+ integrity sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-react-display-name@7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5"
@@ -687,6 +1302,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
+"@babel/plugin-transform-react-display-name@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d"
+ integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-react-display-name@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.1.tgz#e6a33f6d48dfb213dda5e007d0c7ff82b6a3d8ef"
@@ -694,6 +1316,15 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-react-jsx-development@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.5.tgz#677de5b96da310430d6cfb7fee16a1603afa3d56"
+ integrity sha512-1JJusg3iPgsZDthyWiCr3KQiGs31ikU/mSf2N2dSYEAO0GEImmVUbWf0VoSDGDFTAn5Dj4DUiR6SdIXHY7tELA==
+ dependencies:
+ "@babel/helper-builder-react-jsx-experimental" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "^7.12.1"
+
"@babel/plugin-transform-react-jsx-development@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.1.tgz#1ac6300d8b28ef381ee48e6fec430cc38047b7f3"
@@ -703,6 +1334,13 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-jsx" "^7.10.1"
+"@babel/plugin-transform-react-jsx-self@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz#ef43cbca2a14f1bd17807dbe4376ff89d714cf28"
+ integrity sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-react-jsx-self@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz#22143e14388d72eb88649606bb9e46f421bc3821"
@@ -711,6 +1349,13 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-jsx" "^7.10.1"
+"@babel/plugin-transform-react-jsx-source@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz#d07de6863f468da0809edcf79a1aa8ce2a82a26b"
+ integrity sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-react-jsx-source@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz#30db3d4ee3cdebbb26a82a9703673714777a4273"
@@ -719,6 +1364,16 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-jsx" "^7.10.1"
+"@babel/plugin-transform-react-jsx@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.5.tgz#39ede0e30159770561b6963be143e40af3bde00c"
+ integrity sha512-2xkcPqqrYiOQgSlM/iwto1paPijjsDbUynN13tI6bosDz/jOW3CRzYguIE8wKX32h+msbBM22Dv5fwrFkUOZjQ==
+ dependencies:
+ "@babel/helper-builder-react-jsx" "^7.10.4"
+ "@babel/helper-builder-react-jsx-experimental" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "^7.12.1"
+
"@babel/plugin-transform-react-jsx@^7.9.1":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.1.tgz#91f544248ba131486decb5d9806da6a6e19a2896"
@@ -729,6 +1384,21 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-jsx" "^7.10.1"
+"@babel/plugin-transform-react-pure-annotations@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42"
+ integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-regenerator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753"
+ integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==
+ dependencies:
+ regenerator-transform "^0.14.2"
+
"@babel/plugin-transform-regenerator@^7.8.7":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz#10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490"
@@ -736,6 +1406,13 @@
dependencies:
regenerator-transform "^0.14.2"
+"@babel/plugin-transform-reserved-words@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8"
+ integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-reserved-words@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz#0fc1027312b4d1c3276a57890c8ae3bcc0b64a86"
@@ -753,6 +1430,13 @@
resolve "^1.8.1"
semver "^5.5.1"
+"@babel/plugin-transform-shorthand-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3"
+ integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-shorthand-properties@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz#e8b54f238a1ccbae482c4dce946180ae7b3143f3"
@@ -760,6 +1444,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-spread@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e"
+ integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+
"@babel/plugin-transform-spread@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz#0c6d618a0c4461a274418460a28c9ccf5239a7c8"
@@ -767,6 +1459,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-sticky-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf"
+ integrity sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-regex" "^7.10.4"
+
"@babel/plugin-transform-sticky-regex@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz#90fc89b7526228bed9842cff3588270a7a393b00"
@@ -775,6 +1475,13 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/helper-regex" "^7.10.1"
+"@babel/plugin-transform-template-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843"
+ integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-template-literals@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz#914c7b7f4752c570ea00553b4284dad8070e8628"
@@ -783,6 +1490,13 @@
"@babel/helper-annotate-as-pure" "^7.10.1"
"@babel/helper-plugin-utils" "^7.10.1"
+"@babel/plugin-transform-typeof-symbol@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a"
+ integrity sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-typeof-symbol@^7.8.4":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz#60c0239b69965d166b80a84de7315c1bc7e0bb0e"
@@ -799,6 +1513,21 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-syntax-typescript" "^7.10.1"
+"@babel/plugin-transform-unicode-escapes@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709"
+ integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-unicode-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb"
+ integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-unicode-regex@^7.8.3":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz#6b58f2aea7b68df37ac5025d9c88752443a6b43f"
@@ -873,6 +1602,78 @@
levenary "^1.1.1"
semver "^5.5.0"
+"@babel/preset-env@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2"
+ integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==
+ dependencies:
+ "@babel/compat-data" "^7.12.1"
+ "@babel/helper-compilation-targets" "^7.12.1"
+ "@babel/helper-module-imports" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-validator-option" "^7.12.1"
+ "@babel/plugin-proposal-async-generator-functions" "^7.12.1"
+ "@babel/plugin-proposal-class-properties" "^7.12.1"
+ "@babel/plugin-proposal-dynamic-import" "^7.12.1"
+ "@babel/plugin-proposal-export-namespace-from" "^7.12.1"
+ "@babel/plugin-proposal-json-strings" "^7.12.1"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1"
+ "@babel/plugin-proposal-numeric-separator" "^7.12.1"
+ "@babel/plugin-proposal-object-rest-spread" "^7.12.1"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.12.1"
+ "@babel/plugin-proposal-optional-chaining" "^7.12.1"
+ "@babel/plugin-proposal-private-methods" "^7.12.1"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.12.1"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+ "@babel/plugin-syntax-class-properties" "^7.12.1"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+ "@babel/plugin-syntax-top-level-await" "^7.12.1"
+ "@babel/plugin-transform-arrow-functions" "^7.12.1"
+ "@babel/plugin-transform-async-to-generator" "^7.12.1"
+ "@babel/plugin-transform-block-scoped-functions" "^7.12.1"
+ "@babel/plugin-transform-block-scoping" "^7.12.1"
+ "@babel/plugin-transform-classes" "^7.12.1"
+ "@babel/plugin-transform-computed-properties" "^7.12.1"
+ "@babel/plugin-transform-destructuring" "^7.12.1"
+ "@babel/plugin-transform-dotall-regex" "^7.12.1"
+ "@babel/plugin-transform-duplicate-keys" "^7.12.1"
+ "@babel/plugin-transform-exponentiation-operator" "^7.12.1"
+ "@babel/plugin-transform-for-of" "^7.12.1"
+ "@babel/plugin-transform-function-name" "^7.12.1"
+ "@babel/plugin-transform-literals" "^7.12.1"
+ "@babel/plugin-transform-member-expression-literals" "^7.12.1"
+ "@babel/plugin-transform-modules-amd" "^7.12.1"
+ "@babel/plugin-transform-modules-commonjs" "^7.12.1"
+ "@babel/plugin-transform-modules-systemjs" "^7.12.1"
+ "@babel/plugin-transform-modules-umd" "^7.12.1"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1"
+ "@babel/plugin-transform-new-target" "^7.12.1"
+ "@babel/plugin-transform-object-super" "^7.12.1"
+ "@babel/plugin-transform-parameters" "^7.12.1"
+ "@babel/plugin-transform-property-literals" "^7.12.1"
+ "@babel/plugin-transform-regenerator" "^7.12.1"
+ "@babel/plugin-transform-reserved-words" "^7.12.1"
+ "@babel/plugin-transform-shorthand-properties" "^7.12.1"
+ "@babel/plugin-transform-spread" "^7.12.1"
+ "@babel/plugin-transform-sticky-regex" "^7.12.1"
+ "@babel/plugin-transform-template-literals" "^7.12.1"
+ "@babel/plugin-transform-typeof-symbol" "^7.12.1"
+ "@babel/plugin-transform-unicode-escapes" "^7.12.1"
+ "@babel/plugin-transform-unicode-regex" "^7.12.1"
+ "@babel/preset-modules" "^0.1.3"
+ "@babel/types" "^7.12.1"
+ core-js-compat "^3.6.2"
+ semver "^5.5.0"
+
"@babel/preset-modules@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"
@@ -896,6 +1697,19 @@
"@babel/plugin-transform-react-jsx-self" "^7.9.0"
"@babel/plugin-transform-react-jsx-source" "^7.9.0"
+"@babel/preset-react@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.5.tgz#d45625f65d53612078a43867c5c6750e78772c56"
+ integrity sha512-jcs++VPrgyFehkMezHtezS2BpnUlR7tQFAyesJn1vGTO9aTFZrgIQrA5YydlTwxbcjMwkFY6i04flCigRRr3GA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-transform-react-display-name" "^7.12.1"
+ "@babel/plugin-transform-react-jsx" "^7.12.5"
+ "@babel/plugin-transform-react-jsx-development" "^7.12.5"
+ "@babel/plugin-transform-react-jsx-self" "^7.12.1"
+ "@babel/plugin-transform-react-jsx-source" "^7.12.1"
+ "@babel/plugin-transform-react-pure-annotations" "^7.12.1"
+
"@babel/preset-typescript@7.9.0":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz#87705a72b1f0d59df21c179f7c3d2ef4b16ce192"
@@ -912,6 +1726,14 @@
"@babel/helper-plugin-utils" "^7.10.1"
"@babel/plugin-transform-typescript" "^7.10.1"
+"@babel/runtime-corejs3@^7.9.6":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4"
+ integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==
+ dependencies:
+ core-js-pure "^3.0.0"
+ regenerator-runtime "^0.13.4"
+
"@babel/runtime@7.9.0":
version "7.9.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.0.tgz#337eda67401f5b066a6f205a3113d4ac18ba495b"
@@ -940,6 +1762,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.12.1":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
+ integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
"@babel/template@^7.10.1", "@babel/template@^7.8.6":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811"
@@ -949,6 +1778,15 @@
"@babel/parser" "^7.10.1"
"@babel/types" "^7.10.1"
+"@babel/template@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
+ integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/parser" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
"@babel/traverse@^7.10.1", "@babel/traverse@^7.9.0":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27"
@@ -964,6 +1802,21 @@
globals "^11.1.0"
lodash "^4.17.13"
+"@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095"
+ integrity sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.12.5"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.11.0"
+ "@babel/parser" "^7.12.5"
+ "@babel/types" "^7.12.5"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.19"
+
"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.4.4", "@babel/types@^7.9.0":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d"
@@ -973,6 +1826,27 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
+"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.6":
+ version "7.12.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.6.tgz#ae0e55ef1cce1fbc881cd26f8234eb3e657edc96"
+ integrity sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
+ lodash "^4.17.19"
+ to-fast-properties "^2.0.0"
+
+"@ckeditor/ckeditor5-build-classic@^23.1.0":
+ version "23.1.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-build-classic/-/ckeditor5-build-classic-23.1.0.tgz#b358bd9c266727cd1504d16fb069ada43694e2e5"
+ integrity sha512-wqJZ6yuqm48NoiciRcfs+t73YOfIKovJIiLSHf0yB2I3Mc+bL6iNhwwyJ3b6D/22IgYEXTpc6PiwsYFbGFnq2Q==
+
+"@ckeditor/ckeditor5-react@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-react/-/ckeditor5-react-3.0.0.tgz#05a1bdd7b26a8c1df6fd734376ea84e394d6ab47"
+ integrity sha512-kqoD0rbGeUp7CjYBtKcwXVVSWO/VL1QsoTyeGbFyoMHmkM96fBj0TI0Xs2kFqKkeiICtAnwvul3GVNWbIlK/Tw==
+ dependencies:
+ prop-types "^15.7.2"
+
"@csstools/convert-colors@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
@@ -988,6 +1862,13 @@
resolved "https://registry.yarnpkg.com/@date-io/core/-/core-1.3.13.tgz#90c71da493f20204b7a972929cc5c482d078b3fa"
integrity sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA==
+"@date-io/date-fns@^1.1.0":
+ version "1.3.13"
+ resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-1.3.13.tgz#7798844041640ab393f7e21a7769a65d672f4735"
+ integrity sha512-yXxGzcRUPcogiMj58wVgFjc9qUYrCnnU9eLcyNbsQCmae4jPuZCDoIBR21j8ZURsM7GRtU62VOw5yNd4dDHunA==
+ dependencies:
+ "@date-io/core" "^1.3.13"
+
"@date-io/moment@^1.3.13":
version "1.3.13"
resolved "https://registry.yarnpkg.com/@date-io/moment/-/moment-1.3.13.tgz#56c2772bc4f6675fc6970257e6033e7a7c2960f0"
@@ -1068,7 +1949,7 @@
prop-types "^15.7.2"
react-is "^16.8.0"
-"@material-ui/pickers@^3.2.10":
+"@material-ui/pickers@^3.2.10", "@material-ui/pickers@^3.2.2":
version "3.2.10"
resolved "https://registry.yarnpkg.com/@material-ui/pickers/-/pickers-3.2.10.tgz#19df024895876eb0ec7cd239bbaea595f703f0ae"
integrity sha512-B8G6Obn5S3RCl7hwahkQj9sKUapwXWFjiaz/Bsw1fhYFdNMnDUolRiWQSoKPb1/oKe37Dtfszoywi1Ynbo3y8w==
@@ -1139,6 +2020,109 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
+"@svgr/babel-plugin-add-jsx-attribute@^5.4.0":
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906"
+ integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==
+
+"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0":
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef"
+ integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==
+
+"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd"
+ integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==
+
+"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897"
+ integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==
+
+"@svgr/babel-plugin-svg-dynamic-title@^5.4.0":
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7"
+ integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==
+
+"@svgr/babel-plugin-svg-em-dimensions@^5.4.0":
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0"
+ integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==
+
+"@svgr/babel-plugin-transform-react-native-svg@^5.4.0":
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80"
+ integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==
+
+"@svgr/babel-plugin-transform-svg-component@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a"
+ integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==
+
+"@svgr/babel-preset@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327"
+ integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==
+ dependencies:
+ "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0"
+ "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0"
+ "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1"
+ "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1"
+ "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0"
+ "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0"
+ "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0"
+ "@svgr/babel-plugin-transform-svg-component" "^5.5.0"
+
+"@svgr/core@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579"
+ integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==
+ dependencies:
+ "@svgr/plugin-jsx" "^5.5.0"
+ camelcase "^6.2.0"
+ cosmiconfig "^7.0.0"
+
+"@svgr/hast-util-to-babel-ast@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461"
+ integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==
+ dependencies:
+ "@babel/types" "^7.12.6"
+
+"@svgr/plugin-jsx@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000"
+ integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@svgr/babel-preset" "^5.5.0"
+ "@svgr/hast-util-to-babel-ast" "^5.5.0"
+ svg-parser "^2.0.2"
+
+"@svgr/plugin-svgo@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246"
+ integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==
+ dependencies:
+ cosmiconfig "^7.0.0"
+ deepmerge "^4.2.2"
+ svgo "^1.2.2"
+
+"@svgr/webpack@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640"
+ integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/plugin-transform-react-constant-elements" "^7.12.1"
+ "@babel/preset-env" "^7.12.1"
+ "@babel/preset-react" "^7.12.5"
+ "@svgr/core" "^5.5.0"
+ "@svgr/plugin-jsx" "^5.5.0"
+ "@svgr/plugin-svgo" "^5.5.0"
+ loader-utils "^2.0.0"
+
"@types/anymatch@*":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a"
@@ -1210,6 +2194,11 @@
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
+"@types/raf@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.0.tgz#2b72cbd55405e071f1c4d29992638e022b20acc2"
+ integrity sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==
+
"@types/react-dom@^16.9.0":
version "16.9.8"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423"
@@ -2034,6 +3023,11 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+base64-arraybuffer@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45"
+ integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==
+
base64-js@^1.0.2:
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
@@ -2258,6 +3252,22 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.2, browserslist@^4.
node-releases "^1.1.53"
pkg-up "^2.0.0"
+browserslist@^4.14.5:
+ version "4.14.7"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6"
+ integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==
+ dependencies:
+ caniuse-lite "^1.0.30001157"
+ colorette "^1.2.1"
+ electron-to-chromium "^1.3.591"
+ escalade "^3.1.1"
+ node-releases "^1.1.66"
+
+btoa@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
+ integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==
+
buffer-equal-constant-time@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
@@ -2400,6 +3410,11 @@ camelcase@^5.0.0, camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+camelcase@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
+ integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
+
caniuse-api@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
@@ -2415,6 +3430,23 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, can
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz#40615a3c416a047c5a4d45673e5257bf128eb3b5"
integrity sha512-iZdh3lu09jsUtLE6Bp8NAbJskco4Y3UDtkR3GTCJGsbMowBU5IWDFF79sV2ws7lSqTzWyKazxam2thasHymENQ==
+caniuse-lite@^1.0.30001157:
+ version "1.0.30001158"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001158.tgz#fce86d321369603c2bc855ee0e901a7f49f8310b"
+ integrity sha512-s5loVYY+yKpuVA3HyW8BarzrtJvwHReuzugQXlv1iR3LKSReoFXRm86mT6hT7PEF5RxW+XQZg+6nYjlywYzQ+g==
+
+canvg@^3.0.6:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.7.tgz#e45b87a64116af906917f7cad57d370ea372d682"
+ integrity sha512-4sq6iL5Q4VOXS3PL1BapiXIZItpxYyANVzsAKpTPS5oq4u3SKbGfUcbZh2gdLCQ3jWpG/y5wRkMlBBAJhXeiZA==
+ dependencies:
+ "@babel/runtime-corejs3" "^7.9.6"
+ "@types/raf" "^3.4.0"
+ raf "^3.4.1"
+ rgbcolor "^1.0.1"
+ stackblur-canvas "^2.0.0"
+ svg-pathdata "^5.0.5"
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -2628,6 +3660,11 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.2"
+colorette@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
+ integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
+
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -2769,6 +3806,11 @@ core-js-compat@^3.6.2:
browserslist "^4.8.5"
semver "7.0.0"
+core-js-pure@^3.0.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.7.0.tgz#28a57c861d5698e053f0ff36905f7a3301b4191e"
+ integrity sha512-EZD2ckZysv8MMt4J6HSvS9K2GdtlZtdBncKAmF9lr2n0c9dJUaUN88PSTjvgwCgQPWKTkERXITgS6JJRAnljtg==
+
core-js@^2.4.0, core-js@^2.5.0:
version "2.6.11"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
@@ -2779,6 +3821,11 @@ core-js@^3.5.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==
+core-js@^3.6.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz#b0a761a02488577afbf97179e4681bf49568520f"
+ integrity sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==
+
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -2805,6 +3852,17 @@ cosmiconfig@^6.0.0:
path-type "^4.0.0"
yaml "^1.7.2"
+cosmiconfig@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
+ integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.2.1"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.10.0"
+
create-ecdh@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
@@ -2888,6 +3946,13 @@ css-blank-pseudo@^0.1.4:
dependencies:
postcss "^7.0.5"
+css-box-model@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1"
+ integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==
+ dependencies:
+ tiny-invariant "^1.0.6"
+
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@@ -2909,6 +3974,13 @@ css-has-pseudo@^0.10.0:
postcss "^7.0.6"
postcss-selector-parser "^5.0.0-rc.4"
+css-line-break@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-1.1.1.tgz#d5e9bdd297840099eb0503c7310fd34927a026ef"
+ integrity sha512-1feNVaM4Fyzdj4mKPIQNL2n70MmuYzAXZ1aytlROFX1JsOo070OsugwGjj7nl6jnDJWHDM8zRZswkmeYVWZJQA==
+ dependencies:
+ base64-arraybuffer "^0.2.0"
+
css-loader@3.4.2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202"
@@ -3124,6 +4196,11 @@ date-easter@^0.2.5:
resolved "https://registry.yarnpkg.com/date-easter/-/date-easter-0.2.5.tgz#85ddce23ee4e08b7b71fd3420c89d3d3576bec2f"
integrity sha512-pMvZSqQgPBqnUQEHhRMy7f8Dk3KYY/NPFMFHGK4mU+xM1+SX+zc9IoQMcNtS3HuJjCn3mp0GQwBzsZXz3Thjww==
+date-fns@^2.0.0-alpha.27:
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b"
+ integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==
+
date-holidays-parser@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/date-holidays-parser/-/date-holidays-parser-1.4.3.tgz#f0bd101c1fa8e091b01cfd8dd7791b7401695cf9"
@@ -3151,6 +4228,11 @@ date-holidays@^1.5.3:
lodash.pick "^4.4.0"
prepin "^1.0.3"
+debounce@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131"
+ integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==
+
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -3199,6 +4281,11 @@ deepmerge@^2.1.1:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
default-gateway@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
@@ -3384,6 +4471,11 @@ domhandler@^2.3.0:
dependencies:
domelementtype "1"
+dompurify@^2.0.12:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.2.tgz#cb8c2b1a2f3c8a0b565127504ae4eedec176a972"
+ integrity sha512-BsGR4nDLaC5CNBnyT5I+d5pOeaoWvgVeg6Gq/aqmKYWMPR07131u60I80BvExLAJ0FQEIBQ1BTicw+C5+jOyrg==
+
domutils@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
@@ -3455,6 +4547,11 @@ electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.413:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.467.tgz#84eeb332134d49f0e49b88588824e56b20af9e27"
integrity sha512-U+QgsL8TZDU/n+rDnYDa3hY5uy3C4iry9mrJS0PNBBGwnocuQ+aHSfgY44mdlaK9744X5YqrrGUvD9PxCLY1HA==
+electron-to-chromium@^1.3.591:
+ version "1.3.596"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.596.tgz#c7ed98512c7ff36ddcbfed9e54e6355335c35257"
+ integrity sha512-nLO2Wd2yU42eSoNJVQKNf89CcEGqeFZd++QsnN2XIgje1s/19AgctfjLIbPORlvcCO8sYjLwX4iUgDdusOY8Sg==
+
elliptic@^6.0.0, elliptic@^6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
@@ -3568,6 +4665,11 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -3785,6 +4887,11 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+fast-deep-equal@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+ integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+
fast-deep-equal@^3.1.1:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -3853,6 +4960,11 @@ file-uri-to-path@1.0.0:
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+filefy@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/filefy/-/filefy-0.1.10.tgz#174677c8e2fa5bc39a3af0ed6fb492f16b8fbf42"
+ integrity sha512-VgoRVOOY1WkTpWH+KBy8zcU1G7uQTVsXqhWEgzryB9A5hg2aqCyZ6aQ/5PSzlqM5+6cnVrX6oYV0XqD3HZSnmQ==
+
filesize@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f"
@@ -4510,6 +5622,13 @@ html-webpack-plugin@4.0.0-beta.11:
tapable "^1.1.3"
util.promisify "1.0.0"
+html2canvas@^1.0.0-rc.5:
+ version "1.0.0-rc.7"
+ resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.0.0-rc.7.tgz#70c159ce0e63954a91169531894d08ad5627ac98"
+ integrity sha512-yvPNZGejB2KOyKleZspjK/NruXVQuowu8NnV2HYG7gW7ytzl+umffbtUI62v2dCHQLDdsK6HIDtyJZ0W3neerA==
+ dependencies:
+ css-line-break "1.1.1"
+
htmlparser2@^3.3.0:
version "3.10.1"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
@@ -4673,6 +5792,14 @@ import-fresh@^3.1.0:
parent-module "^1.0.0"
resolve-from "^4.0.0"
+import-fresh@^3.2.1:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
+ integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
import-from@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
@@ -5252,6 +6379,24 @@ jsonwebtoken@^8.5.1:
ms "^2.1.1"
semver "^5.6.0"
+jspdf-autotable@3.5.9:
+ version "3.5.9"
+ resolved "https://registry.yarnpkg.com/jspdf-autotable/-/jspdf-autotable-3.5.9.tgz#8a625ef2aead44271da95e9f649843c401536925"
+ integrity sha512-ZRfiI5P7leJuWmvC0jGVXu227m68C2Jfz1dkDckshmDYDeVFCGxwIBYdCUXJ8Eb2CyFQC2ok82fEWO+xRDovDQ==
+
+jspdf@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-2.1.0.tgz#2322f8644bc41845b3abe20db4c3ca0adeadb84c"
+ integrity sha512-NQygqZEKhSw+nExySJxB72Ge/027YEyIM450Vh/hgay/H9cgZNnkXXOQPRspe9EuCW4sq92zg8hpAXyyBdnaIQ==
+ dependencies:
+ atob "^2.1.2"
+ btoa "^1.2.1"
+ optionalDependencies:
+ canvg "^3.0.6"
+ core-js "^3.6.0"
+ dompurify "^2.0.12"
+ html2canvas "^1.0.0-rc.5"
+
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -5444,6 +6589,15 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4
emojis-list "^3.0.0"
json5 "^1.0.1"
+loader-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
+ integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
@@ -5567,6 +6721,11 @@ lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.1
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+lodash@^4.17.19:
+ version "4.17.20"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
+ integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+
loglevel@^1.6.6:
version "1.6.8"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
@@ -5646,6 +6805,24 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
+material-table@^1.69.1:
+ version "1.69.1"
+ resolved "https://registry.yarnpkg.com/material-table/-/material-table-1.69.1.tgz#8d1c8b23207f18bd3328cae1b5775ede284682e6"
+ integrity sha512-7MA8kMtr8ToPE6gNUbOGIb4g+RGOLWK8s9gXZYNwFtg6fGAjWEJ+iqBrMmdq7fkMmTRcyOd7/sC/5OPPY8CNGg==
+ dependencies:
+ "@date-io/date-fns" "^1.1.0"
+ "@material-ui/pickers" "^3.2.2"
+ classnames "^2.2.6"
+ date-fns "^2.0.0-alpha.27"
+ debounce "^1.2.0"
+ fast-deep-equal "2.0.1"
+ filefy "0.1.10"
+ jspdf "2.1.0"
+ jspdf-autotable "3.5.9"
+ prop-types "^15.6.2"
+ react-beautiful-dnd "^13.0.0"
+ react-double-scrollbar "0.0.15"
+
material-ui-dropzone@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/material-ui-dropzone/-/material-ui-dropzone-3.3.0.tgz#5adb64e7ad71953eb29c7d0616b0b693904eb412"
@@ -5693,6 +6870,11 @@ mem@^4.0.0:
mimic-fn "^2.0.0"
p-is-promise "^2.0.0"
+memoize-one@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
+ integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==
+
memory-fs@^0.4.0, memory-fs@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -5875,7 +7057,7 @@ moment-timezone@^0.5.27, moment-timezone@^0.5.31:
dependencies:
moment ">= 2.9.0"
-"moment@>= 2.9.0", moment@^2.26.0:
+"moment@>= 2.9.0":
version "2.26.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a"
integrity sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==
@@ -6027,6 +7209,11 @@ node-releases@^1.1.52, node-releases@^1.1.53:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935"
integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==
+node-releases@^1.1.66:
+ version "1.1.66"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.66.tgz#609bd0dc069381015cd982300bae51ab4f1b1814"
+ integrity sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==
+
node-sass@^4.14.1:
version "4.14.1"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5"
@@ -7445,6 +8632,11 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==
+raf-schd@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0"
+ integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ==
+
raf@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
@@ -7494,6 +8686,19 @@ react-app-polyfill@^1.0.6:
regenerator-runtime "^0.13.3"
whatwg-fetch "^3.0.0"
+react-beautiful-dnd@^13.0.0:
+ version "13.0.0"
+ resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40"
+ integrity sha512-87It8sN0ineoC3nBW0SbQuTFXM6bUqM62uJGY4BtTf0yzPl8/3+bHMWkgIe0Z6m8e+gJgjWxefGRVfpE3VcdEg==
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+ css-box-model "^1.2.0"
+ memoize-one "^5.1.1"
+ raf-schd "^4.0.2"
+ react-redux "^7.1.1"
+ redux "^4.0.4"
+ use-memo-one "^1.1.1"
+
react-dev-utils@^10.2.1:
version "10.2.1"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.2.1.tgz#f6de325ae25fa4d546d09df4bb1befdc6dd19c19"
@@ -7534,6 +8739,11 @@ react-dom@^16.13.1:
prop-types "^15.6.2"
scheduler "^0.19.1"
+react-double-scrollbar@0.0.15:
+ version "0.0.15"
+ resolved "https://registry.yarnpkg.com/react-double-scrollbar/-/react-double-scrollbar-0.0.15.tgz#e915ab8cb3b959877075f49436debfdb04288fe4"
+ integrity sha1-6RWrjLO5WYdwdfSUNt6/2wQoj+Q=
+
react-dropzone@^10.2.1:
version "10.2.2"
resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-10.2.2.tgz#67b4db7459589a42c3b891a82eaf9ade7650b815"
@@ -7561,7 +8771,7 @@ react-i18next@^11.7.0:
"@babel/runtime" "^7.3.1"
html-parse-stringify2 "2.0.1"
-react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.9.0:
+react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.9.0:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -7571,6 +8781,17 @@ react-moment@^0.9.7:
resolved "https://registry.yarnpkg.com/react-moment/-/react-moment-0.9.7.tgz#ca570466595b1aa4f7619e62da18b3bb2de8b6f3"
integrity sha512-ifzUrUGF6KRsUN2pRG5k56kO0mJBr8kRkWb0wNvtFIsBIxOuPxhUpL1YlXwpbQCbHq23hUu6A0VEk64HsFxk9g==
+react-redux@^7.1.1:
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736"
+ integrity sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA==
+ dependencies:
+ "@babel/runtime" "^7.12.1"
+ hoist-non-react-statics "^3.3.2"
+ loose-envify "^1.4.0"
+ prop-types "^15.7.2"
+ react-is "^16.13.1"
+
react-redux@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz#f970f62192b3981642fec46fd0db18a074fe879d"
@@ -7715,7 +8936,7 @@ redux-thunk@^2.3.0:
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==
-redux@*, redux@^4.0.0, redux@^4.0.5:
+redux@*, redux@^4.0.0, redux@^4.0.4, redux@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f"
integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==
@@ -7786,6 +9007,18 @@ regexpu-core@^4.7.0:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.2.0"
+regexpu-core@^4.7.1:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
+ integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.2.0"
+ regjsgen "^0.5.1"
+ regjsparser "^0.6.4"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.2.0"
+
regjsgen@^0.5.1:
version "0.5.2"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
@@ -7952,6 +9185,11 @@ rgba-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
+rgbcolor@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d"
+ integrity sha1-1lBezbMEplldom+ktDMHMGd1lF0=
+
rifm@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/rifm/-/rifm-0.7.0.tgz#debe951a9c83549ca6b33e5919f716044c2230be"
@@ -8461,6 +9699,11 @@ stable@^0.1.8:
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+stackblur-canvas@^2.0.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.4.0.tgz#2b2eba910cb46f6feae918e1c402f863d602c01b"
+ integrity sha512-Z+HixfgYV0ss3C342DxPwc+UvN1SYWqoz7Wsi3xEDWEnaBkSCL3Ey21gF4io+WlLm8/RIrSnCrDBIEcH4O+q5Q==
+
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
@@ -8696,7 +9939,17 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
-svgo@^1.0.0:
+svg-parser@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
+ integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
+
+svg-pathdata@^5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-5.0.5.tgz#65e8d765642ba15fe15434444087d082bc526b29"
+ integrity sha512-TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==
+
+svgo@^1.0.0, svgo@^1.2.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
@@ -8798,7 +10051,7 @@ timsort@^0.3.0:
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-tiny-invariant@^1.0.2:
+tiny-invariant@^1.0.2, tiny-invariant@^1.0.6:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
@@ -9082,6 +10335,11 @@ url@^0.11.0:
punycode "1.3.2"
querystring "0.2.0"
+use-memo-one@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c"
+ integrity sha512-oFfsyun+bP7RX8X2AskHNTxu+R3QdE/RC5IefMbqptmACAA/gfol1KDD5KRzPsGMa62sWxGZw+Ui43u6x4ddoQ==
+
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
@@ -9574,7 +10832,7 @@ yaml-loader@^0.6.0:
loader-utils "^1.4.0"
yaml "^1.8.3"
-yaml@^1.7.2, yaml@^1.8.3:
+yaml@^1.10.0, yaml@^1.7.2, yaml@^1.8.3:
version "1.10.0"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==