/*
 * 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 SharedFilter: 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="shared-filter" ref={ref} {...props}>
            <path
                d={isLarge ? "M278.34 55.82C298.54 46.74 329.2000000000001 37.26 335.8 22.96C342 8.52 339.52 0 339.52 0H120.52S117.92 8.52 124.24 22.96S161.08 47.02 181.44 55.96S199.72 70.4 200.4 77.8199999999999C200.4 78.7799999999999 200.54 79.76 200.54 80.72A62 62 0 0 0 183.76 105.46L183.62 105.6C183.62 105.74 183.5 105.8799999999999 183.5 105.9999999999999A40 40 0 0 0 181.3 112.74C176.62 113.5799999999999 173.86 118.6599999999999 172.78 123.48A21 21 0 0 0 170.02 135.44C170.7 142.44 173.6 145.62 176.76 146.84V147.96C176.76 156.7599999999999 177.44 169.2599999999999 179.1 177.52Q179.52 181.06 180.6 184.38A50 50 0 0 0 198.34 209.9799999999999C206.86 216.5799999999999 219.1 220 229.94 220C240.82 220 253.04 216.5599999999999 261.7000000000001 209.9599999999999A50 50 0 0 0 280.96 177.5199999999999C282.46 169.2599999999999 283.3 156.6199999999999 283.3 147.9599999999999V146.72C286.3 145.48 289.06 142.3199999999999 289.7600000000001 135.44C290.1600000000001 130.0799999999999 288.1 125.3999999999999 287 123.4799999999999C286.04 118.7999999999999 283.3 113.7199999999999 278.6 112.7399999999999A60 60 0 0 0 276.2800000000001 105.4599999999999A62 62 0 0 0 259.9200000000001 80.9799999999999Q259.8800000000001 79.2999999999998 260.0600000000001 77.8199999999999C260.7400000000001 70.2599999999999 258.0000000000001 64.7599999999999 278.3400000000001 55.8199999999999M299.5200000000001 68.5999999999999C294.7200000000001 70.5799999999999 290.42 72.3199999999998 286.52 74.0599999999998L286.38 74.1399999999999A80 80 0 0 0 282.5 75.9599999999999C286.98 81.7199999999999 290.7 88.1399999999999 293.58 94.8799999999999L293.6 94.9199999999999L293.86 95.5799999999999Q294.42 96.8799999999999 294.9 98.1799999999999L295.12 98.7199999999999L295.44 99.5199999999999C297.54 101.3599999999999 299.24 103.3199999999999 300.56 105.1999999999999A38 38 0 0 1 305.86 116.4399999999999C307.96 120.9799999999999 310.36 128.2999999999999 309.7 136.9799999999999L309.68 137.1999999999998L309.64 137.4199999999999A37 37 0 0 1 303.14 155.6199999999998A200 200 0 0 1 300.74 180.5399999999999A60 60 0 0 1 298.62 190.0399999999999L298.6 190.1599999999999A70.8 70.8 0 0 1 283.3400000000001 217.2199999999998C288.74 219.0599999999998 294.54 219.9999999999998 299.9400000000001 219.9999999999998C309.8400000000001 219.9999999999998 320.94 216.8799999999998 328.8200000000001 210.8799999999998A45.4 45.4 0 0 0 346.3200000000001 181.3799999999998C347.7000000000001 173.8799999999998 348.4400000000001 162.3799999999999 348.4400000000001 154.4999999999999V153.3799999999999C351.2000000000001 152.2599999999999 353.7000000000001 149.3799999999999 354.3200000000001 143.1199999999999A20 20 0 0 0 351.8200000000001 132.2599999999999C350.9400000000001 127.9999999999999 348.4400000000001 123.3799999999999 344.2000000000001 122.4999999999999C343.7000000000001 120.4999999999999 343.0800000000001 118.3799999999999 342.3200000000001 116.4999999999999A56 56 0 0 0 327.2000000000001 93.6199999999999Q327.1600000000001 92.0999999999999 327.3200000000001 90.7399999999999Q327.4400000000001 89.4399999999999 327.4600000000001 88.1999999999999C327.6600000000002 82.5399999999999 327.8200000000001 77.8399999999999 343.9400000000001 70.7599999999999C347.7800000000002 69.0199999999999 352.0200000000001 67.2999999999999 356.4000000000002 65.4999999999998C373.0000000000001 58.6999999999998 391.4400000000001 51.1599999999999 396.2000000000001 40.8799999999998C401.8000000000002 27.7399999999998 399.5600000000001 19.9999999999998 399.5600000000001 19.9999999999998H357.9400000000001A80 80 0 0 1 354.1800000000001 30.8399999999998L354.0800000000002 31.0999999999999L353.9600000000002 31.3399999999999C350.3000000000002 39.2799999999999 344.1400000000002 44.9599999999999 338.7600000000001 48.9399999999998A112 112 0 0 1 320.8400000000001 59.3799999999998A340 340 0 0 1 302.5200000000001 67.3799999999998zM280 380C291 380 300 371 300 360C300 354.4 297.8 349.4 294.2000000000001 346L200 251.8V233.86A64 64 0 0 1 186.2 225.86A70 70 0 0 1 159.34 180.68C157.94 173.28 157.2 163.96 156.9 155.94A36.8 36.8 0 0 1 150.12 137.42C149.2 128.26 151.92 120.62 154.02 116.22C155.08 112.66 156.78 108.7 159.42 105.02Q161.08 102.6 163.62 100.18V97.3199999999999L164.68 96.2799999999999L134.2 65.8A20.06 20.06 0 0 0 100 80V251.8L5.8 345.8A20.06 20.06 0 0 0 20 380zM181.18 112.78C176.58 113.66 173.86 118.7 172.78 123.48A21 21 0 0 0 170.02 135.44C170.7 142.44 173.6 145.62 176.76 146.84V147.96C176.76 156.76 177.44 169.26 179.1 177.52Q179.52 181.06 180.6 184.38A50 50 0 0 0 200 211.2V140C200 134.4 197.8 129.4 194.2 125.8z" : "M276.86 16.74C281.5 6.14 279.62 0 279.62 0H120.34S118.58 6.16 123.1 16.74C127.62 27.34 149.86 34.34 164.68 40.86C179.38 47.5 177.88 51.46 178.38 56.86C178.38 57.46 178.5 58.22 178.5 58.96A44 44 0 0 0 166.3 76.8V76.92S166.18 77.04 166.18 77.16C165.68 78.64 165.06 80.36 164.68 81.96C161.16 82.58 159.16 86.4 158.4 89.84A16 16 0 0 0 156.4 98.58C156.9 103.64 159.0200000000001 105.98 161.28 106.96V107.7000000000001C161.28 113.96 161.9200000000001 123.2000000000001 163.04 129.1A36.8 36.8 0 0 0 177 152.6C183.3 157.4 192.2 160 200.12 160S216.96 157.4 223.24 152.6C229.26 147.94 233.92 141.4 236.04 133.9C236.5600000000001 132.3 236.9400000000001 130.58 237.1800000000001 128.98C238.3200000000001 123.08 238.9400000000001 113.98 238.9400000000001 107.7V106.84C241.2 105.84 243.2200000000001 103.5 243.58 98.58A15 15 0 0 0 241.58 89.84C240.82 86.4 238.9400000000001 82.7000000000001 235.56 82.1A40 40 0 0 0 234.04 77.3L233.92 76.8A47 47 0 0 0 221.98 58.96V56.74C222.48 51.2 220.48 47.26 235.3 40.74S272.36 27.34 276.88 16.74M297.06 20H319.6600000000001S321.32 25.4 317.2600000000001 34.64C314.06 42.1 300.86 47.46 289.04 52.24A300 300 0 0 0 280.86 55.64C269.5600000000001 60.64 269.4600000000001 63.88 269.3200000000001 67.84Q269.3 68.74 269.2200000000001 69.64V71.58C273.62 75.58 277.24 80.96 279.6600000000001 87.2C279.6600000000001 87.2 279.7600000000001 87.52 279.7600000000001 87.64Q280.6 89.74 281.0800000000001 91.84C284.06 92.36 285.7000000000001 95.6 286.36 98.62A13.2 13.2 0 0 1 288.12 106.26C287.8 110.56 286.04 112.62 284.06 113.46V114.24A120 120 0 0 1 282.5200000000001 132.86A32 32 0 0 1 270.3200000000001 153.54A34.8 34.8 0 0 1 244.6200000000001 159.5400000000001C249.3400000000001 153.84 253.0200000000001 147.1000000000001 255.2000000000001 139.62C255.9600000000001 137.14 256.5 134.6600000000001 256.86 132.4200000000001C257.8200000000001 127.2800000000001 258.4400000000001 120.8600000000001 258.7200000000001 115.0800000000001A34.8 34.8 0 0 0 260.3200000000001 82.6A34 34 0 0 0 255.98 73.54A28 28 0 0 0 252.4600000000001 69.36Q250.0600000000001 63.22 246.6200000000001 57.6600000000001L250.6600000000001 56.0000000000001C256.36 53.66 263.4600000000001 50.7800000000001 268.6600000000001 48.2600000000001C273.1800000000001 46.0600000000001 278.1600000000001 43.3600000000001 282.6200000000001 39.98C286.88 36.7600000000001 292.1400000000001 31.8200000000001 295.2200000000001 24.7Q296.2600000000001 22.3000000000001 297.04 20.0000000000001M242.8000000000001 37.6000000000001L244.6000000000001 36.8600000000001zM220 300C231 300 240 291 240 280C240 274.4 237.8 269.4 234.2 266L160 191.8V164.32A56 56 0 0 1 143.34 132.54A140 140 0 0 1 141.5 115.34A32.8 32.8 0 0 1 136.5 100.56L136.48 100.48C136.08 96.14 136.6 92.22 137.4 89.02L114.2 65.8A20.06 20.06 0 0 0 80 80V191.8L5.8 265.8A20.06 20.06 0 0 0 20 300z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
SharedFilter.displayName = `Blueprint6.Icon.SharedFilter`;
export default SharedFilter;
