// Copyright (C) 2020 Intel Corporation // // SPDX-License-Identifier: MIT import React from 'react'; import { Tooltip, Select, Table, Modal, Spin, Icon, Row, Col, } from 'antd'; import Text from 'antd/lib/typography/Text'; interface Props { collecting: boolean; data: any; visible: boolean; assignee: string; startFrame: number; stopFrame: number; zOrder: boolean; bugTracker: string; jobStatus: string; savingJobStatus: boolean; closeStatistics(): void; changeJobStatus(status: string): void; } export default function StatisticsModalComponent(props: Props): JSX.Element { const { collecting, data, visible, jobStatus, assignee, startFrame, stopFrame, zOrder, bugTracker, closeStatistics, changeJobStatus, savingJobStatus, } = props; const baseProps = { cancelButtonProps: { style: { display: 'none' } }, okButtonProps: { style: { width: 100 } }, onOk: closeStatistics, width: 1000, visible, closable: false, }; if (collecting || !data) { return ( ); } const rows = Object.keys(data.label).map((key: string) => ({ key, label: key, rectangle: `${data.label[key].rectangle.shape} / ${data.label[key].rectangle.track}`, polygon: `${data.label[key].polygon.shape} / ${data.label[key].polygon.track}`, polyline: `${data.label[key].polyline.shape} / ${data.label[key].polyline.track}`, points: `${data.label[key].points.shape} / ${data.label[key].points.track}`, tags: data.label[key].tags, manually: data.label[key].manually, interpolated: data.label[key].interpolated, total: data.label[key].total, })); rows.push({ key: '___total', label: 'Total', rectangle: `${data.total.rectangle.shape} / ${data.total.rectangle.track}`, polygon: `${data.total.polygon.shape} / ${data.total.polygon.track}`, polyline: `${data.total.polyline.shape} / ${data.total.polyline.track}`, points: `${data.total.points.shape} / ${data.total.points.track}`, tags: data.total.tags, manually: data.total.manually, interpolated: data.total.interpolated, total: data.total.total, }); const makeShapesTracksTitle = (title: string): JSX.Element => ( {title} ); const columns = [{ title: Label , dataIndex: 'label', key: 'label', }, { title: makeShapesTracksTitle('Rectangle'), dataIndex: 'rectangle', key: 'rectangle', }, { title: makeShapesTracksTitle('Polygon'), dataIndex: 'polygon', key: 'polygon', }, { title: makeShapesTracksTitle('Polyline'), dataIndex: 'polyline', key: 'polyline', }, { title: makeShapesTracksTitle('Points'), dataIndex: 'points', key: 'points', }, { title: Tags , dataIndex: 'tags', key: 'tags', }, { title: Manually , dataIndex: 'manually', key: 'manually', }, { title: Interpolated , dataIndex: 'interpolated', key: 'interpolated', }, { title: Total , dataIndex: 'total', key: 'total', }]; return (
Job status {savingJobStatus && } Overview Assignee {assignee} Start frame {startFrame} Stop frame {stopFrame} Frames {stopFrame - startFrame + 1} Z-Order {zOrder.toString()} { !!bugTracker && ( Bug tracker {bugTracker} )} Annotations statistics ); }