import type { App } from 'vue';
import {
  HeartOutlined,
  HistoryOutlined,
  FormOutlined,
  TableOutlined,
  AppstoreAddOutlined,
  UnorderedListOutlined,
  WarningOutlined,
  CheckCircleOutlined,
  HomeOutlined,
  LinkOutlined,
  UploadOutlined,
  UserOutlined,
  PlusSquareOutlined,
  MinusSquareOutlined,
  ExclamationCircleOutlined,
  //设计器使用
  FolderOpenOutlined,
  DownloadOutlined,
  EyeOutlined,
  InsertRowLeftOutlined,
  InsertRowRightOutlined,
  InsertRowAboveOutlined,
  InsertRowBelowOutlined,
  VerticalAlignMiddleOutlined,
  ZoomInOutlined,
  ZoomOutOutlined,
  ColumnWidthOutlined,
  UndoOutlined,
  RedoOutlined,
  SyncOutlined,
  //end
  PlusOutlined,
} from '@ant-design/icons-vue';

export const useIcons = (app: App) => {
  app.component(HeartOutlined.displayName, HeartOutlined);
  app.component(HistoryOutlined.displayName, HistoryOutlined);
  app.component(FormOutlined.displayName, FormOutlined);
  app.component(TableOutlined.displayName, TableOutlined);
  app.component(AppstoreAddOutlined.displayName, AppstoreAddOutlined);
  app.component(UnorderedListOutlined.displayName, UnorderedListOutlined);
  app.component(WarningOutlined.displayName, WarningOutlined);
  app.component(CheckCircleOutlined.displayName, CheckCircleOutlined);
  app.component(HomeOutlined.displayName, HomeOutlined);
  app.component(LinkOutlined.displayName, LinkOutlined);
  app.component(UploadOutlined.displayName, UploadOutlined);
  app.component(UserOutlined.displayName, UserOutlined);
  app.component(PlusSquareOutlined.displayName, PlusSquareOutlined);
  app.component(MinusSquareOutlined.displayName, MinusSquareOutlined);
  app.component(
    ExclamationCircleOutlined.displayName,
    ExclamationCircleOutlined,
  );

  //流程设计器使用
  app.component(FolderOpenOutlined.displayName, FolderOpenOutlined);
  app.component(DownloadOutlined.displayName, DownloadOutlined);
  app.component(EyeOutlined.displayName, EyeOutlined);

  app.component(InsertRowLeftOutlined.displayName, InsertRowLeftOutlined);
  app.component(InsertRowRightOutlined.displayName, InsertRowRightOutlined);
  app.component(InsertRowAboveOutlined.displayName, InsertRowAboveOutlined);
  app.component(InsertRowBelowOutlined.displayName, InsertRowBelowOutlined);
  app.component(
    VerticalAlignMiddleOutlined.displayName,
    VerticalAlignMiddleOutlined,
  );

  app.component(ZoomInOutlined.displayName, ZoomInOutlined);
  app.component(ZoomOutOutlined.displayName, ZoomOutOutlined);
  app.component(ColumnWidthOutlined.displayName, ColumnWidthOutlined);

  app.component(UndoOutlined.displayName, UndoOutlined);
  app.component(RedoOutlined.displayName, RedoOutlined);
  app.component(SyncOutlined.displayName, SyncOutlined);
  //end

  app.component(PlusOutlined.displayName, PlusOutlined);
};
