fixed conflicts + link to ssh-keys panel
[arvados-workbench2.git] / src / components / icon / icon.tsx
index ef16ced6c53640b9d5282f351cd7173fc1b5226a..b46195de876e385d8ac721b38c88c122945b630c 100644 (file)
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import * as classnames from "classnames";
-
 import AccessTime from '@material-ui/icons/AccessTime';
-import Announcement from '@material-ui/icons/Announcement';
+import Add from '@material-ui/icons/Add';
+import ArrowBack from '@material-ui/icons/ArrowBack';
 import ArrowDropDown from '@material-ui/icons/ArrowDropDown';
 import BubbleChart from '@material-ui/icons/BubbleChart';
 import Cached from '@material-ui/icons/Cached';
-import Code from '@material-ui/icons/Code';
 import ChevronLeft from '@material-ui/icons/ChevronLeft';
+import CloudUpload from '@material-ui/icons/CloudUpload';
+import Code from '@material-ui/icons/Code';
+import Create from '@material-ui/icons/Create';
+import ImportContacts from '@material-ui/icons/ImportContacts';
 import ChevronRight from '@material-ui/icons/ChevronRight';
 import Close from '@material-ui/icons/Close';
-import ContentCopy from '@material-ui/icons/ContentCopy';
+import ContentCopy from '@material-ui/icons/FileCopyOutlined';
 import CreateNewFolder from '@material-ui/icons/CreateNewFolder';
 import Delete from '@material-ui/icons/Delete';
+import DeviceHub from '@material-ui/icons/DeviceHub';
 import Edit from '@material-ui/icons/Edit';
-import FolderIcon from '@material-ui/icons/Folder';
+import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
+import Folder from '@material-ui/icons/Folder';
 import GetApp from '@material-ui/icons/GetApp';
 import Help from '@material-ui/icons/Help';
+import HelpOutline from '@material-ui/icons/HelpOutline';
 import Inbox from '@material-ui/icons/Inbox';
 import Info from '@material-ui/icons/Info';
 import Input from '@material-ui/icons/Input';
+import InsertDriveFile from '@material-ui/icons/InsertDriveFile';
+import LastPage from '@material-ui/icons/LastPage';
+import LibraryBooks from '@material-ui/icons/LibraryBooks';
+import ListAlt from '@material-ui/icons/ListAlt';
 import Menu from '@material-ui/icons/Menu';
 import MoreVert from '@material-ui/icons/MoreVert';
-import NotificationsIcon from '@material-ui/icons/Notifications';
+import Mail from '@material-ui/icons/Mail';
+import MoveToInbox from '@material-ui/icons/MoveToInbox';
+import Notifications from '@material-ui/icons/Notifications';
 import People from '@material-ui/icons/People';
 import Person from '@material-ui/icons/Person';
 import PersonAdd from '@material-ui/icons/PersonAdd';
 import PlayArrow from '@material-ui/icons/PlayArrow';
 import RateReview from '@material-ui/icons/RateReview';
+import RestoreFromTrash from '@material-ui/icons/History';
 import Search from '@material-ui/icons/Search';
+import SettingsApplications from '@material-ui/icons/SettingsApplications';
+import SettingsEthernet from '@material-ui/icons/SettingsEthernet';
 import Star from '@material-ui/icons/Star';
 import StarBorder from '@material-ui/icons/StarBorder';
+import Warning from '@material-ui/icons/Warning';
 
