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

function IconTokenQuantityComponent(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-token-quantity${loadingKls} ${className}`} width={width} height={height} xmlns="http://www.w3.org/2000/svg" fill={useCurrentColor ? 'currentColor' : '#000'} viewBox="0 0 16 16" {...rest} ref={ref}><path fillRule="evenodd" d="m8 1 .248-.619.003.001.006.003.024.01a10.466 10.466 0 0 1 .4.172c.264.117.628.286 1.033.496.796.411 1.811 1.008 2.518 1.701C13.676 4.18 15 5.975 15 8.334a7 7 0 1 1-14 0c0-2.404 1.49-4.44 2.895-5.667.673-.588 1.647-1.16 2.416-1.572A27.35 27.35 0 0 1 7.695.406l.023-.01.006-.003.002-.001.259-.116.263.105L8 1Zm-.11.789.123-.06.126.056c.245.109.585.267.963.462.77.399 1.638.922 2.196 1.47 1.359 1.331 2.369 2.8 2.369 4.616a5.667 5.667 0 0 1-11.334 0c0-1.859 1.177-3.56 2.439-4.662.552-.482 1.411-.995 2.168-1.4.372-.199.707-.365.95-.482Zm.299 8.965 3.92-3.92-.942-.943-3.022 3.021L6.31 7.246l-2.42 2.42.942.944 1.522-1.522 1.834 1.666Z" clipRule="evenodd"/><path d="m8.248.381.037-.093-.037.093Zm.003.001L8.288.29 8.25.382Zm.006.003.038-.093-.038.093Zm.024.01L8.32.302l-.04.093Zm.087.036L8.33.523l.04-.092Zm.313.136-.04.09.04-.09Zm1.033.496-.046.089.046-.09Zm2.518 1.701-.07.071.07-.071Zm-8.337-.097.066.075-.066-.075ZM6.31 1.095l.048.089-.048-.089Zm1-.507-.043-.09.043.09Zm.303-.143L7.57.354l.042.09Zm.083-.039-.041-.09.041.09Zm.023-.01L7.676.305l.042.091Zm.006-.003-.041-.09.04.09Zm.002-.001-.04-.091.04.091Zm.259-.116.037-.093-.04-.016-.038.018.04.09Zm.028 1.453.04-.091-.041-.019-.042.02.043.09Zm-.124.06-.043-.09.043.09Zm.25-.004.041-.092-.04.092Zm.963.462-.046.089.046-.089Zm2.196 1.47.07-.072-.07.071ZM4.772 3.67l-.066-.075.066.075Zm2.168-1.4-.047-.088.047.088Zm5.17 4.562.07.071.07-.07-.07-.071-.07.07Zm-3.921 3.921-.068.074.07.064.068-.067-.07-.07Zm2.978-4.863.07-.071-.07-.07-.071.07.07.07ZM8.145 8.912l-.067.074.07.065.067-.068-.07-.07ZM6.31 7.246l.068-.074-.07-.064-.068.067.07.07Zm-2.42 2.42-.071-.07-.07.07.07.071.07-.07Zm.942.944-.07.07.07.07.071-.07-.07-.07Zm1.522-1.522.068-.074-.071-.065-.067.068.07.07Zm1.8-8.744-.248.619.186.074.247-.619-.185-.074Zm.055.13.075-.186-.075.186Zm0 0 .003.001.075-.186h-.003L8.21.474Zm.003.001.007.003.075-.186L8.288.29l-.075.186Zm.007.003.023.01.076-.186-.024-.01-.075.186Zm.023.01c.02.007.05.02.086.035l.078-.184a10.64 10.64 0 0 0-.088-.037l-.076.185Zm.086.035c.075.031.18.077.312.135l.081-.183A8.446 8.446 0 0 0 8.407.34l-.078.184Zm.312.135c.262.116.624.285 1.027.494L9.76.974C9.353.764 8.987.593 8.722.475l-.081.183Zm1.027.494c.794.41 1.798 1.002 2.494 1.683l.14-.142c-.718-.704-1.744-1.306-2.542-1.719l-.092.178Zm2.494 1.683C13.6 4.245 14.9 6.015 14.9 8.333h.2c0-2.399-1.347-4.218-2.798-5.64l-.14.142ZM14.9 8.333a6.9 6.9 0 0 1-6.9 6.9v.2a7.1 7.1 0 0 0 7.1-7.1h-.2Zm-6.9 6.9a6.9 6.9 0 0 1-6.9-6.9H.9a7.1 7.1 0 0 0 7.1 7.1v-.2Zm-6.9-6.9c0-2.362 1.466-4.373 2.86-5.591l-.131-.15C2.413 3.827.9 5.888.9 8.332h.2Zm2.86-5.591c.664-.58 1.63-1.147 2.399-1.558l-.095-.177c-.77.413-1.753.989-2.435 1.584l.132.15Zm2.4-1.558c.39-.21.74-.384.994-.506l-.087-.18a27.46 27.46 0 0 0-1.002.51l.095.176Zm.994-.506.3-.143L7.57.354c-.073.034-.176.082-.304.144l.087.18Zm.3-.143.084-.038-.083-.182-.084.039.084.181Zm.084-.038.022-.01-.083-.182-.022.01.083.182Zm.022-.01.006-.003-.082-.182-.007.003.083.182Zm.006-.003h.003L7.685.3l-.002.001.082.182Zm.002 0 .259-.117-.082-.182-.26.115.082.182Zm.18-.115.263.105.075-.186-.263-.105-.074.186Zm.146.668c.124-.31.186-.464.216-.542A143.653 143.653 0 0 1 8.34.42v.003l-.005.008a.1.1 0 0 1-.086.05c-.022 0-.04-.008-.038-.007l.075-.186h-.002a.1.1 0 0 0-.128.057L8.15.353l-.027.068-.217.542.186.074Zm-.123.602-.124.06.087.18.123-.06-.086-.18Zm.21.054-.127-.055-.08.183.126.055.08-.183Zm.968.465a18.61 18.61 0 0 0-.968-.465l-.081.183c.243.109.582.266.957.46l.092-.178Zm2.22 1.487c-.57-.559-1.448-1.087-2.22-1.487l-.092.178c.768.397 1.625.915 2.172 1.452l.14-.143Zm2.399 4.688c0-1.857-1.034-3.35-2.399-4.688l-.14.143c1.353 1.325 2.339 2.769 2.339 4.545h.2ZM8 14.1a5.767 5.767 0 0 0 5.767-5.767h-.2A5.567 5.567 0 0 1 8 13.9v.2ZM2.233 8.333A5.767 5.767 0 0 0 8 14.1v-.2a5.567 5.567 0 0 1-5.567-5.567h-.2Zm2.473-4.737c-1.272 1.11-2.473 2.837-2.473 4.737h.2c0-1.818 1.154-3.494 2.405-4.587l-.132-.15Zm2.187-1.413c-.758.406-1.626.923-2.187 1.413l.132.15c.542-.474 1.393-.982 2.15-1.387l-.095-.176Zm.953-.484c-.243.117-.58.284-.953.484l.095.176a25.2 25.2 0 0 1 .945-.48l-.087-.18Zm4.193 5.064-3.921 3.92.141.142 3.921-3.921-.141-.141Zm-.943-.802.943.943.141-.141-.943-.943-.141.141Zm-2.88 3.022 3.021-3.022-.141-.141-3.022 3.022.141.141ZM6.243 7.32l1.834 1.666.134-.148-1.833-1.666-.135.148ZM3.961 9.737l2.421-2.42-.141-.142L3.82 9.596l.141.141Zm.943.802-.943-.943-.141.141.943.943.141-.141Zm1.38-1.522-1.521 1.522.141.141 1.522-1.522-.141-.141Zm1.972 1.663L6.423 9.014l-.135.148 1.833 1.666.135-.148Z"/></svg>;
}

const IconTokenQuantity = React.forwardRef(IconTokenQuantityComponent);
export default IconTokenQuantity;
