From 2a3754636c2a9ddd9f9e4b714eae18d270235196 Mon Sep 17 00:00:00 2001 From: Artyom Date: Tue, 24 Aug 2021 16:34:36 +0300 Subject: [PATCH 1/8] [FIX] SplitPane --- src/layouts/SplitPaneLayout.tsx | 17 ++++++++++++----- src/util/ContextToProps.tsx | 4 +++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/layouts/SplitPaneLayout.tsx b/src/layouts/SplitPaneLayout.tsx index 1afb8cd..c95e262 100644 --- a/src/layouts/SplitPaneLayout.tsx +++ b/src/layouts/SplitPaneLayout.tsx @@ -26,7 +26,7 @@ const divStyle: React.CSSProperties = { margin: '1px', }; -const renderSplitElements = ({ viewKindElement, viewKind, enabled, Render, form }: RenderLayoutProps) => { +const renderSplitElements = ({ viewDescr, viewKindElement, viewKind, enabled, Render, form }: RenderLayoutProps) => { const elements = viewKindElement.elements; const defaultSize = viewKindElement.options && viewKindElement.options.defaultSize; return elements ? ( @@ -36,7 +36,7 @@ const renderSplitElements = ({ viewKindElement, viewKind, enabled, Render, form return (
- +
); @@ -46,19 +46,26 @@ const renderSplitElements = ({ viewKindElement, viewKind, enabled, Render, form ); }; -export const SplitPaneLayoutRenderer: React.FC = ({ viewKindElement, viewKind, enabled, visible }) => { +export const SplitPaneLayoutRenderer: React.FC = ({ + viewKindElement, + viewKind, + viewDescr, + viewDescrElement, + enabled, + visible, +}) => { //const layout = viewKindElement as Layout; const Render: React.FC = ({ idx, viewKindElement, viewKind, enabled }) => { return (
- +
); }; return ( - {renderSplitElements({ viewKindElement, viewKind, enabled, Render })} + {renderSplitElements({ viewDescr, viewKindElement, viewKind, enabled, Render })} ); diff --git a/src/util/ContextToProps.tsx b/src/util/ContextToProps.tsx index 603b58a..3e93e03 100644 --- a/src/util/ContextToProps.tsx +++ b/src/util/ContextToProps.tsx @@ -459,7 +459,7 @@ export const withStoreToArrayProps = (Component: any): any => }); export const withLayoutProps = (Component: React.FC): React.FC => - observer(({ viewKindElement, viewKind, enabled, form }) => { + observer(({ viewKindElement, viewKind, viewDescr, viewDescrElement, enabled, form }) => { const id = viewKindElement['@id'] || ''; const enabledLayout = enabled && checkProperty('editable', id, viewKindElement, viewKind); const visible = checkProperty('visible', id, viewKindElement, viewKind); @@ -471,6 +471,8 @@ export const withLayoutProps = (Component: React.FC): React.FC< Date: Wed, 25 Aug 2021 04:16:31 +0300 Subject: [PATCH 2/8] [fix] GH-7 ViewKind's Coll extension with ViewDescr did not work --- .vscode/launch.json | 2 +- src/DispatchCell.tsx | 20 +- src/Form.tsx | 145 ++++++++------ src/cells/AntdCellCardLayout.tsx | 6 +- src/cells/AntdCellHorizontalLayout.tsx | 23 ++- src/data-controls/DataControl.tsx | 8 +- src/data-controls/GridRenderer.tsx | 6 +- src/data-controls/TableRenderer.tsx | 5 +- src/layouts/AntdFormLayout.tsx | 18 +- src/layouts/AntdHorizontalLayout.tsx | 16 +- src/layouts/AntdVerticalLayout.tsx | 16 +- src/layouts/LayoutComponent.ts | 4 +- src/layouts/SplitPaneLayout.tsx | 10 +- src/layouts/TabsLayout.tsx | 4 +- .../reactSplitPane.d.ts => types.d.ts} | 1 + src/util/AntdModal.tsx | 8 +- src/util/ContextToProps.tsx | 183 +++++++++++------- src/util/layout.tsx | 4 +- stories/FormOverride.stories.tsx | 170 ++++++++++++++++ 19 files changed, 468 insertions(+), 181 deletions(-) rename src/{layouts/reactSplitPane.d.ts => types.d.ts} (95%) create mode 100644 stories/FormOverride.stories.tsx diff --git a/.vscode/launch.json b/.vscode/launch.json index f5ed755..e14c07b 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -16,7 +16,7 @@ "request": "launch", "name": "Launch Storybook in Chrome", "breakOnLoad": true, - "url": "http://localhost:6006/?path=/story/several-controls-treeandform-cards--empty", + "url": "http://localhost:6006/?path=/story/form-artifactformoverride--remote-data", "sourceMaps": true, "webRoot": "${workspaceFolder}", "sourceMapPathOverrides": { diff --git a/src/DispatchCell.tsx b/src/DispatchCell.tsx index bd1d477..405a63b 100644 --- a/src/DispatchCell.tsx +++ b/src/DispatchCell.tsx @@ -19,7 +19,21 @@ import { MstContext } from './MstContext'; * Dispatch renderer component for cells. */ export const DispatchCell: React.FC = React.memo( - ({ data, onMeasureChange, uri, schema, viewKindElement, viewKind, enabled, id, CKey, rowData, ...rest }) => { + ({ + data, + onMeasureChange, + uri, + schema, + viewKind, + viewKindElement, + viewDescr, + viewDescrElement, + enabled, + id, + CKey, + rowData, + ...rest + }) => { const { cells } = useContext(MstContext); const renderer = maxBy(cells, (r) => r.tester(viewKindElement, schema)); if (renderer === undefined || renderer.tester(viewKindElement, schema) === -1) { @@ -42,10 +56,12 @@ export const DispatchCell: React.FC = React.memo( rowData={rowData} onMeasureChange={onMeasureChange} schema={schema} + viewKind={viewKind} viewKindElement={viewKindElement} + viewDescr={viewDescr} + viewDescrElement={viewDescrElement} uri={uri} enabled={enabled} - viewKind={viewKind} id={id} {...rest} /> diff --git a/src/Form.tsx b/src/Form.tsx index 406c76d..d506cdb 100644 --- a/src/Form.tsx +++ b/src/Form.tsx @@ -7,19 +7,20 @@ * * SPDX-License-Identifier: GPL-3.0-only ********************************************************************************/ +import uuid62 from 'uuid62'; import { maxBy } from 'lodash-es'; import React, { useContext } from 'react'; import { ErrorBoundary, FallbackProps } from 'react-error-boundary'; import { Spin } from 'antd'; import { observer } from 'mobx-react-lite'; -import { applySnapshot, getSnapshot } from 'mobx-state-tree'; +import { getSnapshot } from 'mobx-state-tree'; import { JsonSchema7 } from './models/jsonSchema7'; //import ModalAntd from './antd/util/AntdModal'; import { MstContext } from './MstContext'; import { UnknownRenderer } from './UnknownRenderer'; import { RankedTester } from './testers'; -import { IViewDescr, IViewKind, IViewKindElement } from './models/uischema'; +import { IViewDescr, IViewDescrElement, IViewKind, IViewKindElement } from './models/uischema'; export interface ControlComponent { data: any; @@ -58,18 +59,16 @@ export interface FormsInitStateProps { export interface FormsDispatchProps { viewKind: IViewKind; viewKindElement: IViewKindElement; - viewDescr?: IViewDescr; - viewDescrElement?: IViewKindElement; + viewDescr: IViewDescr; + enabled?: boolean; form?: string; } -export interface FormDispatchProps extends FormsDispatchProps { - schema?: any; - uri?: string; -} export interface RenderProps extends FormsDispatchProps { - schema: JsonSchema7; + viewDescrElement?: IViewDescrElement; + id: string; + schema: JsonSchema7; } export interface RenderCellProps extends RenderProps { data: any; @@ -84,64 +83,82 @@ export interface DispatchCellProps extends RenderProps { [key: string]: any; } -export const FormsDispatch: React.FC = observer( - ({ viewKind, viewKindElement, viewDescr, viewDescrElement, form, uri, enabled }) => { - const { store, renderers } = useContext(MstContext); +export function createViewDescrElementIri(viewKindElementIri: string): string { + return viewKindElementIri + '_' + uuid62.v4(); +} - // if ViewElement extend-override exists - if (!viewDescrElement && viewDescr) { - viewDescrElement = viewDescr.elements?.find((el) => el['@parent'] === viewKindElement['@id']); - } +export const processViewKindOverride = ( + props: { viewKindElement: IViewKindElement; viewDescr: IViewDescr }, + store: any, +): [string, string, string, string, IViewKindElement, IViewDescrElement | undefined] => { + const { viewKindElement, viewDescr } = props; + // if ViewElement extend-override exists + const viewDescrElement = viewDescr.elements?.find((el) => el['@parent'] === viewKindElement['@id']); + const id = viewDescrElement ? viewDescrElement['@id'] : createViewDescrElementIri(viewKindElement['@id']); + + const [collIri, inCollPath] = viewKindElement.resultsScope?.split('/') || []; + let collIriOverride: string = collIri; - const shapes = viewKindElement.resultsScope ? viewKindElement.resultsScope.split('/') : []; - let collIri = shapes.length === 2 ? shapes[0] : viewKindElement.resultsScope; - let schema: any; - if (collIri) { - // if CollConstr extend-override exists switch to extCollConstr - if (viewDescr && viewDescr.collsConstrs) { - const extCollConstr = viewDescr.collsConstrs?.find((el) => el['@parent'] === viewKindElement['@id']); - if (extCollConstr) collIri = extCollConstr['@id']; + if (collIriOverride) { + // if CollConstr extend-override exists switch to extCollConstr + if (viewDescr.collsConstrs) { + const extCollConstr = viewDescr.collsConstrs?.find((el) => el['@parent'] === collIri); + if (extCollConstr) { + collIriOverride = extCollConstr['@id'] || ''; } - const coll = store.getColl(collIri); - schema = coll?.collConstr.entConstrs[0]?.schemaJs; - //if (store.schemas[iri]) { - // schema = store.schemas[iri]; - //} else { - // if (iri !== 'client:views' && iri !== 'rm:viewPick' && iri !== 'data:Tabs') { - //store.getSchemaByUri(iri); - // return ; - // } - //} - if (!schema) return ; } - schema = shapes.length === 2 ? schema.properties[shapes[1]] : schema; - - const id = uri ? /*createId(uri)*/ uri : ''; - const renderer = maxBy(renderers, (r) => r.tester(viewKindElement, schema)); - //const isModal = viewKindElement.options && viewKindElement.options.modal; - if (renderer === undefined || renderer.tester(viewKindElement, schema) === -1) { - return ( - - ); - } else { - const Render: React.FC = renderer.renderer; - return ( - {}}> - - - ); - } - }, -); + } + + return [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement]; +}; + +export const FormsDispatch = observer((props) => { + const { store, renderers } = useContext(MstContext); + const { viewKind, viewDescr, form, enabled } = props; + + const [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement] = processViewKindOverride( + props, + store, + ); + + let schema: any; + if (collIri !== collIriOverride) { + const parentColl = collIri ? store.getColl(collIri) : undefined; + const parentSchema = parentColl?.collConstr.entConstrs[0]?.schemaJs; + const childColl = collIriOverride ? store.getColl(collIriOverride) : undefined; + const childSchema = childColl?.collConstr.entConstrs[0]?.schemaJs; + schema = childSchema ? childSchema : parentSchema; + } else { + const coll = collIri ? store.getColl(collIri) : undefined; + schema = coll?.collConstr.entConstrs[0]?.schemaJs; + } + if ((collIri || collIriOverride) && !schema) return ; + if (inCollPath && inCollPath.length > 0) schema = schema.properties[inCollPath]; + + const renderer = maxBy(renderers, (r) => r.tester(viewKindElement, schema)); + //const isModal = viewKindElement.options && viewKindElement.options.modal; + if (renderer === undefined || renderer.tester(viewKindElement, schema) === -1) { + return ( + + ); + } else { + const Render: React.FC = renderer.renderer; + return ( + {}}> + + + ); + } +}); export function ErrorFallback({ error, resetErrorBoundary }: FallbackProps) { return ( @@ -153,7 +170,7 @@ export function ErrorFallback({ error, resetErrorBoundary }: FallbackProps) { ); } -export const Form: React.FC = observer((props) => { +export const Form = observer((props) => { const { store } = useContext(MstContext); if (!store) { console.log('!store', store); diff --git a/src/cells/AntdCellCardLayout.tsx b/src/cells/AntdCellCardLayout.tsx index 29ba978..76bbf73 100644 --- a/src/cells/AntdCellCardLayout.tsx +++ b/src/cells/AntdCellCardLayout.tsx @@ -18,7 +18,7 @@ import { DispatchCell } from '../DispatchCell'; import './cell.css'; export const AntdCellCardLayout = (props: any) => { - const { viewKindElement, viewKind, schema, data, id } = props; + const { viewKind, viewKindElement, viewDescr, viewDescrElement, schema, data, id } = props; const createCardChilds = () => viewKindElement.elements ? viewKindElement.elements.map((e: IViewKindElement, idx: number) => { @@ -28,10 +28,12 @@ export const AntdCellCardLayout = (props: any) => { id={id + String(idx)} key={id + String(idx)} viewKind={viewKind} + viewKindElement={e} + viewDescr={viewDescr} + viewDescrElement={viewDescrElement} data={data} rowData={data} schema={newSchema || schema} - viewKindElement={e} /> ); }) diff --git a/src/cells/AntdCellHorizontalLayout.tsx b/src/cells/AntdCellHorizontalLayout.tsx index 3bfcfc5..624feea 100644 --- a/src/cells/AntdCellHorizontalLayout.tsx +++ b/src/cells/AntdCellHorizontalLayout.tsx @@ -19,8 +19,10 @@ import { get } from 'lodash-es'; import { Idx } from '../util/layout'; export const AntdCellHorizontalLayoutRenderer: React.FC = ({ - viewKindElement, viewKind, + viewKindElement, + viewDescr, + viewDescrElement, data, schema, }) => { @@ -28,8 +30,10 @@ export const AntdCellHorizontalLayoutRenderer: React.FC = ({ const Render: React.FC = ({ idx, schema, - viewKindElement, viewKind, + viewKindElement, + viewDescr, + viewDescrElement, data, enabled, form, @@ -46,8 +50,10 @@ export const AntdCellHorizontalLayoutRenderer: React.FC = ({ = ({ return ( {(viewKindElement.elements || []).map((e: IViewKindElement, idx: number) => ( - + ))} ); diff --git a/src/data-controls/DataControl.tsx b/src/data-controls/DataControl.tsx index 93e54b6..cf3b7f0 100644 --- a/src/data-controls/DataControl.tsx +++ b/src/data-controls/DataControl.tsx @@ -23,11 +23,13 @@ const renderType: any = { export const AntdDataLayout: React.FC = (props) => { const { + viewKind, viewKindElement, + viewDescr, + viewDescrElement, enabled, handleChange = () => {}, dataSource, - viewKind, schema, editing, getData, @@ -50,8 +52,10 @@ export const AntdDataLayout: React.FC = (props) => { child={data} editing={editing} onDnD={onDnD} - viewKindElement={viewKindElement} viewKind={viewKind} + viewKindElement={viewKindElement} + viewDescr={viewDescr} + viewDescrElement={viewDescrElement} onCreateFolder={onCreateFolder} onDeleteFolder={onDeleteFolder} onRename={onRename} diff --git a/src/data-controls/GridRenderer.tsx b/src/data-controls/GridRenderer.tsx index 89d7480..e6c73e6 100644 --- a/src/data-controls/GridRenderer.tsx +++ b/src/data-controls/GridRenderer.tsx @@ -16,7 +16,7 @@ import { DispatchCell } from '../DispatchCell'; import './styles.css'; export const GridRenderer: React.FC = (props) => { - const { child, viewKindElement, viewKind, schema } = props; + const { viewKind, viewKindElement, viewDescr, viewDescrElement, child, schema } = props; const grid = viewKindElement?.options?.grid || { gutter: 16, column: 4 }; const template = viewKindElement?.options?.elementTemplate || null; const createCell = (data: any, id: string | number) => @@ -25,8 +25,10 @@ export const GridRenderer: React.FC = (props) => { = React.memo( (props) => { - const { schema, enabled, child, onSelect, viewKindElement, viewKind, editing } = props; + const { viewKind, viewKindElement, viewDescr, viewDescrElement, schema, enabled, child, onSelect, editing } = props; const [selected, setSelected] = useState(child[0]); const [cacheSelect, setCacheSelect] = useState(); const [dataSource, setDataSource] = useState(child); @@ -80,9 +80,10 @@ export const TableRenderer: React.FC = React.memo( {selected.viewKindElement || viewKindElement.elements ? (
) : null} diff --git a/src/layouts/AntdFormLayout.tsx b/src/layouts/AntdFormLayout.tsx index 686b67f..5315555 100644 --- a/src/layouts/AntdFormLayout.tsx +++ b/src/layouts/AntdFormLayout.tsx @@ -74,12 +74,14 @@ export const LogicalButton: React.FC = observer(({ form, onCancel, onS }); export const AntdFormLayout: React.FC = ({ - viewKindElement, viewKind, + viewKindElement, + viewDescr, + viewDescrElement, enabled, title, visible, - formId, + id, validation, editable, onSave, @@ -92,15 +94,17 @@ export const AntdFormLayout: React.FC = ({ {({ width, height }: any) => (
onEdit()}> {title} - +
diff --git a/src/layouts/AntdHorizontalLayout.tsx b/src/layouts/AntdHorizontalLayout.tsx index 7606683..3ce4430 100644 --- a/src/layouts/AntdHorizontalLayout.tsx +++ b/src/layouts/AntdHorizontalLayout.tsx @@ -19,20 +19,28 @@ import { Idx } from '../util/layout'; import { LayoutComponent } from './LayoutComponent'; export const AntdHorizontalLayoutRenderer: React.FC = ({ - viewKindElement, viewKind, + viewKindElement, + viewDescr, + viewDescrElement, enabled, visible, }) => { //const layout = viewKindElement as Layout; - const Render: React.FC = ({ idx, viewKindElement, viewKind, enabled, form }) => { + const Render: React.FC = ({ idx, viewKind, viewKindElement, viewDescr, enabled, form }) => { const options = viewKindElement.options || {}; const style: any = options.style; const span = options.contentSize || !viewKindElement.elements ? undefined : Math.ceil(24 / viewKindElement.elements.length); return ( - + ); }; @@ -41,7 +49,7 @@ export const AntdHorizontalLayoutRenderer: React.FC = ({ if (viewKindElement.options && viewKindElement.options.width === 'all-empty-space') rowStyle.width = '100%'; return ( - {renderLayoutElements({ viewKindElement, viewKind, enabled, Render })} + {renderLayoutElements({ viewKind, viewKindElement, viewDescr, enabled, Render })} ); }; diff --git a/src/layouts/AntdVerticalLayout.tsx b/src/layouts/AntdVerticalLayout.tsx index 5d4a345..3693571 100644 --- a/src/layouts/AntdVerticalLayout.tsx +++ b/src/layouts/AntdVerticalLayout.tsx @@ -19,13 +19,15 @@ import { Idx } from '../util/layout'; import { LayoutComponent } from './LayoutComponent'; export const AntdVerticalLayoutRenderer: React.FC = ({ - viewKindElement, viewKind, + viewKindElement, + viewDescr, + viewDescrElement, enabled, visible, form, }) => { - const Render: React.FC = ({ idx, viewKindElement, viewKind, enabled }) => { + const Render: React.FC = ({ idx, viewKind, viewKindElement, viewDescr, enabled }) => { const options = viewKindElement.options || {}; const style: any = options.style; return ( @@ -35,7 +37,13 @@ export const AntdVerticalLayoutRenderer: React.FC = ({ flex: viewKindElement.options && viewKindElement.options.height === 'all-empty-space' ? '1 1 auto' : '', }}> - + ); @@ -43,7 +51,7 @@ export const AntdVerticalLayoutRenderer: React.FC = ({ return (
- {renderLayoutElements({ viewKindElement, viewKind, enabled, Render })} + {renderLayoutElements({ viewKind, viewKindElement, viewDescr, enabled, Render })}
); diff --git a/src/layouts/LayoutComponent.ts b/src/layouts/LayoutComponent.ts index 1e1dd18..732bbe5 100644 --- a/src/layouts/LayoutComponent.ts +++ b/src/layouts/LayoutComponent.ts @@ -7,8 +7,8 @@ * * SPDX-License-Identifier: GPL-3.0-only ********************************************************************************/ -import { FormsDispatchProps } from '../Form'; +import { RenderProps } from '../Form'; -export interface LayoutComponent extends FormsDispatchProps { +export interface LayoutComponent extends RenderProps { visible: boolean; } diff --git a/src/layouts/SplitPaneLayout.tsx b/src/layouts/SplitPaneLayout.tsx index c95e262..6af40d1 100644 --- a/src/layouts/SplitPaneLayout.tsx +++ b/src/layouts/SplitPaneLayout.tsx @@ -26,7 +26,7 @@ const divStyle: React.CSSProperties = { margin: '1px', }; -const renderSplitElements = ({ viewDescr, viewKindElement, viewKind, enabled, Render, form }: RenderLayoutProps) => { +const renderSplitElements = ({ viewKind, viewKindElement, viewDescr, enabled, Render, form }: RenderLayoutProps) => { const elements = viewKindElement.elements; const defaultSize = viewKindElement.options && viewKindElement.options.defaultSize; return elements ? ( @@ -36,7 +36,7 @@ const renderSplitElements = ({ viewDescr, viewKindElement, viewKind, enabled, Re return (
- +
); @@ -55,17 +55,17 @@ export const SplitPaneLayoutRenderer: React.FC = ({ visible, }) => { //const layout = viewKindElement as Layout; - const Render: React.FC = ({ idx, viewKindElement, viewKind, enabled }) => { + const Render: React.FC = ({ idx, viewKind, viewKindElement, viewDescr, enabled }) => { return (
- +
); }; return ( - {renderSplitElements({ viewDescr, viewKindElement, viewKind, enabled, Render })} + {renderSplitElements({ viewKind, viewKindElement, viewDescr, enabled, Render })} ); diff --git a/src/layouts/TabsLayout.tsx b/src/layouts/TabsLayout.tsx index c69c29c..1d0bbcf 100644 --- a/src/layouts/TabsLayout.tsx +++ b/src/layouts/TabsLayout.tsx @@ -15,14 +15,14 @@ import { rankWith, RankedTester, uiTypeIs } from '../testers'; import { withLayoutProps } from '../util/ContextToProps'; export const TabsLayout: React.FC = (props) => { - const { enabled, onSelect = () => {}, viewKindElement, viewKind } = props; + const { viewKind, viewKindElement, viewDescr, viewDescrElement, enabled, onSelect = () => {} } = props; const elements = viewKindElement.elements; const viewTabs = elements ? elements.map((e: any, index: number) => { const title = e.options && e.options.title; return ( - + ); }) diff --git a/src/layouts/reactSplitPane.d.ts b/src/types.d.ts similarity index 95% rename from src/layouts/reactSplitPane.d.ts rename to src/types.d.ts index 2244c29..b519f59 100644 --- a/src/layouts/reactSplitPane.d.ts +++ b/src/types.d.ts @@ -7,4 +7,5 @@ * * SPDX-License-Identifier: GPL-3.0-only ********************************************************************************/ +declare module 'uuid62'; declare module 'react-split-pane/lib/Pane'; diff --git a/src/util/AntdModal.tsx b/src/util/AntdModal.tsx index f48e4a5..52b67e6 100644 --- a/src/util/AntdModal.tsx +++ b/src/util/AntdModal.tsx @@ -15,7 +15,7 @@ import { SaveReqDialog } from './OnSaveDialog'; import { MstContext } from '../MstContext'; export const AntdModal: React.FC = observer( - ({ id, schema, viewKindElement, enabled, viewKind, cells, childrenId, Render }) => { + ({ viewKind, viewKindElement, viewDescr, viewDescrElement, id, schema, enabled, cells, childrenId, Render }) => { const [visible, setVisible] = useState(false); const { store } = useContext(MstContext); @@ -42,10 +42,12 @@ export const AntdModal: React.FC = observer( width={1200} okText='Сохранить'> diff --git a/src/util/ContextToProps.tsx b/src/util/ContextToProps.tsx index 3e93e03..62ecb36 100644 --- a/src/util/ContextToProps.tsx +++ b/src/util/ContextToProps.tsx @@ -17,7 +17,7 @@ import { observer } from 'mobx-react-lite'; import { createLabelDescriptionFrom } from './label'; import { LayoutComponent } from '../layouts/LayoutComponent'; import { IViewKindElement, IViewKind } from '../models/uischema'; -import { ControlComponent, RenderProps } from '../Form'; +import { ControlComponent, processViewKindOverride, RenderProps } from '../Form'; //import { FilterType } from '../complex/Query'; import { validators } from '../validation'; import { MstContext } from '../MstContext'; @@ -49,28 +49,32 @@ export interface ButtonComponent { export const withStoreToControlProps = (Component: React.FC): React.FC => observer((props) => { + const { store } = useContext(MstContext); const successValidation = { validateStatus: 'success', }; - const { form, viewKindElement } = props; - const id = viewKindElement.resultsScope; const [validateObj, setValidateObj] = useState<{ validateStatus: string; help?: string; }>(successValidation); - const [req] = id?.split('/') || []; - const [testReq, testUri] = viewKindElement.resultsScope?.split('/') || []; - const { store } = useContext(MstContext); + + const { form } = props; const controlProps = mapStateToControlProps(props); - //const custom = viewKind.properties && viewKind.properties[req] ? viewKind.properties[req].customReq : undefined; - //custom ? store.loadData(req, custom.req) : store.loadData(testReq); - const coll = store.getColl(testReq); - let data = coll?.data; - if (!data || data.length === 0) { + + const [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement] = processViewKindOverride( + props, + store, + ); + + const coll = collIriOverride ? store.getColl(collIriOverride) : undefined; + let collData = coll?.data; + if (collData) collData = getSnapshot(collData); + + if (!collData || collData.length === 0) { return ; } - data = getSnapshot(data); - data = data[0]; + + const data = collData[0]; const onValidate = (data: any) => { if (viewKindElement.options && Array.isArray(viewKindElement.options.validation)) { const validation = viewKindElement.options.validation; @@ -91,9 +95,9 @@ export const withStoreToControlProps = (Component: React.FC): return ( {}} @@ -108,7 +112,7 @@ export const withStoreToControlProps = (Component: React.FC): }); export const withStoreToFormProps = (Component: React.FC): React.FC => - observer(({ viewKindElement, viewKind, enabled, form }) => { + observer(({ viewKind, viewKindElement, viewDescr, viewDescrElement, enabled, form }) => { if (!viewKind['@id']) { return null; } @@ -119,10 +123,12 @@ export const withStoreToFormProps = (Component: React.FC): React.FC store.onSaveFormData(id)} @@ -137,22 +143,32 @@ export const withStoreToFormProps = (Component: React.FC): React.FC observer(({ ...props }: any) => { - const { viewKindElement, viewKind } = props; + const { viewKind, viewKindElement, viewDescr, viewDescrElement } = props; const { store } = useContext(MstContext); const scope = viewKindElement.resultsScope; if (!store.getSelectedDataJs(scope)) { return ; } //const id = store.getSelectedDataJs(scope).type; - return ; + return ( + + ); }); export const withStoreToViewProps = (Component: any): any => observer(({ ...props }: any) => { - const { viewKind, viewKindElement } = props; + const { viewKind, viewDescr } = props; const { store } = useContext(MstContext); - const scope = viewKindElement.resultsScope; - const coll = store.getColl(scope); + const [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement] = processViewKindOverride( + props, + store, + ); + const coll = store.getColl(collIriOverride); let data = coll?.data; if (!data) { //if (scope === 'rm:dataModelView') { @@ -166,7 +182,7 @@ export const withStoreToViewProps = (Component: any): any => //} //const id = store.getSelectedDataJs(scope)['@type']; //const selection = getSnapshot(store.selectedData); - const newView = store.getSelectedDataJs(scope); + const newView = store.getSelectedDataJs(collIriOverride); if (!newView) { return ; } @@ -174,10 +190,12 @@ export const withStoreToViewProps = (Component: any): any => console.log('withStoreToViewProps', { viewKind, viewKindElement, newView, newViewElement }); return ( store.setEditing(viewKindElement.resultsScope, state)} + viewKindElement={newViewElement} + viewDescr={viewDescr} + viewDescrElement={viewDescrElement} + onChange={(state: boolean) => store.setEditing(id, state)} /> ); }); @@ -227,16 +245,13 @@ export const withStoreToCellProps = (Component: React.FC): React.FC => export const withStoreToDataControlProps = (Component: any): any => observer(({ ...props }: any) => { - const { viewKindElement, viewKind } = props; + const { viewKind, viewDescr } = props; const { store } = useContext(MstContext); - //if (viewKindElement.resultsScope && !store.saveLogicTree[viewKindElement.resultsScope]) { - // store.setSaveLogic(viewKindElement.resultsScope); - //} - const custom = viewKind[viewKindElement.resultsScope.split('/')[0]] - ? viewKind[viewKind.resultsScope.split('/')[0]].customReq - : undefined; - const scope = custom ? custom : viewKindElement.resultsScope; - const coll = store.getColl(scope); + const [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement] = processViewKindOverride( + props, + store, + ); + const coll = store.getColl(collIriOverride); let data = coll?.data; if (!data || data.length === 0) { //if (store.data[scope] === undefined) { @@ -244,7 +259,7 @@ export const withStoreToDataControlProps = (Component: any): any => return ; } data = cloneDeep(getSnapshot(data)); - const options = viewKindElement.options || {}; + const options = viewKindElement?.options || {}; const withConnections = options.connections; const onChange = (data: any) => { /*if (data) { @@ -258,31 +273,33 @@ export const withStoreToDataControlProps = (Component: any): any => }*/ }; const getData = (parentId: string) => { - const conditions = { ...store.queries[scope].shapes[0].conditions, parent: parentId }; - const newQuery = cloneDeep(store.queries[scope]); + const conditions = { ...store.queries[collIriOverride].shapes[0].conditions, parent: parentId }; + const newQuery = cloneDeep(store.queries[collIriOverride]); newQuery.shapes[0].conditions = conditions; return store.getDataByQuery(newQuery); }; const onDnD = ({ childId, parentId }: any) => { - store.updateObjectData({ parent: parentId }, scope, childId); + store.updateObjectData({ parent: parentId }, collIriOverride, childId); }; const onCreateFolder = (data: any) => { - return store.onCreateObject(data, scope); + return store.onCreateObject(data, collIriOverride); }; const onDeleteFolder = (id: any) => { if (id) { - return store.onDeleteObject(id, scope); + return store.onDeleteObject(id, collIriOverride); } }; const onRename = (newTitle: string, id: any) => { - store.updateObjectData({ title: newTitle }, scope, id); + store.updateObjectData({ title: newTitle }, collIriOverride, id); }; return ( export const withStoreToSelectControlProps = (Component: any): any => observer(({ ...props }: any) => { - const { viewKindElement, viewKind } = props; + const { viewKind, viewKindElement, viewDescr, viewDescrElement } = props; const { store } = useContext(MstContext); const id = viewKind['@id']; const scope = viewKindElement.resultsScope; @@ -322,6 +339,8 @@ export const withStoreToSelectControlProps = (Component: any): any => export const withStoreToTabProps = (Component: any): any => observer(({ ...props }: any) => { - const { schema, viewKindElement, viewKind } = props; + const { schema, viewKind } = props; const { store } = useContext(MstContext); //if (viewKindElement.resultsScope && !store.saveLogicTree[viewKindElement.resultsScope]) { // store.setSaveLogic(viewKindElement.resultsScope); //} + + const [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement] = processViewKindOverride( + props, + store, + ); const options = viewKindElement.options || {}; - const custom = viewKind[viewKindElement.resultsScope.split('/')[0]] - ? viewKind[viewKindElement.resultsScope.split('/')[0]].customReq - : undefined; - const scope = custom ? custom : viewKindElement.resultsScope; - const coll = store.getColl(scope); + + const coll = store.getColl(collIriOverride); let data = coll?.data; if (!data) { return ; @@ -349,7 +370,7 @@ export const withStoreToTabProps = (Component: any): any => data = getSnapshot(data); const withConnections = options.connections; const onChange = (data: any) => { - store.setSelectedData(scope, data); + store.setSelectedData(collIriOverride, data); if (withConnections) { store.editConn(withConnections, data['@id']); // options.connections.forEach((e: any) => { @@ -359,22 +380,24 @@ export const withStoreToTabProps = (Component: any): any => // }); } }; - return ; + return ; }); export const withStoreToMenuProps = (Component: any): any => observer(({ ...props }: any) => { - const { schema, viewKindElement, viewKind } = props; + const { schema, viewKind, viewDescr } = props; const { store } = useContext(MstContext); //if (viewKindElement.resultsScope && !store.saveLogicTree[viewKindElement.resultsScope]) { // store.setSaveLogic(viewKindElement.resultsScope); //} + + const [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement] = processViewKindOverride( + props, + store, + ); const options = viewKindElement.options || {}; - const custom = viewKind[viewKindElement.resultsScope.split('/')[0]] - ? viewKind[viewKindElement.resultsScope.split('/')[0]].customReq - : undefined; - const scope = custom ? custom : viewKindElement.resultsScope; - const coll = store.getColl(scope); + + const coll = store.getColl(collIriOverride); let data = coll?.data; if (!data) { return ; @@ -387,9 +410,11 @@ export const withStoreToMenuProps = (Component: any): any => } schema={schema} viewKind={viewKind} - uri={scope} + viewDescr={viewDescr} + viewDescrElement={viewDescrElement} + uri={id} tabs={data} - handleChange={(data: JsObject) => store.setSelectedData(scope, data)} + handleChange={(data: JsObject) => store.setSelectedData(collIriOverride, data)} options={options} setModalVisible={(uri: string, state: boolean) => store.setModalVisible(uri, state)} /> @@ -398,25 +423,35 @@ export const withStoreToMenuProps = (Component: any): any => export const withStoreToCollapseProps = (Component: any): any => observer(({ ...props }: any) => { - const { viewKindElement, viewKind } = props; + const { viewKind, viewKindElement, viewDescr, viewDescrElement } = props; const options = viewKindElement.options || {}; - return ; + return ( + + ); }); export const withStoreToArrayProps = (Component: any): any => observer(({ ...props }: any) => { - const { schema, viewKindElement, viewKind } = props; + const { viewKind, viewDescr, schema } = props; const { store } = useContext(MstContext); //if (viewKindElement.resultsScope && !store.saveLogicTree[viewKindElement.resultsScope]) { // store.setSaveLogic(viewKindElement.resultsScope); //} + + const [id, collIri, collIriOverride, inCollPath, viewKindElement, viewDescrElement] = processViewKindOverride( + props, + store, + ); const options = viewKindElement.options || {}; - const custom = viewKind[viewKindElement.resultsScope.split('/')[0]] - ? viewKind[viewKindElement.resultsScope.split('/')[0]].customReq - : undefined; - const scope = custom ? custom : viewKindElement.resultsScope; - const coll = store.getColl(scope); + + const coll = store.getColl(collIriOverride); let data = coll?.data; if (!data) { return ; @@ -446,7 +481,7 @@ export const withStoreToArrayProps = (Component: any): any => limit={10 /*store.queries[viewKindElement.resultsScope].limit*/} loadExpandedData={loadExpandedData} sortDir={{} /*store.queries[scope].orderBy*/} - uri={scope} + uri={id} loadMoreData={loadMoreData} onSort={(property: string, sortDir: any) => { /*store.onSort(scope, property, sortDir)*/ @@ -459,7 +494,7 @@ export const withStoreToArrayProps = (Component: any): any => }); export const withLayoutProps = (Component: React.FC): React.FC => - observer(({ viewKindElement, viewKind, viewDescr, viewDescrElement, enabled, form }) => { + observer(({ viewKind, viewKindElement, viewDescr, viewDescrElement, schema, enabled, form }) => { const id = viewKindElement['@id'] || ''; const enabledLayout = enabled && checkProperty('editable', id, viewKindElement, viewKind); const visible = checkProperty('visible', id, viewKindElement, viewKind); @@ -469,10 +504,12 @@ export const withLayoutProps = (Component: React.FC): React.FC< } return ( ; } -export const renderLayoutElements = ({ viewKindElement, viewKind, enabled, Render }: RenderLayoutProps) => { +export const renderLayoutElements = ({ viewKind, viewKindElement, viewDescr, enabled, Render }: RenderLayoutProps) => { const elements = viewKindElement.elements; //const id = viewKind['@id']; //const sort = id ? viewKind.properties && viewKind.properties[id] && viewKind.properties[id].order : undefined; if (!elements || elements.length === 0) return <>; return elements.map((el: IViewKindElement, idx: number) => ( - + )); }; diff --git a/stories/FormOverride.stories.tsx b/stories/FormOverride.stories.tsx new file mode 100644 index 0000000..04d4fac --- /dev/null +++ b/stories/FormOverride.stories.tsx @@ -0,0 +1,170 @@ +/******************************************************************************** + * Copyright (c) 2020 Agentlab and others. + * + * This program and the accompanying materials are made available under the + * terms of the GNU General Public License v. 3.0 which is available at + * https://www.gnu.org/licenses/gpl-3.0.html. + * + * SPDX-License-Identifier: GPL-3.0-only + ********************************************************************************/ +import moment from 'moment'; +import React from 'react'; +import { Meta, Story } from '@storybook/react'; + +import { Provider } from 'react-redux'; +import { asReduxStore, connectReduxDevtools } from 'mst-middlewares'; +import { SparqlClientImpl, rootModelInitialState, CollState } from '@agentlab/sparql-jsld-client'; + +import { + RendererRegistryEntry, + MstContextProvider, + Form, + antdCells, + antdControlRenderers, + antdLayoutRenderers, +} from '../src'; +import { viewKindCollConstr, viewDescrCollConstr } from '../src/models/ViewCollConstrs'; +import { createUiModelFromState } from '../src/models/MstViewDescr'; + +const antdRenderers: RendererRegistryEntry[] = [...antdControlRenderers, ...antdLayoutRenderers]; + +const viewKinds = [ + { + '@id': 'rm:FormViewKind', + '@type': 'aldkg:ViewKind', + title: 'Малая форма', + description: 'Small form', + + collsConstrs: [ + { + '@id': 'rm:FormView_Artifacts_Coll', + '@type': 'aldkg:CollConstr', + entConstrs: [ + { + '@id': 'rm:FormView_Artifacts_Coll_Ent0', + '@type': 'aldkg:EntConstr', + schema: 'rm:ArtifactShape', + }, + ], + //orderBy: [{ expression: variable('identifier0'), descending: false }], + }, + ], + elements: [ + { + '@id': 'rm:_83hd7f', + '@type': 'aldkg:FormLayout', + elements: [ + { + '@id': 'rm:_17Gj78', + '@type': 'aldkg:Control', + resultsScope: 'rm:FormView_Artifacts_Coll/creator', + }, + { + '@id': 'rm:_297Hgf56', + '@type': 'aldkg:Control', + resultsScope: 'rm:FormView_Artifacts_Coll/assetFolder', + }, + { + '@id': 'rm:_934jHd67', + '@type': 'aldkg:Control', + resultsScope: 'rm:FormView_Artifacts_Coll/description', + options: { + validation: [ + { + validator: 'RegExp', + propsToValidator: { + regExp: 'bo*', + }, + validateStatus: 'error', + help: 'Работает', + }, + ], + }, + }, + ], + }, + ], + }, +]; + +const viewDescrs = [ + { + '@id': 'rm:FormViewDescr', + '@type': 'aldkg:ViewDescr', + viewKind: 'rm:FormViewKind', + title: 'CardCellGrid', + description: 'CardCellGrid', + collsConstrs: [ + { + '@id': 'rm:FormView_Artifacts_Coll_ViewDescr', + '@type': 'aldkg:CollConstr', + '@parent': 'rm:FormView_Artifacts_Coll', + entConstrs: [ + { + '@id': 'rm:FormView_Artifacts_Coll_Ent0_ViewDescr', + '@type': 'aldkg:EntConstr', + '@parent': 'rm:FormView_Artifacts_Coll_Ent0', + conditions: { + '@id': 'rm:_2Yud6', + '@type': 'aldkg:EntConstrCondition', + assetFolder: 'folders:samples_collection', + }, + }, + ], + }, + ], + // child ui elements configs + elements: [], + }, +]; + +const additionalColls: CollState[] = [ + // ViewKinds Collection + { + constr: viewKindCollConstr, + data: viewKinds, + opt: { + updPeriod: undefined, + lastSynced: moment.now(), + //resolveCollConstrs: false, // disable data loading from the server for viewKinds.collConstrs + }, + }, + // ViewDescrs Collection + { + constr: viewDescrCollConstr, + data: viewDescrs, + opt: { + updPeriod: undefined, + lastSynced: moment.now(), + //resolveCollConstrs: false, // 'true' here (by default) triggers data loading from the server + // for viewDescrs.collConstrs (it loads lazily -- after the first access) + }, + }, +]; + +const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); +const rootStore = createUiModelFromState('reqs2', client, rootModelInitialState, additionalColls); +const store: any = asReduxStore(rootStore); +// eslint-disable-next-line @typescript-eslint/no-var-requires +connectReduxDevtools(require('remotedev'), rootStore); + +export default { + title: 'Form/ArtifactFormOverride', + component: Form, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} as Meta; + +const Template: Story = (args: any) => ( + + +
+
+
+
+
+); + +export const RemoteData = Template.bind({}); +RemoteData.args = {}; From 08dbddf771dbf5afb032fdf2520c8b19440b01b2 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 25 Aug 2021 07:05:11 +0300 Subject: [PATCH 3/8] [fix] GH-7 viewKind in DispatchCell, peer deps --- package.json | 3 ++- src/DispatchCell.tsx | 18 +++++++++--------- src/util/ContextToProps.tsx | 23 +++++++++++++++++++++-- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 035b0d2..71d539b 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,8 @@ "rc-util": ">=5.13.2", "react-split-pane": ">=2.0.3", "tinymce": ">=5.5.1", - "uri-js": ">=4.4.1" + "uri-js": ">=4.4.1", + "uuid62": ">=1.0.1" }, "dependencies": { "@agentlab/sparql-jsld-client": "^5.0.0-rc.10", diff --git a/src/DispatchCell.tsx b/src/DispatchCell.tsx index 405a63b..b3ef721 100644 --- a/src/DispatchCell.tsx +++ b/src/DispatchCell.tsx @@ -20,14 +20,14 @@ import { MstContext } from './MstContext'; */ export const DispatchCell: React.FC = React.memo( ({ - data, - onMeasureChange, - uri, - schema, viewKind, viewKindElement, viewDescr, viewDescrElement, + schema, + data, + onMeasureChange, + uri, enabled, id, CKey, @@ -51,15 +51,15 @@ export const DispatchCell: React.FC = React.memo( return ( {}}> uri={id} dataSource={data} editing={store.editingData.get(collIriOverride)} + viewKind={viewKind} viewKindElement={viewKindElement} viewDescr={viewDescr} viewDescrElement={viewDescrElement} @@ -338,6 +339,7 @@ export const withStoreToSelectControlProps = (Component: any): any => return ( export const withStoreToTabProps = (Component: any): any => observer(({ ...props }: any) => { - const { schema, viewKind } = props; + const { schema, viewKind, viewDescr } = props; const { store } = useContext(MstContext); //if (viewKindElement.resultsScope && !store.saveLogicTree[viewKindElement.resultsScope]) { // store.setSaveLogic(viewKindElement.resultsScope); @@ -380,7 +382,19 @@ export const withStoreToTabProps = (Component: any): any => // }); } }; - return ; + return ( + + ); }); export const withStoreToMenuProps = (Component: any): any => @@ -410,6 +424,7 @@ export const withStoreToMenuProps = (Component: any): any => } schema={schema} viewKind={viewKind} + viewKindElement={viewKindElement} viewDescr={viewDescr} viewDescrElement={viewDescrElement} uri={id} @@ -477,6 +492,10 @@ export const withStoreToArrayProps = (Component: any): any => }; return ( Date: Wed, 25 Aug 2021 19:38:02 +0300 Subject: [PATCH 4/8] [ADD] added table logic --- src/Form.tsx | 6 +- src/data-controls/DataControl.tsx | 92 ++++++++++++++++--------------- src/util/ContextToProps.tsx | 43 +++++++++++---- 3 files changed, 83 insertions(+), 58 deletions(-) diff --git a/src/Form.tsx b/src/Form.tsx index d506cdb..3ef7415 100644 --- a/src/Form.tsx +++ b/src/Form.tsx @@ -205,12 +205,10 @@ export const Form = observer((props) => { console.log('!viewKindObs for viewDescr', getSnapshot(viewDescrObs)); return ; } - const viewKind: any = getSnapshot(viewKindObs); - const viewDescr: any = getSnapshot(viewDescrObs); return ( {}}> - {viewKind.elements.map((el: IViewKindElement) => ( - + {viewKindObs.elements.map((el: IViewKindElement) => ( + ))} ); diff --git a/src/data-controls/DataControl.tsx b/src/data-controls/DataControl.tsx index cf3b7f0..e978e5f 100644 --- a/src/data-controls/DataControl.tsx +++ b/src/data-controls/DataControl.tsx @@ -21,50 +21,56 @@ const renderType: any = { grid: GridRenderer, }; -export const AntdDataLayout: React.FC = (props) => { - const { - viewKind, - viewKindElement, - viewDescr, - viewDescrElement, - enabled, - handleChange = () => {}, - dataSource, - schema, - editing, - getData, - onDnD, - onCreateFolder, - onDeleteFolder, - onRename, - } = props; - const data = treeify(dataSource, '@id', viewKindElement?.options.treeNodeParentKey || 'parent', 'children', strcmp); - const onSelect = (selected: { [key: string]: any }) => { - handleChange(selected); - }; - const Render = renderType[viewKindElement?.options.renderType]; +export const AntdDataLayout: React.FC = React.memo( + (props) => { + const { + viewKind, + viewKindElement, + viewDescr, + viewDescrElement, + enabled, + handleChange = () => {}, + dataSource, + schema, + editing, + getData, + onDnD, + onCreateFolder, + onDeleteFolder, + onRename, + } = props; + const data = treeify(dataSource, '@id', viewKindElement?.options.treeNodeParentKey || 'parent', 'children', strcmp); + const onSelect = (selected: { [key: string]: any }) => { + handleChange(selected); + }; + const Render = renderType[viewKindElement?.options.renderType]; - return ( - - ); -}; + return ( + + ); + }, + (prev, next) => { + console.log('PREV', prev, 'NEXT', next, prev === next); + return true; + }, +); export const antdDataControlTester: RankedTester = rankWith(2, uiTypeIs('aldkg:DataControl')); export const AntdDataControlWithStore = withStoreToDataControlProps(AntdDataLayout); diff --git a/src/util/ContextToProps.tsx b/src/util/ContextToProps.tsx index 05981e7..d71e301 100644 --- a/src/util/ContextToProps.tsx +++ b/src/util/ContextToProps.tsx @@ -11,7 +11,7 @@ import { cloneDeep, get, isEqual, omit } from 'lodash-es'; import React, { useContext, useState } from 'react'; import { Spin } from 'antd'; -import { getSnapshot } from 'mobx-state-tree'; +import { getSnapshot, applySnapshot } from 'mobx-state-tree'; import { observer } from 'mobx-react-lite'; import { createLabelDescriptionFrom } from './label'; @@ -258,19 +258,15 @@ export const withStoreToDataControlProps = (Component: any): any => //store.loadData(scope); return ; } + const scope = viewKindElement.resultsScope; data = cloneDeep(getSnapshot(data)); const options = viewKindElement?.options || {}; const withConnections = options.connections; const onChange = (data: any) => { - /*if (data) { + if (data) { store.setSelectedData(scope, data); - withConnections && - options.connections.forEach((e: any) => { - const condition: any = {}; - condition[e.by] = data['@id']; - //store.editCondition(e.to, condition, scope, e.by, data); - }); - }*/ + withConnections && store.editConn(withConnections, data); + } }; const getData = (parentId: string) => { const conditions = { ...store.queries[collIriOverride].shapes[0].conditions, parent: parentId }; @@ -327,7 +323,6 @@ export const withStoreToSelectControlProps = (Component: any): any => const options = viewKindElement.options || {}; const withConnections = options.connections; const onChange = (data: any) => { - console.log('withStoreToSelectControlProps onChange', data); store.setSelectedData(/*id || */ scope, data); withConnections && options.connections.forEach((e: any) => { @@ -465,7 +460,18 @@ export const withStoreToArrayProps = (Component: any): any => store, ); const options = viewKindElement.options || {}; - + let targetIri = options?.target?.iri; + let targetData: any = null; + if (targetIri) { + if (viewDescr.collsConstrs) { + const extCollConstr = viewDescr.collsConstrs?.find((el) => el['@parent'] === targetIri); + if (extCollConstr) { + targetIri = extCollConstr['@id'] || ''; + } + } + const targetColl = store.getColl(targetIri); + targetData = targetColl?.data; + } const coll = store.getColl(collIriOverride); let data = coll?.data; if (!data) { @@ -476,6 +482,19 @@ export const withStoreToArrayProps = (Component: any): any => return data; //store.loadDataByUri(scope, offset); }; const withConnections = options.connections; + const addDataToTarget = (data: any) => { + if (targetData) { + const snapData = getSnapshot(targetData) as any; + const newData = [...snapData, ...data]; + applySnapshot(targetData, newData); + } + }; + const onDeleteRows = (del: any) => { + if (data) { + const newData = data.filter((el) => del.filter((e) => e['@id'] === el['@id']).length === 0); + applySnapshot(coll?.data, newData); + } + }; const onChange = (data: any) => { /*store.setSelectedData(scope, data); withConnections && @@ -496,11 +515,13 @@ export const withStoreToArrayProps = (Component: any): any => viewKindElement={viewKindElement} viewDescr={viewDescr} viewDescrElement={viewDescrElement} + addDataToTarget={addDataToTarget} schema={schema} limit={10 /*store.queries[viewKindElement.resultsScope].limit*/} loadExpandedData={loadExpandedData} sortDir={{} /*store.queries[scope].orderBy*/} uri={id} + onDeleteRows={onDeleteRows} loadMoreData={loadMoreData} onSort={(property: string, sortDir: any) => { /*store.onSort(scope, property, sortDir)*/ From 59328dc1c6c88bf9eea5301705b6eafa96f42064 Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 31 Aug 2021 18:33:17 +0300 Subject: [PATCH 5/8] [refactor] GH-7 Incapsulate MST initialization --- stories/AntdCardCell.stories.tsx | 53 +++++++++---------- stories/Form.stories.tsx | 31 ++++++------ stories/FormOverride.stories.tsx | 31 ++++++------ stories/TreeAndForm.stories.tsx | 67 ++++++++++++++++++------- stories/TreeAndFormArtifact.stories.tsx | 35 ++++++------- stories/TreeAndFormColumns.stories.tsx | 35 ++++++------- 6 files changed, 145 insertions(+), 107 deletions(-) diff --git a/stories/AntdCardCell.stories.tsx b/stories/AntdCardCell.stories.tsx index 341c2e7..6a8c2da 100644 --- a/stories/AntdCardCell.stories.tsx +++ b/stories/AntdCardCell.stories.tsx @@ -9,7 +9,7 @@ ********************************************************************************/ import moment from 'moment'; import React from 'react'; -import { Story, Meta } from '@storybook/react/types-6-0'; +import { Story, Meta } from '@storybook/react'; import { Provider } from 'react-redux'; import { asReduxStore, connectReduxDevtools } from 'mst-middlewares'; @@ -293,15 +293,6 @@ const additionalColls: CollState[] = [ }, ]; -registerMstViewKindSchema('aldkg:VerticalLayout', MstVerticalLayout); - -const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); -const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); -console.log('rootStore', rootStore); -const store: any = asReduxStore(rootStore); -// eslint-disable-next-line @typescript-eslint/no-var-requires -connectReduxDevtools(require('remotedev'), rootStore); - export default { title: 'Several Controls/TreeAndForm Cards', component: Form, @@ -310,19 +301,29 @@ export default { }, } as Meta; -export const Empty: Story<{}> = () => ( - - -
- -
-
-
-); +export const Empty: Story<{}> = () => { + registerMstViewKindSchema('aldkg:VerticalLayout', MstVerticalLayout); + + const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); + const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); + console.log('rootStore', rootStore); + const store: any = asReduxStore(rootStore); + // eslint-disable-next-line @typescript-eslint/no-var-requires + connectReduxDevtools(require('remotedev'), rootStore); + return ( + + +
+ +
+
+
+ ); +}; diff --git a/stories/Form.stories.tsx b/stories/Form.stories.tsx index 57bd827..2a129e1 100644 --- a/stories/Form.stories.tsx +++ b/stories/Form.stories.tsx @@ -124,12 +124,6 @@ const additionalColls: CollState[] = [ }, ]; -const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); -const rootStore = createUiModelFromState('reqs2', client, rootModelInitialState, additionalColls); -const store: any = asReduxStore(rootStore); -// eslint-disable-next-line @typescript-eslint/no-var-requires -connectReduxDevtools(require('remotedev'), rootStore); - export default { title: 'Form/ArtifactForm', component: Form, @@ -138,15 +132,22 @@ export default { }, } as Meta; -const Template: Story = (args: any) => ( - - -
- -
-
-
-); +const Template: Story = (args: any) => { + const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); + const rootStore = createUiModelFromState('reqs2', client, rootModelInitialState, additionalColls); + const store: any = asReduxStore(rootStore); + // eslint-disable-next-line @typescript-eslint/no-var-requires + connectReduxDevtools(require('remotedev'), rootStore); + return ( + + +
+ +
+
+
+ ); +}; export const RemoteData = Template.bind({}); RemoteData.args = {}; diff --git a/stories/FormOverride.stories.tsx b/stories/FormOverride.stories.tsx index 04d4fac..6640fe5 100644 --- a/stories/FormOverride.stories.tsx +++ b/stories/FormOverride.stories.tsx @@ -142,12 +142,6 @@ const additionalColls: CollState[] = [ }, ]; -const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); -const rootStore = createUiModelFromState('reqs2', client, rootModelInitialState, additionalColls); -const store: any = asReduxStore(rootStore); -// eslint-disable-next-line @typescript-eslint/no-var-requires -connectReduxDevtools(require('remotedev'), rootStore); - export default { title: 'Form/ArtifactFormOverride', component: Form, @@ -156,15 +150,22 @@ export default { }, } as Meta; -const Template: Story = (args: any) => ( - - -
- -
-
-
-); +const Template: Story = (args: any) => { + const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); + const rootStore = createUiModelFromState('reqs2', client, rootModelInitialState, additionalColls); + const store: any = asReduxStore(rootStore); + // eslint-disable-next-line @typescript-eslint/no-var-requires + connectReduxDevtools(require('remotedev'), rootStore); + return ( + + +
+ +
+
+
+ ); +}; export const RemoteData = Template.bind({}); RemoteData.args = {}; diff --git a/stories/TreeAndForm.stories.tsx b/stories/TreeAndForm.stories.tsx index d728fef..541567c 100644 --- a/stories/TreeAndForm.stories.tsx +++ b/stories/TreeAndForm.stories.tsx @@ -9,11 +9,18 @@ ********************************************************************************/ import moment from 'moment'; import React from 'react'; -import { Story, Meta } from '@storybook/react/types-6-0'; +import { Story, Meta } from '@storybook/react'; import { Provider } from 'react-redux'; import { asReduxStore, connectReduxDevtools } from 'mst-middlewares'; -import { SparqlClientImpl, rootModelInitialState, CollState } from '@agentlab/sparql-jsld-client'; +import { + CollState, + JsStrObj, + Results, + rootModelInitialState, + sendGet, + SparqlClientImpl, +} from '@agentlab/sparql-jsld-client'; import { antdCells, @@ -357,12 +364,6 @@ const additionalColls: CollState[] = [ }, ]; -const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); -const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); -const store: any = asReduxStore(rootStore); -// eslint-disable-next-line @typescript-eslint/no-var-requires -connectReduxDevtools(require('remotedev'), rootStore); - export default { title: 'Several Controls/TreeAndForm Mktp', component: Form, @@ -371,12 +372,44 @@ export default { }, } as Meta; -export const Empty: Story<{}> = () => ( - - -
- -
-
-
-); +class SparqlClientImpl2 extends SparqlClientImpl { + async loadNs() { + const url = 'https://rdf4j.agentlab.ru/rdf4j-server/repositories/mktp/namespaces'; + const response = await sendGet(url); + if (response.status < 200 && response.status > 204) return Promise.reject('Cannot get namespaces'); + const ns: JsStrObj = {}; + //console.debug('response.data', response.data); + if (response.data && response.data.results) { + let results: Results = { bindings: [] }; + results = response.data.results; + if (results) { + results.bindings.forEach((b) => { + if (b.prefix && b.namespace && b.prefix.value && b.namespace.value) { + ns[b.prefix.value] = b.namespace.value; + } + }); + } + } + ns['sesame'] = 'http://www.openrdf.org/schema/sesame#'; + return ns; + } +} + +export const Empty: Story<{}> = () => { + //const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); + //const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); + const client = new SparqlClientImpl2('https://rdf4j.agentlab.ru/rdf4j-server'); + const rootStore = createUiModelFromState('mktp-fed', client, rootModelInitialState, additionalColls); + const store: any = asReduxStore(rootStore); + // eslint-disable-next-line @typescript-eslint/no-var-requires + connectReduxDevtools(require('remotedev'), rootStore); + return ( + + +
+ +
+
+
+ ); +}; diff --git a/stories/TreeAndFormArtifact.stories.tsx b/stories/TreeAndFormArtifact.stories.tsx index ac98d14..3a97445 100644 --- a/stories/TreeAndFormArtifact.stories.tsx +++ b/stories/TreeAndFormArtifact.stories.tsx @@ -9,11 +9,11 @@ ********************************************************************************/ import moment from 'moment'; import React from 'react'; -import { Story, Meta } from '@storybook/react/types-6-0'; +import { Story, Meta } from '@storybook/react'; import { Provider } from 'react-redux'; import { asReduxStore, connectReduxDevtools } from 'mst-middlewares'; -import { SparqlClientImpl, rootModelInitialState, CollState } from '@agentlab/sparql-jsld-client'; +import { CollState, rootModelInitialState, SparqlClientImpl } from '@agentlab/sparql-jsld-client'; import { antdCells, @@ -166,12 +166,6 @@ const additionalColls: CollState[] = [ }, ]; -const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); -const rootStore = createUiModelFromState('reqs2', client, rootModelInitialState, additionalColls); -const store: any = asReduxStore(rootStore); -// eslint-disable-next-line @typescript-eslint/no-var-requires -connectReduxDevtools(require('remotedev'), rootStore); - export default { title: 'Several Controls/TreeAndForm Artifacts', component: Form, @@ -180,12 +174,19 @@ export default { }, } as Meta; -export const Empty: Story<{}> = () => ( - - -
- -
-
-
-); +export const Empty: Story<{}> = () => { + const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); + const rootStore = createUiModelFromState('reqs2', client, rootModelInitialState, additionalColls); + const store: any = asReduxStore(rootStore); + // eslint-disable-next-line @typescript-eslint/no-var-requires + connectReduxDevtools(require('remotedev'), rootStore); + return ( + + +
+ +
+
+
+ ); +}; diff --git a/stories/TreeAndFormColumns.stories.tsx b/stories/TreeAndFormColumns.stories.tsx index 05b067a..739f536 100644 --- a/stories/TreeAndFormColumns.stories.tsx +++ b/stories/TreeAndFormColumns.stories.tsx @@ -9,11 +9,11 @@ ********************************************************************************/ import moment from 'moment'; import React from 'react'; -import { Story, Meta } from '@storybook/react/types-6-0'; +import { Story, Meta } from '@storybook/react'; import { Provider } from 'react-redux'; import { asReduxStore, connectReduxDevtools } from 'mst-middlewares'; -import { SparqlClientImpl, rootModelInitialState, CollState } from '@agentlab/sparql-jsld-client'; +import { CollState, rootModelInitialState, SparqlClientImpl } from '@agentlab/sparql-jsld-client'; import { antdCells, @@ -288,12 +288,6 @@ const additionalColls: CollState[] = [ }, ]; -const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); -const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); -const store: any = asReduxStore(rootStore); -// eslint-disable-next-line @typescript-eslint/no-var-requires -connectReduxDevtools(require('remotedev'), rootStore); - export default { title: 'Several Controls/Tree And Form with Columns', component: Form, @@ -302,12 +296,19 @@ export default { }, } as Meta; -export const Empty: Story<{}> = () => ( - - -
- -
-
-
-); +export const Empty: Story<{}> = () => { + const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); + const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); + const store: any = asReduxStore(rootStore); + // eslint-disable-next-line @typescript-eslint/no-var-requires + connectReduxDevtools(require('remotedev'), rootStore); + return ( + + +
+ +
+
+
+ ); +}; From 3799845739b2893b9d4e12b4910a09febb997315 Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 31 Aug 2021 18:34:45 +0300 Subject: [PATCH 6/8] [deps] GH-7 Update Antd & tools --- package.json | 30 +- yarn.lock | 870 +++++++++++++++++++++++++++++---------------------- 2 files changed, 511 insertions(+), 389 deletions(-) diff --git a/package.json b/package.json index 71d539b..7bb146f 100644 --- a/package.json +++ b/package.json @@ -51,9 +51,9 @@ }, "peerDependencies": { "@agentlab/sparql-jsld-client": ">=5.0.0-rc.10", - "@ant-design/icons": ">=4.6.2", + "@ant-design/icons": ">=4.6.4", "@tinymce/tinymce-react": ">=3.12.6", - "antd": ">=4.16.11", + "antd": ">=4.16.13", "history": ">=5.0.1", "lodash-es": ">=4.17.21", "mobx": ">=6.3.2", @@ -74,15 +74,15 @@ }, "dependencies": { "@agentlab/sparql-jsld-client": "^5.0.0-rc.10", - "@ant-design/icons": "^4.6.2", + "@ant-design/icons": "^4.6.4", "@tinymce/tinymce-react": "^3.12.6", - "@types/react": "^17.0.18", + "@types/react": "^17.0.19", "@types/react-dom": "^17.0.9", "@types/react-router": "^5.1.16", "@types/react-router-dom": "^5.1.8", "@types/react-virtualized": "^9.21.13", "@types/tinymce": "^4.6.4", - "antd": "^4.16.11", + "antd": "^4.16.13", "history": "^5.0.1", "mobx-react-lite": "^3.2.0", "mst-middlewares": "^5.0.2", @@ -117,8 +117,8 @@ "@testing-library/react": "^12.0.0", "@testing-library/user-event": "^13.2.1", "@types/jest": "^27.0.1", - "@typescript-eslint/eslint-plugin": "^4.29.1", - "@typescript-eslint/parser": "^4.29.1", + "@typescript-eslint/eslint-plugin": "^4.30.0", + "@typescript-eslint/parser": "^4.30.0", "autoprefixer": "^10.3.1", "babel-loader": "^8.2.2", "cross-env": "^7.0.3", @@ -126,21 +126,21 @@ "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.9.0", - "eslint-plugin-import": "^2.24.0", + "eslint-plugin-flowtype": "^5.9.1", + "eslint-plugin-import": "^2.24.2", "eslint-plugin-jest": "^24.4.0", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-prettier": "^3.4.0", - "eslint-plugin-react": "^7.24.0", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.25.1", "eslint-plugin-react-hooks": "^4.2.0", - "husky": "^7.0.1", - "jest": "^27.0.6", + "husky": "^7.0.2", + "jest": "^27.1.0", "jest-watch-typeahead": "^0.6.4", "lint-staged": "^11.1.2", "prettier": "^2.3.2", "postcss": "^8.3.6", "rimraf": "^3.0.2", - "rollup": "^2.56.2", + "rollup": "^2.56.3", "rollup-plugin-babel": "^4.4.0", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-postcss": "^4.0.1", @@ -149,7 +149,7 @@ "sass-loader": "10.1.1", "storybook-css-modules-preset": "^1.1.1", "style-loader": "^2.0.0", - "ts-jest": "^27.0.4", + "ts-jest": "^27.0.5", "tslib": "^2.3.1", "typescript": "4.3.5", "typescript-plugin-css-modules": "^3.4.0" diff --git a/yarn.lock b/yarn.lock index 97b9f7d..945480a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -36,10 +36,10 @@ resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz#480b025f4b20ef7fe8f47d4a4846e4fee84ea06c" integrity sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ== -"@ant-design/icons@^4.6.2": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-4.6.2.tgz#290f2e8cde505ab081fda63e511e82d3c48be982" - integrity sha512-QsBG2BxBYU/rxr2eb8b2cZ4rPKAPBpzAR+0v6rrZLp/lnyvflLH3tw1vregK+M7aJauGWjIGNdFmUfpAOtw25A== +"@ant-design/icons@^4.6.3", "@ant-design/icons@^4.6.4": + version "4.6.4" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-4.6.4.tgz#21b037dbb90ee1bb7c632cca057006e57d992fd9" + integrity sha512-li02J8ym721E24N3bw1oXRzFDV7m2MYQWs+WtJgVVjhNRv4sc6vL2a2M7SS8rWX3Uc/3GJfrokIJnMrmbIMuXQ== dependencies: "@ant-design/colors" "^6.0.0" "@ant-design/icons-svg" "^4.0.0" @@ -1476,82 +1476,94 @@ jest-util "^27.0.6" slash "^3.0.0" -"@jest/core@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" - integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== +"@jest/console@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.1.0.tgz#de13b603cb1d389b50c0dc6296e86e112381e43c" + integrity sha512-+Vl+xmLwAXLNlqT61gmHEixeRbS4L8MUzAjtpBCOPWH+izNI/dR16IeXjkXJdRtIVWVSf9DO1gdp67B1XorZhQ== dependencies: - "@jest/console" "^27.0.6" - "@jest/reporters" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.1.0" + jest-util "^27.1.0" + slash "^3.0.0" + +"@jest/core@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.1.0.tgz#622220f18032f5869e579cecbe744527238648bf" + integrity sha512-3l9qmoknrlCFKfGdrmiQiPne+pUR4ALhKwFTYyOeKw6egfDwJkO21RJ1xf41rN8ZNFLg5W+w6+P4fUqq4EMRWA== + dependencies: + "@jest/console" "^27.1.0" + "@jest/reporters" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.0.6" - jest-config "^27.0.6" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" + jest-changed-files "^27.1.0" + jest-config "^27.1.0" + jest-haste-map "^27.1.0" + jest-message-util "^27.1.0" jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-resolve-dependencies "^27.0.6" - jest-runner "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - jest-watcher "^27.0.6" + jest-resolve "^27.1.0" + jest-resolve-dependencies "^27.1.0" + jest-runner "^27.1.0" + jest-runtime "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" + jest-watcher "^27.1.0" micromatch "^4.0.4" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" - integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== +"@jest/environment@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.1.0.tgz#c7224a67004759ec203d8fa44e8bc0db93f66c44" + integrity sha512-wRp50aAMY2w1U2jP1G32d6FUVBNYqmk8WaGkiIEisU48qyDV0WPtw3IBLnl7orBeggveommAkuijY+RzVnNDOQ== dependencies: - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/fake-timers" "^27.1.0" + "@jest/types" "^27.1.0" "@types/node" "*" - jest-mock "^27.0.6" + jest-mock "^27.1.0" -"@jest/fake-timers@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" - integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== +"@jest/fake-timers@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.1.0.tgz#c0b343d8a16af17eab2cb6862e319947c0ea2abe" + integrity sha512-22Zyn8il8DzpS+30jJNVbTlm7vAtnfy1aYvNeOEHloMlGy1PCYLHa4PWlSws0hvNsMM5bON6GISjkLoQUV3oMA== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" "@sinonjs/fake-timers" "^7.0.2" "@types/node" "*" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-message-util "^27.1.0" + jest-mock "^27.1.0" + jest-util "^27.1.0" -"@jest/globals@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" - integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== +"@jest/globals@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.1.0.tgz#e093a49c718dd678a782c197757775534c88d3f2" + integrity sha512-73vLV4aNHAlAgjk0/QcSIzzCZSqVIPbmFROJJv9D3QUR7BI4f517gVdJpSrCHxuRH3VZFhe0yGG/tmttlMll9g== dependencies: - "@jest/environment" "^27.0.6" - "@jest/types" "^27.0.6" - expect "^27.0.6" + "@jest/environment" "^27.1.0" + "@jest/types" "^27.1.0" + expect "^27.1.0" -"@jest/reporters@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" - integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== +"@jest/reporters@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.1.0.tgz#02ed1e6601552c2f6447378533f77aad002781d4" + integrity sha512-5T/zlPkN2HnK3Sboeg64L5eC8iiaZueLpttdktWTJsvALEtP2YMkC5BQxwjRWQACG9SwDmz+XjjkoxXUDMDgdw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1562,10 +1574,10 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-haste-map "^27.1.0" + jest-resolve "^27.1.0" + jest-util "^27.1.0" + jest-worker "^27.1.0" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" @@ -1591,15 +1603,25 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" - integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== +"@jest/test-result@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.1.0.tgz#9345ae5f97f6a5287af9ebd54716cd84331d42e8" + integrity sha512-Aoz00gpDL528ODLghat3QSy6UBTD5EmmpjrhZZMK/v1Q2/rRRqTGnFxHuEkrD4z/Py96ZdOHxIWkkCKRpmnE1A== dependencies: - "@jest/test-result" "^27.0.6" + "@jest/console" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.1.0.tgz#04e8b3bd735570d3d48865e74977a14dc99bff2d" + integrity sha512-lnCWawDr6Z1DAAK9l25o3AjmKGgcutq1iIbp+hC10s/HxnB8ZkUsYq1FzjOoxxZ5hW+1+AthBtvS4x9yno3V1A== + dependencies: + "@jest/test-result" "^27.1.0" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-runtime "^27.0.6" + jest-haste-map "^27.1.0" + jest-runtime "^27.1.0" "@jest/transform@^26.6.2": version "26.6.2" @@ -1622,21 +1644,21 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" - integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== +"@jest/transform@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.1.0.tgz#962e385517e3d1f62827fa39c305edcc3ca8544b" + integrity sha512-ZRGCA2ZEVJ00ubrhkTG87kyLbN6n55g1Ilq0X9nJb5bX3MhMp3O6M7KG+LvYu+nZRqG5cXsQnJEdZbdpTAV8pQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" + jest-haste-map "^27.1.0" jest-regex-util "^27.0.6" - jest-util "^27.0.6" + jest-util "^27.1.0" micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" @@ -1665,6 +1687,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.1.0.tgz#674a40325eab23c857ebc0689e7e191a3c5b10cc" + integrity sha512-pRP5cLIzN7I7Vp6mHKRSaZD7YpBTK7hawx5si8trMKqk4+WOdK8NEKOTO2G8PKWD1HbKMVckVB6/XHh/olhf2g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@mdx-js/loader@^1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" @@ -3141,10 +3174,10 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^17.0.18": - version "17.0.18" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.18.tgz#4109cbbd901be9582e5e39e3d77acd7b66bb7fbe" - integrity sha512-YTLgu7oS5zvSqq49X5Iue5oAbVGhgPc5Au29SJC4VeE17V6gASoOxVkUDy9pXFMRFxCWCD9fLeweNFizo3UzOg== +"@types/react@^17.0.19": + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991" + integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -3260,28 +3293,28 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.1.tgz#808d206e2278e809292b5de752a91105da85860b" - integrity sha512-AHqIU+SqZZgBEiWOrtN94ldR3ZUABV5dUG94j8Nms9rQnHFc8fvDOue/58K4CFz6r8OtDDc35Pw9NQPWo0Ayrw== +"@typescript-eslint/eslint-plugin@^4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.30.0.tgz#4a0c1ae96b953f4e67435e20248d812bfa55e4fb" + integrity sha512-NgAnqk55RQ/SD+tZFD9aPwNSeHmDHHe5rtUyhIq0ZeCWZEvo4DK9rYz7v9HDuQZFvn320Ot+AikaCKMFKLlD0g== dependencies: - "@typescript-eslint/experimental-utils" "4.29.1" - "@typescript-eslint/scope-manager" "4.29.1" + "@typescript-eslint/experimental-utils" "4.30.0" + "@typescript-eslint/scope-manager" "4.30.0" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.1.tgz#0af2b17b0296b60c6b207f11062119fa9c5a8994" - integrity sha512-kl6QG6qpzZthfd2bzPNSJB2YcZpNOrP6r9jueXupcZHnL74WiuSjaft7WSu17J9+ae9zTlk0KJMXPUj0daBxMw== +"@typescript-eslint/experimental-utils@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz#9e49704fef568432ae16fc0d6685c13d67db0fd5" + integrity sha512-K8RNIX9GnBsv5v4TjtwkKtqMSzYpjqAQg/oSphtxf3xxdt6T0owqnpojztjjTcatSteH3hLj3t/kklKx87NPqw== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.29.1" - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/typescript-estree" "4.29.1" + "@typescript-eslint/scope-manager" "4.30.0" + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/typescript-estree" "4.30.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -3297,14 +3330,14 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.1.tgz#17dfbb45c9032ffa0fe15881d20fbc2a4bdeb02d" - integrity sha512-3fL5iN20hzX3Q4OkG7QEPFjZV2qsVGiDhEwwh+EkmE/w7oteiOvUNzmpu5eSwGJX/anCryONltJ3WDmAzAoCMg== +"@typescript-eslint/parser@^4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.30.0.tgz#6abd720f66bd790f3e0e80c3be77180c8fcb192d" + integrity sha512-HJ0XuluSZSxeboLU7Q2VQ6eLlCwXPBOGnA7CqgBnz2Db3JRQYyBDJgQnop6TZ+rsbSx5gEdWhw4rE4mDa1FnZg== dependencies: - "@typescript-eslint/scope-manager" "4.29.1" - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/typescript-estree" "4.29.1" + "@typescript-eslint/scope-manager" "4.30.0" + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/typescript-estree" "4.30.0" debug "^4.3.1" "@typescript-eslint/scope-manager@4.28.1": @@ -3315,23 +3348,23 @@ "@typescript-eslint/types" "4.28.1" "@typescript-eslint/visitor-keys" "4.28.1" -"@typescript-eslint/scope-manager@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.1.tgz#f25da25bc6512812efa2ce5ebd36619d68e61358" - integrity sha512-Hzv/uZOa9zrD/W5mftZa54Jd5Fed3tL6b4HeaOpwVSabJK8CJ+2MkDasnX/XK4rqP5ZTWngK1ZDeCi6EnxPQ7A== +"@typescript-eslint/scope-manager@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz#1a3ffbb385b1a06be85cd5165a22324f069a85ee" + integrity sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A== dependencies: - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/visitor-keys" "4.29.1" + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/visitor-keys" "4.30.0" "@typescript-eslint/types@4.28.1": version "4.28.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.1.tgz#d0f2ecbef3684634db357b9bbfc97b94b828f83f" integrity sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg== -"@typescript-eslint/types@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.1.tgz#94cce6cf7cc83451df03339cda99d326be2feaf5" - integrity sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA== +"@typescript-eslint/types@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.30.0.tgz#fb9d9b0358426f18687fba82eb0b0f869780204f" + integrity sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw== "@typescript-eslint/typescript-estree@4.28.1": version "4.28.1" @@ -3346,13 +3379,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.1.tgz#7b32a25ff8e51f2671ccc6b26cdbee3b1e6c5e7f" - integrity sha512-lIkkrR9E4lwZkzPiRDNq0xdC3f2iVCUjw/7WPJ4S2Sl6C3nRWkeE1YXCQ0+KsiaQRbpY16jNaokdWnm9aUIsfw== +"@typescript-eslint/typescript-estree@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz#ae57833da72a753f4846cd3053758c771670c2ac" + integrity sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg== dependencies: - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/visitor-keys" "4.29.1" + "@typescript-eslint/types" "4.30.0" + "@typescript-eslint/visitor-keys" "4.30.0" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" @@ -3367,12 +3400,12 @@ "@typescript-eslint/types" "4.28.1" eslint-visitor-keys "^2.0.0" -"@typescript-eslint/visitor-keys@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz#0615be8b55721f5e854f3ee99f1a714f2d093e5d" - integrity sha512-zLqtjMoXvgdZY/PG6gqA73V8BjqPs4af1v2kiiETBObp+uC6gRYnJLmJHxC0QyUrrHDLJPIWNYxoBV3wbcRlag== +"@typescript-eslint/visitor-keys@4.30.0": + version "4.30.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz#a47c6272fc71b0c627d1691f68eaecf4ad71445e" + integrity sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw== dependencies: - "@typescript-eslint/types" "4.29.1" + "@typescript-eslint/types" "4.30.0" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -3736,13 +3769,13 @@ ansi-to-html@^0.6.11: dependencies: entities "^2.0.0" -antd@^4.16.11: - version "4.16.11" - resolved "https://registry.yarnpkg.com/antd/-/antd-4.16.11.tgz#924116b0de7370f914e9de6c8c5a4bf019b3d668" - integrity sha512-7Tsx0sTjpSpgRqnXIRbuerqf4pu8+V1OPY4oZXXqTzuYPwKHdnbfXMg/L35IfeLtK1QcwgF4lfTR7bChJIcWSw== +antd@^4.16.13: + version "4.16.13" + resolved "https://registry.yarnpkg.com/antd/-/antd-4.16.13.tgz#e9b9b4a590db28747aae1cab98981649a35880af" + integrity sha512-EMPD3fzKe7oayx9keD/GA1oKatcx7j5CGlkJj5eLS0/eEDDEkxVj3DFmKOPuHYt4BK7ltTzMFS+quSTmqUXPiw== dependencies: "@ant-design/colors" "^6.0.0" - "@ant-design/icons" "^4.6.2" + "@ant-design/icons" "^4.6.3" "@ant-design/react-slick" "~0.28.1" "@babel/runtime" "^7.12.5" array-tree-filter "^2.1.0" @@ -3778,7 +3811,7 @@ antd@^4.16.11: rc-tooltip "~5.1.1" rc-tree "~4.2.1" rc-tree-select "~4.3.0" - rc-trigger "^5.2.1" + rc-trigger "^5.2.10" rc-upload "~4.3.0" rc-util "^5.13.1" scroll-into-view-if-needed "^2.2.25" @@ -4042,13 +4075,13 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" - integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== +babel-jest@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.1.0.tgz#e96ca04554fd32274439869e2b6d24de9d91bc4e" + integrity sha512-6NrdqzaYemALGCuR97QkC/FkFIEBWP5pw5TMJoUHZTVXyOgocujp6A0JE2V6gE0HtqAAv6VKU/nI+OCR1Z4gHA== dependencies: - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.0.0" babel-preset-jest "^27.0.6" @@ -4509,7 +4542,7 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-from@1.x, buffer-from@^1.0.0: +buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== @@ -6167,10 +6200,10 @@ eslint-config-react-app@^6.0.0: dependencies: confusing-browser-globals "^1.0.10" -eslint-import-resolver-node@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.5.tgz#939bbb0f74e179e757ca87f7a4a890dabed18ac4" - integrity sha512-XMoPKjSpXbkeJ7ZZ9icLnJMTY5Mc1kZbCakHquaFsXPpyWOwK0TK6CODO+0ca54UoM9LKOxyUNnoVZRl8TeaAg== +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== dependencies: debug "^3.2.7" resolve "^1.20.0" @@ -6183,34 +6216,34 @@ eslint-module-utils@^2.6.2: debug "^3.2.7" pkg-dir "^2.0.0" -eslint-plugin-flowtype@^5.9.0: - version "5.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.9.0.tgz#8d2d81d3d79bb53470ed62b97409b31684757e30" - integrity sha512-aBUVPA5Wt0XyuV3Wg8flfVqYJR6yR2nRLuyPwoTjCg5VTk4G1X1zQpInr39tUGgRxqrA+d+B9GYK4+/d1i0Rfw== +eslint-plugin-flowtype@^5.9.1: + version "5.9.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.9.1.tgz#21ae5c5063cb87d80ad740611761b0cfeea0738f" + integrity sha512-ncUBL9lbhrcOlM5p6xQJT2c0z9co/FlP0mXdva6FrkvtzOoN7wdc8ioASonEpcWffOxnJPFPI8N0sHCavE6NAg== dependencies: lodash "^4.17.15" string-natural-compare "^3.0.1" -eslint-plugin-import@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.0.tgz#697ffd263e24da5e84e03b282f5fb62251777177" - integrity sha512-Kc6xqT9hiYi2cgybOc0I2vC9OgAYga5o/rAFinam/yF/t5uBqxQbauNPMC6fgb640T/89P0gFoO27FOilJ/Cqg== +eslint-plugin-import@^2.24.2: + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== dependencies: array-includes "^3.1.3" array.prototype.flat "^1.2.4" debug "^2.6.9" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.5" + eslint-import-resolver-node "^0.3.6" eslint-module-utils "^2.6.2" find-up "^2.0.0" has "^1.0.3" - is-core-module "^2.4.0" + is-core-module "^2.6.0" minimatch "^3.0.4" - object.values "^1.1.3" + object.values "^1.1.4" pkg-up "^2.0.0" read-pkg-up "^3.0.0" resolve "^1.20.0" - tsconfig-paths "^3.9.0" + tsconfig-paths "^3.11.0" eslint-plugin-jest@^24.4.0: version "24.4.0" @@ -6236,10 +6269,10 @@ eslint-plugin-jsx-a11y@^6.4.1: jsx-ast-utils "^3.1.0" language-tags "^1.0.5" -eslint-plugin-prettier@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" - integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== +eslint-plugin-prettier@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" + integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== dependencies: prettier-linter-helpers "^1.0.0" @@ -6248,14 +6281,15 @@ eslint-plugin-react-hooks@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== -eslint-plugin-react@^7.24.0: - version "7.24.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4" - integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== +eslint-plugin-react@^7.25.1: + version "7.25.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz#9286b7cd9bf917d40309760f403e53016eda8331" + integrity sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug== dependencies: array-includes "^3.1.3" array.prototype.flatmap "^1.2.4" doctrine "^2.1.0" + estraverse "^5.2.0" has "^1.0.3" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.0.4" @@ -6503,16 +6537,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" - integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== +expect@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.1.0.tgz#380de0abb3a8f2299c4c6c66bbe930483b5dba9b" + integrity sha512-9kJngV5hOJgkFil4F/uXm3hVBubUK2nERVfvqNNwxxuW8ZOUwSTTSysgfzckYtv/LBzj/LJXbiAF7okHCXgdug== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" ansi-styles "^5.0.0" jest-get-type "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" jest-regex-util "^27.0.6" express@^4.17.1: @@ -7611,10 +7645,10 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -husky@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.1.tgz#579f4180b5da4520263e8713cc832942b48e1f1c" - integrity sha512-gceRaITVZ+cJH9sNHqx5tFwbzlLCVxtVZcusME8JYQ8Edy5mpGDOqD8QBCdMhpyo9a+JXddnujQ4rpY2Ff9SJA== +husky@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.2.tgz#21900da0f30199acca43a46c043c4ad84ae88dff" + integrity sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg== hyphenate-style-name@^1.0.2: version "1.0.4" @@ -7925,13 +7959,20 @@ is-color-stop@^1.1.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.2.0, is-core-module@^2.4.0: +is-core-module@^2.2.0: version "2.4.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== dependencies: has "^1.0.3" +is-core-module@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -8329,84 +8370,84 @@ iterate-value@^1.0.2: es-get-iterator "^1.0.2" iterate-iterator "^1.0.1" -jest-changed-files@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" - integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== +jest-changed-files@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.1.0.tgz#42da6ea00f06274172745729d55f42b60a9dffe0" + integrity sha512-eRcb13TfQw0xiV2E98EmiEgs9a5uaBIqJChyl0G7jR9fCIvGjXovnDS6Zbku3joij4tXYcSK4SE1AXqOlUxjWg== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" - integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== +jest-circus@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.1.0.tgz#24c280c90a625ea57da20ee231d25b1621979a57" + integrity sha512-6FWtHs3nZyZlMBhRf1wvAC5CirnflbGJAY1xssSAnERLiiXQRH+wY2ptBVtXjX4gz4AA2EwRV57b038LmifRbA== dependencies: - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/environment" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.0.6" + expect "^27.1.0" is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" + jest-each "^27.1.0" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" + jest-runtime "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + pretty-format "^27.1.0" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" - integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== +jest-cli@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.1.0.tgz#118438e4d11cf6fb66cb2b2eb5778817eab3daeb" + integrity sha512-h6zPUOUu+6oLDrXz0yOWY2YXvBLk8gQinx4HbZ7SF4V3HzasQf+ncoIbKENUMwXyf54/6dBkYXvXJos+gOHYZw== dependencies: - "@jest/core" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/core" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-config "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" prompts "^2.0.1" yargs "^16.0.3" -jest-config@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" - integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== +jest-config@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.1.0.tgz#e6826e2baaa34c07c3839af86466870e339d9ada" + integrity sha512-GMo7f76vMYUA3b3xOdlcKeKQhKcBIgurjERO2hojo0eLkKPGcw7fyIoanH+m6KOP2bLad+fGnF8aWOJYxzNPeg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.0.6" - "@jest/types" "^27.0.6" - babel-jest "^27.0.6" + "@jest/test-sequencer" "^27.1.0" + "@jest/types" "^27.1.0" + babel-jest "^27.1.0" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" is-ci "^3.0.0" - jest-circus "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" + jest-circus "^27.1.0" + jest-environment-jsdom "^27.1.0" + jest-environment-node "^27.1.0" jest-get-type "^27.0.6" - jest-jasmine2 "^27.0.6" + jest-jasmine2 "^27.1.0" jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runner "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-resolve "^27.1.0" + jest-runner "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" micromatch "^4.0.4" - pretty-format "^27.0.6" + pretty-format "^27.1.0" jest-diff@^26.0.0: version "26.6.2" @@ -8418,7 +8459,7 @@ jest-diff@^26.0.0: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.0.0, jest-diff@^27.0.6: +jest-diff@^27.0.0: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== @@ -8428,6 +8469,16 @@ jest-diff@^27.0.0, jest-diff@^27.0.6: jest-get-type "^27.0.6" pretty-format "^27.0.6" +jest-diff@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.1.0.tgz#c7033f25add95e2218f3c7f4c3d7b634ab6b3cd2" + integrity sha512-rjfopEYl58g/SZTsQFmspBODvMSytL16I+cirnScWTLkQVXYVZfxm78DFfdIIXc05RCYuGjxJqrdyG4PIFzcJg== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.1.0" + jest-docblock@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" @@ -8435,41 +8486,41 @@ jest-docblock@^27.0.6: dependencies: detect-newline "^3.0.0" -jest-each@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" - integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== +jest-each@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.1.0.tgz#36ac75f7aeecb3b8da2a8e617ccb30a446df408c" + integrity sha512-K/cNvQlmDqQMRHF8CaQ0XPzCfjP5HMJc2bIJglrIqI9fjwpNqITle63IWE+wq4p+3v+iBgh7Wq0IdGpLx5xjDg== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" chalk "^4.0.0" jest-get-type "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" + jest-util "^27.1.0" + pretty-format "^27.1.0" -jest-environment-jsdom@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" - integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== +jest-environment-jsdom@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.1.0.tgz#5fb3eb8a67e02e6cc623640388d5f90e33075f18" + integrity sha512-JbwOcOxh/HOtsj56ljeXQCUJr3ivnaIlM45F5NBezFLVYdT91N5UofB1ux2B1CATsQiudcHdgTaeuqGXJqjJYQ== dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/environment" "^27.1.0" + "@jest/fake-timers" "^27.1.0" + "@jest/types" "^27.1.0" "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-mock "^27.1.0" + jest-util "^27.1.0" jsdom "^16.6.0" -jest-environment-node@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" - integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== +jest-environment-node@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.1.0.tgz#feea6b765f1fd4582284d4f1007df2b0a8d15b7f" + integrity sha512-JIyJ8H3wVyM4YCXp7njbjs0dIT87yhGlrXCXhDKNIg1OjurXr6X38yocnnbXvvNyqVTqSI4M9l+YfPKueqL1lw== dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/environment" "^27.1.0" + "@jest/fake-timers" "^27.1.0" + "@jest/types" "^27.1.0" "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-mock "^27.1.0" + jest-util "^27.1.0" jest-get-type@^26.3.0: version "26.3.0" @@ -8502,12 +8553,12 @@ jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" -jest-haste-map@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" - integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== +jest-haste-map@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.1.0.tgz#a39f456823bd6a74e3c86ad25f6fa870428326bf" + integrity sha512-7mz6LopSe+eA6cTFMf10OfLLqRoIPvmMyz5/OnSXnHO7hB0aDP1iIeLWCXzAcYU5eIJVpHr12Bk9yyq2fTW9vg== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" @@ -8515,54 +8566,54 @@ jest-haste-map@^27.0.6: graceful-fs "^4.2.4" jest-regex-util "^27.0.6" jest-serializer "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-util "^27.1.0" + jest-worker "^27.1.0" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" - integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== +jest-jasmine2@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.1.0.tgz#324a3de0b2ee20d238b2b5b844acc4571331a206" + integrity sha512-Z/NIt0wBDg3przOW2FCWtYjMn3Ip68t0SL60agD/e67jlhTyV3PIF8IzT9ecwqFbeuUSO2OT8WeJgHcalDGFzQ== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.0.6" + "@jest/environment" "^27.1.0" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.0.6" + expect "^27.1.0" is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" + jest-each "^27.1.0" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" + jest-runtime "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + pretty-format "^27.1.0" throat "^6.0.1" -jest-leak-detector@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" - integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== +jest-leak-detector@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.1.0.tgz#fe7eb633c851e06280ec4dd248067fe232c00a79" + integrity sha512-oHvSkz1E80VyeTKBvZNnw576qU+cVqRXUD3/wKXh1zpaki47Qty2xeHg2HKie9Hqcd2l4XwircgNOWb/NiGqdA== dependencies: jest-get-type "^27.0.6" - pretty-format "^27.0.6" + pretty-format "^27.1.0" -jest-matcher-utils@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" - integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== +jest-matcher-utils@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.1.0.tgz#68afda0885db1f0b9472ce98dc4c535080785301" + integrity sha512-VmAudus2P6Yt/JVBRdTPFhUzlIN8DYJd+et5Rd9QDsO/Z82Z4iwGjo43U8Z+PTiz8CBvKvlb6Fh3oKy39hykkQ== dependencies: chalk "^4.0.0" - jest-diff "^27.0.6" + jest-diff "^27.1.0" jest-get-type "^27.0.6" - pretty-format "^27.0.6" + pretty-format "^27.1.0" jest-message-util@^27.0.6: version "27.0.6" @@ -8579,12 +8630,27 @@ jest-message-util@^27.0.6: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" - integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== +jest-message-util@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.1.0.tgz#e77692c84945d1d10ef00afdfd3d2c20bd8fb468" + integrity sha512-Eck8NFnJ5Sg36R9XguD65cf2D5+McC+NF5GIdEninoabcuoOfWrID5qJhufq5FB0DRKoiyxB61hS7MKoMD0trQ== dependencies: - "@jest/types" "^27.0.6" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.1.0" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.1.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.1.0.tgz#7ca6e4d09375c071661642d1c14c4711f3ab4b4f" + integrity sha512-iT3/Yhu7DwAg/0HvvLCqLvrTKTRMyJlrrfJYWzuLSf9RCAxBoIXN3HoymZxMnYsC3eD8ewGbUa9jUknwBenx2w== + dependencies: + "@jest/types" "^27.1.0" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -8602,86 +8668,88 @@ jest-regex-util@^27.0.0, jest-regex-util@^27.0.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" - integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== +jest-resolve-dependencies@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.0.tgz#d32ea4a2c82f76410f6157d0ec6cde24fbff2317" + integrity sha512-Kq5XuDAELuBnrERrjFYEzu/A+i2W7l9HnPWqZEeKGEQ7m1R+6ndMbdXCVCx29Se1qwLZLgvoXwinB3SPIaitMQ== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" jest-regex-util "^27.0.6" - jest-snapshot "^27.0.6" + jest-snapshot "^27.1.0" -jest-resolve@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" - integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== +jest-resolve@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.1.0.tgz#bb22303c9e240cccdda28562e3c6fbcc6a23ac86" + integrity sha512-TXvzrLyPg0vLOwcWX38ZGYeEztSEmW+cQQKqc4HKDUwun31wsBXwotRlUz4/AYU/Fq4GhbMd/ileIWZEtcdmIA== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" chalk "^4.0.0" escalade "^3.1.1" graceful-fs "^4.2.4" + jest-haste-map "^27.1.0" jest-pnp-resolver "^1.2.2" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-util "^27.1.0" + jest-validate "^27.1.0" resolve "^1.20.0" slash "^3.0.0" -jest-runner@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" - integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== +jest-runner@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.1.0.tgz#1b28d114fb3b67407b8354c9385d47395e8ff83f" + integrity sha512-ZWPKr9M5w5gDplz1KsJ6iRmQaDT/yyAFLf18fKbb/+BLWsR1sCNC2wMT0H7pP3gDcBz0qZ6aJraSYUNAGSJGaw== dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^27.1.0" + "@jest/environment" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" jest-docblock "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-haste-map "^27.0.6" - jest-leak-detector "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runtime "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-environment-jsdom "^27.1.0" + jest-environment-node "^27.1.0" + jest-haste-map "^27.1.0" + jest-leak-detector "^27.1.0" + jest-message-util "^27.1.0" + jest-resolve "^27.1.0" + jest-runtime "^27.1.0" + jest-util "^27.1.0" + jest-worker "^27.1.0" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" - integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== +jest-runtime@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.1.0.tgz#1a98d984ffebc16a0b4f9eaad8ab47c00a750cf5" + integrity sha512-okiR2cpGjY0RkWmUGGado6ETpFOi9oG3yV0CioYdoktkVxy5Hv0WRLWnJFuArSYS8cHMCNcceUUMGiIfgxCO9A== dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/globals" "^27.0.6" + "@jest/console" "^27.1.0" + "@jest/environment" "^27.1.0" + "@jest/fake-timers" "^27.1.0" + "@jest/globals" "^27.1.0" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" "@types/yargs" "^16.0.0" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" + execa "^5.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" + jest-haste-map "^27.1.0" + jest-message-util "^27.1.0" + jest-mock "^27.1.0" jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-resolve "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" slash "^3.0.0" strip-bom "^4.0.0" yargs "^16.0.3" @@ -8702,10 +8770,10 @@ jest-serializer@^27.0.6: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" - integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== +jest-snapshot@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.1.0.tgz#2a063ab90064017a7e9302528be7eaea6da12d17" + integrity sha512-eaeUBoEjuuRwmiRI51oTldUsKOohB1F6fPqWKKILuDi/CStxzp2IWekVUXbuHHoz5ik33ioJhshiHpgPFbYgcA== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -8713,23 +8781,23 @@ jest-snapshot@^27.0.6: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.0.6" + expect "^27.1.0" graceful-fs "^4.2.4" - jest-diff "^27.0.6" + jest-diff "^27.1.0" jest-get-type "^27.0.6" - jest-haste-map "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" + jest-haste-map "^27.1.0" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" + jest-resolve "^27.1.0" + jest-util "^27.1.0" natural-compare "^1.4.0" - pretty-format "^27.0.6" + pretty-format "^27.1.0" semver "^7.3.2" jest-util@^26.6.2: @@ -8756,17 +8824,29 @@ jest-util@^27.0.0, jest-util@^27.0.6: is-ci "^3.0.0" picomatch "^2.2.3" -jest-validate@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" - integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== +jest-util@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.1.0.tgz#06a53777a8cb7e4940ca8e20bf9c67dd65d9bd68" + integrity sha512-edSLD2OneYDKC6gZM1yc+wY/877s/fuJNoM1k3sOEpzFyeptSmke3SLnk1dDHk9CgTA+58mnfx3ew3J11Kes/w== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^27.1.0" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + picomatch "^2.2.3" + +jest-validate@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.1.0.tgz#d9e82024c5e3f5cef52a600cfc456793a84c0998" + integrity sha512-QiJ+4XuSuMsfPi9zvdO//IrSRSlG6ybJhOpuqYSsuuaABaNT84h0IoD6vvQhThBOKT+DIKvl5sTM0l6is9+SRA== + dependencies: + "@jest/types" "^27.1.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^27.0.6" leven "^3.1.0" - pretty-format "^27.0.6" + pretty-format "^27.1.0" jest-watch-typeahead@^0.6.4: version "0.6.4" @@ -8781,7 +8861,7 @@ jest-watch-typeahead@^0.6.4: string-length "^4.0.1" strip-ansi "^6.0.0" -jest-watcher@^27.0.0, jest-watcher@^27.0.6: +jest-watcher@^27.0.0: version "27.0.6" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== @@ -8794,6 +8874,19 @@ jest-watcher@^27.0.0, jest-watcher@^27.0.6: jest-util "^27.0.6" string-length "^4.0.1" +jest-watcher@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.1.0.tgz#2511fcddb0e969a400f3d1daa74265f93f13ce93" + integrity sha512-ivaWTrA46aHWdgPDgPypSHiNQjyKnLBpUIHeBaGg11U+pDzZpkffGlcB1l1a014phmG0mHgkOHtOgiqJQM6yKQ== + dependencies: + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.1.0" + string-length "^4.0.1" + jest-worker@^26.2.1, jest-worker@^26.5.0, jest-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -8803,23 +8896,23 @@ jest-worker@^26.2.1, jest-worker@^26.5.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" - integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== +jest-worker@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.1.0.tgz#65f4a88e37148ed984ba8ca8492d6b376938c0aa" + integrity sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" - integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== +jest@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.1.0.tgz#eaab62dfdc02d8b7c814cd27b8d2d92bc46d3d69" + integrity sha512-pSQDVwRSwb109Ss13lcMtdfS9r8/w2Zz8+mTUA9VORD66GflCdl8nUFCqM96geOD2EBwWCNURrNAfQsLIDNBdg== dependencies: - "@jest/core" "^27.0.6" + "@jest/core" "^27.1.0" import-local "^3.0.2" - jest-cli "^27.0.6" + jest-cli "^27.1.0" js-string-escape@^1.0.1: version "1.0.1" @@ -9663,11 +9756,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -9675,6 +9763,11 @@ mkdirp@^0.5.1, mkdirp@^0.5.3: dependencies: minimist "^1.2.5" +mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mobx-react-lite@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz#331d7365a6b053378dfe9c087315b4e41c5df69f" @@ -10039,7 +10132,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.3, object.values@^1.1.4: +object.values@^1.1.0, object.values@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== @@ -10952,6 +11045,16 @@ pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.0.6: ansi-styles "^5.0.0" react-is "^17.0.1" +pretty-format@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.1.0.tgz#022f3fdb19121e0a2612f3cff8d724431461b9ca" + integrity sha512-4aGaud3w3rxAO6OXmK3fwBFQ0bctIOG3/if+jYEFGNGIs0EvuidQm3bZ9mlP2/t9epLNC/12czabfy7TZNSwVA== + dependencies: + "@jest/types" "^27.1.0" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -11496,7 +11599,7 @@ rc-tree@^4.0.0, rc-tree@~4.2.1: rc-util "^5.0.0" rc-virtual-list "^3.0.1" -rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.1: +rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2: version "5.2.9" resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.2.9.tgz#795a787d2b038347dcde27b89a4a5cec8fc40f3e" integrity sha512-0Bxsh2Xe+etejMn73am+jZBcOpsueAZiEKLiGoDfA0fvm/JHLNOiiww3zJ0qgyPOTmbYxhsxFcGOZu+VcbaZhQ== @@ -11507,6 +11610,17 @@ rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.1: rc-motion "^2.0.0" rc-util "^5.5.0" +rc-trigger@^5.2.10: + version "5.2.10" + resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.2.10.tgz#8a0057a940b1b9027eaa33beec8a6ecd85cce2b1" + integrity sha512-FkUf4H9BOFDaIwu42fvRycXMAvkttph9AlbCZXssZDVzz2L+QZ0ERvfB/4nX3ZFPh1Zd+uVGr1DEDeXxq4J1TA== + dependencies: + "@babel/runtime" "^7.11.2" + classnames "^2.2.6" + rc-align "^4.0.0" + rc-motion "^2.0.0" + rc-util "^5.5.0" + rc-upload@~4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.1.tgz#d6ee66b8bd1e1dd2f78526c486538423f7e7ed84" @@ -12294,10 +12408,10 @@ rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^2.56.2: - version "2.56.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.2.tgz#a045ff3f6af53ee009b5f5016ca3da0329e5470f" - integrity sha512-s8H00ZsRi29M2/lGdm1u8DJpJ9ML8SUOpVVBd33XNeEeL3NVaTiUcSBHzBdF3eAyR0l7VSpsuoVUGrRHq7aPwQ== +rollup@^2.56.3: + version "2.56.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.3.tgz#b63edadd9851b0d618a6d0e6af8201955a77aeff" + integrity sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg== optionalDependencies: fsevents "~2.3.2" @@ -13549,19 +13663,17 @@ ts-essentials@^2.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== -ts-jest@^27.0.4: - version "27.0.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.4.tgz#df49683535831560ccb58f94c023d831b1b80df0" - integrity sha512-c4E1ECy9Xz2WGfTMyHbSaArlIva7Wi2p43QOMmCqjSSjHP06KXv+aT+eSY+yZMuqsMi3k7pyGsGj2q5oSl5WfQ== +ts-jest@^27.0.5: + version "27.0.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" + integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== dependencies: bs-logger "0.x" - buffer-from "1.x" fast-json-stable-stringify "2.x" jest-util "^27.0.0" json5 "2.x" lodash "4.x" make-error "1.x" - mkdirp "1.x" semver "7.x" yargs-parser "20.x" @@ -13570,6 +13682,16 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== +tsconfig-paths@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tsconfig-paths@^3.9.0: version "3.9.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" From 0b64a341a801577a61c73dc93e5ba69141737505 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 1 Sep 2021 00:57:28 +0300 Subject: [PATCH 7/8] [fix] GH-7 Compare by id MST references --- src/Form.tsx | 10 ++++++++-- src/util/ContextToProps.tsx | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Form.tsx b/src/Form.tsx index 3ef7415..5d1b826 100644 --- a/src/Form.tsx +++ b/src/Form.tsx @@ -87,13 +87,19 @@ export function createViewDescrElementIri(viewKindElementIri: string): string { return viewKindElementIri + '_' + uuid62.v4(); } +export function compareByIri(iri1: string | any, iri2: string | any): boolean { + if (typeof iri1 === 'object') iri1 = iri1['@id']; + if (typeof iri2 === 'object') iri2 = iri2['@id']; + return iri1 === iri2; +} + export const processViewKindOverride = ( props: { viewKindElement: IViewKindElement; viewDescr: IViewDescr }, store: any, ): [string, string, string, string, IViewKindElement, IViewDescrElement | undefined] => { const { viewKindElement, viewDescr } = props; // if ViewElement extend-override exists - const viewDescrElement = viewDescr.elements?.find((el) => el['@parent'] === viewKindElement['@id']); + const viewDescrElement = viewDescr.elements?.find((el) => compareByIri(el['@parent'], viewKindElement['@id'])); const id = viewDescrElement ? viewDescrElement['@id'] : createViewDescrElementIri(viewKindElement['@id']); const [collIri, inCollPath] = viewKindElement.resultsScope?.split('/') || []; @@ -102,7 +108,7 @@ export const processViewKindOverride = ( if (collIriOverride) { // if CollConstr extend-override exists switch to extCollConstr if (viewDescr.collsConstrs) { - const extCollConstr = viewDescr.collsConstrs?.find((el) => el['@parent'] === collIri); + const extCollConstr = viewDescr.collsConstrs?.find((el) => compareByIri(el['@parent'], collIri)); if (extCollConstr) { collIriOverride = extCollConstr['@id'] || ''; } diff --git a/src/util/ContextToProps.tsx b/src/util/ContextToProps.tsx index d71e301..9d754e1 100644 --- a/src/util/ContextToProps.tsx +++ b/src/util/ContextToProps.tsx @@ -17,7 +17,7 @@ import { observer } from 'mobx-react-lite'; import { createLabelDescriptionFrom } from './label'; import { LayoutComponent } from '../layouts/LayoutComponent'; import { IViewKindElement, IViewKind } from '../models/uischema'; -import { ControlComponent, processViewKindOverride, RenderProps } from '../Form'; +import { compareByIri, ControlComponent, processViewKindOverride, RenderProps } from '../Form'; //import { FilterType } from '../complex/Query'; import { validators } from '../validation'; import { MstContext } from '../MstContext'; @@ -464,7 +464,7 @@ export const withStoreToArrayProps = (Component: any): any => let targetData: any = null; if (targetIri) { if (viewDescr.collsConstrs) { - const extCollConstr = viewDescr.collsConstrs?.find((el) => el['@parent'] === targetIri); + const extCollConstr = viewDescr.collsConstrs?.find((el: any) => compareByIri(el['@parent'], targetIri)); if (extCollConstr) { targetIri = extCollConstr['@id'] || ''; } @@ -491,7 +491,7 @@ export const withStoreToArrayProps = (Component: any): any => }; const onDeleteRows = (del: any) => { if (data) { - const newData = data.filter((el) => del.filter((e) => e['@id'] === el['@id']).length === 0); + const newData = data.filter((el: any) => del.filter((e: any) => e['@id'] === el['@id']).length === 0); applySnapshot(coll?.data, newData); } }; From 731ec96afc640ad1ba76469c5d4531badb73e743 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sat, 4 Sep 2021 13:28:44 +0300 Subject: [PATCH 8/8] [upd] client 5.0.0-rc.11 and others --- .gitignore | 1 - package.json | 38 +- src/Form.tsx | 17 +- src/models/MstViewDescr.ts | 63 ++- stories/AntdCardCell.stories.tsx | 2 +- stories/TreeAndForm.stories.tsx | 28 +- yarn.lock | 831 +++++++++++++++++-------------- 7 files changed, 535 insertions(+), 445 deletions(-) diff --git a/.gitignore b/.gitignore index 13e9fba..8c443aa 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ /coverage # production -/dist /es /lib diff --git a/package.json b/package.json index 7bb146f..da747ab 100644 --- a/package.json +++ b/package.json @@ -50,21 +50,21 @@ "lint-staged": "lint-staged" }, "peerDependencies": { - "@agentlab/sparql-jsld-client": ">=5.0.0-rc.10", + "@agentlab/sparql-jsld-client": ">=5.0.0-rc.11", "@ant-design/icons": ">=4.6.4", "@tinymce/tinymce-react": ">=3.12.6", "antd": ">=4.16.13", "history": ">=5.0.1", "lodash-es": ">=4.17.21", - "mobx": ">=6.3.2", - "mobx-react-lite": ">=3.2.0", + "mobx": ">=6.3.3", + "mobx-react-lite": ">=3.2.1", "mobx-state-tree": ">=5.0.2", "moment": ">=2.29.1", "react": ">=17.0.2", "react-dom": ">=17.0.2", "react-error-boundary": ">=3.1.3", - "react-router": ">=6.0.0-beta.0", - "react-router-dom": ">=6.0.0-beta.0", + "react-router": ">=6.0.0-beta.3", + "react-router-dom": ">=6.0.0-beta.3", "react-virtualized": ">=9.22.3", "rc-util": ">=5.13.2", "react-split-pane": ">=2.0.3", @@ -73,7 +73,7 @@ "uuid62": ">=1.0.1" }, "dependencies": { - "@agentlab/sparql-jsld-client": "^5.0.0-rc.10", + "@agentlab/sparql-jsld-client": "^5.0.0-rc.11", "@ant-design/icons": "^4.6.4", "@tinymce/tinymce-react": "^3.12.6", "@types/react": "^17.0.19", @@ -84,15 +84,15 @@ "@types/tinymce": "^4.6.4", "antd": "^4.16.13", "history": "^5.0.1", - "mobx-react-lite": "^3.2.0", + "mobx-react-lite": "^3.2.1", "mst-middlewares": "^5.0.2", "react": "^17.0.2", "react-is": "^17.0.2", "react-dom": "^17.0.2", "react-error-boundary": "^3.1.3", "react-redux": "^7.2.4", - "react-router": "^6.0.0-beta.0", - "react-router-dom": "^6.0.0-beta.0", + "react-router": "^6.0.0-beta.3", + "react-router-dom": "^6.0.0-beta.3", "react-virtualized": "^9.22.3", "redux": "^4.1.1", "remotedev": "^0.2.9", @@ -101,32 +101,32 @@ "uri-js": "^4.4.1" }, "devDependencies": { - "@babel/core": "^7.15.0", + "@babel/core": "^7.15.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-typescript": "^8.2.5", - "@storybook/addon-actions": "^6.3.7", - "@storybook/addon-essentials": "^6.3.7", - "@storybook/addon-links": "^6.3.7", - "@storybook/addons": "^6.3.7", - "@storybook/node-logger": "^6.3.7", + "@storybook/addon-actions": "^6.3.8", + "@storybook/addon-essentials": "^6.3.8", + "@storybook/addon-links": "^6.3.8", + "@storybook/addons": "^6.3.8", + "@storybook/node-logger": "^6.3.8", "@storybook/preset-ant-design": "^0.0.2", "@storybook/preset-scss": "^1.0.3", - "@storybook/react": "^6.3.7", + "@storybook/react": "^6.3.8", "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^12.0.0", "@testing-library/user-event": "^13.2.1", "@types/jest": "^27.0.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", - "autoprefixer": "^10.3.1", + "autoprefixer": "^10.3.4", "babel-loader": "^8.2.2", "cross-env": "^7.0.3", "cssnano": "^5.0.7", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-config-react-app": "^6.0.0", - "eslint-plugin-flowtype": "^5.9.1", + "eslint-plugin-flowtype": "^5.9.2", "eslint-plugin-import": "^2.24.2", "eslint-plugin-jest": "^24.4.0", "eslint-plugin-jsx-a11y": "^6.4.1", @@ -137,8 +137,8 @@ "jest": "^27.1.0", "jest-watch-typeahead": "^0.6.4", "lint-staged": "^11.1.2", - "prettier": "^2.3.2", "postcss": "^8.3.6", + "prettier": "^2.3.2", "rimraf": "^3.0.2", "rollup": "^2.56.3", "rollup-plugin-babel": "^4.4.0", diff --git a/src/Form.tsx b/src/Form.tsx index 5d1b826..03b2be7 100644 --- a/src/Form.tsx +++ b/src/Form.tsx @@ -83,13 +83,20 @@ export interface DispatchCellProps extends RenderProps { [key: string]: any; } +export function mstJsonLdIds(o: any) { + if (o) return { '@id': o['@id'], '@type': o['@type'] }; + else return undefined; +} + export function createViewDescrElementIri(viewKindElementIri: string): string { return viewKindElementIri + '_' + uuid62.v4(); } export function compareByIri(iri1: string | any, iri2: string | any): boolean { + console.log('compareByIri - raw', { iri1, iri2 }); if (typeof iri1 === 'object') iri1 = iri1['@id']; if (typeof iri2 === 'object') iri2 = iri2['@id']; + console.log('compareByIri - norm', { iri1, iri2 }); return iri1 === iri2; } @@ -99,7 +106,14 @@ export const processViewKindOverride = ( ): [string, string, string, string, IViewKindElement, IViewDescrElement | undefined] => { const { viewKindElement, viewDescr } = props; // if ViewElement extend-override exists - const viewDescrElement = viewDescr.elements?.find((el) => compareByIri(el['@parent'], viewKindElement['@id'])); + const viewDescrElement = viewDescr.elements?.find((el) => { + console.log('processViewKindOverride', { + el: mstJsonLdIds(el), + el_parent: mstJsonLdIds(el['@parent']), + viewKindElement: mstJsonLdIds(viewKindElement), + }); + return compareByIri(el['@parent'], viewKindElement['@id']); + }); const id = viewDescrElement ? viewDescrElement['@id'] : createViewDescrElementIri(viewKindElement['@id']); const [collIri, inCollPath] = viewKindElement.resultsScope?.split('/') || []; @@ -188,6 +202,7 @@ export const Form = observer((props) => { } const { viewDescrId, viewDescrCollId } = props; + console.log('Form', { viewDescrId, viewDescrCollId }); const collWithViewDescrsObs = store.getColl(viewDescrCollId); if (!collWithViewDescrsObs) { diff --git a/src/models/MstViewDescr.ts b/src/models/MstViewDescr.ts index 18e2e46..e752324 100644 --- a/src/models/MstViewDescr.ts +++ b/src/models/MstViewDescr.ts @@ -8,21 +8,13 @@ * SPDX-License-Identifier: GPL-3.0-only ********************************************************************************/ import { reaction } from 'mobx'; -import { - getParent, - getRoot, - IAnyComplexType, - IAnyModelType, - IAnyStateTreeNode, - IAnyType, - SnapshotIn, - types, -} from 'mobx-state-tree'; +import { getParent, getRoot, IAnyComplexType, IAnyStateTreeNode, IAnyType, SnapshotIn, types } from 'mobx-state-tree'; import { arrDiff, CollState, createModelFromState, + getMstLiteralPropValue, MstCollConstr, MstJsObject, MstModels, @@ -53,9 +45,14 @@ export const MstViewKindElement = types.model('MstViewKindElement', { const mstViewKindSchemas: MstModels = {}; -export function registerMstViewKindSchema(id: string, t: IAnyComplexType): void { - console.log('register mstViewKindSchema', { id, t }); - mstViewKindSchemas[id] = t; +export function registerMstViewKindSchema(mstModel: IAnyComplexType): void { + const id = getMstLiteralPropValue(mstModel as any, '@type'); + if (id) { + console.log('register mstViewKindSchema', { id, mstModel }); + mstViewKindSchemas[id] = mstModel; + } else { + console.log('cannot register mstViewKindSchema', { mstModel }); + } } export function unregisterMstViewKindSchema(id: string): IAnyComplexType { @@ -70,11 +67,14 @@ export const MstViewKindDataType = types.union( if (snapshot) { const mstModel = mstViewKindSchemas[snapshot['@type']]; if (mstModel) { - //console.log('ViewKindDataType, create mstModel for', snapshot['@id'], mstModel.name); + console.log('ViewKindDataType, create mstModel for', { + snapshotId: snapshot['@id'], + mstModelName: mstModel.name, + }); return mstModel; } } - //console.log('ViewKindDataType, create ViewKindElement for', snapshot['@id']); + console.log('ViewKindDataType, create ViewKindElement for', snapshot['@id']); return MstViewKindElement; }, }, @@ -85,9 +85,9 @@ export const MstViewKindDataType = types.union( * View Kind, which could be persisted in DB */ export const MstViewKind = types - .model('MstViewKind', { + .model('aldkg:ViewKind', { '@id': types.identifier, // JSON-LD object id of a viewKind - '@type': types.string, // JSON-LD class id of a View + '@type': types.literal('aldkg:ViewKind'), // JSON-LD class id of a View title: types.maybe(types.string), // mandatory title description: types.maybe(types.string), @@ -143,7 +143,8 @@ export type IViewKindSnapshotIn = SnapshotIn; export const MstViewDescrElement = types.model('MstViewDescrElement', { '@id': types.identifier, // JSON-LD object id '@type': types.string, //types.union(types.literal('aldkg:ViewElement'), types.literal('aldkg:DiagramEditor')), // JSON-LD class id of a View - '@parent': types.safeReference(types.late((): IAnyModelType => MstViewKindElement)), + '@parent': types.maybe(types.string), + //'@parent': types.union(types.reference(types.late((): IAnyType => MstViewKindDataType)), types.undefined), title: types.maybe(types.union(types.string, MstJsObject)), description: types.maybe(types.union(types.string, MstJsObject)), @@ -160,9 +161,14 @@ export const MstViewDescrElement = types.model('MstViewDescrElement', { const mstViewDescrSchemas: MstModels = {}; -export function registerMstViewDescrSchema(id: string, t: IAnyComplexType): void { - console.log('register mstViewDescrSchema', { id, t }); - mstViewDescrSchemas[id] = t; +export function registerMstViewDescrSchema(mstModel: IAnyComplexType): void { + const id = getMstLiteralPropValue(mstModel as any, '@type'); + if (id) { + console.log('register mstViewDescrSchema', { id, mstModel }); + mstViewDescrSchemas[id] = mstModel; + } else { + console.log('cannot register mstViewDescrSchema', { mstModel }); + } } export function unregisterMstViewDescrSchema(id: string): IAnyComplexType { @@ -177,11 +183,14 @@ export const MstViewDescrDataType = types.union( if (snapshot) { const mstModel = mstViewDescrSchemas[snapshot['@type']]; if (mstModel) { - //console.log('ViewDescrDataType, create mstModel for', snapshot['@id'], mstModel.name); + console.log('ViewDescrDataType, create mstModel for', { + snapshotId: snapshot['@id'], + mstModelName: mstModel.name, + }); return mstModel; } } - //console.log('ViewDescrDataType, create ViewDescrElement for', snapshot['@id']); + console.log('ViewDescrDataType, create ViewDescrElement for', snapshot['@id']); return MstViewDescrElement; }, }, @@ -192,9 +201,9 @@ export const MstViewDescrDataType = types.union( * View Description, which could be persisted in DB */ export const MstViewDescr = types - .model('MstViewDescr', { + .model('aldkg:ViewDescr', { '@id': types.identifier, // JSON-LD object id of a viewKind - '@type': types.string, // JSON-LD class id of a View + '@type': types.literal('aldkg:ViewDescr'), // JSON-LD class id of a View viewKind: types.safeReference(MstViewKind), title: types.maybe(types.string), // mandatory title @@ -250,7 +259,7 @@ export const createUiModelFromState = ( initialState: any, additionalColls: CollState[] | undefined = undefined, ): any => { - registerMstCollSchema('aldkg:ViewKind', MstViewKind); - registerMstCollSchema('aldkg:ViewDescr', MstViewDescr); + registerMstCollSchema(MstViewKind); + registerMstCollSchema(MstViewDescr); return createModelFromState(repId, client, initialState, additionalColls); }; diff --git a/stories/AntdCardCell.stories.tsx b/stories/AntdCardCell.stories.tsx index 6a8c2da..c07248b 100644 --- a/stories/AntdCardCell.stories.tsx +++ b/stories/AntdCardCell.stories.tsx @@ -302,7 +302,7 @@ export default { } as Meta; export const Empty: Story<{}> = () => { - registerMstViewKindSchema('aldkg:VerticalLayout', MstVerticalLayout); + registerMstViewKindSchema(MstVerticalLayout); const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); diff --git a/stories/TreeAndForm.stories.tsx b/stories/TreeAndForm.stories.tsx index 541567c..4470469 100644 --- a/stories/TreeAndForm.stories.tsx +++ b/stories/TreeAndForm.stories.tsx @@ -372,33 +372,13 @@ export default { }, } as Meta; -class SparqlClientImpl2 extends SparqlClientImpl { - async loadNs() { - const url = 'https://rdf4j.agentlab.ru/rdf4j-server/repositories/mktp/namespaces'; - const response = await sendGet(url); - if (response.status < 200 && response.status > 204) return Promise.reject('Cannot get namespaces'); - const ns: JsStrObj = {}; - //console.debug('response.data', response.data); - if (response.data && response.data.results) { - let results: Results = { bindings: [] }; - results = response.data.results; - if (results) { - results.bindings.forEach((b) => { - if (b.prefix && b.namespace && b.prefix.value && b.namespace.value) { - ns[b.prefix.value] = b.namespace.value; - } - }); - } - } - ns['sesame'] = 'http://www.openrdf.org/schema/sesame#'; - return ns; - } -} - export const Empty: Story<{}> = () => { //const client = new SparqlClientImpl('https://rdf4j.agentlab.ru/rdf4j-server'); //const rootStore = createUiModelFromState('mktp', client, rootModelInitialState, additionalColls); - const client = new SparqlClientImpl2('https://rdf4j.agentlab.ru/rdf4j-server'); + const client = new SparqlClientImpl( + 'https://rdf4j.agentlab.ru/rdf4j-server', + 'https://rdf4j.agentlab.ru/rdf4j-server/repositories/mktp/namespaces', + ); const rootStore = createUiModelFromState('mktp-fed', client, rootModelInitialState, additionalColls); const store: any = asReduxStore(rootStore); // eslint-disable-next-line @typescript-eslint/no-var-requires diff --git a/yarn.lock b/yarn.lock index 945480a..6fb331f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@agentlab/sparql-jsld-client@^5.0.0-rc.10": - version "5.0.0-rc.10" - resolved "https://registry.yarnpkg.com/@agentlab/sparql-jsld-client/-/sparql-jsld-client-5.0.0-rc.10.tgz#767984028595ff895866ae05449ac332b010405c" - integrity sha512-SdqyGGyLDznrD/gI0JDVmG3wXqEfysAYNxOTnfrq3RlExGxo2mxO4QhGjf3eeaEAPKc3/ci8s841xLB1ldv9Gw== +"@agentlab/sparql-jsld-client@^5.0.0-rc.11": + version "5.0.0-rc.11" + resolved "https://registry.yarnpkg.com/@agentlab/sparql-jsld-client/-/sparql-jsld-client-5.0.0-rc.11.tgz#62c91ea8c79403cf5ac33eeac4c750e9849ada5b" + integrity sha512-F627RbXiAKZxPPekKGykzA9/I3CpQEgFgIjGIqs52tW4A6lKYeKJjYJaa5IObhJcdx4AeThGpP+jqqGGPJk/Vg== dependencies: "@rdfjs/data-model" "^1.3.3" "@types/json-schema" "^7.0.9" @@ -16,11 +16,11 @@ is-url "^1.2.4" jsonld "^5.2.0" lodash-es "^4.17.21" - mobx "^6.3.2" + mobx "^6.3.3" mobx-state-tree "^5.0.2" moment "^2.29.1" rdf-literal "^1.3.0" - sparqljs "^3.4.2" + sparqljs "^3.4.3" utility-types "^3.10.0" uuid62 "^1.0.1" @@ -132,20 +132,20 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" - integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== +"@babel/core@^7.15.5": + version "7.15.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9" + integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.15.0" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/generator" "^7.15.4" + "@babel/helper-compilation-targets" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.4" + "@babel/helpers" "^7.15.4" + "@babel/parser" "^7.15.5" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -162,12 +162,12 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== +"@babel/generator@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" + integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.15.4" jsesc "^2.5.1" source-map "^0.5.0" @@ -196,10 +196,10 @@ browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" - integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== +"@babel/helper-compilation-targets@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9" + integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-validator-option" "^7.14.5" @@ -270,6 +270,15 @@ "@babel/template" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/helper-function-name@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc" + integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== + dependencies: + "@babel/helper-get-function-arity" "^7.15.4" + "@babel/template" "^7.15.4" + "@babel/types" "^7.15.4" + "@babel/helper-get-function-arity@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" @@ -277,6 +286,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-get-function-arity@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b" + integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA== + dependencies: + "@babel/types" "^7.15.4" + "@babel/helper-hoist-variables@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" @@ -284,6 +300,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-hoist-variables@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df" + integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA== + dependencies: + "@babel/types" "^7.15.4" + "@babel/helper-member-expression-to-functions@^7.14.5": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" @@ -291,12 +314,12 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-member-expression-to-functions@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" - integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== +"@babel/helper-member-expression-to-functions@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef" + integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA== dependencies: - "@babel/types" "^7.15.0" + "@babel/types" "^7.15.4" "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": version "7.14.5" @@ -305,6 +328,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-module-imports@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" + integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== + dependencies: + "@babel/types" "^7.15.4" + "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" @@ -319,19 +349,19 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-module-transforms@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" - integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== +"@babel/helper-module-transforms@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz#962cc629a7f7f9a082dd62d0307fa75fe8788d7c" + integrity sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-simple-access" "^7.14.8" - "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-module-imports" "^7.15.4" + "@babel/helper-replace-supers" "^7.15.4" + "@babel/helper-simple-access" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" "@babel/helper-validator-identifier" "^7.14.9" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" @@ -340,6 +370,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-optimise-call-expression@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171" + integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw== + dependencies: + "@babel/types" "^7.15.4" + "@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" @@ -369,15 +406,15 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helper-replace-supers@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" - integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== +"@babel/helper-replace-supers@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" + integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/helper-member-expression-to-functions" "^7.15.4" + "@babel/helper-optimise-call-expression" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" "@babel/helper-simple-access@^7.14.5": version "7.14.5" @@ -386,12 +423,12 @@ dependencies: "@babel/types" "^7.14.5" -"@babel/helper-simple-access@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" - integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== +"@babel/helper-simple-access@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b" + integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg== dependencies: - "@babel/types" "^7.14.8" + "@babel/types" "^7.15.4" "@babel/helper-skip-transparent-expression-wrappers@^7.14.5": version "7.14.5" @@ -407,6 +444,13 @@ dependencies: "@babel/types" "^7.14.5" +"@babel/helper-split-export-declaration@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" + integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== + dependencies: + "@babel/types" "^7.15.4" + "@babel/helper-validator-identifier@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" @@ -441,14 +485,14 @@ "@babel/traverse" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/helpers@^7.14.8": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" - integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== +"@babel/helpers@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" + integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== dependencies: - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" @@ -464,10 +508,15 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== -"@babel/parser@^7.15.0": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" - integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== +"@babel/parser@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.4.tgz#02f2931b822512d3aad17d475ae83da74a255a84" + integrity sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w== + +"@babel/parser@^7.15.5": + version "7.15.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.5.tgz#d33a58ca69facc05b26adfe4abebfed56c1c2dac" + integrity sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": version "7.14.5" @@ -1239,6 +1288,15 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/template@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194" + integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" + "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.7.2": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" @@ -1254,18 +1312,18 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== +"@babel/traverse@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" + integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== dependencies: "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.15.0" - "@babel/types" "^7.15.0" + "@babel/generator" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" debug "^4.1.0" globals "^11.1.0" @@ -1277,10 +1335,10 @@ "@babel/helper-validator-identifier" "^7.14.5" to-fast-properties "^2.0.0" -"@babel/types@^7.14.8", "@babel/types@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" - integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== +"@babel/types@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.4.tgz#74eeb86dbd6748d2741396557b9860e57fce0a0d" + integrity sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw== dependencies: "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" @@ -1317,6 +1375,11 @@ ky "^0.25.1" ky-universal "^0.8.2" +"@discoveryjs/json-ext@^0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" + integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== + "@emotion/cache@^10.0.27": version "10.0.29" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" @@ -1881,17 +1944,17 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@storybook/addon-actions@6.3.7", "@storybook/addon-actions@^6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.3.7.tgz#b25434972bef351aceb3f7ec6fd66e210f256aac" - integrity sha512-CEAmztbVt47Gw1o6Iw0VP20tuvISCEKk9CS/rCjHtb4ubby6+j/bkp3pkEUQIbyLdHiLWFMz0ZJdyA/U6T6jCw== - dependencies: - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/client-api" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/core-events" "6.3.7" - "@storybook/theming" "6.3.7" +"@storybook/addon-actions@6.3.8", "@storybook/addon-actions@^6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.3.8.tgz#85e342c30b3118a7885a5cf0ea83c3bb03a18558" + integrity sha512-Z6nnxD+pFZ9W/WL8A+53OTTGdRHybdomEgsMaETW4AoNjTOpFu1zY66ah7ENXcQkTT+SuY7yediwxwaGuL1H+g== + dependencies: + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/client-api" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/core-events" "6.3.8" + "@storybook/theming" "6.3.8" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -1904,17 +1967,17 @@ util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-backgrounds@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.3.7.tgz#b8ed464cf1000f77678570912640972c74129a2e" - integrity sha512-NH95pDNILgCXeegbckG+P3zxT5SPmgkAq29P+e3gX7YBOTc6885YCFMJLFpuDMwW4lA0ovXosp4PaUHLsBnLDg== - dependencies: - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/core-events" "6.3.7" - "@storybook/theming" "6.3.7" +"@storybook/addon-backgrounds@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.3.8.tgz#36e009c4af0406e1280a7b6b691fa7666ff8cd50" + integrity sha512-HxyeNfaJi5E0wfCxQhooT6OKEWRU+ukw80nvkuvlM9vuGoxHE4mVCa7oBFk6Ftjwev6njES1c/u8EpuqbRYeZg== + dependencies: + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/core-events" "6.3.8" + "@storybook/theming" "6.3.8" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" @@ -1922,24 +1985,24 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-controls@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.3.7.tgz#ac8fa5ec055f09fd5187998358b5188fed54a528" - integrity sha512-VHOv5XZ0MQ45k6X7AUrMIxGkm7sgIiPwsvajnoeMe7UwS3ngbTb0Q0raLqI/L5jLM/jyQwfpUO9isA6cztGTEQ== - dependencies: - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/client-api" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/node-logger" "6.3.7" - "@storybook/theming" "6.3.7" +"@storybook/addon-controls@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.3.8.tgz#6bf1803d11ec3d95bbc6f806e9c40797dfc9a05d" + integrity sha512-fOG+0gvhX7lbJbt0uqy1C2NCraJalE573/zUmSAwa8PQ3woritdpdn+XpV3H84c5+SpCCptZkBkxlfGLuwI1sw== + dependencies: + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/client-api" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/node-logger" "6.3.8" + "@storybook/theming" "6.3.8" core-js "^3.8.2" ts-dedent "^2.0.0" -"@storybook/addon-docs@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.3.7.tgz#a7b8ff2c0baf85fc9cc1b3d71f481ec40499f3cc" - integrity sha512-cyuyoLuB5ELhbrXgnZneDCHqNq1wSdWZ4dzdHy1E5WwLPEhLlD6INfEsm8gnDIb4IncYuzMhK3XYBDd7d3ijOg== +"@storybook/addon-docs@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.3.8.tgz#14ef3faebecc80e33e29fa6581659311a730ebe8" + integrity sha512-STm2dkX3Cx5w7GMKImujluqXfQxkXnta7TbOzuf49sd04rWpKWiG6KnDFPa6lPvUT8xus3oZedyX3lN2Q2x8bA== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -1950,20 +2013,20 @@ "@mdx-js/loader" "^1.6.22" "@mdx-js/mdx" "^1.6.22" "@mdx-js/react" "^1.6.22" - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/builder-webpack4" "6.3.7" - "@storybook/client-api" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/core" "6.3.7" - "@storybook/core-events" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/builder-webpack4" "6.3.8" + "@storybook/client-api" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/core" "6.3.8" + "@storybook/core-events" "6.3.8" "@storybook/csf" "0.0.1" - "@storybook/csf-tools" "6.3.7" - "@storybook/node-logger" "6.3.7" - "@storybook/postinstall" "6.3.7" - "@storybook/source-loader" "6.3.7" - "@storybook/theming" "6.3.7" + "@storybook/csf-tools" "6.3.8" + "@storybook/node-logger" "6.3.8" + "@storybook/postinstall" "6.3.8" + "@storybook/source-loader" "6.3.8" + "@storybook/theming" "6.3.8" acorn "^7.4.1" acorn-jsx "^5.3.1" acorn-walk "^7.2.0" @@ -1986,36 +2049,36 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-essentials@^6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.3.7.tgz#5af605ab705e938c5b25a7e19daa26e5924fd4e4" - integrity sha512-ZWAW3qMFrrpfSekmCZibp/ivnohFLJdJweiIA0CLnuCNuuK9kQdpFahWdvyBy5NlCj3UJwB7epTZYZyHqYW7UQ== +"@storybook/addon-essentials@^6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.3.8.tgz#1cf54ded8e30fcc1b4b24500c6313f181cfa55b3" + integrity sha512-8PuXH289gjR0MuRKVfSz38i4kYKSZB3p5z1a+IBqqZBXM6Hujlu4zQE0r9u5qOo7KHT5C/SKWCkn9ZBU9+lSUA== dependencies: - "@storybook/addon-actions" "6.3.7" - "@storybook/addon-backgrounds" "6.3.7" - "@storybook/addon-controls" "6.3.7" - "@storybook/addon-docs" "6.3.7" + "@storybook/addon-actions" "6.3.8" + "@storybook/addon-backgrounds" "6.3.8" + "@storybook/addon-controls" "6.3.8" + "@storybook/addon-docs" "6.3.8" "@storybook/addon-measure" "^2.0.0" - "@storybook/addon-toolbars" "6.3.7" - "@storybook/addon-viewport" "6.3.7" - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/node-logger" "6.3.7" + "@storybook/addon-toolbars" "6.3.8" + "@storybook/addon-viewport" "6.3.8" + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/node-logger" "6.3.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" storybook-addon-outline "^1.4.1" ts-dedent "^2.0.0" -"@storybook/addon-links@^6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.3.7.tgz#f273abba6d056794a4aa920b2fa9639136e6747f" - integrity sha512-/8Gq18o1DejP3Om0ZOJRkMzW5FoHqoAmR0pFx4DipmNu5lYy7V3krLw4jW4qja1MuQkZ53MGh08FJOoAc2RZvQ== +"@storybook/addon-links@^6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.3.8.tgz#0a76bbb20c8f322666e0ce3a9c96e6951db5280b" + integrity sha512-NDP9M+IXsN6CmgJXvAqtmJ4jfANd5VLrV9miAp0i2FHhZ1weKZxaRi0usYfq4k3kdjrQnMqMp2cf7KnB51ZNAQ== dependencies: - "@storybook/addons" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/core-events" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/core-events" "6.3.8" "@storybook/csf" "0.0.1" - "@storybook/router" "6.3.7" + "@storybook/router" "6.3.8" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -2029,47 +2092,47 @@ resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-2.0.0.tgz#c40bbe91bacd3f795963dc1ee6ff86be87deeda9" integrity sha512-ZhdT++cX+L9LwjhGYggvYUUVQH/MGn2rwbrAwCMzA/f2QTFvkjxzX8nDgMxIhaLCDC+gHIxfJG2wrWN0jkBr3g== -"@storybook/addon-toolbars@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.3.7.tgz#acd0c9eea7fad056d995a821e34abddd5b065b9b" - integrity sha512-UTIurbl2WXj/jSOj7ndqQ/WtG7kSpGp62T7gwEZTZ+h/3sJn+bixofBD/7+sXa4hWW07YgTXV547DMhzp5bygg== +"@storybook/addon-toolbars@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.3.8.tgz#8ac21e57d8a584055e01381010e4b5ece649c7f4" + integrity sha512-jo9w3/TjYSYapSzTluVJzeeATzxf85KpPA/MjuqHl4MvTA1R7ApckZOsfRDcql6xrGEYUfGjUF6MRIicuxojeg== dependencies: - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/client-api" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/theming" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/client-api" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/theming" "6.3.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" -"@storybook/addon-viewport@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.3.7.tgz#4dc5007e6c8e4d095814c34234429fe889e4014d" - integrity sha512-Hdv2QoVVfe/YuMVQKVVnfCCuEoTqTa8Ck7AOKz31VSAliBFhXewP51oKhw9F6mTyvCozMHX6EBtBzN06KyrPyw== - dependencies: - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/core-events" "6.3.7" - "@storybook/theming" "6.3.7" +"@storybook/addon-viewport@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.3.8.tgz#bd3c1fd8d40faeb23e91e5f911bf254c378a913f" + integrity sha512-aHGg1jWqJdncrB7YuAYIk+T2WLlGhcL/mBHYjIYnUWP4jtilW5QLUVr/kOBB0JlLx1v9hrKMsItJQMAP9jN+mw== + dependencies: + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/core-events" "6.3.8" + "@storybook/theming" "6.3.8" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" prop-types "^15.7.2" regenerator-runtime "^0.13.7" -"@storybook/addons@6.3.7", "@storybook/addons@^6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.3.7.tgz#7c6b8d11b65f67b1884f6140437fe996dc39537a" - integrity sha512-9stVjTcc52bqqh7YQex/LpSjJ4e2Czm4/ZYDjIiNy0p4OZEx+yLhL5mZzMWh2NQd6vv+pHASBSxf2IeaR5511A== - dependencies: - "@storybook/api" "6.3.7" - "@storybook/channels" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/core-events" "6.3.7" - "@storybook/router" "6.3.7" - "@storybook/theming" "6.3.7" +"@storybook/addons@6.3.8", "@storybook/addons@^6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.3.8.tgz#c4a839ae9b86fb4a1183466db6eb16201c1a0553" + integrity sha512-TzYk1f/wvfoGDkLxXIx85ii5ED7IfGP/6eu00/i2Hyn4uGqdNi/ltSOJxnxa+DZv8KjYQRVAEo/Fbh95IEXI1Q== + dependencies: + "@storybook/api" "6.3.8" + "@storybook/channels" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/core-events" "6.3.8" + "@storybook/router" "6.3.8" + "@storybook/theming" "6.3.8" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" @@ -2115,19 +2178,19 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/api@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.3.7.tgz#88b8a51422cd0739c91bde0b1d65fb6d8a8485d0" - integrity sha512-57al8mxmE9agXZGo8syRQ8UhvGnDC9zkuwkBPXchESYYVkm3Mc54RTvdAOYDiy85VS4JxiGOywHayCaRwgUddQ== +"@storybook/api@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.3.8.tgz#251bcf6cc3a4e0b908bea7fb0aa9e48d6c48d720" + integrity sha512-8b61KnWhN+sA+Gq+AHH3M4qM0L8pNS9DtdfPi5GUGWzOg6IZ1EgYVsk9afEwkNESxyZ+GM2O6mGu05J0HfyqNg== dependencies: "@reach/router" "^1.3.4" - "@storybook/channels" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/core-events" "6.3.7" + "@storybook/channels" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/core-events" "6.3.8" "@storybook/csf" "0.0.1" - "@storybook/router" "6.3.7" + "@storybook/router" "6.3.8" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.3.7" + "@storybook/theming" "6.3.8" "@types/reach__router" "^1.3.7" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -2141,10 +2204,10 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.3.7.tgz#1cc1a1184043be3f6ef840d0b43ba91a803105e2" - integrity sha512-M5envblMzAUrNqP1+ouKiL8iSIW/90+kBRU2QeWlZoZl1ib+fiFoKk06cgbaC70Bx1lU8nOnI/VBvB5pLhXLaw== +"@storybook/builder-webpack4@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.3.8.tgz#9ffe866fbd50a94b3cf3ecde1fe4d5f29dd337e8" + integrity sha512-Ze/3JRPKwPogKbJJ5Fm4/BJdMbNiqu7DpFQw9s4gBcecBRK0xlfhYaMrPqMS21kEQ2+gr2HPyGRkdoJUAVHXhQ== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -2167,20 +2230,20 @@ "@babel/preset-env" "^7.12.11" "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/channel-postmessage" "6.3.7" - "@storybook/channels" "6.3.7" - "@storybook/client-api" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/core-common" "6.3.7" - "@storybook/core-events" "6.3.7" - "@storybook/node-logger" "6.3.7" - "@storybook/router" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/channel-postmessage" "6.3.8" + "@storybook/channels" "6.3.8" + "@storybook/client-api" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/core-common" "6.3.8" + "@storybook/core-events" "6.3.8" + "@storybook/node-logger" "6.3.8" + "@storybook/router" "6.3.8" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.3.7" - "@storybook/ui" "6.3.7" + "@storybook/theming" "6.3.8" + "@storybook/ui" "6.3.8" "@types/node" "^14.0.10" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" @@ -2217,14 +2280,14 @@ webpack-hot-middleware "^2.25.0" webpack-virtual-modules "^0.2.2" -"@storybook/channel-postmessage@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.3.7.tgz#bd4edf84a29aa2cd4a22d26115c60194d289a840" - integrity sha512-Cmw8HRkeSF1yUFLfEIUIkUICyCXX8x5Ol/5QPbiW9HPE2hbZtYROCcg4bmWqdq59N0Tp9FQNSn+9ZygPgqQtNw== +"@storybook/channel-postmessage@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.3.8.tgz#43a91760e3464017b8f753b5b383a15a8e56f884" + integrity sha512-wI08nip2cQBIs1g+i609dDldQsOuSvnGWecWMiE9FwSvWttAyK61Zdph36UhiNzNjCeNdN5nf5qyVFaxZLGXIA== dependencies: - "@storybook/channels" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/core-events" "6.3.7" + "@storybook/channels" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/core-events" "6.3.8" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" @@ -2239,25 +2302,25 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/channels@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.3.7.tgz#85ed5925522b802d959810f78d37aacde7fea66e" - integrity sha512-aErXO+SRO8MPp2wOkT2n9d0fby+8yM35tq1tI633B4eQsM74EykbXPv7EamrYPqp1AI4BdiloyEpr0hmr2zlvg== +"@storybook/channels@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.3.8.tgz#1ae91e1f3c47b215b39c1c31b2a58b7ffafdff35" + integrity sha512-+bjIb5rPTglbhLgGywDoKK25x9ClCMV29fd/fiF86rXQlfxq6J+or6ars6p97gS2/J1wgRbh+Yf3WkLNQx7s6A== dependencies: core-js "^3.8.2" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.3.7.tgz#cb1dca05467d777bd09aadbbdd1dd22ca537ce14" - integrity sha512-8wOH19cMIwIIYhZy5O5Wl8JT1QOL5kNuamp9GPmg5ff4DtnG+/uUslskRvsnKyjPvl+WbIlZtBVWBiawVdd/yQ== +"@storybook/client-api@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.3.8.tgz#60e608a5c2afbe6d63a4a063e616bedde8466584" + integrity sha512-71HT0K1lswyMSkRRgB1+TGu7X6kFazmoXT3t5wkU6NWIflEngiiJ3w+PMpOGzd6E3Gp3ZOvfkfrzaby5VlBORw== dependencies: - "@storybook/addons" "6.3.7" - "@storybook/channel-postmessage" "6.3.7" - "@storybook/channels" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/core-events" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/channel-postmessage" "6.3.8" + "@storybook/channels" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/core-events" "6.3.8" "@storybook/csf" "0.0.1" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" @@ -2280,23 +2343,23 @@ core-js "^3.8.2" global "^4.4.0" -"@storybook/client-logger@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.3.7.tgz#ff17b7494e7e9e23089b0d5c5364c371c726bdd1" - integrity sha512-BQRErHE3nIEuUJN/3S3dO1LzxAknOgrFeZLd4UVcH/fvjtS1F4EkhcbH+jNyUWvcWGv66PZYN0oFPEn/g3Savg== +"@storybook/client-logger@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.3.8.tgz#042b81c45f73066e4f6c32942c72f4aca0ae6646" + integrity sha512-d/65629nvnlDpeubcElTypHuSvOqxNTNKnuN0oKDM8BsE0EO5rhTfzrx2vhiSW8At8MuD1eFC19BWdCZV18Edg== dependencies: core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.3.7.tgz#42b1ca6d24e388e02eab82aa9ed3365db2266ecc" - integrity sha512-O7LIg9Z18G0AJqXX7Shcj0uHqwXlSA5UkHgaz9A7mqqqJNl6m6FwwTWcxR1acUfYVNkO+czgpqZHNrOF6rky1A== +"@storybook/components@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.3.8.tgz#cb84b0245d8784d41e7e6be25a0d5774363e5b87" + integrity sha512-zIvCk7MAL9z17EI58h7WE/TgFTm0njGwFkQrbXOgGkkKYoFt/yrrs8HqylcqBqfTivJNiXJNnmmx0ooJ83PIwA== dependencies: "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.3.7" + "@storybook/client-logger" "6.3.8" "@storybook/csf" "0.0.1" - "@storybook/theming" "6.3.7" + "@storybook/theming" "6.3.8" "@types/color-convert" "^2.0.0" "@types/overlayscrollbars" "^1.12.0" "@types/react-syntax-highlighter" "11.0.5" @@ -2348,18 +2411,18 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/core-client@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.3.7.tgz#cfb75952e0e1d32f2aca92bca2786334ab589c40" - integrity sha512-M/4A65yV+Y4lsCQXX4BtQO/i3BcMPrU5FkDG8qJd3dkcx2fUlFvGWqQPkcTZE+MPVvMEGl/AsEZSADzah9+dAg== +"@storybook/core-client@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.3.8.tgz#9223b9f22ab86d205dac605bcef15ba0f0068e15" + integrity sha512-ZO1XA8ENnZXpDN+sW0ElQ468QhV1tJuoGyXXeiKNnpOuKe/7e10vXH9B0VsBc1VIpC0S17cWuq1/vUkcb9fm5Q== dependencies: - "@storybook/addons" "6.3.7" - "@storybook/channel-postmessage" "6.3.7" - "@storybook/client-api" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/core-events" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/channel-postmessage" "6.3.8" + "@storybook/client-api" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/core-events" "6.3.8" "@storybook/csf" "0.0.1" - "@storybook/ui" "6.3.7" + "@storybook/ui" "6.3.8" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -2371,10 +2434,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-common@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.3.7.tgz#9eedf3ff16aff870950e3372ab71ef846fa3ac52" - integrity sha512-exLoqRPPsAefwyjbsQBLNFrlPCcv69Q/pclqmIm7FqAPR7f3CKP1rqsHY0PnemizTL/+cLX5S7mY90gI6wpNug== +"@storybook/core-common@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.3.8.tgz#a8ef7aba92c987be692d936fe6d5782f801e170f" + integrity sha512-a1buOaYAbs7m8LMeraN9syG9Hp6wePabJoFrcQxwf4EQZcgfwTUkyYarfpsYsy9vFdDzvvANrOYp/fq6Bnx6LA== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -2397,7 +2460,7 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.3.7" + "@storybook/node-logger" "6.3.8" "@storybook/semver" "^7.3.2" "@types/glob-base" "^0.3.0" "@types/micromatch" "^4.0.1" @@ -2432,24 +2495,25 @@ dependencies: core-js "^3.8.2" -"@storybook/core-events@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.3.7.tgz#c5bc7cae7dc295de73b6b9f671ecbe582582e9bd" - integrity sha512-l5Hlhe+C/dqxjobemZ6DWBhTOhQoFF3F1Y4kjFGE7pGZl/mas4M72I5I/FUcYCmbk2fbLfZX8hzKkUqS1hdyLA== +"@storybook/core-events@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.3.8.tgz#4c9a3deb9334b10116befbf2db5534d1319d2f39" + integrity sha512-M3d2iX842YfopqmOHlXzL/Xy4fICzaRnet99GdfOqWjZhC2CVSemVk1b/vgfQv4MFYOQkSLsAjkbDH/kU8n9Aw== dependencies: core-js "^3.8.2" -"@storybook/core-server@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.3.7.tgz#6f29ad720aafe4a97247b5e306eac4174d0931f2" - integrity sha512-m5OPD/rmZA7KFewkXzXD46/i1ngUoFO4LWOiAY/wR6RQGjYXGMhSa5UYFF6MNwSbiGS5YieHkR5crB1HP47AhQ== - dependencies: - "@storybook/builder-webpack4" "6.3.7" - "@storybook/core-client" "6.3.7" - "@storybook/core-common" "6.3.7" - "@storybook/csf-tools" "6.3.7" - "@storybook/manager-webpack4" "6.3.7" - "@storybook/node-logger" "6.3.7" +"@storybook/core-server@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.3.8.tgz#0d141e6f315b735a442aebc0f424f911456c769c" + integrity sha512-9J7cabcGe/h6nH4KnRvnYOwY1EFeNtl1qOVgej1nh70aIhKyRVMRc+d2gsOAmzmePtK6pocJUjm1/t876P9Ekg== + dependencies: + "@discoveryjs/json-ext" "^0.5.3" + "@storybook/builder-webpack4" "6.3.8" + "@storybook/core-client" "6.3.8" + "@storybook/core-common" "6.3.8" + "@storybook/csf-tools" "6.3.8" + "@storybook/manager-webpack4" "6.3.8" + "@storybook/node-logger" "6.3.8" "@storybook/semver" "^7.3.2" "@types/node" "^14.0.10" "@types/node-fetch" "^2.5.7" @@ -2478,18 +2542,18 @@ util-deprecate "^1.0.2" webpack "4" -"@storybook/core@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.3.7.tgz#482228a270abc3e23fed10c7bc4df674da22ca19" - integrity sha512-YTVLPXqgyBg7TALNxQ+cd+GtCm/NFjxr/qQ1mss1T9GCMR0IjE0d0trgOVHHLAO8jCVlK8DeuqZCCgZFTXulRw== +"@storybook/core@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.3.8.tgz#daf11902a0a19cee62b51b5d73669d705468667c" + integrity sha512-NTPrqX7goy9DnVEqPFvLccjrQ0eHza64ahP75bXo7H5tyVyEDcaI7ynk1l5zkO4+q6Ze9gkRiWIy7Z324kGAMg== dependencies: - "@storybook/core-client" "6.3.7" - "@storybook/core-server" "6.3.7" + "@storybook/core-client" "6.3.8" + "@storybook/core-server" "6.3.8" -"@storybook/csf-tools@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.3.7.tgz#505514d211f8698c47ddb15662442098b4b00156" - integrity sha512-A7yGsrYwh+vwVpmG8dHpEimX021RbZd9VzoREcILH56u8atssdh/rseljyWlRes3Sr4QgtLvDB7ggoJ+XDZH7w== +"@storybook/csf-tools@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.3.8.tgz#bc51d2559d2cf1bf761d38a9a913a523d36a7551" + integrity sha512-yY+xN+3TKoUNK0KVAhQNPC3Pf7J0gkmSTOhBwRaPjVKQ3Dy8RE+r/+h9v7rxdmWnl7thdt7tWsjaUdy5DPNLug== dependencies: "@babel/generator" "^7.12.11" "@babel/parser" "^7.12.11" @@ -2513,20 +2577,20 @@ dependencies: lodash "^4.17.15" -"@storybook/manager-webpack4@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.3.7.tgz#9ca604dea38d3c47eb38bf485ca6107861280aa8" - integrity sha512-cwUdO3oklEtx6y+ZOl2zHvflICK85emiXBQGgRcCsnwWQRBZOMh+tCgOSZj4jmISVpT52RtT9woG4jKe15KBig== +"@storybook/manager-webpack4@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.3.8.tgz#92deb490242567530b1093e9a57371961ea88285" + integrity sha512-W4t/NIbkNgxbjW/RsjMV4f3gPwY+Rw69GvoIAVurEEyi6dKJa2tQ1XrGOZMhF3PqWDTybOLTopcp9Ici2MJnMA== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.3.7" - "@storybook/core-client" "6.3.7" - "@storybook/core-common" "6.3.7" - "@storybook/node-logger" "6.3.7" - "@storybook/theming" "6.3.7" - "@storybook/ui" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/core-client" "6.3.8" + "@storybook/core-common" "6.3.8" + "@storybook/node-logger" "6.3.8" + "@storybook/theming" "6.3.8" + "@storybook/ui" "6.3.8" "@types/node" "^14.0.10" "@types/webpack" "^4.41.26" babel-loader "^8.2.2" @@ -2556,10 +2620,10 @@ webpack-dev-middleware "^3.7.3" webpack-virtual-modules "^0.2.2" -"@storybook/node-logger@6.3.7", "@storybook/node-logger@^6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.3.7.tgz#492469ea4749de8d984af144976961589a1ac382" - integrity sha512-YXHCblruRe6HcNefDOpuXJoaybHnnSryIVP9Z+gDv6OgLAMkyxccTIaQL9dbc/eI4ywgzAz4kD8t1RfVwXNVXw== +"@storybook/node-logger@6.3.8", "@storybook/node-logger@^6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.3.8.tgz#664ffc1ed6f9b8fb446005d4b60fc2fba129fc21" + integrity sha512-NDXLcvEepnsVGnnhNgRa1SuedPrHJpbi3rubJENCwAy1fD3oB8HIkSCVHaml/htaQXVp6CGMWy02l5iGCVN4ZA== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -2567,10 +2631,10 @@ npmlog "^4.1.2" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.3.7.tgz#7d90c06131382a3cf1550a1f2c70df13b220d9d3" - integrity sha512-HgTj7WdWo2cXrGfEhi5XYZA+G4vIzECtJHK22GEL9QxJth60Ah/dE94VqpTlyhSpzP74ZFUgr92+pP9o+j3CCw== +"@storybook/postinstall@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.3.8.tgz#9c3a4ad631a4b952b3fdf686cf60716c62f3e131" + integrity sha512-qtU68/G1NGcoJuin84ZAk2VhaXkWbJC622ngTVrYWxVWvvryGk4A7Qscx2R9o5R8zmQVV18HZ5d7bs5g0ibsgA== dependencies: core-js "^3.8.2" @@ -2603,18 +2667,18 @@ react-docgen-typescript "^2.0.0" tslib "^2.0.0" -"@storybook/react@^6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.3.7.tgz#b15259aeb4cdeef99cc7f09d21db42e3ecd7a01a" - integrity sha512-4S0iCQIzgi6PdAtV2sYw4uL57yIwbMInNFSux9CxPnVdlxOxCJ+U8IgTxD4tjkTvR4boYSEvEle46ns/bwg5iQ== +"@storybook/react@^6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.3.8.tgz#1b341fb3dd20f2de4c3b542bcda2623fe0babb2b" + integrity sha512-X+xFilz6qHEMj6m7nKqoH2uDAIWSbjASj7kGW6rdVj6WvCpLeEQhM4wdrulRXFsbAetWtl/KZnmtjakgXzYGKg== dependencies: "@babel/preset-flow" "^7.12.1" "@babel/preset-react" "^7.12.10" "@pmmmwh/react-refresh-webpack-plugin" "^0.4.3" - "@storybook/addons" "6.3.7" - "@storybook/core" "6.3.7" - "@storybook/core-common" "6.3.7" - "@storybook/node-logger" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/core" "6.3.8" + "@storybook/core-common" "6.3.8" + "@storybook/node-logger" "6.3.8" "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0" "@storybook/semver" "^7.3.2" "@types/webpack-env" "^1.16.0" @@ -2648,13 +2712,13 @@ qs "^6.10.0" ts-dedent "^2.0.0" -"@storybook/router@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.3.7.tgz#1714a99a58a7b9f08b6fcfe2b678dad6ca896736" - integrity sha512-6tthN8op7H0NoYoE1SkQFJKC42pC4tGaoPn7kEql8XGeUJnxPtVFjrnywlTrRnKuxZKIvbilQBAwDml97XH23Q== +"@storybook/router@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.3.8.tgz#16f6c73a760918adb146e456c5b98614cb747f79" + integrity sha512-CafRmHtkwa8CQETum0RaspSExt8mrFsoYZSyrVSWqOyGG048MT3ocCPRsSueor17h+Q5neKamrPVN1jAdSilDg== dependencies: "@reach/router" "^1.3.4" - "@storybook/client-logger" "6.3.7" + "@storybook/client-logger" "6.3.8" "@types/reach__router" "^1.3.7" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -2672,13 +2736,13 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.3.7.tgz#cc348305df3c2d8d716c0bab7830c9f537b859ff" - integrity sha512-0xQTq90jwx7W7MJn/idEBCGPOyxi/3No5j+5YdfJsSGJRuMFH3jt6pGgdeZ4XA01cmmIX6bZ+fB9al6yAzs91w== +"@storybook/source-loader@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.3.8.tgz#b11aaa08b3356d0a1749bcac3b5aab52f426dec1" + integrity sha512-aQ3mrpxpVB2w7sST4jbQUBgHLQZTLD0H1SgohHSuNPz2nrYieuxmOfwjbJr1ZCtuZDCi5xyLjDgUJ3wZ1hPsfQ== dependencies: - "@storybook/addons" "6.3.7" - "@storybook/client-logger" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/client-logger" "6.3.8" "@storybook/csf" "0.0.1" core-js "^3.8.2" estraverse "^5.2.0" @@ -2706,15 +2770,15 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/theming@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.3.7.tgz#6daf9a21b26ed607f3c28a82acd90c0248e76d8b" - integrity sha512-GXBdw18JJd5jLLcRonAZWvGGdwEXByxF1IFNDSOYCcpHWsMgTk4XoLjceu9MpXET04pVX51LbVPLCvMdggoohg== +"@storybook/theming@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.3.8.tgz#3af76408aa8a4f13e217cf407e63a03db217eedc" + integrity sha512-Np51rvecnuHNevZ7Em0uElT5UkgASP5K2u8NpHcCxP/Hd73wxS/h//6XnjA9Aich7h/JanG71jAC3qqhZabatA== dependencies: "@emotion/core" "^10.1.1" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.27" - "@storybook/client-logger" "6.3.7" + "@storybook/client-logger" "6.3.8" core-js "^3.8.2" deep-object-diff "^1.1.0" emotion-theming "^10.0.27" @@ -2724,21 +2788,21 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/ui@6.3.7": - version "6.3.7" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.3.7.tgz#d0caea50640670da3189bbbb67c43da30c90455a" - integrity sha512-PBeRO8qtwAbtHvxUgNtz/ChUR6qnN+R37dMaIs3Y96jbks1fS2K9Mt7W5s1HnUbWbg2KsZMv9D4VYPBasY+Isw== +"@storybook/ui@6.3.8": + version "6.3.8" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.3.8.tgz#9fb71befbe76f06c478925610ce998c23260a3f3" + integrity sha512-R7LlDfRvD/IcARtmGtYAM79ks2HL+nitdfdRpoW8fYZiX3ErfSIScWzzoxRPFqedg64vwOvbIEhXp7N9JDwFZA== dependencies: "@emotion/core" "^10.1.1" - "@storybook/addons" "6.3.7" - "@storybook/api" "6.3.7" - "@storybook/channels" "6.3.7" - "@storybook/client-logger" "6.3.7" - "@storybook/components" "6.3.7" - "@storybook/core-events" "6.3.7" - "@storybook/router" "6.3.7" + "@storybook/addons" "6.3.8" + "@storybook/api" "6.3.8" + "@storybook/channels" "6.3.8" + "@storybook/client-logger" "6.3.8" + "@storybook/components" "6.3.8" + "@storybook/core-events" "6.3.8" + "@storybook/router" "6.3.8" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.3.7" + "@storybook/theming" "6.3.8" "@types/markdown-to-jsx" "^6.11.3" copy-to-clipboard "^3.3.1" core-js "^3.8.2" @@ -4033,14 +4097,14 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.1.tgz#954214821d3aa06692406c6a0a9e9d401eafbed2" - integrity sha512-L8AmtKzdiRyYg7BUXJTzigmhbQRCXFKz6SA1Lqo0+AR2FBbQ4aTAPFSDlOutnFkjhiz8my4agGXog1xlMjPJ6A== +autoprefixer@^10.3.4: + version "10.3.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.4.tgz#29efe5d19f51c281953178ddb5b84c5f1ca24c86" + integrity sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw== dependencies: - browserslist "^4.16.6" - caniuse-lite "^1.0.30001243" - colorette "^1.2.2" + browserslist "^4.16.8" + caniuse-lite "^1.0.30001252" + colorette "^1.3.0" fraction.js "^4.1.1" normalize-range "^0.1.2" postcss-value-parser "^4.1.0" @@ -4528,6 +4592,17 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.0, browserslist@^4 escalade "^3.1.1" node-releases "^1.1.71" +browserslist@^4.16.8: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== + dependencies: + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" + escalade "^3.1.1" + node-releases "^1.1.75" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -4735,10 +4810,10 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz#cd3fae47eb3d7691692b406568d7a3e5b23c7598" integrity sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ== -caniuse-lite@^1.0.30001243: - version "1.0.30001249" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz#90a330057f8ff75bfe97a94d047d5e14fabb2ee8" - integrity sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw== +caniuse-lite@^1.0.30001251, caniuse-lite@^1.0.30001252: + version "1.0.30001254" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001254.tgz#974d45e8b7f6e3b63d4b1435e97752717612d4b9" + integrity sha512-GxeHOvR0LFMYPmFGA+NiTOt9uwYDxB3h154tW2yBYwfz2EMX3i1IBgr6gmJGfU0K8KQsqPa5XqLD8zVdP5lUzA== canonicalize@^1.0.1: version "1.0.5" @@ -5026,6 +5101,11 @@ colorette@^1.2.1, colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -5957,6 +6037,11 @@ electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.723: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.763.tgz#93f6f02506d099941f557b9db9ba50b30215bf15" integrity sha512-UyvEPae0wvzsyNJhVfGeFSOlUkHEze8xSIiExO5tZQ8QTr7obFiJWGk3U4e7afFOJMQJDszqU/3Pk5jtKiaSEg== +electron-to-chromium@^1.3.811: + version "1.3.830" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz#40e3144204f8ca11b2cebec83cf14c20d3499236" + integrity sha512-gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ== + element-resize-detector@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.3.tgz#5078d9b99398fe4c589f8c8df94ff99e5d413ff3" @@ -6216,10 +6301,10 @@ eslint-module-utils@^2.6.2: debug "^3.2.7" pkg-dir "^2.0.0" -eslint-plugin-flowtype@^5.9.1: - version "5.9.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.9.1.tgz#21ae5c5063cb87d80ad740611761b0cfeea0738f" - integrity sha512-ncUBL9lbhrcOlM5p6xQJT2c0z9co/FlP0mXdva6FrkvtzOoN7wdc8ioASonEpcWffOxnJPFPI8N0sHCavE6NAg== +eslint-plugin-flowtype@^5.9.2: + version "5.9.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.9.2.tgz#aac08cd26ee4da79cba0e40c3877bb4d96a74ebc" + integrity sha512-qxE/eo9DCN7800MIB/O1ToOiFuOPOlaMJWQY2BEm69oY7RCm3s2X1z4CdgtFvDDWf9RSSugZm1KRhdBMBueKbg== dependencies: lodash "^4.17.15" string-natural-compare "^3.0.1" @@ -9768,20 +9853,20 @@ mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mobx-react-lite@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz#331d7365a6b053378dfe9c087315b4e41c5df69f" - integrity sha512-q5+UHIqYCOpBoFm/PElDuOhbcatvTllgRp3M1s+Hp5j0Z6XNgDbgqxawJ0ZAUEyKM8X1zs70PCuhAIzX1f4Q/g== +mobx-react-lite@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.2.1.tgz#c549a3722f1eae51a78b12f839311614d5689c58" + integrity sha512-hwURgfmP2apX3HQrB55V9DN47kuN3C6KlQvI5UIfJRibXma72C/JudcNt2r9dWjAdFMrcZoz1ivvtXMCkJ2aQA== mobx-state-tree@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/mobx-state-tree/-/mobx-state-tree-5.0.2.tgz#62c891eb34cf1cd07d758a933307ef5bce83721c" integrity sha512-hQ2Ewbf2hwB4BNAq0ysYMXywbXQ4bHMpAJRnquzKtUBY1OclZTMBg1Dc2gkZNWfU9PrJ03s2tHK5X5c8wtHAHA== -mobx@^6.3.2: - version "6.3.2" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.3.2.tgz#125590961f702a572c139ab69392bea416d2e51b" - integrity sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg== +mobx@^6.3.3: + version "6.3.3" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.3.3.tgz#a3006c56243b1c7ea4ee671a66f963b9f43cf1af" + integrity sha512-JoNU50rO6d1wHwKPJqKq4rmUMbYnI9CsJmBo+Cu4exBYenFvIN77LWrZENpzW6reZPADtXMmB1DicbDSfy8Clw== moment@^2.24.0, moment@^2.25.3, moment@^2.29.1: version "2.29.1" @@ -9973,6 +10058,11 @@ node-releases@^1.1.61, node-releases@^1.1.71: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== + normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -11868,20 +11958,17 @@ react-refresh@^0.8.3: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== -react-router-dom@^6.0.0-beta.0: - version "6.0.0-beta.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.0.0-beta.0.tgz#9dcc8555365f22f7fbd09f26b6b82543f3eb97d6" - integrity sha512-36yNNGMT8RB9FRPL9nKJi6HKDkgOakU+o/2hHpSzR6e37gN70MpOU6QQlmif4oAWWBwjyGc3ZNOMFCsFuHUY5w== +react-router-dom@^6.0.0-beta.3: + version "6.0.0-beta.3" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.0.0-beta.3.tgz#4f84a5e5717514d0a9aee9f6724d54b61cfd6387" + integrity sha512-F5HC/mEdZQvBNbxEFDfRfd1b+DPcNeHZgoreH98NJEJe3G1uonWatdtj+tVQ3VnUbg0TzCXa4mzKFZMey90v7A== dependencies: - prop-types "^15.7.2" - react-router "6.0.0-beta.0" + react-router "6.0.0-beta.3" -react-router@6.0.0-beta.0, react-router@^6.0.0-beta.0: - version "6.0.0-beta.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.0.0-beta.0.tgz#3e11f39b6ded4412c2fed9e4f989dd4c8156724d" - integrity sha512-VgMdfpVcmFQki/LZuLh8E/MNACekDetz4xqft+a6fBZvvJnVqKbLqebF7hyoawGrV1HcO5tVaUang2Og4W2j1Q== - dependencies: - prop-types "^15.7.2" +react-router@6.0.0-beta.3, react-router@^6.0.0-beta.3: + version "6.0.0-beta.3" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.0.0-beta.3.tgz#d1276202eee8a0269c6d24fc9be72d5448cc63ae" + integrity sha512-5fSBKgb0VaUrMi1RJxeZZMyGkjGSd9HtoWtc2XIcBFc01l7y6jBg5mVkmifjhhdSlamE3y6E6RXpfzCWqEBPPA== react-sizeme@^3.0.1: version "3.0.1" @@ -12916,10 +13003,10 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== -sparqljs@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/sparqljs/-/sparqljs-3.4.2.tgz#ad69eb1ff62b3d1152f41ed50f01fae8638d18fa" - integrity sha512-MmmZ6cMuvhf4Eh2FXX21dalgADUiZ9WN8XKMedwhTFg0r7W09/o8wvoZ8C4yA6FptnjjAjm+mGnxAEpkSRY3QQ== +sparqljs@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/sparqljs/-/sparqljs-3.4.3.tgz#a78c9f8cc0f22c8ec2086dedb4b424434f02a164" + integrity sha512-VPMnvPjnU+P3xVbEfysxhpRqdIfCfKIcuOClp5j0g1dFt/1Bmp8l5BeBZv1uqIRuUey97q37Qxq13QBLePXBtg== dependencies: rdf-data-factory "^1.0.4"