-export enum IconTypes {
-    ACCESS_TIME = 'access_time',
-    ANNOUNCEMENT = 'announcement',
-    ARROW_DROP_DOWN = 'arrow_drop_down',
-    BUBBLE_CHART = 'bubble_chart',
-    CACHED = 'cached',
-    CODE = 'code',
-    CHEVRON_LEFT = 'chevron_left',
-    CHEVRON_RIGHT = 'chevron-right',
-    COLLECTION = 'collection',
-    CLOSE = 'close',
-    CONTENT_COPY = 'content_copy',
-    CREATE_NEW_FOLDER = 'create_new_folder',
-    DELETE = 'delete',
-    EDIT = 'edit',
-    FOLDER = 'folder',
-    GET_APP = 'get_app',
-    HELP = 'help',
-    INBOX = 'inbox',
-    INFO = 'info',
-    INPUT = 'input',
-    MENU = 'menu',
-    MORE_VERT = 'more_vert',
-    NOTIFICATIONS = 'notifications',
-    PEOPLE = 'people',
-    PERSON = 'person',
-    PERSON_ADD = 'person_add',
-    PLAY_ARROW = 'play_arrow',
-    RATE_REVIEW = 'rate_review',
-    SEARCH = 'search',
-    STAR = 'star',
-    STAR_BORDER = 'star_border'
-}
-
-interface IconBaseDataProps {
-    icon: IconTypes;
-    className?: string;
-}
-
-type IconBaseProps = IconBaseDataProps;
-
-interface IconBaseState {
-    icon: IconTypes;
-}
-
-const getSpecificIcon = (props: any) => ({
-    [IconTypes.ACCESS_TIME]: <AccessTime className={props.className} />,
-    [IconTypes.ANNOUNCEMENT]: <Announcement className={props.className} />,
-    [IconTypes.ARROW_DROP_DOWN]: <ArrowDropDown className={props.className} />,
-    [IconTypes.BUBBLE_CHART]: <BubbleChart className={props.className} />,
-    [IconTypes.CACHED]: <Cached className={props.className} />,
-    [IconTypes.CODE]: <Code className={props.className} />,
-    [IconTypes.CHEVRON_LEFT]: <ChevronLeft className={props.className} />,
-    [IconTypes.CHEVRON_RIGHT]: <ChevronRight className={props.className} />,
-    [IconTypes.COLLECTION]: <i className={classnames([props.className, 'fas fa-archive fa-lg'])} />,
-    [IconTypes.CLOSE]: <Close className={props.className} />,
-    [IconTypes.CONTENT_COPY]: <ContentCopy className={props.className} />,
-    [IconTypes.CREATE_NEW_FOLDER]: <CreateNewFolder className={props.className} />,
-    [IconTypes.DELETE]: <Delete className={props.className} />,
-    [IconTypes.EDIT]: <Edit className={props.className} />,    
-    [IconTypes.FOLDER]: <FolderIcon className={props.className} />,
-    [IconTypes.GET_APP]: <GetApp className={props.className} />,
-    [IconTypes.HELP]: <Help className={props.className} />,
-    [IconTypes.INBOX]: <Inbox className={props.className} />,
-    [IconTypes.INFO]: <Info className={props.className} />,
-    [IconTypes.INPUT]: <Input className={props.className} />,
-    [IconTypes.MENU]: <Menu className={props.className} />,
-    [IconTypes.MORE_VERT]: <MoreVert className={props.className} />,
-    [IconTypes.NOTIFICATIONS]: <NotificationsIcon className={props.className} />,
-    [IconTypes.PEOPLE]: <People className={props.className} />,
-    [IconTypes.PERSON]: <Person className={props.className} />,
-    [IconTypes.PERSON_ADD]: <PersonAdd className={props.className} />,
-    [IconTypes.PLAY_ARROW]: <PlayArrow className={props.className} />,
-    [IconTypes.RATE_REVIEW]: <RateReview className={props.className} />,
-    [IconTypes.SEARCH]: <Search className={props.className} />,
-    [IconTypes.STAR]: <Star className={props.className} />,
-    [IconTypes.STAR_BORDER]: <StarBorder className={props.className} />
-});
-
-class IconBase extends React.Component<IconBaseProps, IconBaseState> {
-    state = {
-        icon: IconTypes.FOLDER,
-    };
-
-    render() {
-        return getSpecificIcon(this.props)[this.props.icon];
-    }
-}
+export type IconType = React.SFC<{ className?: string, style?: object }>;
 
