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

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

    const prefix = prefixFromProps || prefixFromContext || 'hiagent';
    const loadingKls = spin ? ` ${prefix}-icon-loading` : '';
    return <svg className={`${prefix}-icon ${prefix}-icon-configuration${loadingKls} ${className}`} width={width} height={height} viewBox="0 0 16 16" fill={useCurrentColor ? 'currentColor' : '#000'} xmlns="http://www.w3.org/2000/svg" {...rest} ref={ref}><path fillRule="evenodd" clipRule="evenodd" d="M3.27848 3.44304C3.27848 2.64607 3.92455 2 4.72152 2H6.2405C7.03747 2 7.68354 2.64607 7.68354 3.44304V4.28266C7.70849 4.2799 7.73385 4.27848 7.75953 4.27848H14.595C14.9725 4.27848 15.2785 4.58451 15.2785 4.96202C15.2785 5.33953 14.9725 5.64557 14.595 5.64557H7.75953C7.73385 5.64557 7.70849 5.64415 7.68354 5.64139V6.48101C7.68354 7.27798 7.03747 7.92405 6.2405 7.92405H4.72152C3.92455 7.92405 3.27848 7.27798 3.27848 6.48101V5.64557H1.68354C1.30603 5.64557 1 5.33953 1 4.96202C1 4.58451 1.30603 4.27848 1.68354 4.27848H3.27848V3.44304ZM4.72152 3.36709C4.67957 3.36709 4.64557 3.40109 4.64557 3.44304V6.48101C4.64557 6.52295 4.67957 6.55696 4.72152 6.55696H6.2405C6.28245 6.55696 6.31645 6.52295 6.31645 6.48101V3.44304C6.31645 3.40109 6.28245 3.36709 6.2405 3.36709H4.72152ZM1.68354 10.3544C1.30603 10.3544 1 10.6605 1 11.038C1 11.4155 1.30603 11.7215 1.68354 11.7215H8.59502V12.557C8.59502 13.3539 9.24109 14 10.0381 14H11.557C12.354 14 13.0001 13.3539 13.0001 12.557V11.7215H14.595C14.9725 11.7215 15.2785 11.4155 15.2785 11.038C15.2785 10.6605 14.9725 10.3544 14.595 10.3544H13.0001V9.51899C13.0001 8.72202 12.354 8.07596 11.557 8.07596H10.0381C9.24109 8.07596 8.59502 8.72202 8.59502 9.51899V10.3544H1.68354ZM11.633 11.03V9.51899C11.633 9.47705 11.599 9.44304 11.557 9.44304H10.0381C9.99611 9.44304 9.96211 9.47705 9.96211 9.51899V12.557C9.96211 12.5989 9.99611 12.6329 10.0381 12.6329H11.557C11.599 12.6329 11.633 12.5989 11.633 12.557V11.046C11.633 11.0433 11.6329 11.0406 11.6329 11.038C11.6329 11.0353 11.633 11.0326 11.633 11.03Z"/><path fillRule="evenodd" clipRule="evenodd" d="M3.1785 3.44303C3.1785 2.59084 3.86934 1.89999 4.72154 1.89999H6.24053C7.09272 1.89999 7.78356 2.59084 7.78356 3.44303V4.17847H14.595C15.0277 4.17847 15.3785 4.52928 15.3785 4.96202C15.3785 5.39476 15.0277 5.74556 14.595 5.74556H7.78356V6.481C7.78356 7.3332 7.09272 8.02404 6.24053 8.02404H4.72154C3.86934 8.02404 3.1785 7.3332 3.1785 6.481V5.74556H1.68357C1.25083 5.74556 0.900024 5.39476 0.900024 4.96202C0.900024 4.52928 1.25083 4.17847 1.68357 4.17847H3.1785V3.44303ZM7.68356 5.64138C7.70851 5.64414 7.73387 5.64556 7.75956 5.64556H14.595C14.9725 5.64556 15.2785 5.33953 15.2785 4.96202C15.2785 4.58451 14.9725 4.27847 14.595 4.27847H7.75956C7.73387 4.27847 7.70851 4.27989 7.68356 4.28265V3.44303C7.68356 2.64606 7.03749 1.99999 6.24053 1.99999H4.72154C3.92457 1.99999 3.2785 2.64606 3.2785 3.44303V4.27847H1.68357C1.30606 4.27847 1.00002 4.58451 1.00002 4.96202C1.00002 5.33953 1.30606 5.64556 1.68357 5.64556H3.2785V6.481C3.2785 7.27797 3.92457 7.92404 4.72154 7.92404H6.24053C7.03749 7.92404 7.68356 7.27797 7.68356 6.481V5.64138ZM4.74559 3.46708V6.45695H6.21648V3.46708H4.74559ZM0.900024 11.038C0.900024 10.6052 1.25083 10.2544 1.68357 10.2544H8.49505V9.51899C8.49505 8.66679 9.18589 7.97595 10.0381 7.97595H11.5571C12.4093 7.97595 13.1001 8.66679 13.1001 9.51899V10.2544H14.595C15.0277 10.2544 15.3785 10.6052 15.3785 11.038C15.3785 11.4707 15.0277 11.8215 14.595 11.8215H13.1001V12.557C13.1001 13.4092 12.4093 14.1 11.5571 14.1H10.0381C9.18589 14.1 8.49505 13.4092 8.49505 12.557V11.8215H1.68357C1.25083 11.8215 0.900024 11.4707 0.900024 11.038ZM1.68357 11.7215C1.30606 11.7215 1.00002 11.4155 1.00002 11.038C1.00002 10.6605 1.30606 10.3544 1.68357 10.3544H8.59505V9.51899C8.59505 8.72202 9.24112 8.07595 10.0381 8.07595H11.5571C12.354 8.07595 13.0001 8.72202 13.0001 9.51899V10.3544H14.595C14.9725 10.3544 15.2785 10.6605 15.2785 11.038C15.2785 11.4155 14.9725 11.7215 14.595 11.7215H13.0001V12.557C13.0001 13.3539 12.354 14 11.5571 14H10.0381C9.24112 14 8.59505 13.3539 8.59505 12.557V11.7215H1.68357ZM11.533 9.54304H10.0621V12.5329H11.533V11.046L11.533 11.038L11.533 11.03V9.54304ZM11.633 11.03V9.51899C11.633 9.47704 11.599 9.44304 11.5571 9.44304H10.0381C9.99614 9.44304 9.96213 9.47704 9.96213 9.51899V12.557C9.96213 12.5989 9.99614 12.6329 10.0381 12.6329H11.5571C11.599 12.6329 11.633 12.5989 11.633 12.557V11.046L11.633 11.038L11.633 11.03ZM4.64559 3.44303C4.64559 3.40108 4.67959 3.36708 4.72154 3.36708H6.24053C6.28247 3.36708 6.31648 3.40108 6.31648 3.44303V6.481C6.31648 6.52295 6.28247 6.55695 6.24053 6.55695H4.72154C4.67959 6.55695 4.64559 6.52295 4.64559 6.481V3.44303Z"/></svg>;
}

const IconConfiguration = React.forwardRef(IconConfigurationComponent);
export default IconConfiguration;
