import React, { Fragment } from 'react'

import { BaseIcon } from '../_utils/icon'
import { IconPropsWithStatus, status, StatusIcon } from '../_utils/icon/status'

export const SpeakIcon = (props: IconPropsWithStatus) => (
  <BaseIcon {...props}>
    <Fragment>
      {props.status === status.DEFAULT && (
        <g stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">
          <path
            stroke={props.iconColor}
            strokeLinecap="round"
            strokeLinejoin="round"
            d="M20.7818182,17.4727273 C22.4545455,15.8 23.5,13.7090909 23.5,11.4090909 C23.5,6.18181818 18.3772727,2 12,2 C5.62272727,2 0.5,6.18181818 0.5,11.4090909 C0.5,16.6363636 5.62272727,20.8181818 12,20.8181818 C13.15,20.8181818 14.1954545,20.7136364 15.2409091,20.4 L21.4090909,22.9090909 L20.7818182,17.4727273 Z"
          />
          <path
            fill={props.iconColor}
            d="M10.371,8.774 C10.869,8.852 11.223,9.176 11.223,9.812 C11.223,10.634 10.593,11 9.867,11 L8.091,11 L8.091,6.8 L9.753,6.8 C10.491,6.8 11.013,7.16 11.013,7.856 C11.013,8.306 10.791,8.63 10.371,8.762 L10.371,8.774 Z M9.633,7.508 L8.859,7.508 L8.859,8.516 L9.603,8.516 C9.993,8.516 10.209,8.33 10.209,8.006 C10.209,7.676 9.975,7.508 9.633,7.508 Z M9.735,10.292 C10.155,10.292 10.407,10.082 10.407,9.734 C10.407,9.386 10.167,9.176 9.705,9.176 L8.859,9.176 L8.859,10.292 L9.735,10.292 Z M12.495,6.8 L11.757,6.8 L11.757,11 L12.495,11 L12.495,6.8 Z M14.325,11.09 C13.599,11.09 12.993,10.562 12.993,9.614 C12.993,8.666 13.599,8.138 14.325,8.138 C14.775,8.138 15.075,8.33 15.249,8.618 L15.261,8.618 L15.261,8.228 L15.993,8.228 L15.993,11 L15.261,11 L15.261,10.61 L15.249,10.61 C15.075,10.898 14.775,11.09 14.325,11.09 Z M14.511,10.394 C14.955,10.394 15.261,10.082 15.261,9.614 C15.261,9.146 14.955,8.834 14.511,8.834 C14.067,8.834 13.761,9.146 13.761,9.614 C13.761,10.082 14.067,10.394 14.511,10.394 Z"
          />
          <path
            fill={props.iconColor}
            d="M10.371,14.0739992 C10.869,14.1519992 11.223,14.4759992 11.223,15.1119992 C11.223,15.9339992 10.593,16.2999992 9.867,16.2999992 L8.091,16.2999992 L8.091,12.0999992 L9.753,12.0999992 C10.491,12.0999992 11.013,12.4599992 11.013,13.1559992 C11.013,13.6059992 10.791,13.9299992 10.371,14.0619992 L10.371,14.0739992 Z M9.633,12.8079992 L8.859,12.8079992 L8.859,13.8159992 L9.603,13.8159992 C9.993,13.8159992 10.209,13.6299992 10.209,13.3059992 C10.209,12.9759992 9.975,12.8079992 9.633,12.8079992 Z M9.735,15.5919992 C10.155,15.5919992 10.407,15.3819992 10.407,15.0339992 C10.407,14.6859992 10.167,14.4759992 9.705,14.4759992 L8.859,14.4759992 L8.859,15.5919992 L9.735,15.5919992 Z M12.495,12.0999992 L11.757,12.0999992 L11.757,16.2999992 L12.495,16.2999992 L12.495,12.0999992 Z M14.325,16.3899992 C13.599,16.3899992 12.993,15.8619992 12.993,14.9139992 C12.993,13.9659992 13.599,13.4379992 14.325,13.4379992 C14.775,13.4379992 15.075,13.6299992 15.249,13.9179992 L15.261,13.9179992 L15.261,13.5279992 L15.993,13.5279992 L15.993,16.2999992 L15.261,16.2999992 L15.261,15.9099992 L15.249,15.9099992 C15.075,16.1979992 14.775,16.3899992 14.325,16.3899992 Z M14.511,15.6939992 C14.955,15.6939992 15.261,15.3819992 15.261,14.9139992 C15.261,14.4459992 14.955,14.1339992 14.511,14.1339992 C14.067,14.1339992 13.761,14.4459992 13.761,14.9139992 C13.761,15.3819992 14.067,15.6939992 14.511,15.6939992 Z"
          />
          <g transform="translate(-60.000000, -20.000000)" />
        </g>
      )}

      {props.status === status.ON && (
        <g stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">
          <g transform="translate(0.000000, 2.000000)">
            <path
              stroke={props.iconColor}
              strokeLinecap="round"
              strokeLinejoin="round"
              d="M20.7818182,15.4727273 C22.4545455,13.8 23.5,11.7090909 23.5,9.40909091 C23.5,4.18181818 18.3772727,0 12,0 C5.62272727,0 0.5,4.18181818 0.5,9.40909091 C0.5,14.6363636 5.62272727,18.8181818 12,18.8181818 C13.15,18.8181818 14.1954545,18.7136364 15.2409091,18.4 L21.4090909,20.9090909 L20.7818182,15.4727273 Z"
            />
            <path
              fill={props.iconColor}
              d="M10.914,3.91600153 C11.246,3.96800153 11.482,4.18400153 11.482,4.60800153 C11.482,5.15600153 11.062,5.40000153 10.578,5.40000153 L9.394,5.40000153 L9.394,2.60000153 L10.502,2.60000153 C10.994,2.60000153 11.342,2.84000153 11.342,3.30400153 C11.342,3.60400153 11.194,3.82000153 10.914,3.90800153 L10.914,3.91600153 Z M10.422,3.07200153 L9.906,3.07200153 L9.906,3.74400153 L10.402,3.74400153 C10.662,3.74400153 10.806,3.62000153 10.806,3.40400153 C10.806,3.18400153 10.65,3.07200153 10.422,3.07200153 Z M10.49,4.92800153 C10.77,4.92800153 10.938,4.78800153 10.938,4.55600153 C10.938,4.32400153 10.778,4.18400153 10.47,4.18400153 L9.906,4.18400153 L9.906,4.92800153 L10.49,4.92800153 Z M12.33,2.60000153 L11.838,2.60000153 L11.838,5.40000153 L12.33,5.40000153 L12.33,2.60000153 Z M13.55,5.46000153 C13.066,5.46000153 12.662,5.10800153 12.662,4.47600153 C12.662,3.84400153 13.066,3.49200153 13.55,3.49200153 C13.85,3.49200153 14.05,3.62000153 14.166,3.81200153 L14.174,3.81200153 L14.174,3.55200153 L14.662,3.55200153 L14.662,5.40000153 L14.174,5.40000153 L14.174,5.14000153 L14.166,5.14000153 C14.05,5.33200153 13.85,5.46000153 13.55,5.46000153 Z M13.674,4.99600153 C13.97,4.99600153 14.174,4.78800153 14.174,4.47600153 C14.174,4.16400153 13.97,3.95600153 13.674,3.95600153 C13.378,3.95600153 13.174,4.16400153 13.174,4.47600153 C13.174,4.78800153 13.378,4.99600153 13.674,4.99600153 Z"
            />
            <path
              fill={props.iconColor}
              d="M9.828,9.032 C10.492,9.136 10.964,9.568 10.964,10.416 C10.964,11.512 10.124,12 9.156,12 L6.788,12 L6.788,6.4 L9.004,6.4 C9.988,6.4 10.684,6.88 10.684,7.808 C10.684,8.408 10.388,8.84 9.828,9.016 L9.828,9.032 Z M8.844,7.344 L7.812,7.344 L7.812,8.688 L8.804,8.688 C9.324,8.688 9.612,8.44 9.612,8.008 C9.612,7.568 9.3,7.344 8.844,7.344 Z M8.98,11.056 C9.54,11.056 9.876,10.776 9.876,10.312 C9.876,9.848 9.556,9.568 8.94,9.568 L7.812,9.568 L7.812,11.056 L8.98,11.056 Z M12.66,6.4 L11.676,6.4 L11.676,12 L12.66,12 L12.66,6.4 Z M15.1,12.12 C14.132,12.12 13.324,11.416 13.324,10.152 C13.324,8.888 14.132,8.184 15.1,8.184 C15.7,8.184 16.1,8.44 16.332,8.824 L16.348,8.824 L16.348,8.304 L17.324,8.304 L17.324,12 L16.348,12 L16.348,11.48 L16.332,11.48 C16.1,11.864 15.7,12.12 15.1,12.12 Z M15.348,11.192 C15.94,11.192 16.348,10.776 16.348,10.152 C16.348,9.528 15.94,9.112 15.348,9.112 C14.756,9.112 14.348,9.528 14.348,10.152 C14.348,10.776 14.756,11.192 15.348,11.192 Z"
            />
            <path
              fill={props.iconColor}
              d="M10.914,14.2159969 C11.246,14.2679969 11.482,14.4839969 11.482,14.9079969 C11.482,15.4559969 11.062,15.6999969 10.578,15.6999969 L9.394,15.6999969 L9.394,12.8999969 L10.502,12.8999969 C10.994,12.8999969 11.342,13.1399969 11.342,13.6039969 C11.342,13.9039969 11.194,14.1199969 10.914,14.2079969 L10.914,14.2159969 Z M10.422,13.3719969 L9.906,13.3719969 L9.906,14.0439969 L10.402,14.0439969 C10.662,14.0439969 10.806,13.9199969 10.806,13.7039969 C10.806,13.4839969 10.65,13.3719969 10.422,13.3719969 Z M10.49,15.2279969 C10.77,15.2279969 10.938,15.0879969 10.938,14.8559969 C10.938,14.6239969 10.778,14.4839969 10.47,14.4839969 L9.906,14.4839969 L9.906,15.2279969 L10.49,15.2279969 Z M12.33,12.8999969 L11.838,12.8999969 L11.838,15.6999969 L12.33,15.6999969 L12.33,12.8999969 Z M13.55,15.7599969 C13.066,15.7599969 12.662,15.4079969 12.662,14.7759969 C12.662,14.1439969 13.066,13.7919969 13.55,13.7919969 C13.85,13.7919969 14.05,13.9199969 14.166,14.1119969 L14.174,14.1119969 L14.174,13.8519969 L14.662,13.8519969 L14.662,15.6999969 L14.174,15.6999969 L14.174,15.4399969 L14.166,15.4399969 C14.05,15.6319969 13.85,15.7599969 13.55,15.7599969 Z M13.674,15.2959969 C13.97,15.2959969 14.174,15.0879969 14.174,14.7759969 C14.174,14.4639969 13.97,14.2559969 13.674,14.2559969 C13.378,14.2559969 13.174,14.4639969 13.174,14.7759969 C13.174,15.0879969 13.378,15.2959969 13.674,15.2959969 Z"
            />
          </g>
          <g transform="translate(-100.000000, -20.000000)" />
        </g>
      )}

      {props.status === status.OFF && (
        <g stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">
          <g transform="translate(-20.000000, -21.000000)">
            <g transform="translate(20.000000, 22.000000)">
              <path
                stroke={props.iconColor}
                strokeLinecap="round"
                strokeLinejoin="round"
                d="M20.7818182,15.4727273 C22.4545455,13.8 23.5,11.7090909 23.5,9.40909091 C23.5,4.18181818 18.3772727,0 12,0 C5.62272727,0 0.5,4.18181818 0.5,9.40909091 C0.5,14.6363636 5.62272727,18.8181818 12,18.8181818 C13.15,18.8181818 14.1954545,18.7136364 15.2409091,18.4 L21.4090909,20.9090909 L20.7818182,15.4727273 Z"
              />
              <path
                fill={props.iconColor}
                d="M10.77825,9.3305 C11.15175,9.389 11.41725,9.632 11.41725,10.109 C11.41725,10.7255 10.94475,11 10.40025,11 L9.06825,11 L9.06825,7.85 L10.31475,7.85 C10.86825,7.85 11.25975,8.12 11.25975,8.642 C11.25975,8.9795 11.09325,9.2225 10.77825,9.3215 L10.77825,9.3305 Z M10.22475,8.381 L9.64425,8.381 L9.64425,9.137 L10.20225,9.137 C10.49475,9.137 10.65675,8.9975 10.65675,8.7545 C10.65675,8.507 10.48125,8.381 10.22475,8.381 Z M10.30125,10.469 C10.61625,10.469 10.80525,10.3115 10.80525,10.0505 C10.80525,9.7895 10.62525,9.632 10.27875,9.632 L9.64425,9.632 L9.64425,10.469 L10.30125,10.469 Z M12.37125,7.85 L11.81775,7.85 L11.81775,11 L12.37125,11 L12.37125,7.85 Z M13.74375,11.0675 C13.19925,11.0675 12.74475,10.6715 12.74475,9.9605 C12.74475,9.2495 13.19925,8.8535 13.74375,8.8535 C14.08125,8.8535 14.30625,8.9975 14.43675,9.2135 L14.44575,9.2135 L14.44575,8.921 L14.99475,8.921 L14.99475,11 L14.44575,11 L14.44575,10.7075 L14.43675,10.7075 C14.30625,10.9235 14.08125,11.0675 13.74375,11.0675 Z M13.88325,10.5455 C14.21625,10.5455 14.44575,10.3115 14.44575,9.9605 C14.44575,9.6095 14.21625,9.3755 13.88325,9.3755 C13.55025,9.3755 13.32075,9.6095 13.32075,9.9605 C13.32075,10.3115 13.55025,10.5455 13.88325,10.5455 Z"
              />
            </g>
          </g>
        </g>
      )}
    </Fragment>
  </BaseIcon>
)

SpeakIcon.defaultProps = StatusIcon.defaultProps
