/*
 * 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 ArrayDate: 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="array-date" ref={ref}  {...props}>
            <path
                d={isLarge ? "M380 400C390.2567160000001 400 398.710144 392.2791962 399.865446 382.3324225L400 380L400 20C400 9.743284 392.279196 1.289856 382.332422 0.134554L380 0L300 0C288.9543060000001 0 280 8.954306 280 20C280 30.256716 287.720804 38.710144 297.667578 39.865446L300 40L360 40L360 360L300 360C289.743284 360 281.289856 367.7208038 280.1345540000001 377.6675774000001L280 380C280 390.25671678 287.720804 398.7101432140001 297.667578 399.8654453736L300 400L380 400zM100 400C111.045695 400 120 391.045695 120 380C120 369.7432832 112.2791962 361.2898568 102.3324226 360.1345546L100 360L40 360L40 40L100 40C110.2567168 40 118.7101432 32.279196 119.8654454 22.332422L120 20C120 9.743284 112.2791962 1.289856 102.3324226 0.134554L100 0L20 0C9.74328322 0 1.289856786 7.720804 0.1345546266 17.667578L0 20L0 380C0 390.25671678 7.7208038 398.7101432140001 17.6675775 399.8654453734L20 400L100 400zM150 300C155.5228474 300 160 295.5228474 160 290L160 280L240 280L240 290C240 295.5228474 244.477152 300 250 300L270 300C275.522848 300 280 295.5228474 280 290L280 280L300 280C310.256716 280 318.710144 272.2791962 319.865446 262.3324226L320 260L320 120C320 109.743284 312.279196 101.289856 302.332422 100.134554L300 100L100 100C89.7432832 100 81.2898568 107.720804 80.1345546 117.667578L80 120L80 260C80 270.2567168 87.7208038 278.7101432 97.6675774 279.8654454L100 280L120 280L120 290C120 295.5228474 124.4771526 300 130 300L150 300zM300 220L100 220L100 120L300 120L300 220z" : "M300 320C310.256716 320 318.710144 312.2791962 319.865446 302.3324225L320 300L320 20C320 9.743284 312.279196 1.289856 302.332422 0.134554L300 0L240 0C228.954306 0 220 8.954306 220 20C220 30.256716 227.720804 38.710144 237.667578 39.865446L240 40L280 40L280 280L240 280C229.743284 280 221.289856 287.7208038 220.134554 297.6675774000001L220 300C220 310.25671678 227.720804 318.7101432140001 237.667578 319.8654453734L240 320L300 320zM80 320C91.045695 320 100 311.045695 100 300C100 289.7432832 92.2791962 281.2898568 82.3324226 280.1345546L80 280L40 280L40 40L80 40C90.2567168 40 98.7101432 32.279196 99.8654454 22.332422L100 20C100 9.743284 92.2791962 1.289856 82.3324226 0.134554L80 0L20 0C9.74328322 0 1.289856786 7.720804 0.1345546266 17.667578L0 20L0 300C0 310.25671678 7.7208038 318.7101432140001 17.6675775 319.8654453734L20 320L80 320zM210 240C215.522848 240 220 235.5228474 220 230L220 220C230.256716 220 238.710144 212.2791962 239.865446 202.3324226L240 200L240 100C240 89.743284 232.279196 81.289856 222.332422 80.134554L220 80L100 80C89.7432832 80 81.2898568 87.720804 80.1345546 97.667578L80 100L80 200C80 210.2567168 87.7208038 218.7101432 97.6675774 219.8654454L100 220L100 230C100 235.5228474 104.4771526 240 110 240C115.5228474 240 120 235.5228474 120 230L120 220L200 220L200 230C200 235.5228474 204.477152 240 210 240zM220 180L100 180L100 100L220 100L220 180z"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
ArrayDate.defaultProps = {
    size: IconSize.STANDARD,
};
ArrayDate.displayName = `Blueprint5.Icon.ArrayDate`;
export default ArrayDate;
