mirror of
https://github.com/dbgate/dbgate
synced 2024-11-08 04:35:58 +00:00
import export configurator WIP
This commit is contained in:
parent
86cd0c9459
commit
35edad85c4
@ -21,6 +21,7 @@
|
|||||||
"react-dom": "^16.12.0",
|
"react-dom": "^16.12.0",
|
||||||
"react-modal": "^3.11.1",
|
"react-modal": "^3.11.1",
|
||||||
"react-scripts": "3.3.0",
|
"react-scripts": "3.3.0",
|
||||||
|
"react-select": "^3.1.0",
|
||||||
"resize-observer-polyfill": "^1.5.1",
|
"resize-observer-polyfill": "^1.5.1",
|
||||||
"socket.io-client": "^2.3.0",
|
"socket.io-client": "^2.3.0",
|
||||||
"sql-formatter": "^2.3.3",
|
"sql-formatter": "^2.3.3",
|
||||||
|
@ -8,6 +8,7 @@ export default function DataGridContextMenu({
|
|||||||
insertNewRow,
|
insertNewRow,
|
||||||
setNull,
|
setNull,
|
||||||
reload,
|
reload,
|
||||||
|
exportGrid,
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@ -31,6 +32,9 @@ export default function DataGridContextMenu({
|
|||||||
<DropDownMenuItem onClick={setNull} keyText="Ctrl+0">
|
<DropDownMenuItem onClick={setNull} keyText="Ctrl+0">
|
||||||
Set NULL
|
Set NULL
|
||||||
</DropDownMenuItem>
|
</DropDownMenuItem>
|
||||||
|
<DropDownMenuItem onClick={exportGrid} >
|
||||||
|
Export
|
||||||
|
</DropDownMenuItem>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ import LoadingInfo from '../widgets/LoadingInfo';
|
|||||||
import ErrorInfo from '../widgets/ErrorInfo';
|
import ErrorInfo from '../widgets/ErrorInfo';
|
||||||
import showModal from '../modals/showModal';
|
import showModal from '../modals/showModal';
|
||||||
import ErrorMessageModal from '../modals/ErrorMessageModal';
|
import ErrorMessageModal from '../modals/ErrorMessageModal';
|
||||||
|
import ImportExportModal from '../modals/ImportExportModal';
|
||||||
|
|
||||||
const GridContainer = styled.div`
|
const GridContainer = styled.div`
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -537,6 +538,7 @@ export default function DataGridCore(props) {
|
|||||||
insertNewRow={insertNewRow}
|
insertNewRow={insertNewRow}
|
||||||
reload={() => display.reload()}
|
reload={() => display.reload()}
|
||||||
setNull={setNull}
|
setNull={setNull}
|
||||||
|
exportGrid={exportGrid}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@ -591,6 +593,10 @@ export default function DataGridCore(props) {
|
|||||||
copyToClipboard();
|
copyToClipboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function exportGrid() {
|
||||||
|
showModal((modalState) => <ImportExportModal modalState={modalState} />);
|
||||||
|
}
|
||||||
|
|
||||||
function setCellValue(chs, cell, value) {
|
function setCellValue(chs, cell, value) {
|
||||||
return setChangeSetValue(
|
return setChangeSetValue(
|
||||||
chs,
|
chs,
|
||||||
|
110
packages/web/src/impexp/ImportExportConfigurator.js
Normal file
110
packages/web/src/impexp/ImportExportConfigurator.js
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import FormStyledButton from '../widgets/FormStyledButton';
|
||||||
|
import { Formik, Form, useFormik, useFormikContext } from 'formik';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
import Select from 'react-select';
|
||||||
|
import { FontIcon } from '../icons';
|
||||||
|
import { FormButtonRow, FormSubmit, FormReactSelect, FormConnectionSelect, FormDatabaseSelect } from '../utility/forms';
|
||||||
|
import { useConnectionList, useDatabaseList } from '../utility/metadataLoaders';
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
display: flex;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const Column = styled.div`
|
||||||
|
margin: 10px;
|
||||||
|
flex: 1;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const StyledSelect = styled(Select)`
|
||||||
|
// min-width: 350px;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const OptionsWrapper = styled.div`
|
||||||
|
margin-left: 10px;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const Label = styled.div`
|
||||||
|
margin: 5px;
|
||||||
|
margin-top: 15px;
|
||||||
|
color: #777;
|
||||||
|
`;
|
||||||
|
|
||||||
|
function DatabaseSelector() {
|
||||||
|
const connections = useConnectionList();
|
||||||
|
const connectionOptions = React.useMemo(
|
||||||
|
() =>
|
||||||
|
(connections || []).map((conn) => ({
|
||||||
|
value: conn._id,
|
||||||
|
label: conn.displayName || conn.server,
|
||||||
|
})),
|
||||||
|
[connections]
|
||||||
|
);
|
||||||
|
|
||||||
|
// const databases = useDatabaseList({ conid: _id });
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Label>Server</Label>
|
||||||
|
<StyledSelect
|
||||||
|
options={connectionOptions}
|
||||||
|
// defaultValue={type}
|
||||||
|
// onChange={setType}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function SourceTargetConfig({
|
||||||
|
isSource = false,
|
||||||
|
isTarget = false,
|
||||||
|
storageTypeField,
|
||||||
|
connectionIdField,
|
||||||
|
databaseNameField,
|
||||||
|
}) {
|
||||||
|
const types = [
|
||||||
|
{ value: 'database', label: 'Database' },
|
||||||
|
{ value: 'csv', label: 'CSV file(s)' },
|
||||||
|
{ value: 'json', label: 'JSON file(s)' },
|
||||||
|
];
|
||||||
|
const { values } = useFormikContext();
|
||||||
|
return (
|
||||||
|
<Column>
|
||||||
|
{isSource && <Label>Source configuration</Label>}
|
||||||
|
{isTarget && <Label>Target configuration</Label>}
|
||||||
|
<FormReactSelect options={types} name={storageTypeField} />
|
||||||
|
{values[storageTypeField] == 'database' && (
|
||||||
|
<>
|
||||||
|
<Label>Server</Label>
|
||||||
|
<FormConnectionSelect name={connectionIdField} />
|
||||||
|
<Label>Database</Label>
|
||||||
|
<FormDatabaseSelect conidName={connectionIdField} name={databaseNameField} />
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</Column>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function ImportExportConfigurator() {
|
||||||
|
return (
|
||||||
|
<Formik onSubmit={null} initialValues={{ sourceStorageType: 'database', targetStorageType: 'csv' }}>
|
||||||
|
<Form>
|
||||||
|
<Wrapper>
|
||||||
|
<SourceTargetConfig
|
||||||
|
isSource
|
||||||
|
storageTypeField="sourceStorageType"
|
||||||
|
connectionIdField="sourceConnectionId"
|
||||||
|
databaseNameField="sourceDatabaseName"
|
||||||
|
/>
|
||||||
|
<SourceTargetConfig
|
||||||
|
isTarget
|
||||||
|
storageTypeField="targetStorageType"
|
||||||
|
connectionIdField="targetConnectionId"
|
||||||
|
databaseNameField="targetDatabaseName"
|
||||||
|
/>
|
||||||
|
</Wrapper>
|
||||||
|
</Form>
|
||||||
|
</Formik>
|
||||||
|
);
|
||||||
|
}
|
26
packages/web/src/modals/ImportExportModal.js
Normal file
26
packages/web/src/modals/ImportExportModal.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import ModalBase from './ModalBase';
|
||||||
|
import FormStyledButton from '../widgets/FormStyledButton';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
import Select from 'react-select';
|
||||||
|
import { FontIcon } from '../icons';
|
||||||
|
import { FormButtonRow, FormSubmit } from '../utility/forms';
|
||||||
|
import ModalHeader from './ModalHeader';
|
||||||
|
import ModalFooter from './ModalFooter';
|
||||||
|
import ModalContent from './ModalContent';
|
||||||
|
import { useConnectionList, useDatabaseList } from '../utility/metadataLoaders';
|
||||||
|
import ImportExportConfigurator from '../impexp/ImportExportConfigurator';
|
||||||
|
|
||||||
|
export default function ImportExportModal({ modalState }) {
|
||||||
|
return (
|
||||||
|
<ModalBase modalState={modalState}>
|
||||||
|
<ModalHeader modalState={modalState}>Import/Export</ModalHeader>
|
||||||
|
<ModalContent>
|
||||||
|
<ImportExportConfigurator />
|
||||||
|
</ModalContent>
|
||||||
|
<ModalFooter>
|
||||||
|
<FormStyledButton type="button" value="Close" onClick={modalState.close} />
|
||||||
|
</ModalFooter>
|
||||||
|
</ModalBase>
|
||||||
|
);
|
||||||
|
}
|
@ -1,8 +1,11 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
import Select from 'react-select';
|
||||||
import { TextField, SelectField } from './inputs';
|
import { TextField, SelectField } from './inputs';
|
||||||
import { Field, useFormikContext } from 'formik';
|
import { Field, useFormikContext } from 'formik';
|
||||||
import FormStyledButton from '../widgets/FormStyledButton';
|
import FormStyledButton from '../widgets/FormStyledButton';
|
||||||
|
import { useConnectionList, useDatabaseList } from './metadataLoaders';
|
||||||
|
import useSocket from './SocketProvider';
|
||||||
|
|
||||||
export const FormRow = styled.div`
|
export const FormRow = styled.div`
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -80,3 +83,46 @@ export function FormRadioGroupItem({ name, text, value }) {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function FormReactSelect({ options, name }) {
|
||||||
|
const { setFieldValue, values } = useFormikContext();
|
||||||
|
return (
|
||||||
|
<Select
|
||||||
|
options={options}
|
||||||
|
defaultValue={options.find((x) => x.value == values[name])}
|
||||||
|
onChange={(item) => setFieldValue(name, item ? item.value : null)}
|
||||||
|
menuPortalTarget={document.body}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function FormConnectionSelect({ name }) {
|
||||||
|
const connections = useConnectionList();
|
||||||
|
const connectionOptions = React.useMemo(
|
||||||
|
() =>
|
||||||
|
(connections || []).map((conn) => ({
|
||||||
|
value: conn._id,
|
||||||
|
label: conn.displayName || conn.server,
|
||||||
|
})),
|
||||||
|
[connections]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (connectionOptions.length == 0) return <div>Not available</div>;
|
||||||
|
return <FormReactSelect options={connectionOptions} name={name} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function FormDatabaseSelect({ conidName, name }) {
|
||||||
|
const { values } = useFormikContext();
|
||||||
|
const databases = useDatabaseList({ conid: values[conidName] });
|
||||||
|
const databaseOptions = React.useMemo(
|
||||||
|
() =>
|
||||||
|
(databases || []).map((db) => ({
|
||||||
|
value: db.name,
|
||||||
|
label: db.name,
|
||||||
|
})),
|
||||||
|
[databases]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (databaseOptions.length == 0) return <div>Not available</div>;
|
||||||
|
return <FormReactSelect options={databaseOptions} name={name} />;
|
||||||
|
}
|
||||||
|
@ -58,6 +58,9 @@ export default function useFetch({
|
|||||||
}, [...indicators]);
|
}, [...indicators]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
|
if (reloadTrigger && !socket) {
|
||||||
|
console.error('Socket not available, reloadTrigger not planned');
|
||||||
|
}
|
||||||
if (reloadTrigger && socket) {
|
if (reloadTrigger && socket) {
|
||||||
for (const item of getAsArray(reloadTrigger)) {
|
for (const item of getAsArray(reloadTrigger)) {
|
||||||
socket.on(item, handleReload);
|
socket.on(item, handleReload);
|
||||||
|
154
yarn.lock
154
yarn.lock
@ -904,6 +904,13 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.13.2"
|
regenerator-runtime "^0.13.2"
|
||||||
|
|
||||||
|
"@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7":
|
||||||
|
version "7.10.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839"
|
||||||
|
integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==
|
||||||
|
dependencies:
|
||||||
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
"@babel/template@^7.4.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3":
|
"@babel/template@^7.4.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3":
|
||||||
version "7.8.3"
|
version "7.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8"
|
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8"
|
||||||
@ -955,6 +962,42 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18"
|
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18"
|
||||||
integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==
|
integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==
|
||||||
|
|
||||||
|
"@emotion/cache@^10.0.27", "@emotion/cache@^10.0.9":
|
||||||
|
version "10.0.29"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0"
|
||||||
|
integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==
|
||||||
|
dependencies:
|
||||||
|
"@emotion/sheet" "0.9.4"
|
||||||
|
"@emotion/stylis" "0.8.5"
|
||||||
|
"@emotion/utils" "0.11.3"
|
||||||
|
"@emotion/weak-memoize" "0.2.5"
|
||||||
|
|
||||||
|
"@emotion/core@^10.0.9":
|
||||||
|
version "10.0.28"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.28.tgz#bb65af7262a234593a9e952c041d0f1c9b9bef3d"
|
||||||
|
integrity sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.5.5"
|
||||||
|
"@emotion/cache" "^10.0.27"
|
||||||
|
"@emotion/css" "^10.0.27"
|
||||||
|
"@emotion/serialize" "^0.11.15"
|
||||||
|
"@emotion/sheet" "0.9.4"
|
||||||
|
"@emotion/utils" "0.11.3"
|
||||||
|
|
||||||
|
"@emotion/css@^10.0.27", "@emotion/css@^10.0.9":
|
||||||
|
version "10.0.27"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c"
|
||||||
|
integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==
|
||||||
|
dependencies:
|
||||||
|
"@emotion/serialize" "^0.11.15"
|
||||||
|
"@emotion/utils" "0.11.3"
|
||||||
|
babel-plugin-emotion "^10.0.27"
|
||||||
|
|
||||||
|
"@emotion/hash@0.8.0":
|
||||||
|
version "0.8.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
|
||||||
|
integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
|
||||||
|
|
||||||
"@emotion/is-prop-valid@^0.8.1":
|
"@emotion/is-prop-valid@^0.8.1":
|
||||||
version "0.8.6"
|
version "0.8.6"
|
||||||
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz#4757646f0a58e9dec614c47c838e7147d88c263c"
|
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz#4757646f0a58e9dec614c47c838e7147d88c263c"
|
||||||
@ -967,11 +1010,42 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
|
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
|
||||||
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
|
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
|
||||||
|
|
||||||
"@emotion/unitless@^0.7.0":
|
"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16":
|
||||||
|
version "0.11.16"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad"
|
||||||
|
integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==
|
||||||
|
dependencies:
|
||||||
|
"@emotion/hash" "0.8.0"
|
||||||
|
"@emotion/memoize" "0.7.4"
|
||||||
|
"@emotion/unitless" "0.7.5"
|
||||||
|
"@emotion/utils" "0.11.3"
|
||||||
|
csstype "^2.5.7"
|
||||||
|
|
||||||
|
"@emotion/sheet@0.9.4":
|
||||||
|
version "0.9.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5"
|
||||||
|
integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==
|
||||||
|
|
||||||
|
"@emotion/stylis@0.8.5":
|
||||||
|
version "0.8.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
|
||||||
|
integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
|
||||||
|
|
||||||
|
"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.0":
|
||||||
version "0.7.5"
|
version "0.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
|
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
|
||||||
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
|
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
|
||||||
|
|
||||||
|
"@emotion/utils@0.11.3":
|
||||||
|
version "0.11.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
|
||||||
|
integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==
|
||||||
|
|
||||||
|
"@emotion/weak-memoize@0.2.5":
|
||||||
|
version "0.2.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
|
||||||
|
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
|
||||||
|
|
||||||
"@fortawesome/fontawesome-free@^5.12.0":
|
"@fortawesome/fontawesome-free@^5.12.0":
|
||||||
version "5.12.0"
|
version "5.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.0.tgz#8ceb9f09edfb85ea18a6c7bf098f6f5dd5ffd62b"
|
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.0.tgz#8ceb9f09edfb85ea18a6c7bf098f6f5dd5ffd62b"
|
||||||
@ -2257,6 +2331,22 @@ babel-plugin-dynamic-import-node@^2.3.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
object.assign "^4.1.0"
|
object.assign "^4.1.0"
|
||||||
|
|
||||||
|
babel-plugin-emotion@^10.0.27:
|
||||||
|
version "10.0.33"
|
||||||
|
resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03"
|
||||||
|
integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-imports" "^7.0.0"
|
||||||
|
"@emotion/hash" "0.8.0"
|
||||||
|
"@emotion/memoize" "0.7.4"
|
||||||
|
"@emotion/serialize" "^0.11.16"
|
||||||
|
babel-plugin-macros "^2.0.0"
|
||||||
|
babel-plugin-syntax-jsx "^6.18.0"
|
||||||
|
convert-source-map "^1.5.0"
|
||||||
|
escape-string-regexp "^1.0.5"
|
||||||
|
find-root "^1.1.0"
|
||||||
|
source-map "^0.5.7"
|
||||||
|
|
||||||
babel-plugin-istanbul@^5.1.0:
|
babel-plugin-istanbul@^5.1.0:
|
||||||
version "5.2.0"
|
version "5.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854"
|
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854"
|
||||||
@ -2274,7 +2364,7 @@ babel-plugin-jest-hoist@^24.9.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/babel__traverse" "^7.0.6"
|
"@types/babel__traverse" "^7.0.6"
|
||||||
|
|
||||||
babel-plugin-macros@2.8.0:
|
babel-plugin-macros@2.8.0, babel-plugin-macros@^2.0.0:
|
||||||
version "2.8.0"
|
version "2.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
|
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
|
||||||
integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
|
integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
|
||||||
@ -3269,7 +3359,7 @@ content-type@~1.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
||||||
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
||||||
|
|
||||||
convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.7.0:
|
convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0:
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
|
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
|
||||||
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
|
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
|
||||||
@ -3715,6 +3805,11 @@ csstype@^2.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431"
|
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431"
|
||||||
integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==
|
integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==
|
||||||
|
|
||||||
|
csstype@^2.5.7, csstype@^2.6.7:
|
||||||
|
version "2.6.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b"
|
||||||
|
integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==
|
||||||
|
|
||||||
csv-generate@^3.2.4:
|
csv-generate@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.2.4.tgz#440dab9177339ee0676c9e5c16f50e2b3463c019"
|
resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.2.4.tgz#440dab9177339ee0676c9e5c16f50e2b3463c019"
|
||||||
@ -4031,6 +4126,14 @@ dom-converter@^0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
utila "~0.4"
|
utila "~0.4"
|
||||||
|
|
||||||
|
dom-helpers@^5.0.1:
|
||||||
|
version "5.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.4.tgz#4609680ab5c79a45f2531441f1949b79d6587f4b"
|
||||||
|
integrity sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.8.7"
|
||||||
|
csstype "^2.6.7"
|
||||||
|
|
||||||
dom-serializer@0:
|
dom-serializer@0:
|
||||||
version "0.2.2"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
|
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
|
||||||
@ -4919,6 +5022,11 @@ find-free-port@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/find-free-port/-/find-free-port-2.0.0.tgz#4b22e5f6579eb1a38c41ac6bcb3efed1b6da9b1b"
|
resolved "https://registry.yarnpkg.com/find-free-port/-/find-free-port-2.0.0.tgz#4b22e5f6579eb1a38c41ac6bcb3efed1b6da9b1b"
|
||||||
integrity sha1-SyLl9leesaOMQaxryz7+0bbamxs=
|
integrity sha1-SyLl9leesaOMQaxryz7+0bbamxs=
|
||||||
|
|
||||||
|
find-root@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
|
||||||
|
integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
|
||||||
|
|
||||||
find-up@4.1.0, find-up@^4.0.0:
|
find-up@4.1.0, find-up@^4.0.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
||||||
@ -9284,7 +9392,7 @@ prompts@^2.0.1:
|
|||||||
kleur "^3.0.3"
|
kleur "^3.0.3"
|
||||||
sisteransi "^1.0.3"
|
sisteransi "^1.0.3"
|
||||||
|
|
||||||
prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.2, prop-types@^15.7.2:
|
prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2:
|
||||||
version "15.7.2"
|
version "15.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
|
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
|
||||||
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
|
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
|
||||||
@ -9531,6 +9639,13 @@ react-fast-compare@^2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
|
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
|
||||||
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
|
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
|
||||||
|
|
||||||
|
react-input-autosize@^2.2.2:
|
||||||
|
version "2.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.2.tgz#fcaa7020568ec206bc04be36f4eb68e647c4d8c2"
|
||||||
|
integrity sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==
|
||||||
|
dependencies:
|
||||||
|
prop-types "^15.5.8"
|
||||||
|
|
||||||
react-is@^16.12.0:
|
react-is@^16.12.0:
|
||||||
version "16.13.0"
|
version "16.13.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527"
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527"
|
||||||
@ -9616,6 +9731,30 @@ react-scripts@3.3.0:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "2.1.2"
|
fsevents "2.1.2"
|
||||||
|
|
||||||
|
react-select@^3.1.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.0.tgz#ab098720b2e9fe275047c993f0d0caf5ded17c27"
|
||||||
|
integrity sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.4.4"
|
||||||
|
"@emotion/cache" "^10.0.9"
|
||||||
|
"@emotion/core" "^10.0.9"
|
||||||
|
"@emotion/css" "^10.0.9"
|
||||||
|
memoize-one "^5.0.0"
|
||||||
|
prop-types "^15.6.0"
|
||||||
|
react-input-autosize "^2.2.2"
|
||||||
|
react-transition-group "^4.3.0"
|
||||||
|
|
||||||
|
react-transition-group@^4.3.0:
|
||||||
|
version "4.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9"
|
||||||
|
integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.5.5"
|
||||||
|
dom-helpers "^5.0.1"
|
||||||
|
loose-envify "^1.4.0"
|
||||||
|
prop-types "^15.6.2"
|
||||||
|
|
||||||
react@^16.12.0:
|
react@^16.12.0:
|
||||||
version "16.12.0"
|
version "16.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83"
|
resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83"
|
||||||
@ -9760,6 +9899,11 @@ regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3:
|
|||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
|
||||||
integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
|
integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
|
||||||
|
|
||||||
|
regenerator-runtime@^0.13.4:
|
||||||
|
version "0.13.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
|
||||||
|
integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
|
||||||
|
|
||||||
regenerator-transform@^0.14.0:
|
regenerator-transform@^0.14.0:
|
||||||
version "0.14.1"
|
version "0.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
|
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
|
||||||
@ -10556,7 +10700,7 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc
|
|||||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||||
|
|
||||||
source-map@^0.5.0, source-map@^0.5.6:
|
source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7:
|
||||||
version "0.5.7"
|
version "0.5.7"
|
||||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
||||||
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
||||||
|
Loading…
Reference in New Issue
Block a user