/* GENERATED FILE */
import React, { forwardRef } from 'react'

import type {
  IconWeight,
  IconProps,
  PaintFunction,
  Icon,
  RenderFunction,
} from '../lib'
import { renderPathForWeight, useIconContext, IconBase } from '../lib'

export const IconShuffleAngular: Icon = forwardRef<SVGSVGElement, IconProps>(
  (props, ref) => {
    let path: PaintFunction

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M237.65723,178.34277a8.00122,8.00122,0,0,1,0,11.31446l-24,24A8.00066,8.00066,0,0,1,200,208V192H172.11719a16.03,16.03,0,0,1-13.01953-6.7002L83.88281,79.999,32,80a8,8,0,0,1,0-16H83.88281a16.03,16.03,0,0,1,13.01953,6.7002L172.11719,176.001,200,176.00049V160a8.00065,8.00065,0,0,1,13.65723-5.65723Zm-94.64551-71.36035a7.99822,7.99822,0,0,0,11.16015-1.85937L172.11719,80H200V96a8.00053,8.00053,0,0,0,13.65723,5.65723l24-24a8.00122,8.00122,0,0,0,0-11.31446l-24-24A8.00065,8.00065,0,0,0,200,48V64H172.11719a16.03166,16.03166,0,0,0-13.01953,6.69922L141.15234,95.82227A8.00057,8.00057,0,0,0,143.01172,106.98242Zm-30.02344,42.03516a7.99913,7.99913,0,0,0-11.16016,1.85937L83.88281,176H32a8,8,0,0,0,0,16H83.88281a16.03166,16.03166,0,0,0,13.01953-6.69922l17.94532-25.12305A8.00057,8.00057,0,0,0,112.98828,149.01758Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M32,72H83.88306a8,8,0,0,1,6.50986,3.35009l75.21416,105.29982A8,8,0,0,0,172.11694,184H232"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <polyline
              points="208 48 232 72 208 96"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <polyline
              points="208 160 232 184 208 208"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M147.66242,100.47261l17.94466-25.12252A8,8,0,0,1,172.11694,72H232"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M32,184H83.88306a8,8,0,0,0,6.50986-3.35009l17.94466-25.12252"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
          </>
        )
        break
    }

    const renderPath: RenderFunction = (weight: IconWeight) =>
      renderPathForWeight(weight, path)

    const { useIconProps } = useIconContext()
    const parsedProps = useIconProps(props)

    return <IconBase ref={ref} {...parsedProps} renderPath={renderPath} />
  }
)
