/*
 * 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 FlowEnd: React.FC<SVGIconProps> = React.forwardRef<any, SVGIconProps>((props, ref) => {
    const isLarge = props.size! >= IconSize.LARGE;
    const pixelGridSize = isLarge ? IconSize.LARGE : IconSize.STANDARD;
    const translation = `${-1 * pixelGridSize / 0.05 / 2}`;
    const style = { transformOrigin: "center" };
    return (
        <SVGIconContainer iconName="flow-end" ref={ref}  {...props}>
            <path
                d={isLarge ? "M240.01461 201.629275C240.837688 245.0617898 276.333188 280.01717062 320 280.01717062C364.18278 280.01717062 400 244.2308438 400 200.086172C400 155.9415006 364.18278 120.1551738 320 120.1551738C276.351992 120.1551738 240.868264 155.0804534 240.015692 198.48696C239.64026 193.6795492 237.583316 189.4096012 234.416458 186.247797L153.6840024 105.7947984C150.1700738 102.286478 145.4337502 100.107571 139.9676386 100.107571C129.2306342 100.107571 120.0777876 109.3228848 120.0777876 120.0427526C120.0777876 125.50014 122.2299448 130.6082814 125.7438736 134.116602L173.3131412 180.1536974L19.5996137 180.1536974C8.8626091 180.1536974 0.0777871784 189.3663044 0.0777871784 200.086172C0.0777871784 210.80604 8.8626091 219.922752 19.5996137 219.922752C26.7576168 219.922752 77.9303866 219.922752 173.117923 219.922752L125.7438736 266.2568108C122.2299448 269.7651314 120.0777876 274.5217086 120.0777876 279.9790960000001C120.0777876 290.6989638400001 129.2306342 299.9075710394 139.9676386 299.9075710394C145.4337502 299.9075710394 150.1700738 297.8976514800001 153.6840024 294.19442438L234.22124 213.7296404C237.399318 210.5566364 239.619284 206.4270532 240.01461 201.629275z" : "M194.0493444 173.8034272C197.5606934 170.2831812 199.9015928 165.58952 199.9015928 160.113582C199.9015928 154.6376438 197.7557684 149.7484134 194.2444194 146.2281676C156.4721794 108.0385366 136.3961366 87.8529832 134.0162908 85.6715072C130.446522 82.3992934 125.628068 80 120.1659696 80C109.130218 80 100.21191 88.9472986 100.21191 99.7036056C100.21191 105.1795436 102.4678874 110.5284868 106.0545004 114.1175436C108.4455756 116.510248 118.5418916 125.1276682 136.3434486 139.9698042L19.59998306 139.9698042C8.87086102 139.9698042 0.092488421 149.357275 0.092488421 160.113582C0.092488421 170.8698888 8.87086102 180.0441336 19.59998306 180.0441336L136.3434486 180.0441336C118.4323106 195.0766028 108.3359944 203.770231 106.0545004 206.1250186C102.6322592 209.6572 100.21191 214.7518006 100.21191 220.22773862C100.21191 230.98404562 109.2747504 240 120.0038724 240C125.465971 240 130.4102778 237.83761662 133.9216268 234.1218015C136.2625262 231.64459142 156.3050986 211.5384666 194.0493444 173.8034272zM260 99.9615572C226.862916 99.9615572 200 126.892536 200 160.113582C200 193.3346278 226.862916 220.26560662 260 220.26560662C293.137084 220.26560662 320 193.3346278 320 160.113582C320 126.892536 293.137084 99.9615572 260 99.9615572z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
FlowEnd.defaultProps = {
    size: IconSize.STANDARD,
};
FlowEnd.displayName = `Blueprint5.Icon.FlowEnd`;
export default FlowEnd;
