/* tslint:disable */
/* eslint-disable */

import React, { FunctionComponent } from 'react';
import { ViewProps } from 'react-native';
import { Svg, GProps, Path } from 'react-native-svg';


export type IconNames = 'startnodegray' | 'import' | 'editline' | 'editnode' | 'startnode' | 'delete' | 'workflow' | 'addline2' | 'export' | 'endnode' | 'addline' | 'condnode' | 'addnode';

interface Props extends GProps, ViewProps {
  name: IconNames;
  size?: number;
  color?: string | string[];
}

// If you don't want to make all icons in one file,
// try to set generate_mode to "depends-on" in root file "iconfont.json".
// And then regenerate icons by using cli command.
const Iconfont: FunctionComponent<Props> = ({ color, name, size, ...rest }) => {
  switch (name) {
    case 'startnodegray':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M874.130286 149.942857C777.508571 53.248 648.850286 0 512.146286 0c-136.777143 0-265.362286 53.248-361.984 149.942857C53.394286 246.637714 0.073143 375.222857 0.073143 512s53.248 265.435429 149.942857 362.057143C246.710857 970.752 375.222857 1024 512.073143 1024c136.777143 0 265.362286-53.321143 362.203429-150.016C1073.810286 674.450286 1073.810286 349.549714 874.130286 149.942857zM812.690286 812.470857c-80.310857 80.310857-187.172571 124.562286-300.617143 124.562286-113.517714 0-220.306286-44.178286-300.544-124.489143S87.04 625.590857 87.04 512s44.251429-220.306286 124.635429-300.617143C291.84 131.145143 398.628571 86.893714 512.146286 86.893714c113.590857 0 220.306286 44.178286 300.470857 124.489143C978.432 377.124571 978.432 646.802286 812.690286 812.470857z"
            fill={getIconColor(color, 0, '#333333')}
          />
          <Path
            d="M484.352 274.066286C476.233143 264.484571 464.530286 258.048 450.998857 258.048c-0.073143 0-0.219429 0.073143-0.292571 0.073143C439.442286 258.048 428.178286 262.217143 419.620571 270.848 411.062857 279.405714 406.893714 290.669714 406.893714 301.933714c0 0.073143-0.073143 0.146286-0.073143 0.292571l0 419.474286c0 0.146286 0.073143 0.219429 0.073143 0.365714-0.073143 11.190857 4.096 22.528 12.653714 31.085714 8.484571 8.557714 19.602286 12.8 30.72 12.8 0.073143 0 0.219429-0.073143 0.365714-0.073143 0.073143 0 0.219429 0.073143 0.292571 0.073143 13.531429 0 25.234286-6.436571 33.353143-15.945143L691.565714 542.72C699.684571 534.601143 704.292571 523.483429 704.292571 512c0-11.483429-4.608-22.601143-12.726857-30.72L484.352 274.066286z"
            fill={getIconColor(color, 1, '#333333')}
          />
        </Svg>
      );
    case 'import':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M856.082 538.773c-18.399-0.356-33.478 15.057-33.478 33.478v222.697c-0.114 10.233-17.559 27.628-27.792 27.656H226.083c-16.104-0.036-29.148-13.083-29.188-29.188V226.083c0.04-16.104 13.084-29.148 29.188-29.188h228.456c18.413 0 33.818-15.075 33.477-33.478-0.355-17.886-14.949-32.198-32.835-32.194h-247.34c-42.313 0-76.617 34.304-76.617 76.617v603.818c0 42.313 34.304 76.617 76.617 76.617h595.752c18.328 0 44.871-2.217 63.755-21.363 18.87-19.148 20.929-45.784 20.929-64.24V571.61c-0.001-17.886-14.309-32.495-32.195-32.837z"
            fill={getIconColor(color, 0, '#333333')}
          />
          <Path
            d="M448.369 603.959h212.265c18.136 0.007 32.843-14.687 32.85-32.821 0.015-18.136-14.679-32.844-32.822-32.851h-133.04l351.69-351.641c12.456-13.196 11.857-33.997-1.34-46.46-12.514-11.801-32.017-11.973-44.722-0.37l-0.385 0.384-351.661 351.633V357.895c0-18.143-14.708-32.835-32.843-32.835-18.137 0.007-32.829 14.714-32.829 32.85v213.214c0 18.134 14.701 32.835 32.837 32.835z"
            fill={getIconColor(color, 1, '#333333')}
          />
        </Svg>
      );
    case 'editline':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M666.688 756.16a38.272 38.272 0 0 1-26.816-10.368 36.48 36.48 0 0 1-10.752-26.176c0-9.472 3.584-18.944 10.752-25.92l148.8-144.256H144.768a37.632 37.632 0 0 1-38.464-37.44 37.76 37.76 0 0 1 38.464-37.44h643.072l-148.864-144.192a36.608 36.608 0 0 1-10.752-26.048c0-9.728 3.648-19.136 10.752-26.176 7.168-6.976 16.96-10.368 26.816-10.368s19.904 3.392 27.008 10.368l214.144 207.744a36.48 36.48 0 0 1 10.752 26.112c0 9.6-3.584 19.136-10.752 26.112l-214.144 207.744a38.976 38.976 0 0 1-26.112 10.304"
            fill={getIconColor(color, 0, '#333333')}
          />
          <Path
            d="M358.592 678.272a25.344 25.344 0 0 1-35.776 0l-150.656-150.656a25.152 25.152 0 0 1 0-35.776l145.984-146.048a25.152 25.152 0 0 1 35.776 0l150.656 150.656a25.408 25.408 0 0 1 0 35.904l-145.984 145.92z"
            fill={getIconColor(color, 1, '#333333')}
          />
        </Svg>
      );
    case 'editnode':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M820.897181 377.241763h-19.817387V286.589917c0-0.609766-0.101628-1.117904-0.203256-1.72767 0-3.658595-1.321159-7.215562-3.86185-9.959508L638.373958 102.745534l-0.101628-0.101628c-1.219532-1.321159-2.642318-2.337435-4.26836-3.150456-1.016276-0.508138-2.13418-0.914649-3.150457-1.321159l-0.914648-0.304883c-1.219532-0.304883-2.439063-0.406511-3.658595-0.406511h-390.250099c-17.784835 0-32.317586 13.71973-32.317587 30.691544v249.089322H183.996824c-12.195316 0-23.984121 4.573243-32.622469 12.805081s-13.516475 19.410877-13.516475 30.996427v227.950774c0 24.187376 20.630409 43.801509 46.138944 43.801509h19.817388v155.998412c0 16.870187 14.431123 30.691544 32.317586 30.691544h532.833664c17.784835 0 32.317586-13.71973 32.317587-30.691544V692.897181h19.817388c25.508535 0 46.138944-19.614133 46.138944-43.801508V421.144899c0-11.58555-4.878126-22.764589-13.516475-30.996427-8.841604-8.231838-20.528781-12.906709-32.825725-12.906709zM236.030171 128.152441h373.989678v156.913061c0 4.065105 1.72767 7.926955 4.776499 10.874157 3.048829 2.845574 7.113934 4.471616 11.382294 4.471615h142.685193v76.830489H236.030171V128.152441z m532.833664 712.409687H236.030171V692.897181h532.833664v147.664947z"
            fill={getIconColor(color, 0, '#333333')}
          />
          <Path
            d="M192.533545 445.94204l87.196507 140.24613h0.609765v-140.24613h42.988488v208.946408h-45.935689l-86.891624-139.941247h-0.609765v139.941247h-42.988488V445.94204h45.630806zM360.219135 546.451767c3.658595-9.85788 8.943231-18.292973 15.85391-25.203653 6.809051-6.910679 15.040889-12.296943 24.593886-16.057165 9.552997-3.760222 20.325526-5.691147 32.215959-5.691147s22.662961 1.930925 32.317586 5.691147 17.886463 9.146487 24.695514 16.057165c6.809051 6.910679 12.093688 15.345772 15.853911 25.203653 3.658595 9.85788 5.58952 20.833664 5.589519 32.927352s-1.829297 23.069472-5.589519 32.825724c-3.658595 9.756252-8.943231 18.089718-15.853911 25.000397-6.809051 6.910679-15.040889 12.296943-24.695514 15.955538-9.654625 3.658595-20.427154 5.58952-32.317586 5.58952s-22.662961-1.829297-32.215959-5.58952c-9.552997-3.658595-17.784835-9.044859-24.593886-15.955538s-12.093688-15.244145-15.85391-25.000397c-3.658595-9.756252-5.58952-20.630409-5.58952-32.825724 0-12.093688 1.930925-23.069472 5.58952-32.927352z m37.805478 50.610559c1.219532 5.792775 3.150457 10.975784 5.99603 15.549028s6.605796 8.231838 11.280667 10.975784 10.569274 4.065105 17.58158 4.065105 12.906709-1.321159 17.683208-4.065105c4.776499-2.743946 8.536721-6.402541 11.382294-10.975784 2.845574-4.573243 4.878126-9.756252 5.99603-15.549028 1.219532-5.792775 1.72767-11.687177 1.72767-17.683207s-0.609766-11.99206-1.72767-17.886463c-1.219532-5.894403-3.150457-10.975784-5.99603-15.549028-2.845574-4.471616-6.605796-8.13021-11.382294-10.975784s-10.670901-4.26836-17.683208-4.26836-12.906709 1.422787-17.58158 4.26836c-4.674871 2.845574-8.435093 6.504168-11.280667 10.975784-2.845574 4.471616-4.878126 9.654625-5.99603 15.549028-1.219532 5.894403-1.72767 11.788805-1.72767 17.886463-0.101628 6.097658 0.508138 11.99206 1.72767 17.683207zM645.58952 635.579198c-4.878126 8.231838-11.280667 14.126241-19.207622 17.683208-7.926955 3.556967-16.870187 5.386264-26.829695 5.386264-11.280667 0-21.240175-2.235808-29.878523-6.605796s-15.650655-10.366018-21.240175-17.886463c-5.58952-7.520445-9.756252-16.158793-12.601826-25.915045s-4.26836-19.919015-4.26836-30.488289c0-10.162763 1.422787-19.919015 4.26836-29.370385 2.845574-9.45137 7.012306-17.784835 12.601826-25.000397 5.58952-7.215562 12.500198-13.008337 20.935292-17.378325 8.435093-4.369988 18.191346-6.605796 29.268758-6.605796 8.943231 0 17.479952 1.930925 25.610162 5.691147s14.532751 9.45137 19.207622 16.870187h0.609766v-76.119095h41.565701v208.946407h-39.533148v-19.30925l-0.508138 0.101628z m-1.72767-74.797936c-1.219532-5.792775-3.150457-10.874156-5.99603-15.244144-2.845574-4.369988-6.504168-7.926955-10.975784-10.670901s-10.162763-4.065105-16.971814-4.065105-12.601826 1.321159-17.276698 4.065105-8.435093 6.300913-11.280667 10.874156c-2.845574 4.471616-4.878126 9.654625-6.097657 15.345772-1.321159 5.792775-1.930925 11.788805-1.930925 17.988091 0 5.894403 0.711393 11.687177 2.032552 17.58158s3.556967 11.077412 6.605796 15.650655 6.809051 8.333466 11.382295 11.077411c4.573243 2.845574 10.061135 4.26836 16.565304 4.268361 6.809051 0 12.500198-1.321159 17.073441-4.065105s8.231838-6.402541 10.975784-10.975784 4.674871-9.756252 5.894403-15.650655c1.219532-5.894403 1.72767-11.890433 1.72767-18.191346 0-6.199285-0.609766-12.195316-1.72767-17.988091zM761.445018 618.607384c6.199285 6.097658 15.244145 9.044859 26.931322 9.044859 8.435093 0 15.650655-2.13418 21.646685-6.300913s9.756252-8.638349 11.077412-13.31322h36.585946c-5.894403 18.191346-14.837634 31.098055-26.931321 38.923383s-26.728067 11.687177-43.903137 11.687177c-11.890433 0-22.662961-1.930925-32.215958-5.691147-9.552997-3.760222-17.683208-9.248114-24.289004-16.260421s-11.788805-15.4474-15.345772-25.203652c-3.658595-9.756252-5.386264-20.528781-5.386264-32.215959 0-11.280667 1.829297-21.84994 5.589519-31.606193 3.658595-9.756252 8.943231-18.191346 15.85391-25.30528 6.809051-7.113934 14.939262-12.703454 24.390632-16.870186 9.45137-4.065105 19.919015-6.097658 31.504565-6.097658 12.906709 0 24.085748 2.439063 33.638746 7.418817 9.552997 4.979754 17.378325 11.687177 23.57761 20.020643 6.097658 8.435093 10.569274 17.988091 13.313219 28.658992 2.743946 10.772529 3.658595 21.951568 2.947201 33.638745H751.282255c0.508138 13.71973 3.963478 23.475983 10.162763 29.472013z m47.053593-79.574434c-4.979754-5.487892-12.500198-8.231838-22.662962-8.231838-6.605796 0-12.195316 1.117904-16.565304 3.353711s-7.926955 4.979754-10.569273 8.333466c-2.642318 3.353712-4.471616 6.809051-5.58952 10.569274-1.117904 3.658595-1.72767 7.012306-1.930925 9.959507h67.582374c-1.829297-10.569274-5.284637-18.597856-10.26439-23.98412z"
            fill={getIconColor(color, 1, '#FFFFFF')}
          />
          <Path
            d="M760.93688 569.419611c-120.225486 0-217.686383 97.460897-217.686384 217.686383 0 120.225486 97.460897 217.686383 217.686384 217.686384 120.225486 0 217.686383-97.460897 217.686383-217.686384 0-120.225486-97.460897-217.686383-217.686383-217.686383z"
            fill={getIconColor(color, 2, '#333333')}
          />
          <Path
            d="M905.654625 711.799921c6.097658-6.097658 6.097658-15.345772 0-21.44343l-35.264788-35.264788c-6.097658-6.097658-15.345772-6.097658-21.44343 0l-27.541087 27.541088 58.232632 58.232632 26.016673-29.065502zM634.512108 868.103216v58.131004h58.232632l168.498611-170.023025-58.232632-58.131004z"
            fill={getIconColor(color, 3, '#FFFFFF')}
          />
        </Svg>
      );
    case 'startnode':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M408.32 738.816L712.8832 512 408.32 285.184v453.632zM512 0c278.6816 0 512 233.3184 512 512 0 285.184-233.3184 512-512 512C226.816 1024 0 790.6816 0 512S233.3184 0 512 0z m0 959.1808c246.272 0 447.1808-200.9088 447.1808-447.1808 0-246.272-200.9088-447.1808-447.1808-447.1808C265.728 64.8192 64.8192 265.728 64.8192 512c0 246.272 200.9088 447.1808 447.1808 447.1808z"
            fill={getIconColor(color, 0, '#7EBC6C')}
          />
        </Svg>
      );
    case 'delete':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M637.5424 775.0144a25.088 25.088 0 0 0 25.088-25.088V398.1312a25.088 25.088 0 0 0-50.176 0v351.7952a25.088 25.088 0 0 0 25.088 25.088zM386.304 775.0144a25.088 25.088 0 0 0 25.088-25.088V398.1312a25.088 25.088 0 0 0-50.176 0v351.7952c0 13.8752 11.2128 25.088 25.088 25.088zM511.9488 775.0144a25.088 25.088 0 0 0 25.088-25.088V398.1312a25.088 25.088 0 0 0-50.176 0v351.7952c0 13.8752 11.2128 25.088 25.088 25.088z"
            fill={getIconColor(color, 0, '#f73f44')}
          />
          <Path
            d="M888.8832 251.648h-167.168V199.3216c0-34.2016-27.8528-62.0544-62.0544-62.0544H364.3392c-16.5888 0-32.1536 6.4512-43.8784 18.176a61.7472 61.7472 0 0 0-18.2272 43.8784v52.3264H135.0656a25.088 25.088 0 0 0 0 50.176H210.432v559.8208c0 13.7728 11.1616 25.088 25.088 25.088h552.8576a25.088 25.088 0 0 0 25.088-25.088V301.824h75.3664a25.1392 25.1392 0 0 0 0.0512-50.176zM346.2144 199.3216c0-4.8128 1.8944-9.3696 5.2736-12.8a18.2784 18.2784 0 0 1 12.8512-5.2736h295.3216c9.984 0 18.0736 8.1408 18.0736 18.0736v52.3264h-15.0016v-0.1024H361.216v0.1024h-15.0016V199.3216z m416.9728 637.1328H260.7104V301.824h502.4768v534.6304z"
            fill={getIconColor(color, 1, '#f73f44')}
          />
        </Svg>
      );
    case 'workflow':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M960.2 479.1c-9.6 0-18.7 2.4-26.6 6.7l-101.5-93.1c10.2-16.8 16.1-36.5 16.1-57.6 0-46.2-28.3-85.8-68.5-102.5l45-116.8h0.2c30.4 0 55-24.6 55-55s-24.6-55-55-55-55 24.6-55 55c0 19.7 10.3 36.9 25.9 46.6L750.6 225c-4.4-0.5-8.8-0.8-13.3-0.8-61.3 0-110.9 49.7-110.9 110.9 0 13.1 2.3 25.8 6.5 37.5l-5.5-14-186.2 73.5 11 27.9 186.2-73.5-3-7.5c17 39.4 56.2 67 101.9 67 29.4 0 56.1-11.4 75.9-30l98.7 90.5c-5 8.4-8 18.3-8 28.8 0 31.1 25.2 56.3 56.3 56.3s56.3-25.2 56.3-56.3c0-31-25.2-56.2-56.3-56.2zM359.5 803l14.9-1.6-22.7-210.1c53.6-7.3 94.9-53.3 94.9-108.8 0-60.7-49.2-109.9-109.9-109.9-41.5 0-77.6 23-96.3 56.9l7.1-13.2-126.6-67.5-7.1 13.3c2.4-6.4 3.7-13.2 3.7-20.4 0-31.8-25.8-57.6-57.6-57.6S2.5 309.9 2.5 341.6s25.8 57.6 57.6 57.6c19.4 0 36.6-9.6 47-24.4l-0.2 0.4 126.6 67.5 5.5-10.2c-7.7 15-12 32-12 50 0 60.7 49.2 109.9 109.9 109.9L322 594l22.5 210c-53.9 7.3-95.5 53.5-95.5 109.5 0 61 49.5 110.5 110.5 110.5S470 974.5 470 913.5 420.5 803 359.5 803z"
            fill={getIconColor(color, 0, '#333333')}
          />
        </Svg>
      );
    case 'addline2':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M810.666667 597.333333a128 128 0 0 0-120.32 85.333334H640a85.333333 85.333333 0 0 1-85.333333-85.333334v-170.666666a170.666667 170.666667 0 0 0-170.666667-170.666667H333.653333a128 128 0 1 0 0 85.333333H384a85.333333 85.333333 0 0 1 85.333333 85.333334v170.666666a170.666667 170.666667 0 0 0 170.666667 170.666667h50.346667A128 128 0 1 0 810.666667 597.333333z"
            fill={getIconColor(color, 0, '#333333')}
          />
        </Svg>
      );
    case 'export':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M832 832H192V192h256V128H128v768h768V576h-64z"
            fill={getIconColor(color, 0, '#333333')}
          />
          <Path
            d="M576 128v64h211.2L486.4 486.4l51.2 51.2L832 236.8V448h64V128z"
            fill={getIconColor(color, 1, '#333333')}
          />
        </Svg>
      );
    case 'endnode':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M960.05 512c0 247.45-200.6 448.05-448.05 448.05-247.45 0-448.06-200.6-448.06-448.05 0-247.46 200.6-448.06 448.06-448.06 247.46 0.01 448.05 200.61 448.05 448.06zM512 220.77c-160.84 0-291.24 130.39-291.24 291.24 0 160.84 130.4 291.24 291.24 291.24 160.85 0 291.24-130.39 291.24-291.24 0-160.86-130.39-291.24-291.24-291.24z"
            fill={getIconColor(color, 0, '#FFD8C8')}
          />
          <Path
            d="M509.27 294.98c118.35 0 214.29 95.94 214.29 214.29v0.29c0 118.35-95.94 214.28-214.29 214.28S294.98 627.9 294.98 509.56v-0.29c0.01-118.34 95.95-214.29 214.29-214.29z"
            fill={getIconColor(color, 1, '#FF723A')}
          />
        </Svg>
      );
    case 'addline':
      return (
        <Svg viewBox="0 0 1030 1024" width={size} height={size} {...rest}>
          <Path
            d="M1018.04032 822.633412l-144.564706-143.661177c-12.950588-12.830118-37.466353-14.456471-44.513882 2.288941a73.366588 73.366588 0 0 0-2.288941 17.106824v97.219765H337.321261a117.699765 117.699765 0 0 1-118.061176-117.519059A118.000941 118.000941 0 0 1 337.501967 560.549647h443.753412c121.072941 0 219.557647-98.002824 219.557647-218.413176 0-120.470588-98.484706-218.292706-219.557647-218.292706h-434.296471A173.658353 173.658353 0 0 0 181.251614 1.807059 173.116235 173.116235 0 0 0 7.894438 174.260706a173.417412 173.417412 0 1 0 339.004235 50.477176h434.296471c65.174588 0 118.181647 52.766118 118.181647 117.458824a117.820235 117.820235 0 0 1-118.181647 117.579294H337.321261c-120.952471 0-219.437176 97.942588-219.437176 218.413176s98.484706 218.292706 219.437176 218.292706h489.231059v92.16s0 14.215529 2.288941 19.696942c7.047529 16.865882 31.563294 17.468235 44.453647 4.638117l144.564706-143.721412a33.129412 33.129412 0 0 0 0.180706-46.622117zM181.131144 245.940706c-39.755294 0-71.920941-32.045176-71.920942-71.55953 0-39.454118 32.346353-71.499294 71.920942-71.499294 39.755294 0 71.920941 32.045176 71.920941 71.499294 0 39.393882-32.346353 71.439059-71.920941 71.55953z"
            fill={getIconColor(color, 0, '#333333')}
          />
        </Svg>
      );
    case 'condnode':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M318.2112 257.4528c53.5456-50.9472 123.3112-78.9744 196.8376-78.9744 71.7264 0 140.1832 26.8872 193.268 75.7784-4.752-12.4072-7.3632-25.8752-7.3632-39.9536 0-17.9952 4.26-34.9936 11.8168-50.052-59.0168-39.044-127.0384-59.6048-197.7224-59.6048-71.428 0-140.044 20.9576-199.444 60.7528 7.2016 14.772 11.2464 31.3648 11.2464 48.904 0.0008 15.296-3.076 29.8728-8.6392 43.1496zM708.9528 255.884L611.4456 334.272c19.8136 14.964 36.0616 34.3928 47.2576 56.7904l98.1312-78.9144c28.9072 45.7016 44.1528 98.2088 44.1528 152.268 0 126.0592-83.512 237.4904-204.0176 273.6336-14.1288-15.8616-32.2592-27.2896-52.3656-33.0376l5.7584-84.6104a161.836 161.836 0 0 1-36.0592 4.0488c-89.1104 0-161.3488-72.2384-161.3488-161.3488 0-14.4912 1.9216-28.5312 5.504-41.892-3.9456 13.8712-5.9472 27.9648-5.9472 42.1592 0 38.3624 13.7352 75.4992 38.676 104.5704 22.2304 25.9128 52.1624 44.1288 85.1664 52.0336l-6.084 89.6536c13.2992-5.5848 27.9048-8.6736 43.2328-8.6736 61.7168 0 111.7488 50.0312 111.7488 111.7488 0 22.4928-6.6512 43.4296-18.0864 60.9624 11.6824-17.644 18.4976-38.7784 18.4976-61.4776 0-1.9064-0.092-3.7448-0.2408-5.5336 33.3504-10.7344 64.8824-26.2728 93.856-46.2664a360.9144 360.9144 0 0 0 82.068-78.2368c23.368-30.624 41.5416-64.5432 54.0168-100.8136 12.9064-37.5232 19.4504-76.8608 19.4504-116.92 0-49.4928-10.0816-97.5416-29.9864-143.0608a111.7264 111.7264 0 0 1-32.1248 4.6952c-47.0192 0.0008-87.2512-29.0424-103.7488-70.1664z"
            fill={getIconColor(color, 0, '#FBB03B')}
          />
          <Path
            d="M229.0576 464.4168c0-50.9536 13.6352-100.6576 39.5536-144.58l97.6864 78.944c10.0168-23.0168 25.2424-43.24 44.1928-59.1856l-94.7744-76.6136c-18.0936 37.3288-56.3464 63.0688-100.6136 63.0688a111.8416 111.8416 0 0 1-30.0984-4.1056c-19.7328 45.332-29.7272 93.1816-29.7272 142.4712 0 39.872 6.4848 79.0384 19.2736 116.4112 12.364 36.1288 30.3808 69.9424 53.5504 100.5016a361.0824 361.0824 0 0 0 81.4064 78.2048c28.5384 19.888 59.5992 35.4376 92.4608 46.3144 1.592-26.304 12.276-50.1528 28.9592-68.4392-119.272-36.788-201.8696-147.8728-201.8696-272.992z"
            fill={getIconColor(color, 1, '#FBB03B')}
          />
          <Path
            d="M513.9992 301.8784c-37.9584 0-74.2848 13.3528-103.3976 37.8072l-0.1112-0.0904c-18.9504 15.9448-34.176 36.168-44.1928 59.1856l0.2392 0.1928a167.0776 167.0776 0 0 0-8.0784 22.2368 161.5416 161.5416 0 0 0-5.504 41.892c0 89.1104 72.2384 161.3488 161.3488 161.3488a161.888 161.888 0 0 0 36.0592-4.0488l0.0048-0.0736c33.5144-7.7504 63.9368-26.12 86.4584-52.3832 24.936-29.0808 38.6696-66.2184 38.6696-104.5744 0-24.8216-5.8648-48.9184-17.4536-71.7752l0.6624-0.532c-11.196-22.3976-27.4432-41.8264-47.2576-56.7904l-0.7184 0.5776c-28.1512-21.328-62.136-32.9728-96.7288-32.9728z m0.0024 249.152c-48.3384 0-87.664-39.324-87.664-87.66 0-48.3384 39.3256-87.664 87.664-87.664 48.336 0 87.6608 39.3256 87.6608 87.664 0 48.336-39.324 87.66-87.6608 87.66zM897.1168 287.3656a110.8192 110.8192 0 0 0 11.5112-15.7176c10.044-16.7656 15.8232-36.3792 15.8232-57.3448 0-61.6616-49.9416-111.656-111.5824-111.7464-42.6064 0.0448-80.8472 24.44-99.4672 62.1056-0.2096-0.1392-0.4216-0.2728-0.6312-0.4112-7.5568 15.0576-11.8168 32.056-11.8168 50.052 0 14.0792 2.6112 27.5464 7.3632 39.9536 0.4128 0.38 0.8336 0.7496 1.244 1.1328l0.0024 0.0048-0.6104 0.4904c16.4976 41.1232 56.7296 70.1664 103.7496 70.1664 11.168 0 21.9496-1.6456 32.1248-4.6952l-0.192-0.4464a112.1408 112.1408 0 0 0 52.4816-33.544z m-84.1304-35.3192c-4.3744 0-8.7776-1.344-12.4896-2.6528-12.4456-4.4088-21.3384-15.1352-23.7896-28.6928a5.4248 5.4248 0 0 1-0.0208-0.1112c-0.2832-1.488-0.6408-2.7864-0.956-3.932-0.2392-0.8664-0.5656-2.0536-0.576-2.444 0-20.86 16.972-37.8312 37.8328-37.8312 20.8576 0 37.8272 16.9712 37.8272 37.8312 0 20.8608-16.9696 37.8328-37.828 37.8328zM315.716 262.9824l-0.3424-0.2768c0.7944-1.5792 1.52-3.1208 2.1864-4.6448 0.2152-0.2056 0.4352-0.4032 0.6504-0.608 5.5632-13.2768 8.64-27.8536 8.64-43.1504 0-17.5392-4.0448-34.132-11.2464-48.904-0.1616 0.1088-0.3256 0.2128-0.488 0.3216-17.804-37.0648-54.3464-61.4848-95.7824-63.0784-0.1696-0.0064-0.3392-0.0136-0.5096-0.0192-1.2544-0.0424-2.512-0.0672-3.7744-0.068-14.2952 0.0064-27.9616 2.7008-40.5248 7.5992-0.1352 0.0528-0.2728 0.1024-0.408 0.1552l-0.2144 0.088c-28.5632 11.3512-51.3712 34.164-62.716 62.7304-0.0248 0.0632-0.052 0.1256-0.0768 0.1888-0.0568 0.144-0.1096 0.2912-0.1656 0.4352-4.8928 12.5592-7.584 26.2192-7.5896 40.5088 0 0.296 0.008 0.592 0.0104 0.888 0.004 0.5728 0.0088 1.1448 0.0216 1.7152 0.0176 0.7536 0.0448 1.5064 0.0776 2.2584 0.0032 0.0808 0.0056 0.1624 0.0096 0.2432 1.1768 25.4728 11.0536 49.7216 28.112 68.7696a112.0568 112.0568 0 0 0 53.6632 33.244c-0.0824 0.1888-0.1616 0.3784-0.244 0.5672a111.8376 111.8376 0 0 0 30.0984 4.1056c44.2664 0 82.5192-25.7408 100.6128-63.0688z m-138.5296-48.7688c0-20.8584 16.9696-37.8272 37.8272-37.8272 20.8608 0 37.8328 16.9688 37.8328 37.8272 0 1.428-0.5272 3.316-1.1368 5.5016a106.3504 106.3504 0 0 0-0.8584 3.212c-2.9944 12.2496-10.8216 21.7952-21.5344 26.2152-4.6 1.9272-9.412 2.904-14.3024 2.904-20.8584 0-37.828-16.972-37.828-37.8328zM513.5024 700.9536c-15.328 0-29.9336 3.0888-43.2328 8.6736l-0.016 0.2416c-14.7776 6.3256-27.976 15.7568-38.7848 27.7128-0.1808-0.0552-0.3592-0.1152-0.5392-0.1712-16.6832 18.2864-27.3672 42.1352-28.9592 68.4392 0.2176 0.072 0.4328 0.1488 0.6504 0.2208a70.16 70.16 0 0 0-0.2816 6.1168c0 61.5696 50.0912 111.66 111.6608 111.66 38.8712 0 73.1608-19.9688 93.1664-50.1824 11.4344-17.5328 18.0864-38.4688 18.0864-60.9624-0.0016-61.7168-50.0336-111.7488-111.7504-111.7488z m0.4992 149.0616c-20.5664 0-37.352-16.496-37.8216-36.952 0.2544-0.8872 0.6136-2.236 0.744-3.8896 1.684-19.852 17.6168-34.8184 37.0744-34.8184 19.6064 0 35.5664 15.08 37.1208 35.064 0.1208 1.5776 0.448 2.8624 0.6984 3.7432-0.5208 20.4088-17.284 36.8528-37.816 36.8528z"
            fill={getIconColor(color, 2, '#F15A24')}
          />
        </Svg>
      );
    case 'addnode':
      return (
        <Svg viewBox="0 0 1024 1024" width={size} height={size} {...rest}>
          <Path
            d="M418.361 548H237v-72h181.361C435.975 342.795 549.983 240 688 240c150.221 0 272 121.779 272 272S838.221 784 688 784c-138.017 0-252.025-102.795-269.639-236zM654 478h-86a8 8 0 0 1-8 8v52a8 8 0 0 1 8 8h86v86a8 8 0 0 1 8 8h52a8 8 0 0 1 8-8v-86h86a8 8 0 0 1 8-8v-52a8 8 0 0 1-8-8h-86v-86a8 8 0 0 1-8-8h-52a8 8 0 0 1-8 8v86zM64 512a96 96 0 1 1 192 0 96 96 0 1 1-192 0z"
            fill={getIconColor(color, 0, '#333333')}
          />
        </Svg>
      );

  }

  return null;
};

Iconfont.defaultProps = {
  size: 30,
};

const getIconColor = (color: string | string[] | undefined, index: number, defaultColor: string) => {
  return color
    ? (
      typeof color === 'string'
        ? color
        : color[index] || defaultColor
    )
    : defaultColor;
};

export default Iconfont;
