/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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 React from "react";
import { Icon } from "antd";

const ZkSvg = () => (
  <svg className="icon" viewBox="0 0 1024 1024" width="1em" height="1em">
    <path
      d="M632.618667 897.066667a15.189333 15.189333 0 0 1 15.232 15.232v34.474666a15.189333 15.189333 0 0 1-15.232 15.232h-68.906667a15.189333 15.189333 0 0 1-15.232-15.232v-34.474666a15.189333 15.189333 0 0 1 15.232-15.232h68.906667z m-172.330667 0a15.189333 15.189333 0 0 1 15.232 15.232v34.474666a15.189333 15.189333 0 0 1-15.232 15.232H391.381333a15.189333 15.189333 0 0 1-15.232-15.232v-34.474666a15.189333 15.189333 0 0 1 15.232-15.232h68.906667z m103.424-585.813334a15.189333 15.189333 0 0 1 15.232 15.189334v184.448l137.472-126.72a15.274667 15.274667 0 0 1 10.325333-4.053334h50.858667a15.018667 15.018667 0 0 1 14.208 9.685334 15.061333 15.061333 0 0 1-3.84 16.725333l-130.005333 119.765333 138.965333 169.557334a15.189333 15.189333 0 0 1-11.776 24.917333h-44.544a15.189333 15.189333 0 0 1-11.776-5.546667l-118.656-144.853333-31.232 28.8v106.368a15.189333 15.189333 0 0 1-15.232 15.232h-34.474667a15.189333 15.189333 0 0 1-15.232-15.232V326.442667a15.189333 15.189333 0 0 1 15.232-15.232h34.474667zM425.813333 380.16a15.189333 15.189333 0 0 1 15.232 15.232v63.701333a15.36 15.36 0 0 1-3.712 9.941334l-160.554666 186.794666h149.034666a15.189333 15.189333 0 0 1 15.232 15.232v34.474667a15.189333 15.189333 0 0 1-15.232 15.232H223.402667a15.189333 15.189333 0 0 1-15.232-15.232v-63.701333c0-3.669333 1.28-7.168 3.669333-9.941334l160.554667-186.837333H223.402667a15.189333 15.189333 0 0 1-15.232-15.189333v-34.474667a15.189333 15.189333 0 0 1 15.232-15.232H425.813333z"
      fill="currentColor"
    />
    <path
      d="M942.762667 69.973333a15.189333 15.189333 0 0 1 15.232 15.274667V946.773333a15.189333 15.189333 0 0 1-15.232 15.232H736a15.189333 15.189333 0 0 1-15.232-15.232v-34.474666a15.189333 15.189333 0 0 1 15.232-15.232h157.056V134.912H130.986667v762.154667H288a15.189333 15.189333 0 0 1 15.232 15.232v34.474666a15.189333 15.189333 0 0 1-15.232 15.232H81.237333a15.189333 15.189333 0 0 1-15.232-15.232V85.248a15.189333 15.189333 0 0 1 15.232-15.232h861.525334z"
      fill="currentColor"
    />
  </svg>
);

const LocalSvg = () => (
  <svg className="icon" viewBox="0 0 1024 1024" width="1em" height="1em">
    <path
      d="M780.093433 65.267493 243.991502 65.267493c-98.774631 0-178.700985 79.969333-178.700985 178.615027l0 536.102954c0 98.730629 79.925331 178.744987 178.700985 178.744987l536.102954 0c98.600669 0 178.615027-80.013335 178.615027-178.744987L958.709483 243.88252C958.70846 145.236825 878.695125 65.267493 780.093433 65.267493zM869.401458 735.353974c0 73.994248-59.989279 134.069485-134.069485 134.069485L288.667004 869.423459c-73.994248 0-134.115534-60.075237-134.115534-134.069485L154.55147 288.643979c0-74.080206 60.121286-134.069485 134.115534-134.069485l446.664969 0c74.080206 0 134.069485 59.989279 134.069485 134.069485L869.401458 735.353974zM512.041444 243.88252l268.051989 312.814472-89.436962 0 0 223.288482-89.307002 0L601.349469 601.372493 422.603459 601.372493l0 178.61298-89.307002 0L333.296457 556.696991l-89.304955 0L512.041444 243.88252z"
      fill="currentColor"
    />
  </svg>
);

