import * as AntdIcons from '@ant-design/icons';

const antdIcons = Object.keys(AntdIcons).filter((icon) => {
  return !['default', 'getTwoToneColor', 'setTwoToneColor', 'createFromIconfontCN', 'IconProvider'].includes(icon) && !icon.includes('TwoTone');
})

const useIcons = [
  'icon-guanzhu',
  'icon-hulve',
  'icon-fuwuqi',
  'icon-daishenhe',
  'icon-zhongduan',
  'icon-hexinzichan',
  'icon-yishenhe',
  'icon-wangluoshebei',
  'icon-quanbuzichan',
  'icon-gongjizhe',
  'icon-shouhaizhe',
  'icon-zhongwei',
  'icon-gaowei',
  'icon-diwei',
  'icon-daichuzhishijianzongshu',
  'icon-wakuang',
  'icon-shijianzongshu',
  'icon-shixianzhujigeshu',
  'icon-APTshijian',
  'icon-yichangliuliang',
  'icon-jiangshizhuji',
  'icon-weixieqingbao',
  'icon-eyichengxu',
  'icon-siyoudizhi',
  'icon-WEBweihu',
  'icon-zhenchagenzong',
  'icon-wuqigoujian',
  'icon-zaihetoudi',
  'icon-loudongliyong',
  'icon-anzhuangzhiru',
  'icon-minglingyukongzhi',
  'icon-mubiaodacheng',
  'icon-henjiqingli',
  'icon-wenjianjia',
]

const direction = [
  'StepBackward',
  'StepForward',
  'FastBackward',
  'FastForward',
  'Shrink',
  'ArrowsAlt',
  'Down',
  'Up',
  'Left',
  'Right',
  'CaretUp',
  'CaretDown',
  'CaretLeft',
  'CaretRight',
  'UpCircle',
  'DownCircle',
  'LeftCircle',
  'RightCircle',
  'DoubleRight',
  'DoubleLeft',
  'VerticalLeft',
  'VerticalRight',
  'VerticalAlignTop',
  'VerticalAlignMiddle',
  'VerticalAlignBottom',
  'Forward',
  'Backward',
  'Rollback',
  'Enter',
  'Retweet',
  'Swap',
  'SwapLeft',
  'SwapRight',
  'ArrowUp',
  'ArrowDown',
  'ArrowLeft',
  'ArrowRight',
  'PlayCircle',
  'UpSquare',
  'DownSquare',
  'LeftSquare',
  'RightSquare',
  'Login',
  'Logout',
  'MenuFold',
  'MenuUnfold',
  'BorderBottom',
  'BorderHorizontal',
  'BorderInner',
  'BorderOuter',
  'BorderLeft',
  'BorderRight',
  'BorderTop',
  'BorderVerticle',
  'PicCenter',
  'PicLeft',
  'PicRight',
  'RadiusBottomleft',
  'RadiusBottomright',
  'RadiusUpleft',
  'RadiusUpright',
  'Fullscreen',
  'FullscreenExit',
];

const suggestion = [
  'Question',
  'QuestionCircle',
  'Plus',
  'PlusCircle',
  'Pause',
  'PauseCircle',
  'Minus',
  'MinusCircle',
  'PlusSquare',
  'MinusSquare',
  'Article',
  'InfoCircle',
  'Exclamation',
  'ExclamationCircle',
  'Close',
  'CloseCircle',
  'CloseSquare',
  'Check',
  'CheckCircle',
  'CheckSquare',
  'ClockCircle',
  'Warning',
  'IssuesClose',
  'Stop',
];

const editor = [
  'Edit',
  'Form',
  'Copy',
  'Scissor',
  'Delete',
  'Snippets',
  'Diff',
  'Highlight',
  'AlignCenter',
  'AlignLeft',
  'AlignRight',
  'BgColors',
  'Bold',
  'Italic',
  'Underline',
  'Strikethrough',
  'Redo',
  'Undo',
  'ZoomIn',
  'ZoomOut',
  'FontColors',
  'FontSize',
  'LineHeight',
  'Dash',
  'SmallDash',
  'SortAscending',
  'SortDescending',
  'Drag',
  'OrderedList',
  'UnorderedList',
  'RadiusSetting',
  'ColumnWidth',
  'ColumnHeight',
];

const data = [
  'AreaChart',
  'PieChart',
  'BarChart',
  'DotChart',
  'LineChart',
  'RadarChart',
  'HeatMap',
  'Fall',
  'Rise',
  'Stock',
  'BoxPlot',
  'Fund',
  'Sliders',
];

const logo = [
  'Android',
  'Apple',
  'Windows',
  'Ie',
  'Chrome',
  'Github',
  'Aliwangwang',
  'Dingding',
  'WeiboSquare',
  'WeiboCircle',
  'TaobaoCircle',
  'Html5',
  'Weibo',
  'Twitter',
  'Wechat',
  'WhatsApp',
  'Youtube',
  'AlipayCircle',
  'Taobao',
  'Dingtalk',
  'Skype',
  'Qq',
  'MediumWorkmark',
  'Gitlab',
  'Medium',
  'Linkedin',
  'GooglePlus',
  'Dropbox',
  'Facebook',
  'Codepen',
  'CodeSandbox',
  'CodeSandboxCircle',
  'Amazon',
  'Google',
  'CodepenCircle',
  'Alipay',
  'AntDesign',
  'AntCloud',
  'Aliyun',
  'Zhihu',
  'Slack',
  'SlackSquare',
  'Behance',
  'BehanceSquare',
  'Dribbble',
  'DribbbleSquare',
  'Instagram',
  'Yuque',
  'Alibaba',
  'Yahoo',
  'Reddit',
  'Sketch',
];

const other = [...direction, ...suggestion, ...editor,...data, ...logo, ...useIcons]

const allIcons = [...antdIcons, ...useIcons];
const directionIcons = allIcons.filter(icon => direction.includes(icon.replace(/(Outlined|Filled)$/, '')));
const suggestionIcons = allIcons.filter(icon => suggestion.includes(icon.replace(/(Outlined|Filled)$/, '')));
const editorIcons = allIcons.filter(icon => editor.includes(icon.replace(/(Outlined|Filled)$/, '')));
const dataIcons = allIcons.filter(icon => data.includes(icon.replace(/(Outlined|Filled)$/, '')));
const logoIcons = allIcons.filter(icon => logo.includes(icon.replace(/(Outlined|Filled)$/, '')));
const otherIcons = allIcons.filter(icon => !other.includes(icon.replace(/(Outlined|Filled)$/, '')));

export const categories = {
  allIcons,
  useIcons,
  directionIcons,
  suggestionIcons,
  editorIcons,
  dataIcons,
  logoIcons,
  otherIcons,
};

// 阿里iconfont链接，也可以按需要指定
export const oauthScriptUrl = [
  '//at.alicdn.com/t/c/font_4413039_6ow46w95lhw.js'
];
export type Categories = typeof categories;
export type CategoriesKeys = keyof Categories;
