import React, { ForwardedRef, useContext } from 'react';
import { OriginIconProps } from '../type';
import { Context } from '../context';

function IconUploadingCsvComponent(props: OriginIconProps, ref: ForwardedRef<SVGSVGElement>) {
    const { prefix: prefixFromContext } = useContext(Context);
    const { className = '', prefix: prefixFromProps, width = '1em', height = '1em', useCurrentColor = false, spin, ...rest } = props;

    const prefix = prefixFromProps || prefixFromContext || 'hiagent';
    const loadingKls = spin ? ` ${prefix}-icon-loading` : '';
    return <svg className={`${prefix}-icon ${prefix}-icon-uploading-csv${loadingKls} ${className}`} width={width} height={height} xmlns="http://www.w3.org/2000/svg" fill={useCurrentColor ? 'currentColor' : 'none'} viewBox="0 0 32 32" {...rest} ref={ref}><path fill={useCurrentColor ? 'currentColor' : '#00B7FF'} fillRule="evenodd" d="M8 2a4 4 0 0 0-4 4v20a4 4 0 0 0 4 4h16a4 4 0 0 0 4-4V12L18 2H8Z" clipRule="evenodd"/><path fill={useCurrentColor ? 'currentColor' : '#fff'} d="M14.215 12.711a.2.2 0 0 1 .197-.165h.644a.2.2 0 0 1 .194.248l-.517 2.094a.2.2 0 0 1-.194.152h-.498a.2.2 0 0 1-.197-.235l.37-2.094ZM10.092 8c.753 0 1.328.164 1.724.493.404.321.606.817.606 1.488v3.535a.2.2 0 0 1-.2.2h-.731a.2.2 0 0 1-.186-.127l-.24-.61a.035.035 0 0 0-.032-.022.04.04 0 0 0-.028.013 2.775 2.775 0 0 1-.482.48 1.5 1.5 0 0 1-.574.277 2.881 2.881 0 0 1-.79.092c-.329 0-.627-.062-.893-.185a1.449 1.449 0 0 1-.616-.585c-.15-.267-.226-.602-.226-1.006 0-.595.209-1.033.626-1.313.417-.287 1.043-.445 1.878-.472l.781-.025a.2.2 0 0 0 .194-.2v-.052c0-.295-.079-.51-.236-.647-.15-.137-.363-.205-.636-.205-.274 0-.54.04-.8.123a6 6 0 0 0-.603.21c-.1.042-.215 0-.262-.097l-.334-.688a.192.192 0 0 1 .09-.26 4.6 4.6 0 0 1 .82-.284c.37-.089.753-.133 1.15-.133Zm.216 3.14c-.493.014-.835.103-1.026.267a.81.81 0 0 0-.288.647c0 .232.069.4.205.502.137.096.315.144.534.144.329 0 .606-.096.831-.287.226-.199.34-.476.34-.831v-.255a.2.2 0 0 0-.208-.2l-.388.013Z" opacity=".7"/><path fill={useCurrentColor ? 'currentColor' : '#fff'} d="M17.685 23.213c0 .41-.097.761-.29 1.053-.195.283-.486.5-.874.65-.389.149-.87.223-1.445.223a5.79 5.79 0 0 1-1.098-.09 4.225 4.225 0 0 1-.794-.219.195.195 0 0 1-.124-.183v-.933c0-.146.15-.243.286-.19.246.096.505.18.778.249.38.097.717.146 1.008.146.328 0 .56-.05.694-.146a.443.443 0 0 0 .213-.38.464.464 0 0 0-.09-.28c-.052-.083-.171-.176-.358-.28a8.968 8.968 0 0 0-.874-.404 6.782 6.782 0 0 1-.94-.482 1.624 1.624 0 0 1-.55-.582c-.119-.232-.178-.52-.178-.863 0-.567.22-.993.66-1.276.44-.284 1.027-.426 1.759-.426.38 0 .743.037 1.086.112.289.063.585.16.89.29a.195.195 0 0 1 .1.257l-.35.833a.203.203 0 0 1-.267.107 8.33 8.33 0 0 0-.395-.154 4.087 4.087 0 0 0-.549-.157 2.526 2.526 0 0 0-.538-.056c-.246 0-.433.034-.56.1a.326.326 0 0 0-.179.303c0 .097.03.187.09.269.067.075.19.157.37.247.186.09.459.209.817.358.35.142.653.291.907.448.254.15.448.34.583.571.142.224.212.519.212.885ZM10.28 25.14c-.605 0-1.12-.109-1.546-.326a2.215 2.215 0 0 1-.974-1.03c-.224-.463-.336-1.056-.336-1.78 0-.747.127-1.356.38-1.826.255-.47.606-.818 1.054-1.042.455-.224.978-.336 1.568-.336a4.228 4.228 0 0 1 1.736.339c.096.04.14.15.102.247l-.355.927a.203.203 0 0 1-.261.116 7.621 7.621 0 0 0-.55-.184 2.328 2.328 0 0 0-.672-.101c-.292 0-.534.071-.728.213-.194.134-.34.34-.437.616-.09.269-.135.608-.135 1.019 0 .403.049.74.146 1.008.105.261.254.46.448.594.194.127.43.19.706.19.35 0 .66-.045.93-.134.158-.057.313-.126.466-.207.14-.073.317.024.317.182v.946a.192.192 0 0 1-.092.166 2.53 2.53 0 0 1-.714.29c-.276.075-.627.112-1.053.112Z"/><path fill={useCurrentColor ? 'currentColor' : '#fff'} d="M18.417 19.064a.2.2 0 0 1 .19-.264h1.267a.2.2 0 0 1 .19.136l2.105 6.264h-1.546a.2.2 0 0 1-.19-.136l-2.016-6Z" opacity=".8"/><path fill={useCurrentColor ? 'currentColor' : '#fff'} d="M24.48 19.064a.2.2 0 0 0-.19-.264h-1.267a.2.2 0 0 0-.19.136L20.73 25.2h1.545a.2.2 0 0 0 .19-.136l2.016-6Z"/><path fill={useCurrentColor ? 'currentColor' : '#80DBFF'} d="m18 2 10 10h-6a4 4 0 0 1-4-4V2Z"/></svg>;
}

const IconUploadingCsv = React.forwardRef(IconUploadingCsvComponent);
export default IconUploadingCsv;
