/*
 * 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 ArrayNumeric: 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="array-numeric" ref={ref} {...props}>
            <path
                d={isLarge ? "M380 400A20 20 0 0 0 399.86 382.34L400 380V20A20 20 0 0 0 382.3400000000001 0.14L380 0H300A20 20 0 0 0 297.66 39.86L300 40H360V360H300A20 20 0 0 0 280.14 377.6600000000001L280 380A20 20 0 0 0 297.66 399.86L300 400zM100 400A20 20 0 0 0 102.34 360.14L100 360H40V40H100A20 20 0 0 0 119.86 22.34L120 20A20 20 0 0 0 102.34 0.14L100 0H20A20 20 0 0 0 0.14 17.66L0 20V380A20 20 0 0 0 17.66 399.86L20 400zM279.9 278.2Q289.5 278.2 296.9 275.4T309.4 267.6T317.2 255.7T319.9 240.6Q319.9 232.0000000000001 316.1 224.7A32.8 32.8 0 0 0 304.7 212.4V212L306.7200000000001 211Q308.76 209.84 310.9 207.9Q314.1 205 316.7 200.8A42 42 0 0 0 322.7 179Q322.7 169.6 319.5 162A38 38 0 0 0 297.0999999999999 140.7000000000001A48 48 0 0 0 280.1 137.8000000000001Q264.0999999999999 137.8000000000001 252.7 145.4000000000001A34 34 0 0 0 238.1 167.0000000000001Q237.7 169.0000000000001 239.7 169.6000000000001L257.0999999999999 173.6000000000001L257.92 173.6600000000001Q259.06 173.5400000000001 259.5 172.2000000000001Q261.7 166.2000000000001 266.7 162.0000000000001T280.1 157.8000000000001Q289.7 157.8000000000001 294.9 163.5000000000001T300.1 178.0000000000001Q300.1 188.4 294.0999999999999 194.3000000000001T277.8999999999999 200.2000000000001H272.0999999999999L271.2199999999999 200.3200000000001Q270.1 200.72 270.1 202.2V218L270.22 218.88Q270.62 220 272.0999999999999 220H277.5L280.3999999999999 220.16A18.6 18.6 0 0 1 291.8999999999999 225.4Q297.2999999999999 230.8 297.2999999999999 239.8Q297.2999999999999 248 292.4999999999999 253.1T279.0999999999999 258.2Q271.4999999999999 258.2 267.0999999999999 254.4T260.8999999999999 244.2Q260.2999999999999 242.4 258.4999999999999 242.8L241.4999999999999 246.8L240.6599999999999 247.1Q239.5999999999999 247.7 239.8999999999999 249.2A33.6 33.6 0 0 0 252.7999999999999 269.9Q257.8999999999999 273.8 264.7999999999999 276T279.8999999999999 278.2M120.0999999999999 276L120.9799999999999 275.88Q122.0999999999999 275.48 122.0999999999999 274V142L121.9799999999999 141.12Q121.5799999999999 140 120.0999999999999 140H101.6999999999999L100.8199999999999 140.12Q99.6999999999999 140.52 99.6999999999999 142V249.2H99.2999999999999L78.4999999999999 234.6L77.6999999999999 234.2Q76.2999999999999 233.7200000000001 76.2999999999999 235.8V256.2L76.4599999999999 257.2200000000001A4 4 0 0 0 77.6999999999999 259L99.4999999999999 274.8L100.5199999999999 275.4600000000001A6 6 0 0 0 103.0999999999999 276zM186.8999999999999 278.2Q196.4999999999999 278.2 203.8999999999999 275.2T216.3999999999999 267.1T224.1999999999999 255.1T226.8999999999999 240.2Q226.8999999999999 231 223.4999999999999 223.3A64 64 0 0 0 214.0999999999999 208.4L174.4999999999999 160.4V160H224.8999999999999L225.7799999999999 159.88Q226.8999999999999 159.48 226.8999999999999 158V142L226.7799999999999 141.12Q226.3799999999999 140 224.8999999999999 140H148.4999999999999L147.6199999999999 140.12Q146.4999999999999 140.52 146.4999999999999 142V157L146.6199999999999 158A4 4 0 0 0 147.4999999999999 159.6L195.4999999999999 219.4L197.9799999999999 222.74Q200.2999999999999 226.06 201.8999999999999 229.4Q204.2999999999999 234.4 204.2999999999999 240.2A18.4 18.4 0 0 1 199.5999999999999 253Q194.8999999999999 258.2 186.2999999999999 258.2Q178.0999999999999 258.2 173.4999999999999 253.6T167.8999999999999 241.2Q167.4999999999999 239.2 165.6999999999999 239.6L148.0999999999999 243.2L147.2399999999999 243.5Q146.1999999999999 244.1 146.4999999999999 245.6Q147.0999999999999 251.6 149.8999999999999 257.4A36 36 0 0 0 157.6999999999999 267.9Q162.6999999999999 272.62 169.9999999999999 275.4A48 48 0 0 0 186.8999999999999 278.2" : "M300 320A20 20 0 0 0 319.86 302.34L320 300V20A20 20 0 0 0 302.3400000000001 0.14L300 0H240A20 20 0 0 0 237.66 39.86L240 40H280V280H240A20 20 0 0 0 220.14 297.6600000000001L220 300A20 20 0 0 0 237.66 319.86L240 320zM80 320A20 20 0 0 0 82.34 280.14L80 280H40V40H80A20 20 0 0 0 99.86 22.34L100 20A20 20 0 0 0 82.34 0.14L80 0H20A20 20 0 0 0 0.14 17.66L0 20V300A20 20 0 0 0 17.66 319.86L20 320zM218.08 220Q225.76 220 231.68 217.76Q237.6 215.5 241.68 211.52Q245.76 207.52 247.92 202T250.08 189.92Q250.08 183.04 247.04 177.2A26 26 0 0 0 237.92 167.36V167.04L239.52 166.24Q241.18 165.32 242.88 163.76Q245.44 161.44 247.52 158.08A33.4 33.4 0 0 0 252.32 140.64Q252.32 133.14 249.76 127.04A30.4 30.4 0 0 0 231.84 110A40 40 0 0 0 218.24 107.68Q205.44 107.68 196.32 113.76A27.2 27.2 0 0 0 184.64 131.04Q184.32 132.6400000000001 185.92 133.12L199.84 136.32L200.5 136.36Q201.4 136.28 201.76 135.2000000000001Q203.52 130.4 207.52 127.0400000000001T218.24 123.6800000000001Q225.92 123.6800000000001 230.08 128.2400000000001A16.6 16.6 0 0 1 234.24 139.8400000000001Q234.24 148.1600000000001 229.44 152.8800000000001T216.48 157.6000000000001H211.84L211.14 157.7000000000001Q210.24 158.0000000000001 210.24 159.2000000000001V171.84L210.34 172.5400000000001Q210.6400000000001 173.4400000000001 211.84 173.4400000000001H216.16L218.92 173.6200000000001A14.6 14.6 0 0 1 227.68 177.7600000000001Q232 182.0800000000001 232 189.28A15 15 0 0 1 228.16 199.9200000000001Q224.32 204.0000000000001 217.44 204.0000000000001Q211.36 204.0000000000001 207.84 200.96A16 16 0 0 1 202.88 192.8Q202.4 191.36 200.96 191.68L187.36 194.88L186.68 195.12Q185.84 195.6 186.08 196.8A27 27 0 0 0 196.4 213.36Q200.48 216.48 206 218.24A40 40 0 0 0 218.08 220M95.04 218.24L95.74 218.14Q96.64 217.84 96.64 216.64V111.04L96.54 110.34Q96.24 109.44 95.04 109.44H80.32L79.62 109.54Q78.72 109.84 78.72 111.04V196.8H78.4L61.76 185.12L61.12 184.8Q60 184.42 60 186.08V202.4L60.12 203.2A3.2 3.2 0 0 0 61.12 204.64L78.56 217.28L79.36 217.82A4.8 4.8 0 0 0 81.44 218.24zM146.88 220Q154.56 220 160.48 217.6T170.48 211.12T176.72 201.52T178.88 189.6Q178.88 182.26 176.16 176.08Q173.4400000000001 169.92 168.6400000000001 164.16L136.96 125.76V125.44H177.2800000000001L177.9800000000001 125.34Q178.8800000000001 125.04 178.8800000000001 123.84V111.04L178.78 110.34Q178.48 109.44 177.2800000000001 109.44H116.16L115.46 109.54Q114.56 109.84 114.56 111.04V123.04L114.64 123.84A2.6 2.6 0 0 0 115.36 125.12L153.76 172.96L155.76 175.62A40 40 0 0 1 158.88 180.96A20 20 0 0 1 160.8 189.6A14.8 14.8 0 0 1 157.04 199.84Q153.28 204 146.4 204Q139.82 204 136.16 200.32A16.6 16.6 0 0 1 131.68 190.4Q131.38 188.8 129.92 189.12L115.84 192L115.16 192.24Q114.32 192.72 114.56 193.92A28.6 28.6 0 0 0 133.36 217.76A38 38 0 0 0 146.88 220"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
ArrayNumeric.displayName = `Blueprint6.Icon.ArrayNumeric`;
export default ArrayNumeric;
