/*
 * 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 Geosearch: 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="geosearch" ref={ref} {...props}>
            <path
                d={isLarge ? "M160 22.4C84.2 22.4 22.4 84.2000000000001 22.4 160C22.4 172.2 24 184.4 27 195.8C27.6 195.6 28.2 196 29 196H30.8V185C30.8 180.4 35 176.6 39.6 176.6C40.4 176.6 41.4 176.8 42 177L60 159.4C61.8 157.5999999999999 64.6 157.5999999999999 66.4 159.4S68.2 164 66.4 165.8L49.2 183.8C49.2 184.1999999999999 50.2 184.5999999999999 50.2 185.2V187.8C50.2 191.4 52.2 192.8 56 196H66.6C68.6 196 70.4 196.2 72 197C72.2 197.2 72.4 197 72.6 197.2C73 197.4 73.2 197.6 73.6 198C73.8 198.2 74 198.2 74 198.4L74.4 198.8L97 221.3999999999999Q92.2 231 88.6 241.2H75.8V251.8C75.8 252 77 250.6 77 253.8H84.6C83.8 257 83 260.2 82.6 263.3999999999999H68.4C72.4 266.5999999999999 76.8 269.5999999999999 81.2 272.3999999999999C80.4 278.2 80 284 80 290C80 292.8 80.2 295.6 80.4 298.6C32.4 270.8 0 219.2 0 160C0 71.8 71.8 0 160 0C237.4000000000001 0 301.8 55.4 316.4 128.8L297 150.8C291.8 79.4 232.4 22.4 160 22.4M117.6 95.8V102.8H120.6C126.4 102.8 130.4 107.4 130.4 113.4V127C130.4 127.2 130.6 127.2 130.4 127.4L94.2 164H78.8C73 164 69.4 159.2 69.4 153.4V113.4C69.4 107.6 73 102.8 78.8 102.8H85.4V62.4C85.4 56.8 91 52.2 96.6 52.2S107.8 56.8 107.8 62.4V86.8H107.6C113.4 86.8 117.6 90.0000000000001 117.6 95.8M394.2000000000001 154.2L320.6 227.8C323.4000000000001 232.0000000000001 326 236.2 328.2 240.8C328.6 241.6 329 242.2 329.2000000000001 243.0000000000001C331.4 247.4000000000001 333.2 252.0000000000001 334.8000000000001 256.8000000000001V257C336.2000000000001 261.8000000000001 337.4000000000001 266.6 338.2000000000001 271.6L338.8000000000001 275Q340.0000000000001 282.2000000000001 340.0000000000001 290C340 350.8 290.8 400 230 400S120 350.8 120 290S169.2 180 230 180C235.2 180 240.2 180.4 245.2 181.2L248.6 181.8C253.6 182.6 258.4 183.8 263.2 185.2H263.4C268.2 186.8 272.8 188.6 277.2 190.8C278 191.2 278.6 191.6 279.4 191.8C284 194 288.2 196.6 292.4 199.4L366 125.8C369.4000000000001 122.2000000000001 374.4000000000001 120.0000000000001 380 120.0000000000001A20.06 20.06 0 0 1 394.2000000000001 154.2M230 210C185.8 210 150 245.8 150 290S185.8 370 230 370S310 334.2 310 290S274.2000000000001 210 230 210M268.6 103.4V116.4C268.6 118.6 266 120.6 263.8 120.6S259 118.8 259 116.4V103.4C259 101.2 261.6 99.2 263.8 99.2S268.6 101.2 268.6 103.4M220.4 90H237C242.8 90 246.2 94.2000000000001 246.2 100V137.2L250.8 141.6C244.0000000000001 140.6 237.0000000000001 140 230 140C222.8 140 216 140.6 209 141.6C209.6 140.6 210.2 139.6 210.6 138.4V100C210.8 94.2000000000001 214.6 90 220.4 90" : "M176.4 72H189.6C194.2 72 196.8 75.4 196.8 80V109.6L200.6 113.2C195.2 112.6 189.6 112 184 112S172.8 112.6 167.2 113.4C167.6 112.6 168.2 111.8 168.6 110.8V80C168.6 75.4 171.6 72 176.4 72M128 18A110.2 110.2 0 0 0 18 128C18 137.8 19.2 147.6 21.6 156.6C22.2 156.6 22.6 156.8 23.2 156.8H24.8V148C24.8 144.2 28.2 141.2 32 141.2C32.6 141.2 33.4 141.4 34 141.4L48.2 127.4C49.6 126 52 126 53.4 127.4S54.8 131.2 53.4 132.6L39.4 147C39.4 147.4 40 147.6 40 148.0000000000001V150.2000000000001C40 153.2000000000001 41.6 154.2 44.6 156.8000000000001H53C54.6 156.8000000000001 56 157 57.4 157.6H57.8C58.2 158 58.4 158 58.6 158.4C58.8 158.6 58.8 158.6 59 158.6L59.4 158.8L77.4 176.8C74.8 182 72.6 187.2 70.6 192.8H60.6V201.4C60.6 201.6 61.6 200.4 61.4 203H67.6C67 205.6 66.4 208.2 66 210.8H54.6C57.8 213.2 61.4 215.6 64.8 218C64.4 222.6 64 227.2 64 232C64 234.4 64.2 236.6 64.4 238.8A127.8 127.8 0 0 1 0 128C0 57.4 57.4 0 128 0C190 0 241.4 44.4 253.2 103L237.6 120.6C233.4 63.6 186 18.0000000000001 128 18.0000000000001M94 76.6V82.2H96.4C101 82.2 104.2 86 104.2 90.6V101.4S104.4 101.6 104.2 101.6L75.4 131H63C58.4 131 55.4 127.2 55.4 122.6V90.6C55.4 86 58.2 82.2 63 82.2H68.2V50.0000000000001C68.2 45.4 72.6 41.8 77.2 41.8S86.2 45.4 86.2 50.0000000000001V69.4H86C90.8 69.4 94 72.0000000000001 94 76.6M315.4 123.4L256.6 182.2C258.8 185.6 260.8 189 262.6 192.6C262.8 193.2 263.2 193.8 263.4 194.4C265 198 266.6 201.6 267.8 205.4V205.6C269 209.4 269.8 213.2 270.6 217.2C270.8 218.2 270.8 219 271 220C271.6 224 272 228 272 232.2A88 88 0 0 1 184 320.2C135.4 320 96 280.6 96 232S135.4 144 184 144C188.2 144 192.2 144.4 196.2 145C197 145 198 145.2 199 145.4C203 146 206.8 147 210.6 148.2H210.8C214.6 149.4 218.2 151 221.8 152.6C222.4 152.8 223 153.2 223.6 153.4C227.2 155.2 230.6 157.2 234 159.4L292.8 100.6A16 16 0 0 1 304.2 96C313 96 320.2 103.2 320.2 112A18 18 0 0 1 315.4 123.4M184 168C148.6 168 120 196.6 120 232S148.6 296 184 296S248 267.4 248 232S219.4 168 184 168M214.8 82.8V93.2C214.8 95 212.8 96.6 211 96.6S207.2 95.2 207.2 93.2V82.8C207.2 81 209.2 79.4 211 79.4S214.8 80.8 214.8 82.8"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Geosearch.displayName = `Blueprint6.Icon.Geosearch`;
export default Geosearch;