const NacosSvg = () => (
  <svg className="icon" viewBox="0 0 1024 1024" width="1em" height="1em">
    <path
      d="M994.742857 307.2l-219.428571-146.285714c-7.314286-7.314286-21.942857-14.628571-29.257143-14.628572H343.771429c-43.885714 0-80.457143 43.885714-80.457143 87.771429v702.171428c0 43.885714 36.571429 87.771429 80.457143 87.771429h621.714285c29.257143 0 58.514286-29.257143 58.514286-58.514286V358.4c0-21.942857-7.314286-36.571429-29.257143-51.2z m-87.771428 599.771429H380.342857V263.314286h343.771429l182.857143 124.342857v519.314286z"
      fill="currentColor"
    />
    <path
      d="M117.028571 117.028571h343.771429L512 146.285714 577.828571 51.2 512 7.314286h-7.314286C497.371429 0 490.057143 0 482.742857 0H73.142857C29.257143 7.314286 0 43.885714 0 87.771429v709.485714c7.314286 43.885714 36.571429 80.457143 80.457143 80.457143h117.028571v-117.028572H117.028571V117.028571zM709.485714 636.342857l-146.285714-219.428571H468.114286v409.6h102.4v-219.428572l153.6 219.428572h87.771428V416.914286H709.485714z"
      fill="currentColor"
    />
  </svg>
);

const ConsulSvg = () => (
  <svg className="icon" viewBox="0 0 1024 1024" width="1em" height="1em">
    <path
      d="M600.534613 513.194667a106.922667 106.922667 0 0 0-106.922666-106.922667 106.922667 106.922667 0 0 0-106.88 106.922667 106.922667 106.922667 0 0 0 106.922666 106.922666 106.922667 106.922667 0 0 0 106.88-106.922666z m150.698667 0a49.322667 49.322667 0 0 0-49.322667-49.28 49.322667 49.322667 0 0 0-49.322666 49.322666 49.322667 49.322667 0 0 0 49.322666 49.28 49.322667 49.322667 0 0 0 49.322667-49.28zM955.734613 748.373333a49.408 49.322667 0 0 0-49.408-49.322666 49.408 49.322667 0 0 0-49.408 49.322666 49.408 49.322667 0 0 0 49.408 49.322667A49.408 49.322667 0 0 0 955.734613 748.373333z m-70.442666-155.776a49.365333 49.194667 90 0 0-49.194667-49.365333 49.365333 49.194667 90 0 0-49.237333 49.365333 49.365333 49.194667 90 0 0 49.237333 49.365334 49.365333 49.194667 90 0 0 49.194667-49.365334z m138.709333 2.645334a49.237333 49.237333 0 0 0-49.237333-49.237334 49.237333 49.237333 0 0 0-49.237334 49.237334 49.237333 49.237333 0 0 0 49.237334 49.237333 49.237333 49.237333 0 0 0 49.237333-49.237333z m-139.904-165.674667a49.322667 49.194667 0 0 0-49.322667-49.237333 49.322667 49.194667 0 0 0-49.322666 49.237333 49.322667 49.194667 0 0 0 49.322666 49.194667 49.322667 49.194667 0 0 0 49.322667-49.194667z m139.946667 1.92a49.536 49.365333 0 0 0-49.536-49.365333 49.536 49.365333 0 0 0-49.578667 49.365333 49.536 49.365333 0 0 0 49.578667 49.365333A49.536 49.365333 0 0 0 1024.00128 431.445333zM954.62528 276.48a49.493333 49.365333 90 0 0-49.365333-49.493333 49.493333 49.365333 90 0 0-49.408 49.493333 49.493333 49.365333 90 0 0 49.365333 49.493333 49.493333 49.365333 90 0 0 49.408-49.493333zM495.659947 16.341333c-132.693333 0-257.237333 51.498667-350.72 144.981334A493.994667 493.994667 0 0 0 0.00128 512c0 132.650667 51.498667 257.194667 144.938667 350.72a494.08 494.08 0 0 0 350.72 144.938667c109.994667 0 214.101333-35.2 301.013333-101.802667l-60.586667-79.018667a391.978667 391.978667 0 0 1-240.426666 81.237334 395.093333 395.093333 0 0 1-280.405334-115.84A393.813333 393.813333 0 0 1 99.58528 512c0-105.728 41.130667-205.312 115.84-280.32a393.557333 393.557333 0 0 1 280.234667-115.754667c87.808 0 170.965333 28.117333 240.512 81.28l60.458666-79.104A491.434667 491.434667 0 0 0 495.659947 16.341333z"
      fill="currentColor"
    />
  </svg>
);