-export default IconBase;
\ No newline at end of file
+export const AddIcon: IconType = (props) => <Add {...props} />;
+export const AddFavoriteIcon: IconType = (props) => <StarBorder {...props} />;
+export const AdvancedIcon: IconType = (props) => <SettingsApplications {...props} />;
+export const AttributesIcon: IconType = (props) => <ListAlt {...props} />;
+export const BackIcon: IconType = (props) => <ArrowBack {...props} />;
+export const CustomizeTableIcon: IconType = (props) => <Menu {...props} />;
+export const CommandIcon: IconType = (props) => <LastPage {...props} />;
+export const CopyIcon: IconType = (props) => <ContentCopy {...props} />;
+export const CollectionIcon: IconType = (props) => <LibraryBooks {...props} />;
+export const CloseIcon: IconType = (props) => <Close {...props} />;
+export const CloudUploadIcon: IconType = (props) => <CloudUpload {...props} />;
+export const DefaultIcon: IconType = (props) => <RateReview {...props} />;
+export const DetailsIcon: IconType = (props) => <Info {...props} />;
+export const DownloadIcon: IconType = (props) => <GetApp {...props} />;
+export const EditSavedQueryIcon: IconType = (props) => <Create {...props} />;
+export const ExpandIcon: IconType = (props) => <ExpandMoreIcon {...props} />;
+export const FavoriteIcon: IconType = (props) => <Star {...props} />;
+export const HelpIcon: IconType = (props) => <Help {...props} />;
+export const HelpOutlineIcon: IconType = (props) => <HelpOutline {...props} />;
+export const ImportContactsIcon: IconType = (props) => <ImportContacts {...props} />;
+export const InputIcon: IconType = (props) => <InsertDriveFile {...props} />;
+export const LogIcon: IconType = (props) => <SettingsEthernet {...props} />;
+export const MailIcon: IconType = (props) => <Mail {...props} />;
+export const MoreOptionsIcon: IconType = (props) => <MoreVert {...props} />;
+export const MoveToIcon: IconType = (props) => <Input {...props} />;
+export const NewProjectIcon: IconType = (props) => <CreateNewFolder {...props} />;
+export const NotificationIcon: IconType = (props) => <Notifications {...props} />;
+export const OutputIcon: IconType = (props) => <MoveToInbox {...props} />;
+export const PaginationDownIcon: IconType = (props) => <ArrowDropDown {...props} />;
+export const PaginationLeftArrowIcon: IconType = (props) => <ChevronLeft {...props} />;
+export const PaginationRightArrowIcon: IconType = (props) => <ChevronRight {...props} />;
+export const ProcessIcon: IconType = (props) => <BubbleChart {...props} />;
+export const ProjectIcon: IconType = (props) => <Folder {...props} />;
+export const ProjectsIcon: IconType = (props) => <Inbox {...props} />;
+export const ProvenanceGraphIcon: IconType = (props) => <DeviceHub {...props} />;
+export const RecentIcon: IconType = (props) => <AccessTime {...props} />;
+export const RemoveIcon: IconType = (props) => <Delete {...props} />;
+export const RemoveFavoriteIcon: IconType = (props) => <Star {...props} />;
+export const RenameIcon: IconType = (props) => <Edit {...props} />;
+export const RestoreFromTrashIcon: IconType = (props) => <RestoreFromTrash {...props} />;
+export const ReRunProcessIcon: IconType = (props) => <Cached {...props} />;
+export const SearchIcon: IconType = (props) => <Search {...props} />;
+export const ShareIcon: IconType = (props) => <PersonAdd {...props} />;
+export const ShareMeIcon: IconType = (props) => <People {...props} />;
+export const SidePanelRightArrowIcon: IconType = (props) => <PlayArrow {...props} />;
+export const TrashIcon: IconType = (props) => <Delete {...props} />;
+export const UserPanelIcon: IconType = (props) => <Person {...props} />;
+export const UsedByIcon: IconType = (props) => <Folder {...props} />;
+export const WorkflowIcon: IconType = (props) => <Code {...props} />;
+export const WarningIcon: IconType = (props) => <Warning style={{ color: '#fbc02d', height: '30px', width: '30px' }} {...props} />;