/*
 * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import * as React from "react";
import type { SVGIconProps } from "../../svgIconProps";
import { IconSize } from "../../iconTypes";
import { SVGIconContainer } from "../../svgIconContainer";

export const SortNumerical: React.FC<SVGIconProps> = React.forwardRef<any, SVGIconProps>((props, ref) => {
    const isLarge = (props.size ?? IconSize.STANDARD) >= IconSize.LARGE;
    const pixelGridSize = isLarge ? IconSize.LARGE : IconSize.STANDARD;
    const translation = `${-1 * pixelGridSize / 0.05 / 2}`;
    const style = { transformOrigin: "center" };
    return (
        <SVGIconContainer iconName="sort-numerical" ref={ref} {...props}>
            <path
                d={isLarge ? "M180 100.2C174.4 100.2 169.4 98 165.8 94.4L140 68.4V180.2000000000001C140 191.2000000000001 131 200.2000000000001 120 200.2000000000001S100 191.2000000000001 100 180.2000000000001V68.4L74.2 94.2000000000001A19.4 19.4 0 0 1 60 100.2000000000001A20.06 20.06 0 0 1 45.8 66L105.8 6C109.4 2.4 114.4 0.2 120 0.2S130.6 2.4 134.2 6L194.2 66C197.8 69.6 200 74.6 200 80.2000000000001A19.8 19.8 0 0 1 180 100.2000000000001M357.6 95.6C356.0000000000001 104 353.2000000000001 111.4 349.2000000000001 118.0000000000001S339.8000000000001 130.0000000000001 333.2 134.0000000000001S318 140.0000000000001 307.6 140.0000000000001A46.6 46.6 0 0 1 273.2 125.8000000000001C269 121.4 265.8 116.2000000000001 263.4 110.2000000000001C261.2 104.2000000000001 260 97.8000000000001 260 90.8000000000001C260 85.4000000000001 260.8 80.0000000000001 262.6 74.8000000000001C264.2000000000001 69.6 267 64.8000000000001 270.6 60.8000000000001C274.4000000000001 56.6 279.2000000000001 53.2 284.8000000000001 50.8000000000001A42.8 42.8 0 0 1 319.2000000000001 50.4000000000001C324.2000000000001 52.8000000000001 328.6000000000001 56.6 332.4000000000001 62L332.8 61.6C332.6 57.8 332 53.6000000000001 331.2000000000001 49.0000000000001C330.4000000000001 44.2000000000001 329.0000000000001 39.8000000000001 327 35.6S322.4000000000001 28.0000000000001 319.2000000000001 25A18.4 18.4 0 0 0 306.8 20.6C302 20.6 298.0000000000001 22.2 294.8000000000001 25.6S289.4000000000001 32.8 288.6 37.4H262.4000000000001C263.2 31.6 264.8 26.2 267.2000000000001 21.6S272.8 13.0000000000001 276.8 9.8000000000001C280.6 6.6 285.2000000000001 4.2 290.2000000000001 2.6S300.6 0.2 306.6 0.2C316.4000000000001 0.2 324.6 2.2 331.2000000000001 6.4C338.0000000000001 10.6 343.4000000000001 16 347.6 22.8S355.0000000000001 37 357 45.4S360 61.9999999999999 360 70.4Q360 83.3 357.6 95.6M329.2000000000001 83C328.2 80 327 77.4 325.2000000000001 75S321.2000000000001 70.8 318.4000000000001 69.6S312.4000000000001 67.6 308.6 67.6C305.2000000000001 67.6 302 68.4 299.4000000000001 69.8S294.6 73.2 292.8 75.6C291.2 78 289.8 80.6 289 83.6S287.8 89.8 287.8 93C287.8 96 288.2 99 289.2000000000001 101.9999999999999S291.4 107.6 293.2 109.8C295 112.1999999999999 297.2 114 299.8 115.4S305.2 117.6 308.6 117.6S315.2 116.8 318 115.4S323 111.9999999999999 324.8000000000001 109.8A28 28 0 0 0 330.4000000000001 92.6C330.6000000000001 89.2 330.0000000000001 86 329.2000000000001 83M306.4 180H340V400H315C314 393.2 311.6 387.6 308.2 383S300.4 374.6 295.6 371.6C290.6 368.6 285.2 366.6 279 365.4C273 364.2 266.6 363.6 260.2 363.6V335.4H306.4z" : "M120 80.2C114.4 80.2 109.4 78 105.8 74.4L100 68.4V140.2C100 151.2 91 160.2 80 160.2S60 151.2 60 140.2V68.4L54.2 74.2C50.6 77.8 45.6 80.2 40 80.2A20.06 20.06 0 0 1 25.8 46L65.8 6C69.4 2.4 74.4 0.2 80 0.2S90.6 2.4 94.2 6L134.2 46A20.06 20.06 0 0 1 120 80.2M278.2 81.8Q276.4 92.6 271.6 101C268.4 106.6 264.2000000000001 111.2 258.8 114.8C253.4 118.2 246.6 120 238.2 120C232.6 120 227.4000000000001 118.8 222.6 116.6Q215.7 113.3 210.6 107.6C207.2 103.8 204.6 99.4 202.8 94.2A50 50 0 0 1 202 63.8A32.4 32.4 0 0 1 219.8000000000001 43.2C224.2000000000001 41.0000000000001 228.8 40.0000000000001 233.4000000000001 40.0000000000001C238.6 40.0000000000001 243.4000000000001 41.0000000000001 247.4000000000001 43.0000000000001S255.0000000000001 48.2 258 53.0000000000001L258.4 52.6C258.2 49.4 257.8 45.8000000000001 257 41.8000000000001C256.4 37.8000000000001 255.2 33.8000000000001 253.6 30.4000000000001C252 26.8000000000001 250 23.8000000000001 247.4 21.4000000000001S241.6 17.6000000000001 237.4 17.6000000000001A12.6 12.6 0 0 0 227.8 21.8000000000001C225.2 24.6000000000001 223.6 28.0000000000001 222.8 31.8000000000001H202C202.6 26.8000000000001 204 22.2000000000001 205.8 18.2000000000001C207.8 14.2000000000001 210.2 10.8000000000001 213.4 8.2000000000001C216.6 5.4000000000001 220 3.4000000000001 224.2 2.0000000000001S232.6 1e-13 237.2 1e-13Q248.9 1e-13 257 5.4000000000001C262.4000000000001 9.0000000000001 266.8 13.6000000000001 270.2000000000001 19.4000000000001S276 31.6000000000001 277.6 38.8000000000001S280 53.2000000000001 280 60.2000000000001Q280 71.0000000000001 278.2 81.8000000000001M255.4 71.0000000000001C254.6 68.4000000000001 253.6 66.2000000000001 252.2 64.2000000000001A16 16 0 0 0 246.8 59.4000000000001Q243.5 57.6000000000001 239 57.6000000000001A15 15 0 0 0 231.6 59.4000000000001A16 16 0 0 0 226.4 64.4000000000001C225 66.4000000000001 224 68.8000000000001 223.4 71.4000000000001S222.4 76.6000000000001 222.4 79.4000000000001C222.4 82.0000000000001 222.8 84.6000000000001 223.4 87.2000000000001C224.2 89.8000000000001 225.2 92.0000000000001 226.6 94.0000000000001S229.8 97.6000000000001 231.8 98.8000000000001S236.2 100.6000000000001 238.8 100.6000000000001C241.6 100.6000000000001 244 100.0000000000001 246.2 98.8000000000001S250.2 96.0000000000001 251.8 94.0000000000001A26 26 0 0 0 256.4 79.2000000000001C256.4 76.2000000000001 256 73.6000000000001 255.4 71.0000000000001M224.1999999999999 160.4000000000001H260V320H231.6C230.6 314 228.4 308.8 225.4 304.8C222.2 300.6 218.4 297.4 213.8 294.8S204 290.6 198.2 289.6C192.2 288.6 186.2 288.2 180 288.4V264H224.2z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
SortNumerical.displayName = `Blueprint6.Icon.SortNumerical`;
export default SortNumerical;
