>({});
@@ -99,6 +121,17 @@ export const ProjectContextProvider: React.FC = ({ children }) => {
const [settings, settingsActions] = useSettings();
const table = _find(tables, (table) => table.id === tableState.config.id);
+ const [rowyRunVersion, setRowyRunVersion] = useState("");
+ useEffect(() => {
+ if (settings?.doc?.rowyRunUrl) {
+ _rowyRun({
+ route: runRoutes.version,
+ }).then((resp) => {
+ if (resp.version) setRowyRunVersion(resp.version);
+ });
+ }
+ }, [settings?.doc?.rowyRunUrl]);
+
useEffect(() => {
const { tables } = settings;
if (tables && userRoles) {
@@ -133,8 +166,37 @@ export const ProjectContextProvider: React.FC = ({ children }) => {
: [],
[tables]
);
+ const auditChange = (
+ type: "ADD_ROW" | "UPDATE_CELL" | "DELETE_ROW",
+ rowId,
+ data
+ ) => {
+ if (
+ table?.audit !== false &&
+ compatibleRowyRunVersion({ minVersion: "1.1.1" })
+ ) {
+ _rowyRun({
+ route: runRoutes.auditChange,
+ body: {
+ rowyUser: rowyUser(currentUser!),
+ type,
+ ref: {
+ rowPath: tableState.tablePath,
+ rowId,
+ tableId: table?.id,
+ collectionPath: tableState.tablePath,
+ },
+ data,
+ },
+ });
+ }
+ };
- const addRow: IProjectContext["addRow"] = (data, ignoreRequiredFields) => {
+ const addRow: IProjectContext["addRow"] = async (
+ data,
+ ignoreRequiredFields,
+ id
+ ) => {
const valuesFromFilter = tableState.filters.reduce((acc, curr) => {
if (curr.operator === "==") {
return { ...acc, [curr.key]: curr.value };
@@ -168,10 +230,63 @@ export const ProjectContextProvider: React.FC = ({ children }) => {
);
}
- tableActions.row.add(
+ if (!(typeof id === "object" && id?.type === "smaller"))
+ initialData._rowy_outOfOrder = true;
+
+ await tableActions.row.add(
{ ...valuesFromFilter, ...initialData, ...data },
- ignoreRequiredFields ? [] : requiredFields
+ ignoreRequiredFields ? [] : requiredFields,
+ (rowId: string) => auditChange("ADD_ROW", rowId, {}),
+ id
);
+ return;
+ };
+
+ const addRows = async (
+ rows: { data?: any; id?: string }[],
+ ignoreRequiredFields?: boolean
+ ) => {
+ const valuesFromFilter = tableState.filters.reduce((acc, curr) => {
+ if (curr.operator === "==") {
+ return { ...acc, [curr.key]: curr.value };
+ } else {
+ return acc;
+ }
+ }, {});
+ const initialData = Object.values(tableState.columns).reduce(
+ (acc, column) => {
+ if (column.config?.defaultValue?.type === "static") {
+ return { ...acc, [column.key]: column.config.defaultValue.value };
+ } else if (column.config?.defaultValue?.type === "null") {
+ return { ...acc, [column.key]: null };
+ } else {
+ return acc;
+ }
+ },
+ {}
+ );
+
+ const requiredFields = Object.values(tableState.columns)
+ .filter((column) => column.config.required)
+ .map((column) => column.key);
+
+ if (table?.audit !== false) {
+ initialData[table?.auditFieldCreatedBy || "_createdBy"] = rowyUser(
+ currentUser!
+ );
+ initialData[table?.auditFieldUpdatedBy || "_updatedBy"] = rowyUser(
+ currentUser!
+ );
+ }
+
+ await tableActions.addRows(
+ rows.map((row) => ({
+ data: { ...valuesFromFilter, ...initialData, ...row.data },
+ })),
+ ignoreRequiredFields ? [] : requiredFields,
+ (rowId: string) => auditChange("ADD_ROW", rowId, {})
+ );
+ return;
};
const updateCell: IProjectContext["updateCell"] = (
@@ -190,11 +305,11 @@ export const ProjectContextProvider: React.FC = ({ children }) => {
{ updatedField: fieldName }
);
}
-
tableActions.row.update(
ref,
update,
() => {
+ auditChange("UPDATE_CELL", ref.id, { updatedField: fieldName });
if (onSuccess) onSuccess(ref, fieldName, value);
},
(error) => {
@@ -210,17 +325,33 @@ export const ProjectContextProvider: React.FC = ({ children }) => {
}
);
};
+
+ const deleteRow = (rowId: string | string[]) => {
+ if (Array.isArray(rowId)) {
+ tableActions.row.delete(rowId, () => {
+ rowId.forEach((id) => auditChange("DELETE_ROW", id, {}));
+ });
+ } else
+ tableActions.row.delete(rowId, () =>
+ auditChange("DELETE_ROW", rowId, {})
+ );
+ };
// rowyRun access
const _rowyRun: IProjectContext["rowyRun"] = async (args) => {
+ const { service, ...rest } = args;
const authToken = await getAuthToken();
- if (settings.doc.rowyRunUrl)
+ const serviceUrl = service
+ ? settings.doc.services[service]
+ : settings.doc.rowyRunUrl;
+
+ if (serviceUrl) {
return rowyRun({
- rowyRunUrl: settings.doc.rowyRunUrl,
+ serviceUrl,
authToken,
- ...args,
+ ...rest,
});
- else {
- enqueueSnackbar(`Rowy Run is not set up`, {
+ } else {
+ enqueueSnackbar(`Rowy Run${service ? ` ${service}` : ""} is not set up`, {
variant: "error",
action: (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -767,14 +855,7 @@ export default function TestView() {
- }
- label="Label"
- sx={{
- alignItems: "center",
- "& .MuiFormControlLabel-label": { mt: 0 },
- }}
- />
+ } label="Label" />
}
label="Label"
@@ -913,8 +994,30 @@ export default function TestView() {
-
+
+ {/* size 40 thickness 3.6 */}
+
+
+
+
+
+
+
+
+
+ {/* size 40 thickness 3.6 */}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/space-grotesk.css b/src/space-grotesk.css
index 59ca25d7..76c098c6 100644
--- a/src/space-grotesk.css
+++ b/src/space-grotesk.css
@@ -3,7 +3,7 @@
font-style: normal;
font-weight: 700;
font-display: swap;
- src: url("assets/SpaceGrotesk-Bold.woff2") format("woff2");
+ src: url("@src/assets/SpaceGrotesk-Bold.woff2") format("woff2");
}
@font-face {
@@ -11,5 +11,5 @@
font-style: normal;
font-weight: 400;
font-display: swap;
- src: url("assets/SpaceGrotesk-Regular.woff2") format("woff2");
+ src: url("@src/assets/SpaceGrotesk-Regular.woff2") format("woff2");
}
diff --git a/src/theme/components.tsx b/src/theme/components.tsx
index 644907bc..10f9fe14 100644
--- a/src/theme/components.tsx
+++ b/src/theme/components.tsx
@@ -3,9 +3,9 @@ import type {} from "@mui/lab/themeAugmentation";
import { MultiSelectProps } from "@rowy/multiselect";
import { toRem } from "./typography";
-import RadioIcon from "theme/RadioIcon";
-import CheckboxIcon from "theme/CheckboxIcon";
-import CheckboxIndeterminateIcon from "theme/CheckboxIndeterminateIcon";
+import RadioIcon from "@src/theme/RadioIcon";
+import CheckboxIcon from "@src/theme/CheckboxIcon";
+import CheckboxIndeterminateIcon from "@src/theme/CheckboxIndeterminateIcon";
import AddCircleIcon from "@mui/icons-material/AddCircleOutline";
import { SvgIcon } from "@mui/material";
@@ -143,6 +143,13 @@ export const components = (theme: Theme): ThemeOptions => {
MuiDialog: {
styleOverrides: {
+ root: {
+ "--dialog-title-height": "64px",
+ [theme.breakpoints.down("sm")]: {
+ "--dialog-title-height": "56px",
+ },
+ },
+
paper: {
borderRadius: (theme.shape.borderRadius as number) * 2,
@@ -193,7 +200,7 @@ export const components = (theme: Theme): ThemeOptions => {
"--dialog-contents-spacing": theme.spacing(3),
"& > * + *": { marginTop: "var(--dialog-contents-spacing)" },
- ...theme.typography.body2,
+ ...(theme.typography.body2 as any),
},
},
},
@@ -238,6 +245,20 @@ export const components = (theme: Theme): ThemeOptions => {
variant: "filled",
size: "small",
},
+
+ styleOverrides: {
+ root: {
+ "&.labelHorizontal": {
+ flexDirection: "row",
+ alignItems: "center",
+
+ "& .MuiInputLabel-root": {
+ padding: 0,
+ paddingRight: theme.spacing(1),
+ },
+ },
+ },
+ },
},
MuiInputBase: {
styleOverrides: {
@@ -245,7 +266,7 @@ export const components = (theme: Theme): ThemeOptions => {
caretColor: theme.palette.primary.main,
".Mui-error &": { caretColor: theme.palette.error.main },
},
- inputSizeSmall: theme.typography.body2,
+ inputSizeSmall: theme.typography.body2 as any,
},
},
MuiFilledInput: {
@@ -256,23 +277,23 @@ export const components = (theme: Theme): ThemeOptions => {
backgroundColor: theme.palette.action.input,
},
- boxShadow: `0 0 0 1px ${theme.palette.action.inputOutline} inset,
- 0 -1px 0 0 ${theme.palette.text.disabled} inset`,
+ boxShadow: `0 -1px 0 0 ${theme.palette.text.disabled} inset,
+ 0 0 0 1px ${theme.palette.action.inputOutline} inset`,
transition: theme.transitions.create("box-shadow", {
duration: theme.transitions.duration.short,
}),
"&:hover": {
- boxShadow: `0 0 0 1px ${theme.palette.action.inputOutline} inset,
- 0 -1px 0 0 ${theme.palette.text.primary} inset`,
+ boxShadow: `0 -1px 0 0 ${theme.palette.text.primary} inset,
+ 0 0 0 1px ${theme.palette.action.inputOutline} inset`,
},
"&.Mui-focused, &.Mui-focused:hover": {
- boxShadow: `0 0 0 1px ${theme.palette.action.inputOutline} inset,
- 0 -2px 0 0 ${theme.palette.primary.main} inset`,
+ boxShadow: `0 -2px 0 0 ${theme.palette.primary.main} inset,
+ 0 0 0 1px ${theme.palette.action.inputOutline} inset`,
},
"&.Mui-error, &.Mui-error:hover": {
- boxShadow: `0 0 0 1px ${theme.palette.action.inputOutline} inset,
- 0 -2px 0 0 ${theme.palette.error.main} inset`,
+ boxShadow: `0 -2px 0 0 ${theme.palette.error.main} inset,
+ 0 0 0 1px ${theme.palette.action.inputOutline} inset`,
},
borderRadius: theme.shape.borderRadius,
@@ -301,6 +322,14 @@ export const components = (theme: Theme): ThemeOptions => {
paddingTop: theme.spacing(1.5),
paddingBottom: theme.spacing(13 / 8),
height: toRem(23),
+
+ ".MuiInputBase-root .MuiFilledInput-input.MuiInputBase-input&::placeholder":
+ {
+ // https://github.com/mui-org/material-ui/blob/master/packages/mui-material/src/InputBase/InputBase.js#L136
+ opacity: `${
+ theme.palette.mode === "light" ? 0.42 : 0.5
+ } !important`,
+ },
},
inputSizeSmall: {
padding: theme.spacing(0.75, 1.5),
@@ -312,7 +341,7 @@ export const components = (theme: Theme): ThemeOptions => {
MuiInputLabel: {
styleOverrides: {
root: {
- ...theme.typography.button,
+ ...(theme.typography.button as any),
color: theme.palette.text.primary,
},
filled: {
@@ -328,6 +357,14 @@ export const components = (theme: Theme): ThemeOptions => {
},
},
},
+ MuiFormLabel: {
+ styleOverrides: {
+ root: {
+ ...(theme.typography.button as any),
+ color: theme.palette.text.primary,
+ },
+ },
+ },
MuiFormHelperText: {
styleOverrides: {
contained: {
@@ -368,7 +405,7 @@ export const components = (theme: Theme): ThemeOptions => {
root: {
width: `calc(100% - ${theme.spacing(1)})`,
margin: theme.spacing(0, 0.5),
- padding: theme.spacing(0.5, 0.75, 0.5, 1.5),
+ padding: theme.spacing(0.5, 1.5),
minHeight: 32,
borderRadius: theme.shape.borderRadius,
@@ -404,7 +441,7 @@ export const components = (theme: Theme): ThemeOptions => {
defaultProps: { disableSticky: true },
styleOverrides: {
root: {
- ...theme.typography.subtitle2,
+ ...(theme.typography.subtitle2 as any),
color: theme.palette.text.primary,
lineHeight: "32px",
userSelect: "none",
@@ -533,6 +570,138 @@ export const components = (theme: Theme): ThemeOptions => {
},
},
+ MuiToggleButtonGroup: {
+ defaultProps: {
+ color: "primary",
+ },
+ styleOverrides: {
+ groupedHorizontal: {
+ "&:not(:first-of-type)": {
+ borderLeft: 0,
+ clipPath: "inset(0 0 0 1px)",
+ },
+ },
+ groupedVertical: {
+ "&:not(:first-of-type)": {
+ borderTop: 0,
+ clipPath: "inset(1px 0 0 0)",
+ },
+ },
+ },
+ },
+ MuiToggleButton: {
+ styleOverrides: {
+ root: {
+ "&, &.Mui-selected": {
+ backgroundColor: theme.palette.action.input,
+ },
+ transition: theme.transitions.create(
+ ["background-color", "color"],
+ { duration: theme.transitions.duration.short }
+ ),
+
+ border: 0,
+ boxShadow: `0 0 0 1px ${theme.palette.action.inputOutline} inset,
+ 0 ${theme.palette.mode === "dark" ? "" : "-"}1px 0 0 ${
+ theme.palette.action.inputOutline
+ } inset`,
+ ".MuiToggleButtonGroup-vertical &:not(:last-of-type)": {
+ boxShadow: `0 0 0 1px ${theme.palette.action.inputOutline} inset`,
+ },
+
+ "&:not(.Mui-disabled):hover": {
+ backgroundColor: colord(theme.palette.action.input)
+ .mix(
+ theme.palette.text.primary,
+ theme.palette.action.hoverOpacity
+ )
+ .toHslString(),
+ zIndex: 1,
+ },
+
+ "&.Mui-selected:hover": {
+ ".MuiToggleButton-standard&": {
+ backgroundColor: colord(theme.palette.action.input)
+ .mix(
+ theme.palette.action.hover,
+ theme.palette.action.hoverOpacity
+ )
+ .toHslString(),
+ },
+ ".MuiToggleButton-primary&": {
+ backgroundColor: colord(theme.palette.action.input)
+ .mix(
+ theme.palette.primary.main,
+ theme.palette.action.hoverOpacity
+ )
+ .toHslString(),
+ },
+ ".MuiToggleButton-secondary&": {
+ backgroundColor: colord(theme.palette.action.input)
+ .mix(
+ theme.palette.secondary.main,
+ theme.palette.action.hoverOpacity
+ )
+ .toHslString(),
+ },
+ },
+
+ "&.Mui-disabled": {
+ boxShadow: `0 0 0 1px ${theme.palette.divider} inset`,
+ backgroundColor: "transparent",
+ border: 0,
+ },
+
+ "&.Mui-selected::after": {
+ content: "''",
+ display: "block",
+ position: "absolute",
+ bottom: 0,
+ left: "50%",
+ transform: "translateX(-50%)",
+ maxWidth: 32,
+ width: `calc(100% - 16px)`,
+
+ height: 3,
+ borderRadius: 1.5,
+ backgroundColor: "currentColor",
+
+ ".MuiToggleButtonGroup-vertical &": {
+ left: 0,
+ top: "50%",
+ transform: "translateY(-50%)",
+ maxHeight: 32,
+ height: `calc(100% - 16px)`,
+
+ width: 3,
+ },
+ },
+ },
+
+ sizeSmall: {
+ minHeight: 24,
+ minWidth: 24,
+ padding: `${(24 - 18) / 2}px 10px`,
+ "& .MuiSvgIcon-root": {
+ margin: `0 ${-(10 - (24 - 18) / 2)}px`,
+ fontSize: 18,
+ },
+ },
+ sizeMedium: {
+ minHeight: 32,
+ minWidth: 32,
+ padding: `${(32 - 24) / 2}px 16px`,
+ "& .MuiSvgIcon-root": { margin: `0 ${-(16 - (32 - 24) / 2)}px` },
+ },
+ sizeLarge: {
+ minHeight: 48,
+ minWidth: 48,
+ padding: `${(48 - 24) / 2}px 22px`,
+ "& .MuiSvgIcon-root": { margin: `0 ${-(22 - (48 - 24) / 2)}px` },
+ },
+ },
+ },
+
MuiIconButton: {
defaultProps: {
TouchRippleProps: { center: false },
@@ -792,7 +961,13 @@ export const components = (theme: Theme): ThemeOptions => {
root: {
display: "flex",
alignItems: "flex-start",
- "& .MuiSwitch-root": { marginRight: theme.spacing(1) },
+ "& .MuiSwitch-root": {
+ marginRight: theme.spacing(1),
+
+ "&.MuiSwitch-sizeSmall + .MuiFormControlLabel-label": {
+ marginTop: 4,
+ },
+ },
},
label: {
marginTop: 10,
@@ -862,7 +1037,7 @@ export const components = (theme: Theme): ThemeOptions => {
MuiAlertTitle: {
styleOverrides: {
root: {
- ...theme.typography.subtitle2,
+ ...(theme.typography.subtitle2 as any),
lineHeight: "1.5rem",
},
},
@@ -916,7 +1091,7 @@ export const components = (theme: Theme): ThemeOptions => {
styleOverrides: {
root: {
"& .PrivatePickersYear-yearButton": {
- ...theme.typography.button,
+ ...(theme.typography.button as any),
fontSize: "1rem",
},
},
diff --git a/src/theme/index.tsx b/src/theme/index.tsx
index bf9fd224..75ab933c 100644
--- a/src/theme/index.tsx
+++ b/src/theme/index.tsx
@@ -1,9 +1,9 @@
import { createTheme, ThemeOptions } from "@mui/material/styles";
import _merge from "lodash/merge";
-import { typography } from "theme/typography";
-import { colorsLight, colorsDark } from "theme/colors";
-import { components } from "theme/components";
+import { typography } from "@src/theme/typography";
+import { colorsLight, colorsDark } from "@src/theme/colors";
+import { components } from "@src/theme/components";
export const customizableLightTheme = (customization: ThemeOptions) => {
const customizedLightThemeBase = createTheme(
diff --git a/src/utils/PrivateRoute.tsx b/src/utils/PrivateRoute.tsx
index 92a8a8c3..f97fe756 100644
--- a/src/utils/PrivateRoute.tsx
+++ b/src/utils/PrivateRoute.tsx
@@ -1,8 +1,8 @@
import { Route, RouteProps, Redirect } from "react-router-dom";
-import { useAppContext } from "contexts/AppContext";
-import Loading from "components/Loading";
-import routes from "constants/routes";
+import { useAppContext } from "@src/contexts/AppContext";
+import Loading from "@src/components/Loading";
+import routes from "@src/constants/routes";
interface IPrivateRouteProps extends RouteProps {
render: NonNullable;
diff --git a/src/utils/fns.ts b/src/utils/fns.ts
index 5edcf8d6..768128ac 100644
--- a/src/utils/fns.ts
+++ b/src/utils/fns.ts
@@ -1,5 +1,9 @@
+import firebase from "firebase/app";
import _get from "lodash/get";
-import { TABLE_GROUP_SCHEMAS, TABLE_SCHEMAS } from "config/dbPaths";
+import _mapValues from "lodash/mapValues";
+import _isPlainObject from "lodash/isPlainObject";
+
+import { TABLE_GROUP_SCHEMAS, TABLE_SCHEMAS } from "@src/config/dbPaths";
/**
* reposition an element in an array
@@ -68,29 +72,44 @@ export const isCollectionGroup = () => {
const pathName = window.location.pathname.split("/")[1];
return pathName === "tableGroup";
};
-var characters =
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-export function makeId(length) {
- var result = "";
- var charactersLength = characters.length;
- for (var i = 0; i < length; i++) {
- result += characters.charAt(Math.floor(Math.random() * charactersLength));
- }
- return result;
-}
-export const generateSmallerId = (id: string) => {
- const indexOfFirstChar = characters.indexOf(id[0]);
- if (indexOfFirstChar !== 0)
- return characters[indexOfFirstChar - 1] + makeId(id.length - 1);
- else return id[0] + generateSmallerId(id.substr(1, id.length - 1));
+const characters =
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+export const makeId = (length: number = 20) => {
+ let result = "";
+ const charactersLength = characters.length;
+ for (var i = 0; i < length; i++)
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
+
+ return result;
};
-export const generateBiggerId = (id: string) => {
- const indexOfFirstChar = characters.indexOf(id[0]);
- if (indexOfFirstChar !== 61)
- return characters[indexOfFirstChar + 1] + makeId(id.length - 1);
- else return id[0] + generateBiggerId(id.substr(1, id.length - 1));
+export const decrementId = (id: string) => {
+ const newId = id.split("");
+
+ // Loop through ID characters from the end
+ let i = newId.length - 1;
+ while (i > -1) {
+ const newCharacterIndex = characters.indexOf(newId[i]) - 1;
+
+ newId[i] =
+ characters[
+ newCharacterIndex > -1 ? newCharacterIndex : characters.length - 1
+ ];
+
+ // If we don’t hit 0, we’re done
+ if (newCharacterIndex > -1) break;
+
+ // Otherwise, if we hit 0, we need to decrement the next character
+ i--;
+ }
+
+ // Ensure we don't get 00...0, then the next ID would be 00...0z,
+ // which would appear as the second row
+ if (newId.every((x) => x === characters[0]))
+ newId.push(characters[characters.length - 1]);
+
+ return newId.join("");
};
// Gets sub-table ID in $1
@@ -151,7 +170,7 @@ export const deepMerge = (target, source) => {
};
export const rowyUser = (
- currentUser: firebase.default.User,
+ currentUser: firebase.User,
data?: Record
) => {
const { displayName, email, uid, emailVerified, isAnonymous, photoURL } =
@@ -168,3 +187,38 @@ export const rowyUser = (
...data,
};
};
+export const generateRandomId = () => {
+ return (
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15)
+ );
+};
+
+const _firestoreRefSanitizer = (v: any) => {
+ // If react-hook-form receives a Firestore document reference, it tries to
+ // clone firebase.firestore and exceeds maximum call stack size.
+ if (firebase.firestore.DocumentReference.prototype.isPrototypeOf(v))
+ return v.path;
+
+ // Also test for arrays
+ if (Array.isArray(v))
+ return v.map((w) => {
+ if (firebase.firestore.DocumentReference.prototype.isPrototypeOf(w))
+ return w.path;
+ return w;
+ });
+
+ // Also test for objects
+ if (_isPlainObject(v)) return _mapValues(v, _firestoreRefSanitizer);
+
+ return v;
+};
+
+export const sanitizeFirestoreRefs = (doc: Record) =>
+ _mapValues(doc, _firestoreRefSanitizer);
+
+export const isTargetInsideBox = (target, box) => {
+ const targetRect = target.getBoundingClientRect();
+ const boxRect = box.getBoundingClientRect();
+ return targetRect.y < boxRect.y + boxRect.height;
+};
diff --git a/src/utils/rowyRun.ts b/src/utils/rowyRun.ts
index 1188e706..22cf7520 100644
--- a/src/utils/rowyRun.ts
+++ b/src/utils/rowyRun.ts
@@ -1,7 +1,7 @@
-import { RunRoute } from "constants/runRoutes";
+import { RunRoute } from "@src/constants/runRoutes";
export interface IRowyRunRequestProps {
- rowyRunUrl: string;
+ serviceUrl: string;
authToken?: string;
route: RunRoute;
body?: any;
@@ -12,7 +12,7 @@ export interface IRowyRunRequestProps {
}
export const rowyRun = async ({
- rowyRunUrl,
+ serviceUrl,
authToken,
route,
body,
@@ -22,7 +22,7 @@ export const rowyRun = async ({
signal,
}: IRowyRunRequestProps) => {
const { method, path } = route;
- let url = (localhost ? "http://localhost:8080" : rowyRunUrl) + path;
+ let url = (localhost ? "http://localhost:8080" : serviceUrl) + path;
if (params && params.length > 0) url = url + "/" + params.join("/");
const response = await fetch(url, {
method: method,
diff --git a/types/custom.ts b/types/custom.ts
index ae704ef5..63f9f2d0 100644
--- a/types/custom.ts
+++ b/types/custom.ts
@@ -6,3 +6,7 @@ declare module "*.mp4" {
const content: any;
export default content;
}
+declare module "!!raw-loader!*" {
+ const content: string;
+ export default content;
+}
diff --git a/yarn.lock b/yarn.lock
index 5c7be15c..31785ef9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1460,7 +1460,7 @@
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.15.4", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
@@ -1488,6 +1488,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.16.3":
+ version "7.16.3"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5"
+ integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
"@babel/runtime@^7.7.2":
version "7.8.7"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d"
@@ -1709,6 +1716,17 @@
"@emotion/weak-memoize" "^0.2.5"
stylis "^4.0.3"
+"@emotion/cache@^11.6.0":
+ version "11.6.0"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.6.0.tgz#65fbdbbe4382f1991d8b20853c38e63ecccec9a1"
+ integrity sha512-ElbsWY1KMwEowkv42vGo0UPuLgtPYfIs9BxxVrmvsaJVvktknsHYYlx5NQ5g6zLDcOTyamlDc7FkRg2TAcQDKQ==
+ dependencies:
+ "@emotion/memoize" "^0.7.4"
+ "@emotion/sheet" "^1.1.0"
+ "@emotion/utils" "^1.0.0"
+ "@emotion/weak-memoize" "^0.2.5"
+ stylis "^4.0.10"
+
"@emotion/hash@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
@@ -1721,6 +1739,13 @@
dependencies:
"@emotion/memoize" "^0.7.4"
+"@emotion/is-prop-valid@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.1.tgz#cbd843d409dfaad90f9404e7c0404c55eae8c134"
+ integrity sha512-bW1Tos67CZkOURLc0OalnfxtSXQJMrAMV0jZTVGJUPSOd4qgjF3+tTD5CwJM13PHA8cltGW1WGbbvV9NpvUZPw==
+ dependencies:
+ "@emotion/memoize" "^0.7.4"
+
"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
@@ -1755,6 +1780,11 @@
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.2.tgz#1d9ffde531714ba28e62dac6a996a8b1089719d0"
integrity sha512-QQPB1B70JEVUHuNtzjHftMGv6eC3Y9wqavyarj4x4lg47RACkeSfNo5pxIOKizwS9AEFLohsqoaxGQj4p0vSIw==
+"@emotion/sheet@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2"
+ integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==
+
"@emotion/styled@^11.3.0":
version "11.3.0"
resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.3.0.tgz#d63ee00537dfb6ff612e31b0e915c5cf9925a207"
@@ -2362,10 +2392,10 @@
resolved "https://registry.yarnpkg.com/@mdi/js/-/js-5.9.55.tgz#8f5bc4d924c23f30dab20545ddc768e778bbc882"
integrity sha512-BbeHMgeK2/vjdJIRnx12wvQ6s8xAYfvMmEAVsUx9b+7GiQGQ9Za8jpwp17dMKr9CgKRvemlAM4S7S3QOtEbp4A==
-"@mdi/js@^6.2.95":
- version "6.2.95"
- resolved "https://registry.yarnpkg.com/@mdi/js/-/js-6.2.95.tgz#decf0f86035990248f25b0a4e246a7d152211273"
- integrity sha512-fbD22sEBathqVSQWcxshEtzhhRNFmMnV64z6T7DClRbQ9N5axorykt3Suv2zPzLDyiqH7UhNRu0VPvPCPDNpnQ==
+"@mdi/js@^6.5.95":
+ version "6.5.95"
+ resolved "https://registry.yarnpkg.com/@mdi/js/-/js-6.5.95.tgz#2d895b013408f213252b77c30e0fdaaba6dc8b4b"
+ integrity sha512-x/bwEoAGP+Mo10Dfk5audNIPi7Yz8ZBrILcbXLW3ShOI/njpgodzpgpC2WYK3D2ZSC392peRRemIFb/JsyzzYQ==
"@monaco-editor/loader@^1.2.0":
version "1.2.0"
@@ -2374,7 +2404,7 @@
dependencies:
state-local "^1.0.6"
-"@monaco-editor/react@^4.1.0":
+"@monaco-editor/react@^4.3.1":
version "4.3.1"
resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.3.1.tgz#d65bcbf174c39b6d4e7fec43d0cddda82b70a12a"
integrity sha512-f+0BK1PP/W5I50hHHmwf11+Ea92E5H1VZXs+wvKplWUWOfyMa1VVwqkJrXjRvbcqHL+XdIGYWhWNdi4McEvnZg==
@@ -2382,129 +2412,129 @@
"@monaco-editor/loader" "^1.2.0"
prop-types "^15.7.2"
-"@mui/core@5.0.0-alpha.50":
- version "5.0.0-alpha.50"
- resolved "https://registry.yarnpkg.com/@mui/core/-/core-5.0.0-alpha.50.tgz#055b7ccf8557f849e8e61a39a8e3943f8abad9b0"
- integrity sha512-szmmzbyAjEQku17IoEWs7t77n0Kr4zVnT5fREfMd+CnCA4YDifr68ccGJfWaeoGp5Zw/JmfKjQJXLY4GgT6i/g==
+"@mui/base@5.0.0-alpha.58":
+ version "5.0.0-alpha.58"
+ resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.58.tgz#01ab59a028f314e2f9a79f903a8336ac45853652"
+ integrity sha512-YZorCbbzkokQZUnj+sdjUWIe+jaesuSVpKgwWS2mWdE50v1Ti/qMmevIrOT1lvFAilpj80Bkcg4KtlGWBJ6utQ==
dependencies:
- "@babel/runtime" "^7.15.4"
- "@emotion/is-prop-valid" "^1.1.0"
- "@mui/utils" "^5.0.1"
+ "@babel/runtime" "^7.16.3"
+ "@emotion/is-prop-valid" "^1.1.1"
+ "@mui/utils" "^5.2.2"
+ "@popperjs/core" "^2.4.4"
clsx "^1.1.1"
prop-types "^15.7.2"
react-is "^17.0.2"
-"@mui/icons-material@^5.0.0":
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.0.3.tgz#2a9d4f9078f375cef40f63a240b59cefa4a27eec"
- integrity sha512-Lktn+4GNnXdVrOCUUvNNvOD9VyrGazWBsJy0BQeQgBe/+IjFMdlcNrDEUIlGlA5ZXOq7Mr/Mv9Os02mgF65jiw==
+"@mui/icons-material@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.2.0.tgz#6c6135bb2d7891e29d6f9419df402b82dd663517"
+ integrity sha512-NvyrVaGKpP4R1yFw8BCnE0QcsQ67RtpgxPr4FtH8q60MDYPuPVczLOn5Ash5CFavoDWur/NfM/4DpT54yf3InA==
dependencies:
- "@babel/runtime" "^7.15.4"
+ "@babel/runtime" "^7.16.3"
-"@mui/lab@^5.0.0-alpha.50":
- version "5.0.0-alpha.50"
- resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.50.tgz#4102698b176eba28ef16ee1fcb6b0677f2fb221b"
- integrity sha512-8DgRjQjjObrHpdFx5HSjw27zQlSf0gc+I911ZSs+YIn7TADQgtg3QzaHqe5o54b+91LhMfugQAtPlRjqXMaEKA==
+"@mui/lab@^5.0.0-alpha.58":
+ version "5.0.0-alpha.58"
+ resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.58.tgz#47c3b2976df066119fa040131a63139677ba5a66"
+ integrity sha512-Vn3bWlID2SgCb7KX3d29uSLWv3JDEHJ+QiApnaPuUqqymwHARbQUk+b2h6wfQCz/WqaR0MtmsRwA6OrrLsL3Eg==
dependencies:
- "@babel/runtime" "^7.15.4"
+ "@babel/runtime" "^7.16.3"
"@date-io/date-fns" "^2.11.0"
"@date-io/dayjs" "^2.11.0"
"@date-io/luxon" "^2.11.1"
"@date-io/moment" "^2.11.0"
- "@mui/core" "5.0.0-alpha.50"
- "@mui/system" "^5.0.3"
- "@mui/utils" "^5.0.1"
+ "@mui/base" "5.0.0-alpha.58"
+ "@mui/system" "^5.2.2"
+ "@mui/utils" "^5.2.2"
clsx "^1.1.1"
prop-types "^15.7.2"
react-is "^17.0.2"
react-transition-group "^4.4.2"
- rifm "^0.12.0"
+ rifm "^0.12.1"
-"@mui/material@^5.0.0":
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.0.3.tgz#5ac4d9f7d9635efc9cf7347373e49db41f1b065b"
- integrity sha512-Qj2hwSi63qrYRJuHrUFdN83lCT6HXyLzpCniDTvK7NlqXCnpy4F3Gg0hRJTnO4hNqTTBV+SCOKTSbfuzHl/dnQ==
+"@mui/material@^5.2.2":
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.2.2.tgz#4dfbc9186a83e16a9dcdcc10e4a70ecaf641b1a3"
+ integrity sha512-vqmZq+v59CT4V84WcvYkYldnjC6uRddYx0TJqgl2h5YRbbPYCGVVywVvg9cBwxy4j5xI3F2WH6z7WGkHqkJIQA==
dependencies:
- "@babel/runtime" "^7.15.4"
- "@mui/core" "5.0.0-alpha.50"
- "@mui/system" "^5.0.3"
- "@mui/types" "^7.0.0"
- "@mui/utils" "^5.0.1"
- "@popperjs/core" "^2.4.4"
- "@types/react-transition-group" "^4.4.3"
+ "@babel/runtime" "^7.16.3"
+ "@mui/base" "5.0.0-alpha.58"
+ "@mui/system" "^5.2.2"
+ "@mui/types" "^7.1.0"
+ "@mui/utils" "^5.2.2"
+ "@types/react-transition-group" "^4.4.4"
clsx "^1.1.1"
- csstype "^3.0.9"
+ csstype "^3.0.10"
hoist-non-react-statics "^3.3.2"
prop-types "^15.7.2"
react-is "^17.0.2"
react-transition-group "^4.4.2"
-"@mui/private-theming@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.0.1.tgz#50a0ea6ad5a8d1d78072859c4bdaaa6b6584d986"
- integrity sha512-R8Cf2+32cG1OXFAqTighA5Mx9R5BQ57cN1ZVaNgfgdbI87Yig2fVMdFSPrw3txcjKlnwsvFJF8AdwQMqq1tJ3Q==
+"@mui/private-theming@^5.2.2":
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.2.2.tgz#ede801bc4b6939aedf5900edcece981fde8fa210"
+ integrity sha512-BfTjZ5ao6KY4Sg11lgaVuQ9uUq8unaM2u9/RKDD12If0B2Vp/AhRSe7i5OTd+wErmK2guTX0kPSraGZzwDEIVg==
dependencies:
- "@babel/runtime" "^7.15.4"
- "@mui/utils" "^5.0.1"
+ "@babel/runtime" "^7.16.3"
+ "@mui/utils" "^5.2.2"
prop-types "^15.7.2"
-"@mui/styled-engine@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.0.1.tgz#401e3e0ff846ad1b1e7e097c8050b36d7b68343e"
- integrity sha512-j40nCbaKr1HAZYqpX61XvZYsadYskjo3u6+pRFFaewSViAkkD1rjjbubpnh15nqVfYmijtHMZJ9/l1x1hamvfQ==
+"@mui/styled-engine@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.2.0.tgz#5c97e2b1b6c4c2d9991f07517ed862972d362b85"
+ integrity sha512-NZ4pWYQcM5wreUfiXRd7IMFRF+Nq1vMzsIdXtXNjgctJTKHunrofasoBqv+cqevO+hqT75ezSbNHyaXzOXp6Mg==
dependencies:
- "@babel/runtime" "^7.15.4"
- "@emotion/cache" "^11.4.0"
+ "@babel/runtime" "^7.16.3"
+ "@emotion/cache" "^11.6.0"
prop-types "^15.7.2"
-"@mui/styles@^5.0.0":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.0.1.tgz#1634d08d892b5c7e85c9f84e4fc8bc02a5fb0f7a"
- integrity sha512-hCtR2ZVOkoIhpTan02I4UEShnZxe59WwhKRJqauMs/addXByhAHHCNheTdiV++Irl/fyyFObmzPM0CUD3q6FIA==
+"@mui/styles@^5.2.2":
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.2.2.tgz#34c9ba1d6d5a0b9399fbd0c6e85b8f2dcfe54fbd"
+ integrity sha512-Hfg/3nAU+25RVzpgB0xyE1JjrOCI4rjujrJ0K4tS7M/U4NKZQrmtinc5ldvCaZUlxb51bZGs5V1MGn2dLKZVNQ==
dependencies:
- "@babel/runtime" "^7.15.4"
+ "@babel/runtime" "^7.16.3"
"@emotion/hash" "^0.8.0"
- "@mui/private-theming" "^5.0.1"
- "@mui/types" "^7.0.0"
- "@mui/utils" "^5.0.1"
+ "@mui/private-theming" "^5.2.2"
+ "@mui/types" "^7.1.0"
+ "@mui/utils" "^5.2.2"
clsx "^1.1.1"
- csstype "^3.0.9"
+ csstype "^3.0.10"
hoist-non-react-statics "^3.3.2"
- jss "^10.8.0"
- jss-plugin-camel-case "^10.8.0"
- jss-plugin-default-unit "^10.8.0"
- jss-plugin-global "^10.8.0"
- jss-plugin-nested "^10.8.0"
- jss-plugin-props-sort "^10.8.0"
- jss-plugin-rule-value-function "^10.8.0"
- jss-plugin-vendor-prefixer "^10.8.0"
+ jss "^10.8.2"
+ jss-plugin-camel-case "^10.8.2"
+ jss-plugin-default-unit "^10.8.2"
+ jss-plugin-global "^10.8.2"
+ jss-plugin-nested "^10.8.2"
+ jss-plugin-props-sort "^10.8.2"
+ jss-plugin-rule-value-function "^10.8.2"
+ jss-plugin-vendor-prefixer "^10.8.2"
prop-types "^15.7.2"
-"@mui/system@^5.0.3":
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.0.3.tgz#6c126be5c2796fe89af93aa0e76d1c3c6dcccf45"
- integrity sha512-pNkW9p6Dj/ch3YCKjvrXrBhKsAyJ1/l273Q0hh60hhTKHJXgKBVONQ8r7l1fFHtufI0NNz6UGMVJooIXg4JJtA==
+"@mui/system@^5.2.2":
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.2.2.tgz#81ef74f0c269d18b99a2d0253833d6554bbf5198"
+ integrity sha512-221tPOcZC8A89GOt6LH9YPTj2Iqf880iqrHd7AHT/HznBKOlLrnWD83pCuLPyX2jeFz4OzhvmGbdt5a74UEgaA==
dependencies:
- "@babel/runtime" "^7.15.4"
- "@mui/private-theming" "^5.0.1"
- "@mui/styled-engine" "^5.0.1"
- "@mui/types" "^7.0.0"
- "@mui/utils" "^5.0.1"
+ "@babel/runtime" "^7.16.3"
+ "@mui/private-theming" "^5.2.2"
+ "@mui/styled-engine" "^5.2.0"
+ "@mui/types" "^7.1.0"
+ "@mui/utils" "^5.2.2"
clsx "^1.1.1"
- csstype "^3.0.9"
+ csstype "^3.0.10"
prop-types "^15.7.2"
-"@mui/types@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.0.0.tgz#a7398502bc9c508875aafcbe28aea599b2c3d203"
- integrity sha512-M/tkF2pZ4uoPhZ8pnNhlVnOFtz6F3dnYKIsnj8MuXKT6d26IE2u0UjA8B0275ggN74dR9rlHG5xJt5jgDx/Ung==
+"@mui/types@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.0.tgz#5ed928c5a41cfbf9a4be82ea3bbdc47bcc9610d5"
+ integrity sha512-Hh7ALdq/GjfIwLvqH3XftuY3bcKhupktTm+S6qRIDGOtPtRuq2L21VWzOK4p7kblirK0XgGVH5BLwa6u8z/6QQ==
-"@mui/utils@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.0.1.tgz#d4f0f41b82db6ac273920a1b5b6a4de7879271f5"
- integrity sha512-GWO104N+o9KG5fKiTEYnAg7kONKEg3vLN+VROAU0f3it6lFGLCVPcQYex/1gJ4QAy96u6Ez8/Hmmhi1+3cX0tQ==
+"@mui/utils@^5.2.2":
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.2.2.tgz#972aab7d2564e77c06e0c3c11e7b1aec6e37c927"
+ integrity sha512-0u9ImUfpCfTxmvQTfUzTSS+jKWMX15MBZeZCRQZ0f7o9Yi8BlrLj33lMx0mFBkUSYdTXnqL4yfOn7RBzV01HMQ==
dependencies:
- "@babel/runtime" "^7.15.4"
+ "@babel/runtime" "^7.16.3"
"@types/prop-types" "^15.7.4"
"@types/react-is" "^16.7.1 || ^17.0.0"
prop-types "^15.7.2"
@@ -2664,10 +2694,10 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"
-"@rowy/form-builder@^0.3.1":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@rowy/form-builder/-/form-builder-0.3.1.tgz#7359a05563c99ae4c222fa5336a57ce7a344ae29"
- integrity sha512-5IlNtBb6V5VdbpYWhO4P6QIBVqI42SVko15Bmn1YLd0JyoI3wza+seFBK0PgrBUB/OzTEA/hsBN5cyWhqlKt2Q==
+"@rowy/form-builder@^0.4.2":
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/@rowy/form-builder/-/form-builder-0.4.2.tgz#e1693b16af31ed486b7314cd657cd3a1c9c3e937"
+ integrity sha512-bedChgzyL7BxeQVijaxAXYJqcZtTaCLy4CfqInbsKEB+0OJ3nWi2c9l9d+v8yf6QJ2+3ERyveVfuKq6HAVTQ/g==
dependencies:
"@hookform/resolvers" "^2.6.0"
"@mdi/js" "^5.9.55"
@@ -3244,10 +3274,10 @@
"@types/history" "*"
"@types/react" "*"
-"@types/react-transition-group@^4.4.3":
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.3.tgz#b0994da0a7023d67dbb4a8910a62112bc00d5688"
- integrity sha512-fUx5muOWSYP8Bw2BUQ9M9RK9+W1XBK/7FLJ8PTQpnpTEkn0ccyMffyEQvan4C3h53gHdx7KE5Qrxi/LnUGQtdg==
+"@types/react-transition-group@^4.4.4":
+ version "4.4.4"
+ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e"
+ integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==
dependencies:
"@types/react" "*"
@@ -5426,6 +5456,11 @@ compare-versions@^3.6.0:
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
+compare-versions@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.1.tgz#d881fc9f47d6eb2b8f63109dc5e82dae39c3680c"
+ integrity sha512-jHQA7zMUpbO+FhPz/kADChZVSk3edtD7c3WkEAjleBtwgAl0ji6wGrYxryaBhViGgq0A+Pb6JPhjhg9jpth4mQ==
+
component-emitter@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
@@ -6038,7 +6073,12 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
-csstype@^3.0.2, csstype@^3.0.9:
+csstype@^3.0.10:
+ version "3.0.10"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5"
+ integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==
+
+csstype@^3.0.2:
version "3.0.9"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz#6410af31b26bd0520933d02cbc64fce9ce3fbf0b"
integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==
@@ -9898,6 +9938,11 @@ join-path@^1.1.1:
url-join "0.0.1"
valid-url "^1"
+jotai@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/jotai/-/jotai-1.4.2.tgz#0747581840c82ec0862d4c15ee0f7d59246ed46e"
+ integrity sha512-/NcK8DGvfGcVCqoOvjWIo8/KaUYtadXEl+6uxLiQJUxbyiqCtXkhAdrugk5jmpAFXXD2y6fNDw2Ln7h0EuY+ng==
+
jpeg-js@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b"
@@ -9983,11 +10028,6 @@ json-buffer@3.0.0:
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
-json-format@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-format/-/json-format-1.0.1.tgz#143f67e62af129d6bffed288a46265ea23d0df0c"
- integrity sha1-FD9n5irxKda//tKIpGJl6iPQ3ww=
-
json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
@@ -10131,70 +10171,70 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
-jss-plugin-camel-case@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.8.0.tgz#575fd849202d36713a6970796458e375754446c7"
- integrity sha512-yxlXrXwcCdGw+H4BC187dEu/RFyW8joMcWfj8Rk9UPgWTKu2Xh7Sib4iW3xXjHe/t5phOHF1rBsHleHykWix7g==
+jss-plugin-camel-case@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.8.2.tgz#8d7f915c8115afaff8cbde08faf610ec9892fba6"
+ integrity sha512-2INyxR+1UdNuKf4v9It3tNfPvf7IPrtkiwzofeKuMd5D58/dxDJVUQYRVg/n460rTlHUfsEQx43hDrcxi9dSPA==
dependencies:
"@babel/runtime" "^7.3.1"
hyphenate-style-name "^1.0.3"
- jss "10.8.0"
+ jss "10.8.2"
-jss-plugin-default-unit@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.8.0.tgz#98db5962e62abbf43f1cc111e62cb70ffb09db59"
- integrity sha512-9XJV546cY9zV9OvIE/v/dOaxSi4062VfYQQfwbplRExcsU2a79Yn+qDz/4ciw6P4LV1Naq90U+OffAGRHfNq/Q==
+jss-plugin-default-unit@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.8.2.tgz#c66f12e02e0815d911b85c02c2a979ee7b4ce69a"
+ integrity sha512-UZ7cwT9NFYSG+SEy7noRU50s4zifulFdjkUNKE+u6mW7vFP960+RglWjTgMfh79G6OENZmaYnjHV/gcKV4nSxg==
dependencies:
"@babel/runtime" "^7.3.1"
- jss "10.8.0"
+ jss "10.8.2"
-jss-plugin-global@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.8.0.tgz#0c2b0c056087f5846d600f3332eeb7a1a8b9c9f2"
- integrity sha512-H/8h/bHd4e7P0MpZ9zaUG8NQSB2ie9rWo/vcCP6bHVerbKLGzj+dsY22IY3+/FNRS8zDmUyqdZx3rD8k4nmH4w==
+jss-plugin-global@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.8.2.tgz#1a35632a693cf50113bcc5ffe6b51969df79c4ec"
+ integrity sha512-UaYMSPsYZ7s/ECGoj4KoHC2jwQd5iQ7K+FFGnCAILdQrv7hPmvM2Ydg45ThT/sH46DqktCRV2SqjRuxeBH8nRA==
dependencies:
"@babel/runtime" "^7.3.1"
- jss "10.8.0"
+ jss "10.8.2"
-jss-plugin-nested@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.8.0.tgz#7ef9a815e9c9fbede41a8f52ce75cffb4c3b86d5"
- integrity sha512-MhmINZkSxyFILcFBuDoZmP1+wj9fik/b9SsjoaggkGjdvMQCES21mj4K5ZnRGVm448gIXyi9j/eZjtDzhaHUYQ==
+jss-plugin-nested@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.8.2.tgz#79f3c7f75ea6a36ae72fe52e777035bb24d230c7"
+ integrity sha512-acRvuPJOb930fuYmhkJaa994EADpt8TxI63Iyg96C8FJ9T2xRyU5T6R1IYKRwUiqZo+2Sr7fdGzRTDD4uBZaMA==
dependencies:
"@babel/runtime" "^7.3.1"
- jss "10.8.0"
+ jss "10.8.2"
tiny-warning "^1.0.2"
-jss-plugin-props-sort@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.8.0.tgz#2a83e8ca80d72828495bad57b485f7d55a33543b"
- integrity sha512-VY+Wt5WX5GMsXDmd+Ts8+O16fpiCM81svbox++U3LDbJSM/g9FoMx3HPhwUiDfmgHL9jWdqEuvSl/JAk+mh6mQ==
+jss-plugin-props-sort@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.8.2.tgz#e25a7471868652c394562b6dc5433dcaea7dff6f"
+ integrity sha512-wqdcjayKRWBZnNpLUrXvsWqh+5J5YToAQ+8HNBNw0kZxVvCDwzhK2Nx6AKs7p+5/MbAh2PLgNW5Ym/ysbVAuqQ==
dependencies:
"@babel/runtime" "^7.3.1"
- jss "10.8.0"
+ jss "10.8.2"
-jss-plugin-rule-value-function@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.8.0.tgz#e011ed180789229e7ea8f75c222d34810bcab520"
- integrity sha512-R8N8Ma6Oye1F9HroiUuHhVjpPsVq97uAh+rMI6XwKLqirIu2KFb5x33hPj+vNBMxSHc9jakhf5wG0BbQ7fSDOg==
+jss-plugin-rule-value-function@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.8.2.tgz#55354b55f1b2968a15976729968f767f02d64049"
+ integrity sha512-bW0EKAs+0HXpb6BKJhrn94IDdiWb0CnSluTkh0rGEgyzY/nmD1uV/Wf6KGlesGOZ9gmJzQy+9FFdxIUID1c9Ug==
dependencies:
"@babel/runtime" "^7.3.1"
- jss "10.8.0"
+ jss "10.8.2"
tiny-warning "^1.0.2"
-jss-plugin-vendor-prefixer@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.8.0.tgz#024b6d77be50b68e5dfca2c75f68091d8b722d61"
- integrity sha512-G1zD0J8dFwKZQ+GaZaay7A/Tg7lhDw0iEkJ/iFFA5UPuvZFpMprCMQttXcTBhLlhhWnyZ8YPn4yqp+amrhQekw==
+jss-plugin-vendor-prefixer@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.8.2.tgz#ebb4a482642f34091e454901e21176441dd5f475"
+ integrity sha512-DeGv18QsSiYLSVIEB2+l0af6OToUe0JB+trpzUxyqD2QRC/5AzzDrCrYffO5AHZ81QbffYvSN/pkfZaTWpRXlg==
dependencies:
"@babel/runtime" "^7.3.1"
css-vendor "^2.0.8"
- jss "10.8.0"
+ jss "10.8.2"
-jss@10.8.0, jss@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/jss/-/jss-10.8.0.tgz#5063ee73aabd9f228ea3849df7962f0d2e213a42"
- integrity sha512-6fAMLJrVQ8epM5ghghxWqCwRR0ZamP2cKbOAtzPudcCMSNdAqtvmzQvljUZYR8OXJIeb/IpZeOXA1sDXms4R1w==
+jss@10.8.2, jss@^10.8.2:
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jss/-/jss-10.8.2.tgz#4b2a30b094b924629a64928236017a52c7c97505"
+ integrity sha512-FkoUNxI329CKQ9OQC8L72MBF9KPf5q8mIupAJ5twU7G7XREW7ahb+7jFfrjZ4iy1qvhx1HwIWUIvkZBDnKkEdQ==
dependencies:
"@babel/runtime" "^7.3.1"
csstype "^3.0.2"
@@ -11193,11 +11233,6 @@ mkdirp@~0.5.1:
dependencies:
minimist "^1.2.5"
-moment@^2.29.1:
- version "2.29.1"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
- integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
-
monaco-editor@^0.21.2:
version "0.21.3"
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.21.3.tgz#3381b66614b64d1c5e3b77dd5564ad496d1b4e5d"
@@ -12136,6 +12171,11 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pb-util@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/pb-util/-/pb-util-1.0.1.tgz#1df63f3a7f7c6ee74bfb87f39df3420dbe0707eb"
+ integrity sha512-cMm1ERTOTYb4LxAsLRN0oxhYTL3GivVItrBOiU4WSFcvaeynU/crNtHplNEGQIimSbl3/i7hxWflFvsx42tUVw==
+
pbkdf2@^3.0.3:
version "3.0.17"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
@@ -14282,10 +14322,10 @@ rgba-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
-rifm@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/rifm/-/rifm-0.12.0.tgz#8d3a9dc0de9c190e0de9bdc8861a91a221dc1341"
- integrity sha512-PqOl+Mo2lyqrKiD34FPlnQ+ksD3F+a62TQlphiZshgriyHdfjn6jGyqUZhd+s3nsMYXwXYDdjrrv8wX7QsOG3g==
+rifm@^0.12.1:
+ version "0.12.1"
+ resolved "https://registry.yarnpkg.com/rifm/-/rifm-0.12.1.tgz#8fa77f45b7f1cda2a0068787ac821f0593967ac4"
+ integrity sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==
rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3:
version "2.7.1"
@@ -15314,7 +15354,7 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
-stylis@^4.0.3:
+stylis@^4.0.10, stylis@^4.0.3:
version "4.0.10"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240"
integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==