React, Antd, Redux: Left sidebar and top for annotation page (#963)
* Rebased from develop * Improved getting icons method * Added more icons * Left menu * Initial commit * Setup SVGO, added some buttons to top * Top bar progress * Top bar for annotation page * Updated stylesmain
@ -1 +0,0 @@
|
||||
<svg width="98" height="27" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M101 0v29l-52.544.001C44.326 35.511 35.598 40 25.5 40 11.417 40 0 31.27 0 20.5S11.417 1 25.5 1c4.542 0 8.807.908 12.5 2.5V0h63z" id="a"/></defs><g transform="translate(-2 -1)" fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><path d="M48.142 1c4.736 0 6.879 3.234 6.879 5.904v2.068h-4.737V6.904c0-.79-.789-2.144-2.142-2.144-1.654 0-2.368 1.354-2.368 2.144v15.192c0 .79.714 2.144 2.368 2.144 1.353 0 2.142-1.354 2.142-2.144v-2.068h4.737v2.068c0 2.67-2.143 5.904-6.88 5.904C42.956 28 41 24.766 41 22.134V6.904C41 4.234 42.955 1 48.142 1zM19-6c9.389 0 17 7.611 17 17s-7.611 17-17 17S2 20.389 2 11 9.611-6 19-6zm42.256 7.338l3.345 19.48h.075l3.42-19.48h5l-6.052 26.324h-5L56.22 1.338h5.037zm20.706 0l5.413 26.324h-4.699l-.94-6.13h-4.548l-.902 6.13h-4.435l5.413-26.324h4.698zm18.038 0v3.723h-4.849v22.6h-4.699v-22.6h-4.81V1.338H100zM19 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14zm60.557 4.295h-.113l-1.466 9.439h3.007l-1.428-9.439z" fill="#000" fill-rule="nonzero" mask="url(#b)"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1 +0,0 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="a" d="M0 0h34v24H0z"/></defs><g transform="translate(3 8)" fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><path d="M28.262 9.331C20.935.18 8.932-.428 1.308 7.643V2.968H0v6.537c0 .45.293.817.654.817h5.232V8.688H2.35c7.125-7.322 18.2-6.683 24.987 1.8 7.14 8.92 7.14 23.437 0 32.357L28.262 44c7.65-9.557 7.65-25.111 0-34.669z" fill="#000" mask="url(#b)" transform="matrix(-1 0 0 1 34 0)"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 557 B |
@ -1 +0,0 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="a" d="M0 0h34v24H0z"/></defs><g transform="translate(3 8)" fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><path d="M28.262 9.331C20.935.18 8.932-.428 1.308 7.643V2.968H0v6.537c0 .45.293.817.654.817h5.232V8.688H2.35c7.125-7.322 18.2-6.683 24.987 1.8 7.14 8.92 7.14 23.437 0 32.357L28.262 44c7.65-9.557 7.65-25.111 0-34.669z" fill="#000" mask="url(#b)"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 523 B |
@ -0,0 +1 @@
|
||||
declare module '*.svg';
|
||||
|
Before Width: | Height: | Size: 591 B After Width: | Height: | Size: 591 B |
|
Before Width: | Height: | Size: 350 B After Width: | Height: | Size: 350 B |
@ -0,0 +1 @@
|
||||
<svg width="98" height="27" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M101 0v29l-52.544.001C44.326 35.511 35.598 40 25.5 40 11.417 40 0 31.27 0 20.5S11.417 1 25.5 1c4.542 0 8.807.908 12.5 2.5V0h63z" id="logoA"/></defs><g transform="translate(-2 -1)" fill="none" fill-rule="evenodd"><mask id="logoB" fill="#fff"><use xlink:href="#logoA"/></mask><path d="M48.142 1c4.736 0 6.879 3.234 6.879 5.904v2.068h-4.737V6.904c0-.79-.789-2.144-2.142-2.144-1.654 0-2.368 1.354-2.368 2.144v15.192c0 .79.714 2.144 2.368 2.144 1.353 0 2.142-1.354 2.142-2.144v-2.068h4.737v2.068c0 2.67-2.143 5.904-6.88 5.904C42.956 28 41 24.766 41 22.134V6.904C41 4.234 42.955 1 48.142 1zM19-6c9.389 0 17 7.611 17 17s-7.611 17-17 17S2 20.389 2 11 9.611-6 19-6zm42.256 7.338l3.345 19.48h.075l3.42-19.48h5l-6.052 26.324h-5L56.22 1.338h5.037zm20.706 0l5.413 26.324h-4.699l-.94-6.13h-4.548l-.902 6.13h-4.435l5.413-26.324h4.698zm18.038 0v3.723h-4.849v22.6h-4.699v-22.6h-4.81V1.338H100zM19 4a7 7 0 100 14 7 7 0 000-14zm60.557 4.295h-.113l-1.466 9.439h3.007l-1.428-9.439z" fill="#000" fill-rule="nonzero" mask="url(#logoB)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 235 B After Width: | Height: | Size: 235 B |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 222 B After Width: | Height: | Size: 222 B |
|
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 458 B After Width: | Height: | Size: 458 B |
|
Before Width: | Height: | Size: 296 B After Width: | Height: | Size: 296 B |
|
Before Width: | Height: | Size: 535 B After Width: | Height: | Size: 535 B |
@ -1 +1 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg"><path d="M5 30h30v-3.333H5V30zm0-8.333h30v-3.334H5v3.334zM5 10v3.333h30V10H5z" fill="#000" fill-rule="evenodd"/></svg>
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg"><path d="M5 30h30v-3.333H5V30zm0-8.333h30v-3.334H5v3.334zM5 10v3.333h30V10H5z" fill="#000" fill-rule="evenodd"/></svg>
|
||||
|
Before Width: | Height: | Size: 181 B After Width: | Height: | Size: 182 B |
|
Before Width: | Height: | Size: 403 B After Width: | Height: | Size: 403 B |
|
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 891 B After Width: | Height: | Size: 891 B |
|
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 357 B |
|
Before Width: | Height: | Size: 880 B After Width: | Height: | Size: 880 B |
|
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 402 B |
|
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 521 B |
|
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 523 B After Width: | Height: | Size: 523 B |
|
Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 166 B |
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 331 B |
|
Before Width: | Height: | Size: 134 B After Width: | Height: | Size: 134 B |
|
Before Width: | Height: | Size: 333 B After Width: | Height: | Size: 333 B |
|
Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 216 B After Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 209 B After Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 480 B After Width: | Height: | Size: 480 B |
|
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 157 B |
@ -0,0 +1 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="redoA" d="M0 0h34v24H0z"/></defs><g transform="translate(3 8)" fill="none" fill-rule="evenodd"><mask id="redoB" fill="#fff"><use xlink:href="#redoA"/></mask><path d="M28.262 9.331C20.935.18 8.932-.428 1.308 7.643V2.968H0v6.537c0 .45.293.817.654.817h5.232V8.688H2.35c7.125-7.322 18.2-6.683 24.987 1.8 7.14 8.92 7.14 23.437 0 32.357L28.262 44c7.65-9.557 7.65-25.111 0-34.669z" fill="#000" mask="url(#redoB)" transform="matrix(-1 0 0 1 34 0)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 573 B |
|
Before Width: | Height: | Size: 549 B After Width: | Height: | Size: 549 B |
|
Before Width: | Height: | Size: 756 B After Width: | Height: | Size: 756 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 195 B |
|
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 435 B |
|
Before Width: | Height: | Size: 180 B After Width: | Height: | Size: 180 B |
|
Before Width: | Height: | Size: 659 B After Width: | Height: | Size: 659 B |
@ -0,0 +1 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="b" d="M0 0h34v24H0z"/></defs><g transform="translate(3 8)" fill="none" fill-rule="evenodd"><mask id="undoB" fill="#fff"><use xlink:href="#b"/></mask><path d="M28.62 9.331C20.935.18 8.932-.428 1.308 7.643V2.968H0v6.537c0 .45.293.817.654.817h5.232V8.688H2.35c7.125-7.322 18.2-6.683 24.987 1.8 7.14 8.92 7.14 23.437 0 32.357L28.262 44c7.65-9.557 7.65-25.111 0-34.669z" fill="#000" mask="url(#undoB)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 530 B |
|
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 489 B |
@ -0,0 +1,17 @@
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
Layout,
|
||||
} from 'antd';
|
||||
|
||||
import AnnotationTopBarComponent from './top-bar/top-bar';
|
||||
import StandardWorkspaceComponent from './standard-workspace/standard-workspace';
|
||||
|
||||
export default function AnnotationPageComponent(): JSX.Element {
|
||||
return (
|
||||
<Layout className='cvat-annotation-page'>
|
||||
<AnnotationTopBarComponent />
|
||||
<StandardWorkspaceComponent />
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
Layout,
|
||||
} from 'antd';
|
||||
|
||||
export default function CanvasWrapperComponent(): JSX.Element {
|
||||
return (
|
||||
<Layout.Content
|
||||
className='cvat-annotation-page-canvas-container'
|
||||
>
|
||||
main content
|
||||
</Layout.Content>
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
Icon,
|
||||
Layout,
|
||||
Tooltip,
|
||||
} from 'antd';
|
||||
|
||||
import {
|
||||
CursorIcon,
|
||||
MoveIcon,
|
||||
RotateIcon,
|
||||
FitIcon,
|
||||
ZoomIcon,
|
||||
RectangleIcon,
|
||||
PolygonIcon,
|
||||
PointIcon,
|
||||
PolylineIcon,
|
||||
TagIcon,
|
||||
MergeIcon,
|
||||
GroupIcon,
|
||||
SplitIcon,
|
||||
} from '../../../icons';
|
||||
|
||||
|
||||
export default function ControlsSideBarComponent(): JSX.Element {
|
||||
return (
|
||||
<Layout.Sider
|
||||
className='cvat-annotation-page-controls-sidebar'
|
||||
theme='light'
|
||||
width={44}
|
||||
>
|
||||
<Tooltip overlay='Cursor' placement='right'>
|
||||
<Icon component={CursorIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Move the image' placement='right'>
|
||||
<Icon component={MoveIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Rotate the image' placement='right'>
|
||||
<Icon component={RotateIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<hr />
|
||||
|
||||
<Tooltip overlay='Fit the image' placement='right'>
|
||||
<Icon component={FitIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Zoom the image' placement='right'>
|
||||
<Icon component={ZoomIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<hr />
|
||||
|
||||
<Tooltip overlay='Draw a rectangle' placement='right'>
|
||||
<Icon component={RectangleIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Draw a polygon' placement='right'>
|
||||
<Icon component={PolygonIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Draw a polyline' placement='right'>
|
||||
<Icon component={PolylineIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Draw points' placement='right'>
|
||||
<Icon component={PointIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Setup a tag' placement='right'>
|
||||
<Icon component={TagIcon} />
|
||||
</Tooltip>
|
||||
<hr />
|
||||
<Tooltip overlay='Merge shapes/tracks' placement='right'>
|
||||
<Icon component={MergeIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Group shapes/tracks' placement='right'>
|
||||
<Icon component={GroupIcon} />
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip overlay='Split a track' placement='right'>
|
||||
<Icon component={SplitIcon} />
|
||||
</Tooltip>
|
||||
</Layout.Sider>
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
Icon,
|
||||
Layout,
|
||||
} from 'antd';
|
||||
|
||||
interface State {
|
||||
collapsed: boolean;
|
||||
}
|
||||
|
||||
export default class StandardWorkspaceComponent extends React.PureComponent<{}, State> {
|
||||
public constructor(props: any) {
|
||||
super(props);
|
||||
this.state = {
|
||||
collapsed: true,
|
||||
};
|
||||
}
|
||||
|
||||
public render(): JSX.Element {
|
||||
const { collapsed } = this.state;
|
||||
return (
|
||||
<Layout.Sider
|
||||
className='cvat-annotation-page-objects-sidebar'
|
||||
theme='light'
|
||||
width={300}
|
||||
collapsedWidth={0}
|
||||
reverseArrow
|
||||
collapsible
|
||||
trigger={null}
|
||||
collapsed={collapsed}
|
||||
>
|
||||
{/* eslint-disable-next-line */}
|
||||
<span
|
||||
className={`cvat-annotation-page-objects-sidebar
|
||||
ant-layout-sider-zero-width-trigger
|
||||
ant-layout-sider-zero-width-trigger-left`}
|
||||
onClick={
|
||||
(): void => this.setState({ collapsed: !collapsed })
|
||||
}
|
||||
>
|
||||
{collapsed && <Icon type='menu-fold' title='Show' />}
|
||||
{!collapsed && <Icon type='menu-unfold' title='Hide' />}
|
||||
</span>
|
||||
|
||||
Right sidebar
|
||||
</Layout.Sider>
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
Layout,
|
||||
} from 'antd';
|
||||
|
||||
import ControlsSideBarComponent from './controls-side-bar';
|
||||
import CanvasWrapperComponent from './canvas-wrapper-component';
|
||||
import ObjectSideBarComponent from './objects-side-bar/objects-side-bar';
|
||||
|
||||
export default function StandardWorkspaceComponent(): JSX.Element {
|
||||
return (
|
||||
<Layout>
|
||||
<ControlsSideBarComponent />
|
||||
<CanvasWrapperComponent />
|
||||
<ObjectSideBarComponent />
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,104 @@
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
Row,
|
||||
Col,
|
||||
Icon,
|
||||
Slider,
|
||||
Layout,
|
||||
Input,
|
||||
Tooltip,
|
||||
Select,
|
||||
} from 'antd';
|
||||
|
||||
import Text from 'antd/lib/typography/Text';
|
||||
|
||||
import {
|
||||
MainMenuIcon,
|
||||
SaveIcon,
|
||||
UndoIcon,
|
||||
RedoIcon,
|
||||
PlaycontrolFirstIcon,
|
||||
PlaycontrolBackJumpIcon,
|
||||
PlaycontrolPreviousIcon,
|
||||
PlaycontrolPlayIcon,
|
||||
PlaycontrolNextIcon,
|
||||
PlaycontrolForwardJumpIcon,
|
||||
PlaycontrolLastIcon,
|
||||
InfoIcon,
|
||||
FullscreenIcon,
|
||||
} from '../../../icons';
|
||||
|
||||
export default function AnnotationPageComponent(): JSX.Element {
|
||||
return (
|
||||
<Layout.Header className='cvat-annotation-page-header'>
|
||||
<Row type='flex' justify='space-between'>
|
||||
<Col className='cvat-annotation-header-left-group'>
|
||||
<div>
|
||||
<Icon component={MainMenuIcon} />
|
||||
<span>Menu</span>
|
||||
</div>
|
||||
<div>
|
||||
<Icon component={SaveIcon} />
|
||||
<span>Save</span>
|
||||
</div>
|
||||
<div>
|
||||
<Icon component={UndoIcon} />
|
||||
<span>Undo</span>
|
||||
</div>
|
||||
<div>
|
||||
<Icon component={RedoIcon} />
|
||||
<span>Redo</span>
|
||||
</div>
|
||||
</Col>
|
||||
<Col className='cvat-annotation-header-player-group'>
|
||||
<Row type='flex'>
|
||||
<Col className='cvat-annotation-header-player-buttons'>
|
||||
<Icon component={PlaycontrolFirstIcon} />
|
||||
<Icon component={PlaycontrolBackJumpIcon} />
|
||||
<Icon component={PlaycontrolPreviousIcon} />
|
||||
<Icon component={PlaycontrolPlayIcon} />
|
||||
<Icon component={PlaycontrolNextIcon} />
|
||||
<Icon component={PlaycontrolForwardJumpIcon} />
|
||||
<Icon component={PlaycontrolLastIcon} />
|
||||
</Col>
|
||||
<Col className='cvat-annotation-header-player-controls'>
|
||||
<Row type='flex'>
|
||||
<Col>
|
||||
<Slider className='cvat-annotation-header-player-slider' tipFormatter={null} />
|
||||
</Col>
|
||||
</Row>
|
||||
<Row type='flex' justify='space-between'>
|
||||
<Col className='cvat-annotation-header-filename-wrapper'>
|
||||
<Tooltip overlay='filename.png'>
|
||||
<Text type='secondary'>filename.png</Text>
|
||||
</Tooltip>
|
||||
</Col>
|
||||
<Col>
|
||||
<Input className='cvat-annotation-header-frame-selector' type='number' size='small' />
|
||||
<Text type='secondary'>of 200</Text>
|
||||
</Col>
|
||||
</Row>
|
||||
</Col>
|
||||
</Row>
|
||||
</Col>
|
||||
<Col className='cvat-annotation-header-right-group'>
|
||||
<div>
|
||||
<Icon component={FullscreenIcon} />
|
||||
<span>Fullscreen</span>
|
||||
</div>
|
||||
<div>
|
||||
<Icon component={InfoIcon} />
|
||||
<span>Info</span>
|
||||
</div>
|
||||
<div>
|
||||
<Select className='cvat-annotation-header-workspace-selector' defaultValue='standard'>
|
||||
<Select.Option key='standard' value='standard'>Standard</Select.Option>
|
||||
<Select.Option key='aam' value='aam'>Attribute annotation</Select.Option>
|
||||
</Select>
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
</Layout.Header>
|
||||
);
|
||||
}
|
||||
@ -1,11 +1,9 @@
|
||||
import React from 'react';
|
||||
|
||||
export default class AnnotationPageContainer extends React.PureComponent {
|
||||
public render(): JSX.Element {
|
||||
return (
|
||||
<div>
|
||||
AnnotationPage
|
||||
</div>
|
||||
);
|
||||
}
|
||||
import AnnotationPageComponent from '../../components/annotation-page/annotation-page';
|
||||
|
||||
export default function AnnotationPageContainer() {
|
||||
return (
|
||||
<AnnotationPageComponent/>
|
||||
);
|
||||
}
|
||||
|
||||
@ -0,0 +1,64 @@
|
||||
import React from 'react';
|
||||
|
||||
import SVGCVATLogo from './assets/cvat-logo.svg';
|
||||
import SVGAccountIcon from './assets/account-icon.svg';
|
||||
import SVGEmptyTasksIcon from './assets/empty-tasks-icon.svg';
|
||||
import SVGMenuIcon from './assets/menu-icon.svg';
|
||||
import SVGCursorIcon from './assets/cursor-icon.svg';
|
||||
import SVGMoveIcon from './assets/move-icon.svg';
|
||||
import SVGRotateIcon from './assets/rotate-icon.svg';
|
||||
import SVGFitIcon from './assets/fit-to-window-icon.svg';
|
||||
import SVGZoomIcon from './assets/zoom-icon.svg';
|
||||
import SVGRectangleIcon from './assets/rectangle-icon.svg';
|
||||
import SVGPolygonIcon from './assets/polygon-icon.svg';
|
||||
import SVGPointIcon from './assets/point-icon.svg';
|
||||
import SVGPolylineIcon from './assets/polyline-icon.svg';
|
||||
import SVGTagIcon from './assets/tag-icon.svg';
|
||||
import SVGMergeIcon from './assets/merge-icon.svg';
|
||||
import SVGGroupIcon from './assets/group-icon.svg';
|
||||
import SVGSplitIcon from './assets/split-icon.svg';
|
||||
import SVGMainMenuIcon from './assets/main-menu-icon.svg';
|
||||
import SVGSaveIcon from './assets/save-icon.svg';
|
||||
import SVGUndoIcon from './assets/undo-icon.svg';
|
||||
import SVGRedoIcon from './assets/redo-icon.svg';
|
||||
import SVGPlaycontrolFirstIcon from './assets/playcontrol-first-icon.svg';
|
||||
import SVGPlaycontrolBackJumpIcon from './assets/playcontrol-back-jump-icon.svg';
|
||||
import SVGPlaycontrolPreviousIcon from './assets/playcontrol-previous-icon.svg';
|
||||
import SVGPlaycontrolPlayIcon from './assets/playcontrol-play-icon.svg';
|
||||
import SVGPlaycontrolNextIcon from './assets/playcontrol-next-icon.svg';
|
||||
import SVGPlaycontrolForwardJumpIcon from './assets/playcontrol-forward-jump-icon.svg';
|
||||
import SVGPlaycontrolLastIcon from './assets/playcontrol-last-icon.svg';
|
||||
import SVGInfoIcon from './assets/info-icon.svg';
|
||||
import SVGFullscreenIcon from './assets/fullscreen-icon.svg';
|
||||
|
||||
|
||||
export const CVATLogo = (): JSX.Element => <SVGCVATLogo />;
|
||||
export const AccountIcon = (): JSX.Element => <SVGAccountIcon />;
|
||||
export const EmptyTasksIcon = (): JSX.Element => <SVGEmptyTasksIcon />;
|
||||
export const MenuIcon = (): JSX.Element => <SVGMenuIcon />;
|
||||
export const CursorIcon = (): JSX.Element => <SVGCursorIcon />;
|
||||
export const MoveIcon = (): JSX.Element => <SVGMoveIcon />;
|
||||
export const RotateIcon = (): JSX.Element => <SVGRotateIcon />;
|
||||
export const FitIcon = (): JSX.Element => <SVGFitIcon />;
|
||||
export const ZoomIcon = (): JSX.Element => <SVGZoomIcon />;
|
||||
export const RectangleIcon = (): JSX.Element => <SVGRectangleIcon />;
|
||||
export const PolygonIcon = (): JSX.Element => <SVGPolygonIcon />;
|
||||
export const PointIcon = (): JSX.Element => <SVGPointIcon />;
|
||||
export const PolylineIcon = (): JSX.Element => <SVGPolylineIcon />;
|
||||
export const TagIcon = (): JSX.Element => <SVGTagIcon />;
|
||||
export const MergeIcon = (): JSX.Element => <SVGMergeIcon />;
|
||||
export const GroupIcon = (): JSX.Element => <SVGGroupIcon />;
|
||||
export const SplitIcon = (): JSX.Element => <SVGSplitIcon />;
|
||||
export const MainMenuIcon = (): JSX.Element => <SVGMainMenuIcon />;
|
||||
export const SaveIcon = (): JSX.Element => <SVGSaveIcon />;
|
||||
export const UndoIcon = (): JSX.Element => <SVGUndoIcon />;
|
||||
export const RedoIcon = (): JSX.Element => <SVGRedoIcon />;
|
||||
export const PlaycontrolFirstIcon = (): JSX.Element => <SVGPlaycontrolFirstIcon />;
|
||||
export const PlaycontrolBackJumpIcon = (): JSX.Element => <SVGPlaycontrolBackJumpIcon />;
|
||||
export const PlaycontrolPreviousIcon = (): JSX.Element => <SVGPlaycontrolPreviousIcon />;
|
||||
export const PlaycontrolPlayIcon = (): JSX.Element => <SVGPlaycontrolPlayIcon />;
|
||||
export const PlaycontrolNextIcon = (): JSX.Element => <SVGPlaycontrolNextIcon />;
|
||||
export const PlaycontrolForwardJumpIcon = (): JSX.Element => <SVGPlaycontrolForwardJumpIcon />;
|
||||
export const PlaycontrolLastIcon = (): JSX.Element => <SVGPlaycontrolLastIcon />;
|
||||
export const InfoIcon = (): JSX.Element => <SVGInfoIcon />;
|
||||
export const FullscreenIcon = (): JSX.Element => <SVGFullscreenIcon />;
|
||||