/* eslint-disable max-len */
import React from 'react';
import PropTypes from 'prop-types';

const EditorIcon = (props) => {

  switch (props.icon) {
    case 'Bold':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 10.9 14">
          <path d="M0 0h5.6c3 0 4.7 1.1 4.7 3.4a3.1 3.1 0 0 1-2.5 3.1 3.7 3.7 0 0 1 3.1 3.5c0 2.9-1.4 4-4.2 4H0zm5.2 6.5c2.7 0 2.6-1.4 2.6-3.1S7.9.7 5.6.7H2.3v5.8zm-2.9 6.6h3.4c2.1 0 2.7-1.1 2.7-3.1s0-2.8-3.2-2.8H2.3z" />
        </svg>
      );
    case 'Italic':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 8.6 13.9">
          <path d="M8.1 0a.6.6 0 0 1 .5.6c0 .3-.2.6-.7.6H6.2L3.8 12.8h1.8c.2 0 .4.3.4.5a.7.7 0 0 1-.7.6H.5c-.3 0-.5-.4-.5-.6s.4-.6.7-.6h1.7L4.9 1.2H3.1a.5.5 0 0 1-.5-.5c0-.3.1-.7.8-.7z" />
        </svg>
      );
    case 'Strikethrough':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 19.5 14">
          <path d="M5.8 6.2H9C7.2 5.7 6.3 5 6.3 3.8a2.2 2.2 0 0 1 .9-1.9 4.3 4.3 0 0 1 2.5-.7 4.3 4.3 0 0 1 2.5.7 3.1 3.1 0 0 1 1.1 1.6.7.7 0 0 0 .6.4h.3a.7.7 0 0 0 .4-.8A3.6 3.6 0 0 0 13.1 1a6.7 6.7 0 0 0-6-.5 3.1 3.1 0 0 0-1.7 1.3 3.6 3.6 0 0 0-.6 2 2.9 2.9 0 0 0 1 2.3zm7 2.5a2 2 0 0 1 .6 1.4 2.4 2.4 0 0 1-1 1.9 3.7 3.7 0 0 1-2.5.7 4.6 4.6 0 0 1-3-.8 3.7 3.7 0 0 1-1.2-2 .6.6 0 0 0-.6-.5h-.2a.7.7 0 0 0-.5.8 4.1 4.1 0 0 0 1.5 2.5A6 6 0 0 0 9.8 14a7.5 7.5 0 0 0 2.6-.5 4.9 4.9 0 0 0 1.8-1.4 4.3 4.3 0 0 0 .6-2.2 5 5 0 0 0-.2-1.2zM.4 7.9a.7.7 0 0 1-.4-.5.4.4 0 0 1 .4-.4h18.8a.4.4 0 0 1 .3.6c0 .1-.1.2-.2.3z" />
        </svg>
      );
    case 'Heading':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 13.7 14">
          <path d="M10.2 0h2.9a.6.6 0 0 1 .6.6.6.6 0 0 1-.6.6h-.8v11.6h.8a.6.6 0 0 1 .6.6.6.6 0 0 1-.6.6h-2.9a.6.6 0 0 1-.6-.6.6.6 0 0 1 .6-.6h.8V7.2H2.7v5.6h.8a.6.6 0 0 1 .6.6.6.6 0 0 1-.6.6H.6a.6.6 0 0 1-.6-.6.6.6 0 0 1 .6-.6h.7V1.2H.6A.6.6 0 0 1 0 .6.6.6 0 0 1 .6 0h2.9a.6.6 0 0 1 .6.6.6.6 0 0 1-.6.6h-.8v4.9H11V1.2h-.8a.6.6 0 0 1-.6-.6.6.6 0 0 1 .6-.6z" />
        </svg>
      );
    case 'InlineCode':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 18.1 14">
          <path d="M17.8 7.9l-4 3.8a.5.5 0 0 1-.8 0 .5.5 0 0 1 0-.8L16.8 7 13 3.2a.6.6 0 0 1 0-.9.5.5 0 0 1 .8 0l4 3.8a1.3 1.3 0 0 1 0 1.8zM5.2 2.3a.7.7 0 0 1 0 .9L1.3 7l3.9 3.9a.6.6 0 0 1 0 .8.6.6 0 0 1-.9 0L.4 7.9a1.3 1.3 0 0 1 0-1.8l3.9-3.8a.6.6 0 0 1 .9 0zM11.5.8L7.8 13.6a.6.6 0 0 1-.7.4.6.6 0 0 1-.5-.8L10.3.4a.7.7 0 0 1 .8-.4.6.6 0 0 1 .4.8z" />
        </svg>
      );
    case 'Quote':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 17 12">
          <path d="M5 0H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h3a1.7 1.7 0 0 0 1-.3V10a.9.9 0 0 1-1 1H3v1h2a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm0 6H2a.9.9 0 0 1-1-1V2a.9.9 0 0 1 1-1h3a.9.9 0 0 1 1 1v3a.9.9 0 0 1-1 1zm10-6h-3a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h3a1.7 1.7 0 0 0 1-.3V10a.9.9 0 0 1-1 1h-2v1h2a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm0 6h-3a.9.9 0 0 1-1-1V2a.9.9 0 0 1 1-1h3a.9.9 0 0 1 1 1v3a.9.9 0 0 1-1 1z" />
        </svg>
      );
    case 'List':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 21.6 13.5">
          <path d="M6.4 1.5h14.5a.7.7 0 0 0 .7-.7.7.7 0 0 0-.7-.7H6.4a.8.8 0 0 0-.8.7.8.8 0 0 0 .8.7zm0 6h14.5a.7.7 0 0 0 .7-.7.7.7 0 0 0-.7-.7H6.4a.8.8 0 0 0-.8.7.8.8 0 0 0 .8.7zm0 6h14.5a.7.7 0 0 0 .7-.7.7.7 0 0 0-.7-.7H6.4a.8.8 0 0 0-.8.7.8.8 0 0 0 .8.7zM.9 1.5h1a.8.8 0 0 0 .9-.7.8.8 0 0 0-.9-.8h-1a.8.8 0 0 0-.9.7.8.8 0 0 0 .9.8zm0 6h1a.8.8 0 0 0 .9-.7.8.8 0 0 0-.9-.8h-1a.8.8 0 0 0-.9.7.8.8 0 0 0 .9.8zm0 6h1a.8.8 0 0 0 .9-.7.8.8 0 0 0-.9-.7h-1a.8.8 0 0 0-.9.7.8.8 0 0 0 .9.7z" />
        </svg>
      );
    case 'NumberedList':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 23.7 16">
          <path d="M23.7 2a.8.8 0 0 1-.8.8H6.6a.8.8 0 0 1-.7-.8.7.7 0 0 1 .7-.7h16.3a.7.7 0 0 1 .8.7zM6.6 8.7h16.3a.7.7 0 0 0 .8-.7.8.8 0 0 0-.8-.8H6.6a.8.8 0 0 0-.7.8.7.7 0 0 0 .7.7zm0 5.9h16.3a.7.7 0 0 0 .8-.7.7.7 0 0 0-.8-.7H6.6a.7.7 0 0 0-.7.7.7.7 0 0 0 .7.7zM1.5.5V4h.6V0h-.5L.7.5v.4l.8-.4zM.9 9.6l.3-.3c.9-.9 1.4-1.5 1.4-2.2a1.2 1.2 0 0 0-1.3-1.2h-.1a1.4 1.4 0 0 0-1.2.6l.3.4a1.2 1.2 0 0 1 .9-.5.6.6 0 0 1 .8.6v.2c0 .6-.4 1.1-1.5 2.1l-.4.4v.3h2.6v-.4zm.9 4.1a1 1 0 0 0 .7-.9 1 1 0 0 0-1.1-1 2 2 0 0 0-1.1.3v.4l.8-.2c.5 0 .8.2.8.6s-.5.7-.9.7H.7v.4H1c.6 0 1.1.2 1.1.8a.8.8 0 0 1-.9.8l-.9-.3-.2.4a2 2 0 0 0 1.1.3c1 0 1.5-.6 1.5-1.2a1.2 1.2 0 0 0-.9-1.1z" />
        </svg>
      );
    case 'CheckList':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 14.4 16">
          <path d="M13.9 5.5a.5.5 0 0 1 .5.5v9a1.1 1.1 0 0 1-1.1 1H1a1.1 1.1 0 0 1-1-1V2.6a1.1 1.1 0 0 1 1-1h7.1a.5.5 0 0 1 .5.5.5.5 0 0 1-.5.5H1V15h12.3V6a.6.6 0 0 1 .6-.5zM3.6 8.3a.5.5 0 0 0 0 .7l2.5 2.5a.8.8 0 0 0 1.1 0h.1l7-10.7c.1-.2.1-.6-.2-.7a.5.5 0 0 0-.7.1L6.6 10.6 4.3 8.3a.5.5 0 0 0-.7 0z" />
        </svg>
      );
    case 'Link':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 16 16">
          <path d="M4.6 11.4l.4.2h.2v-.2l6.1-6.1a.4.4 0 0 0 .1-.3.5.5 0 0 0-.5-.5h-.3l-6 6.2a.6.6 0 0 0-.1.4c0 .1 0 .3.1.3zm2.8-1a2 2 0 0 1 0 1.1 4.1 4.1 0 0 1-.5.9l-2.1 1.9a1.9 1.9 0 0 1-1.5.7 2 2 0 0 1-1.6-.7 1.9 1.9 0 0 1-.7-1.5 2 2 0 0 1 .7-1.6l1.9-2.1a2 2 0 0 1 2.2-.5l.8-.8a3.2 3.2 0 0 0-1.4-.3 3.3 3.3 0 0 0-2.3.9L1 10.5A3.2 3.2 0 0 0 .9 15H1a2.9 2.9 0 0 0 2.3 1 3.2 3.2 0 0 0 2.3-1l2-1.9a4.6 4.6 0 0 0 .9-1.7 2.9 2.9 0 0 0-.3-1.8zM15 1a2.5 2.5 0 0 0-1-.8 3.1 3.1 0 0 0-3.5.8L8.4 2.9a3.1 3.1 0 0 0-.9 1.8 3.2 3.2 0 0 0 .3 1.9l.8-.8a2 2 0 0 1 0-1.1 2.2 2.2 0 0 1 .5-1.1l2.1-1.9.3-.3.4-.2.4-.2h.5a1.9 1.9 0 0 1 1.5.7 2 2 0 0 1 .7 1.6 1.9 1.9 0 0 1-.7 1.5l-2 2.1-.7.4a1.5 1.5 0 0 1-.9.2h-.4l-.8.8H12l1-.7 2-2.1A3 3 0 0 0 15 1z" />
        </svg>
      );
    case 'Image':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 19 16">
          <path d="M17.8 0H1.2A1.2 1.2 0 0 0 0 1.2v13.6A1.2 1.2 0 0 0 1.2 16h16.6a1.2 1.2 0 0 0 1.2-1.2V1.2a1.4 1.4 0 0 0-.2-.6.8.8 0 0 0-.4-.4zm0 14.8H1.2v-3.5l4.7-4.6 5 4.9.3.2.5-.2 2.1-1.9 3.9 4h.1v1.1zm0-2.8l-3.5-3.5-.4-.2h-.4l-2.2 2-4.9-4.8-.4-.2c-.2 0-.4 0-.5.2L1.2 9.7V1.2h16.6V12zm-4.2-6.1h.6a1.1 1.1 0 0 0 .6-1.1 1.2 1.2 0 0 0-1.2-1.1 1.3 1.3 0 0 0-1.2 1.2 1.2 1.2 0 0 0 .4.8 1.1 1.1 0 0 0 .8.3z" />
        </svg>
      );
    case 'Grid':
      return (
        <i className="fa fa-th"></i>
      );
    case 'Table':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 20.3 16">
          <path d="M19.1 16H1.2A1.2 1.2 0 0 1 0 14.8V1.2A1.2 1.2 0 0 1 1.2 0h17.9a1.2 1.2 0 0 1 1.2 1.2v13.6a1.2 1.2 0 0 1-1.2 1.2zm-5.2-4.3v3.2h5.3v-3.2zm-6.4 0v3.2h5.3v-3.2zm-6.4 0v3.2h5.3v-3.2zm12.8-4.2v3.2h5.3V7.5zm-6.4 0v3.2h5.3V7.5zm-6.4 0v3.2h5.3V7.5zm12.8-4.3v3.2h5.3V3.2zm-6.4 0v3.2h5.3V3.2zm-6.4 0v3.2h5.3V3.2z" />
        </svg>
      );
    case 'Drawio':
      return (
        <svg xmlns="http://www.w3.org/2000/svg" height="13" viewBox="0 0 20.3 16">
          <path d="M11.76 0L11.78 0.01L11.8 0.02L11.83 0.02L11.85 0.03L11.87 0.05L11.89 0.06L11.91 0.07L11.92 0.09L11.94 0.11L11.95 0.12L11.97 0.14L11.98 0.16L11.99 0.19L12 0.21L12 0.23L12.01 0.25L12.01 0.28L12.01 0.3L12.01 4.94L12.01 4.97L12.01 4.99L12 5.01L12 5.04L11.99 5.06L11.98 5.08L11.97 5.1L11.95 5.12L11.94 5.14L11.92 5.16L11.91 5.17L11.89 5.19L11.87 5.2L11.85 5.21L11.83 5.22L11.8 5.23L11.78 5.24L11.76 5.24L11.73 5.24L11.71 5.24L8.3 5.24L8.3 7.1L13.16 7.1L13.19 7.1L13.21 7.1L13.24 7.11L13.26 7.11L13.28 7.12L13.3 7.13L13.32 7.14L13.34 7.16L13.36 7.17L13.38 7.19L13.4 7.21L13.41 7.22L13.42 7.24L13.43 7.26L13.44 7.28L13.45 7.31L13.46 7.33L13.46 7.35L13.47 7.38L13.47 7.4L13.47 10.08L15.7 10.08L15.72 10.08L15.75 10.08L15.77 10.08L15.79 10.09L15.81 10.1L15.84 10.11L15.86 10.12L15.88 10.13L15.89 10.15L15.91 10.16L15.93 10.18L15.94 10.2L15.95 10.22L15.97 10.24L15.98 10.26L15.98 10.28L15.99 10.31L16 10.33L16 10.35L16 10.38L16 15.02L16 15.04L16 15.07L15.99 15.09L15.98 15.11L15.98 15.13L15.97 15.16L15.95 15.18L15.94 15.2L15.93 15.21L15.91 15.23L15.89 15.25L15.88 15.26L15.86 15.27L15.84 15.29L15.81 15.3L15.79 15.3L15.77 15.31L15.75 15.32L15.72 15.32L15.7 15.32L10.63 15.32L10.61 15.32L10.58 15.32L10.56 15.31L10.54 15.3L10.51 15.3L10.49 15.29L10.47 15.27L10.45 15.26L10.44 15.25L10.42 15.23L10.4 15.21L10.39 15.2L10.37 15.18L10.36 15.16L10.35 15.13L10.34 15.11L10.34 15.09L10.33 15.07L10.33 15.04L10.33 15.02L10.33 10.38L10.33 10.35L10.33 10.33L10.34 10.31L10.34 10.28L10.35 10.26L10.36 10.24L10.37 10.22L10.39 10.2L10.4 10.18L10.42 10.16L10.44 10.15L10.45 10.13L10.47 10.12L10.49 10.11L10.51 10.1L10.54 10.09L10.56 10.08L10.58 10.08L10.61 10.08L10.63 10.08L12.86 10.08L12.86 7.71L3.14 7.71L3.14 10.08L5.37 10.08L5.39 10.08L5.42 10.08L5.44 10.08L5.46 10.09L5.49 10.1L5.51 10.11L5.53 10.12L5.55 10.13L5.56 10.15L5.58 10.16L5.6 10.18L5.61 10.2L5.63 10.22L5.64 10.24L5.65 10.26L5.66 10.28L5.66 10.31L5.67 10.33L5.67 10.35L5.67 10.38L5.67 15.02L5.67 15.04L5.67 15.07L5.66 15.09L5.66 15.11L5.65 15.13L5.64 15.16L5.63 15.18L5.61 15.2L5.6 15.21L5.58 15.23L5.56 15.25L5.55 15.26L5.53 15.27L5.51 15.29L5.49 15.3L5.46 15.3L5.44 15.31L5.42 15.32L5.39 15.32L5.37 15.32L0.3 15.32L0.28 15.32L0.25 15.32L0.23 15.31L0.21 15.3L0.19 15.3L0.16 15.29L0.14 15.27L0.12 15.26L0.11 15.25L0.09 15.23L0.07 15.21L0.06 15.2L0.05 15.18L0.03 15.16L0.02 15.13L0.02 15.11L0.01 15.09L0 15.07L0 15.04L0 15.02L0 10.38L0 10.35L0 10.33L0.01 10.31L0.02 10.28L0.02 10.26L0.03 10.24L0.05 10.22L0.06 10.2L0.07 10.18L0.09 10.16L0.11 10.15L0.12 10.13L0.14 10.12L0.16 10.11L0.19 10.1L0.21 10.09L0.23 10.08L0.25 10.08L0.28 10.08L0.3 10.08L2.53 10.08L2.53 7.4L2.53 7.38L2.54 7.35L2.54 7.33L2.55 7.31L2.56 7.28L2.57 7.26L2.58 7.24L2.59 7.22L2.6 7.21L2.62 7.19L2.64 7.17L2.66 7.16L2.68 7.14L2.7 7.13L2.72 7.12L2.74 7.11L2.76 7.11L2.79 7.1L2.81 7.1L2.84 7.1L7.7 7.1L7.7 5.24L4.29 5.24L4.27 5.24L4.24 5.24L4.22 5.24L4.2 5.23L4.17 5.22L4.15 5.21L4.13 5.2L4.11 5.19L4.09 5.17L4.08 5.16L4.06 5.14L4.05 5.12L4.03 5.1L4.02 5.08L4.01 5.06L4 5.04L4 5.01L3.99 4.99L3.99 4.97L3.99 4.94L3.99 0.3L3.99 0.28L3.99 0.25L4 0.23L4 0.21L4.01 0.19L4.02 0.16L4.03 0.14L4.05 0.12L4.06 0.11L4.08 0.09L4.09 0.07L4.11 0.06L4.13 0.05L4.15 0.03L4.17 0.02L4.2 0.02L4.22 0.01L4.24 0L4.27 0L4.29 0L11.71 0L11.73 0L11.76 0ZM0.61 14.71L5.06 14.71L5.06 10.68L0.61 10.68L0.61 14.71ZM10.94 14.71L15.39 14.71L15.39 10.68L10.94 10.68L10.94 14.71ZM4.6 4.64L11.4 4.64L11.4 0.61L4.6 0.61L4.6 4.64Z" id="a1rZaAznW0"></path>
        </svg>
      );
  }


};

EditorIcon.propTypes = {
  icon: PropTypes.string.isRequired,
};

export default EditorIcon;
