/*
 * 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 CargoShip: 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="cargo-ship" ref={ref} {...props}>
            <path
                d={isLarge ? "M250 375H330A20 20 0 0 0 350 355V300H250zM55 300A5 5 0 0 1 50 295V175H17.66A10 10 0 0 1 9.08 159.86L42.52 104.12C45.92 98.44 50.2 93.46 55.12 89.3C45.96 88.16 35.94 87.5 25 87.5A12.5 12.5 0 1 1 25 62.5C76.66 62.5 110.36 76.1 129.04 85.42C142.78 76.1 166.64 62.5 200 62.5C233 62.5 256.74 75.82 270.56 85.14L270.6600000000001 85.08C275.54 82.46 282.6600000000001 79.08 292.0600000000001 75.72C310.8200000000001 69.0199999999999 338.4800000000001 62.4999999999999 375 62.4999999999999A12.5 12.5 0 1 1 375 87.4999999999999Q365.44 87.4999999999999 356.8 88.0999999999999C364.76 94.4599999999999 371.14 102.8599999999999 375.0800000000001 112.6999999999999L394.5200000000001 161.2999999999999A10 10 0 0 1 385.2400000000001 175H100V295A5 5 0 0 1 95 300zM124.1 61A12.6 12.6 0 0 0 137.26 60.18C148.64 52.04 169.2 37.5 200 37.5S251.36 52.04 262.74 60.18A12.5 12.5 0 0 0 277.2200000000001 60.2000000000001L277.36 60.1L278.26 59.52Q279.5800000000001 58.68 282.4600000000001 57.12A132 132 0 0 1 300.4600000000001 49.28C316.7000000000001 43.4800000000001 341.52 37.5000000000001 375 37.5000000000001A12.5 12.5 0 1 0 375 12.5000000000001C338.48 12.5000000000001 310.8 19.0200000000001 292.04 25.7200000000001A160 160 0 0 0 270.6600000000001 35.0800000000001L270.56 35.1400000000001C256.74 25.8200000000001 233 12.5000000000001 200 12.5000000000001C166.66 12.5000000000001 142.78 26.1000000000001 129.04 35.4200000000001C110.36 26.0800000000001 76.66 12.5000000000001 25 12.5000000000001A12.5 12.5 0 1 0 25 37.5000000000001C78.2 37.5000000000001 109.6 53.2400000000001 124.1 61.02M350 275H250V200H330A20 20 0 0 1 350 220zM125 355A20 20 0 0 0 145 375H225V300H125zM225 275H125V220A20 20 0 0 1 145 200H225z" : "M200 300H260A20 20 0 0 0 280 280V240H200zM45 240A5 5 0 0 1 40 235V140H17.66A10 10 0 0 1 9.08 124.86L30.52 89.12C34.66 82.24 40.06 76.36 46.34 71.72A200 200 0 0 0 20 70A10 10 0 0 1 20 50C61.34 50 88.28 60.86 103.22 68.34C114.22 60.88 133.32 50 160 50C186.4 50 205.4 60.66 216.44 68.1L216.52 68.06C220.44 65.96 226.12 63.26 233.64 60.58C248.64 55.22 270.78 49.9999999999999 300 49.9999999999999A10 10 0 0 1 300 70Q290.24 70 281.68 70.78C291.08 77.34 298.64 86.5799999999999 303.08 97.7199999999999L314.5199999999999 126.2799999999999A10 10 0 0 1 305.2 140H80V235A5 5 0 0 1 75 240zM99.28 48.8A10 10 0 0 0 109.82 48.14C118.92 41.64 135.36 30 160 30S201.08 41.64 210.2 48.14A10 10 0 0 0 221.78 48.16L221.9 48.08L222.62 47.62Q223.64 46.94 225.98 45.68C229.06 44.04 233.86 41.74 240.38 39.42C253.36 34.78 273.22 30 300 30A10 10 0 0 0 300 10C270.8 10 248.64 15.22 233.64 20.6A120 120 0 0 0 216.52 28.0599999999999L216.44 28.1C205.4 20.66 186.4 10 160 10C133.32 10 114.22 20.88 103.22 28.34C88.28 20.86 61.34 10 20 10A10 10 0 0 0 20 30C62.58 30 87.68 42.6 99.28 48.8M280 220H200V160H260A20 20 0 0 1 280 180zM100 280A20 20 0 0 0 120 300H180V240H100zM180 220H100V180A20 20 0 0 1 120 160H180z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
CargoShip.displayName = `Blueprint6.Icon.CargoShip`;
export default CargoShip;