const EtcdSvg = () => (
  <svg className="icon" viewBox="0 0 1024 1024" width="1em" height="1em">
    <path
      d="M474.112 464a58.432 58.432 0 1 1-58.464-58.4 58.432 58.432 0 0 1 58.464 58.4zM549.632 464A58.432 58.432 0 1 0 608 405.632a58.432 58.432 0 0 0-58.368 58.368z"
      fill="currentColor"
    />
    <path
      d="M947.2 527.424a152.8 152.8 0 0 1-12.8 0.512 168.256 168.256 0 0 1-74.144-17.312 686.176 686.176 0 0 0 9.984-131.2 681.344 681.344 0 0 0-84.896-100.608 168.768 168.768 0 0 1 59.84-64l10.976-6.816-8.544-9.6a446.88 446.88 0 0 0-156.16-113.92l-11.872-5.184-3.008 12.544a168.16 168.16 0 0 1-42.336 76.8A678.4 678.4 0 0 0 512 118.208a679.04 679.04 0 0 0-122.144 50.304 168.128 168.128 0 0 1-42.208-76.8l-3.04-12.544-11.84 5.152A451.424 451.424 0 0 0 176.48 198.4l-8.576 9.6 10.944 6.72A168.448 168.448 0 0 1 238.56 278.4a684.288 684.288 0 0 0-84.736 100.224 686.624 686.624 0 0 0 9.6 132.096 167.904 167.904 0 0 1-73.6 17.12c-4.544 0-8.8-0.16-12.8-0.512L64 526.432l1.216 12.8A444.416 444.416 0 0 0 125.248 723.2l6.4 11.104 9.824-8.352a168.128 168.128 0 0 1 79.584-37.28 682.016 682.016 0 0 0 68.096 110.944 689.088 689.088 0 0 0 129.088 31.712 167.776 167.776 0 0 1-10.752 88.096l-4.896 11.936 12.608 2.784a451.392 451.392 0 0 0 96.8 10.656l96.672-10.72 12.608-2.784-4.928-11.968a168.224 168.224 0 0 1-10.72-88.128 688.16 688.16 0 0 0 128.576-31.648 682.88 682.88 0 0 0 68.192-111.04 168.896 168.896 0 0 1 80 37.312l9.824 8.32 6.4-11.104a442.784 442.784 0 0 0 60-183.808l1.216-12.8z m-297.152 157.152a521.12 521.12 0 0 1-276.832 0 536.384 536.384 0 0 1-59.264-124.8 530.08 530.08 0 0 1-24.96-136.96 527.488 527.488 0 0 1 100.32-95.52A534.176 534.176 0 0 1 512 260.672a536.352 536.352 0 0 1 122.144 66.4 530.56 530.56 0 0 1 100.768 96 531.2 531.2 0 0 1-25.216 136.352 534.688 534.688 0 0 1-59.488 125.12z"
      fill="currentColor"
    />
  </svg>
);

const EurekaSvg = () => (
  <svg className="icon" viewBox="0 0 1024 1024" width="1em" height="1em">
    <path
      d="M985.417388 0H38.457749C17.231069 0 0 17.231069 0 38.457749v947.084502c0 21.22668 17.231069 38.457749 38.457749 38.457749h947.084502c21.22668 0 38.332886-17.231069 38.457749-38.332886V38.457749C1023.875137 17.231069 1006.644068 0 985.417388 0zM744.182417 820.723326H279.69272V203.151811h449.506158v92.897939H390.32118V449.506158h311.158152v92.897939H390.32118v185.42129H744.182417v92.897939z"
      fill="currentColor"
    />
  </svg>
);

export const ZkIcon = (props) => <Icon component={ZkSvg} {...props} />;
export const LocalIcon = (props) => <Icon component={LocalSvg} {...props} />;
export const NacosIcon = (props) => <Icon component={NacosSvg} {...props} />;
export const ConsulIcon = (props) => <Icon component={ConsulSvg} {...props} />;
export const EtcdIcon = (props) => <Icon component={EtcdSvg} {...props} />;
export const EurekaIcon = (props) => <Icon component={EurekaSvg} {...props} />;
