/*
 * 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 PublishFunction: 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="publish-function" ref={ref} {...props}>
            <path
                d={isLarge ? "M140.2 197.8C147.2 210.6 154.6 231.4 162 260L178 320.6H197.2L202 336H182.2C187.8 358.2 195.4 374.4 204.6 384.6C210.2 391 215.8 394.2 221.2 394.2C222.2 394.2 223.2 393.8 223.8 393.2S224.8000000000001 391.8 224.8000000000001 390.8C224.8000000000001 390 224.0000000000001 388.2 222.6000000000001 385.8C221.0000000000001 383.4 220.4000000000001 381 220.4000000000001 378.8Q220.4000000000001 374.3 224.0000000000001 371C226.4000000000001 368.8 229.4000000000001 367.8 233.0000000000001 367.8C237.0000000000001 367.8 240.2000000000001 369.2 242.8000000000001 371.8S246.8000000000001 378 246.8000000000001 382.6Q246.8000000000001 390.4 240.8 395.2T221.6 400C208 400 195.6 396.2 184.4 388.4C173.4 380.8 162.8 368 152.8 350.2C149.4 344.2 146 340.2 143 338.4C140 336.8 135 335.8 128.2 336L123.6 320.6H142.6L114.8 215.8C110.2 198.6 107 188 105.4 184Q101.8 175.3 94.6 169C92.6 167.4 90.4 166.6 87.6 166.6C86.8 166.6 86.2 166.8 85.6 167.2L85 168C85 168.4 85.6 169.4 87 170.6C88.4 172 89 174 89 176.8C89 179.8 88 182.4 85.8 184.4S80.4 187.4 76.4 187.4C71.4 187.4 67.6 186 64.6 183.4C61.6 181.0000000000001 60 177.8000000000001 60 174.2C60 170.4 61.8 167 65.4 164.2C69.2 161.4 74.8 160 82.6 160C94.8 160 105.8 163 115.2 169.2C124.8 175.4 133 185 140.2 197.8M214.2 174.2C210.6 177.8 205.6 180 200 180S189.4 177.8 185.8 174.2L125.8 114.2000000000001A20.06 20.06 0 0 1 154.2 85.8L180 111.8V20C180 9 189 0 200 0S220 9 220 20V111.8L245.8 86C249.4 82.2000000000001 254.4 80 260 80A20.06 20.06 0 0 1 274.2000000000001 114.2000000000001zM297.2000000000001 309.8C300.6 312.4000000000001 304.4000000000001 313.8 308.2000000000001 313.8C309.6 313.8 312.2000000000001 313.2000000000001 316.0000000000001 312.2000000000001S323.2000000000001 310.6 326.0000000000001 310.6C330.0000000000001 310.6 333.4000000000001 312 336.0000000000001 314.6C338.6000000000001 317.4000000000001 340.0000000000001 320.8 340.0000000000001 325C340.0000000000001 329.4000000000001 338.6000000000001 333 336.0000000000001 335.6S329.4000000000001 339.6 324.4000000000001 339.6Q317.8000000000002 339.6 311.8000000000002 336.6C307.8000000000002 334.6 302.8000000000002 330.2000000000001 296.8000000000002 323.2000000000001C292.2000000000001 318.2000000000001 285.6000000000001 309.2000000000001 276.6000000000002 296.6A130 130 0 0 1 258.4000000000001 339.6L210.8000000000001 331.8000000000001L209.8000000000001 326.8000000000001C213.4000000000001 327.4000000000001 216.4000000000001 327.8 218.8000000000001 327.8C223.6000000000001 327.8 227.4000000000001 325.8 230.6000000000001 321.8000000000001Q238.1000000000001 312.5 251.0000000000001 266C244.2000000000001 257.2000000000001 239.4000000000001 251.4000000000001 237.0000000000001 248.6C232.8000000000001 244.2000000000001 229.4000000000001 241.4000000000001 226.6000000000001 240.0000000000001C224.6000000000001 239.0000000000001 222.2000000000001 238.4000000000001 219.6000000000001 238.4000000000001C217.6000000000001 238.4000000000001 214.4000000000001 239.4000000000001 209.8000000000001 241.6A20 20 0 0 1 201.4000000000001 243.8000000000001C196.8000000000001 243.8000000000001 193.0000000000001 242.4000000000001 190.0000000000001 239.4000000000001C186.6000000000001 236.6 185.2000000000001 233.0000000000001 185.2000000000001 228.4000000000001Q185.2000000000001 222.1000000000001 189.4000000000001 218.2000000000001C192.2000000000001 215.6 196.0000000000001 214.2000000000001 200.6000000000001 214.2000000000001S209.4000000000001 215.2000000000001 213.4000000000002 217.0000000000001S222.4000000000001 222.8000000000001 228.4000000000002 228.8000000000001S242.8000000000002 244.4000000000001 253.4000000000002 257.4000000000001C257.4000000000002 245.0000000000001 261.0000000000002 236.0000000000001 264.0000000000001 230.4000000000001S270.4000000000002 220.6000000000001 274.4000000000001 218.2000000000001C278.2000000000001 215.8000000000001 283.2000000000001 214.4000000000001 289.0000000000001 214.4000000000001C294.6000000000002 214.4000000000001 300.4000000000002 216.4000000000001 306.2000000000001 220.4000000000001C313.8000000000002 225.4000000000001 321.6000000000002 234.2000000000001 329.6000000000001 246.6000000000001L324.6000000000001 249.4000000000001C319.2000000000001 242.0000000000001 315.0000000000001 237.4000000000001 312.4000000000001 235.6000000000001C310.6000000000001 234.4000000000001 308.6000000000001 233.8000000000001 306.2000000000001 233.8000000000001C303.4000000000001 233.8000000000001 300.6000000000001 235.6000000000001 297.8000000000001 239.0000000000001Q290.9000000000001 247.7000000000001 279.2000000000001 287.0000000000001C286.6000000000001 298.6000000000002 292.4000000000001 306.2000000000001 297.2000000000001 309.8000000000001" : "M243.2 244.8C246.2 247 249.2 248 252.6 248C253.8 248 256 247.6 259.4000000000001 246.8C262.6 246 265.6 245.6 268 245.6A11.6 11.6 0 0 1 280 257.6C280 261.4 278.8 264.2 276.6 266.4S271 269.6 266.8 269.6C263 269.6 259.4000000000001 268.8 256 267S248.2 261.6 243 256C239.0000000000001 251.8 233.4 244.4 225.6 233.8A104 104 0 0 1 210 269.6L169.0000000000001 263.2L168.2000000000001 259C171.2000000000001 259.6 173.8000000000001 259.8 176.0000000000001 259.8C180.0000000000001 259.8 183.4000000000001 258.2 186.0000000000001 254.8C190.2000000000001 249.6 196.0000000000001 234.2 203.6000000000001 208.2C197.8000000000001 201 193.8000000000001 196.2 191.6000000000001 194Q186.2000000000001 188.3 182.6000000000001 186.8C180.8000000000001 186 178.8000000000001 185.4 176.6000000000001 185.4C174.8000000000001 185.4 172.0000000000001 186.2 168.2000000000001 188A18 18 0 0 1 161.0000000000001 189.8C157.0000000000001 189.8 153.8000000000001 188.6 151.2000000000001 186.2A11.8 11.8 0 0 1 147.4000000000001 177C147.4000000000001 173.4 148.6000000000001 170.6 151.0000000000001 168.4S156.6000000000001 165.2 160.6000000000001 165.2S168.2000000000001 166 171.6000000000001 167.6S179.4000000000001 172.4 184.6000000000001 177.4S197.0000000000001 190.4 206.0000000000001 201.2C209.6000000000001 190.8 212.6000000000001 183.4 215.2000000000001 178.6S220.8000000000001 170.6 224.0000000000001 168.4C227.4000000000001 166.4 231.4000000000001 165.2 236.4000000000001 165.2C241.2000000000001 165.2 246.2000000000001 166.8 251.2000000000001 170.2C257.8000000000002 174.4 264.4000000000001 181.8 271.4000000000001 192L267.2000000000001 194.2C262.6000000000001 188 259.0000000000001 184.2 256.8000000000002 182.8A8.8 8.8 0 0 0 251.6000000000001 181.4Q248.0000000000001 181.4 244.4000000000001 185.6C240.4000000000002 190.4 235.2000000000001 203.8 228.4000000000001 225.6C234.2000000000001 235.4 239.2000000000001 241.8 243.2000000000001 244.8M127.4 203.4L141 254H157.6L161.6 266.8H144.8C149.6 285 156 298.6 164 307C168.8 312.4 173.6 315 178.2 315C179.2 315 179.8 314.8 180.4 314.2S181.2 313 181.2 312.2S180.6 310 179.2 308C178 306 177.2 304 177.2 302.2Q177.2 298.3 180.2 295.6C182.2 293.8 184.8 292.8 188 292.8C191.4 292.8 194.2 294 196.4 296.2C198.8 298.6 200 301.6 200 305.4C200 309.6 198.4 313.2 195 315.8C191.4 318.6 186 320 178.6 320Q160.9 320 146.8 310.4C137.2 304 128.2 293.4 119.6 278.6C116.6 273.4 113.8 270.2 111.2 268.8S104.2 266.6 98.4 266.8L94.6 253.8H110.8L87 166.4C83 152 80.4 143.2 79 139.8C77 135 73.8 130.8 69.8 127.4A9.6 9.6 0 0 0 63.6 125.4C63 125.4 62.4 125.6 62 126L61.4 126.6C61.4 127 62 127.8 63.2 128.8C64.4 130 65 131.8 65 134C65 136.6 64 138.6 62.2 140.4C60.2 142.2 57.6 143 54 143C49.8 143 46.4 142 43.8 139.8A10.4 10.4 0 0 1 40 132C40 128.8 41.6 126 44.6 123.6C47.8 121.2 52.6 120 59.4 120C70 120 79.2 122.6 87.4 127.8S102.6 140.8 108.8 151.6C114.8 162.2 121 179.4 127.4 203.4M174.2 134.2A20 20 0 0 1 160 140C154.4 140 149.4 137.8 145.8 134.2L105.8 94.2A20.06 20.06 0 0 1 134.2 65.8L140 71.8V20C140 9 149 0 160 0S180 9 180 20V71.8L185.8 66C189.4 62.2000000000001 194.4 60 200 60A20.06 20.06 0 0 1 214.2 94.2z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
PublishFunction.displayName = `Blueprint6.Icon.PublishFunction`;
export default PublishFunction;
