UNPKG

3.09 kBJavaScriptView Raw
1function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2
3function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
5function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
7import React from 'react';
8import * as allIcons from "@ant-design/icons/es/icons";
9import AntdIcon, { createFromIconfontCN, getTwoToneColor, setTwoToneColor } from '@ant-design/icons';
10import { withThemeSuffix, removeTypeTheme, getThemeFromTypeName, alias } from './utils';
11import warning from '../_util/warning';
12import upgradeMessage from '../_util/upgradeMessage';
13var iconsMap = allIcons;
14
15var LegacyTypeIcon = function LegacyTypeIcon(props) {
16 var type = props.type,
17 theme = props.theme;
18
19 if (theme) {
20 var themeInName = getThemeFromTypeName(type);
21 warning(!themeInName || theme === themeInName, 'Icon', "The icon name '".concat(type, "' already specify a theme '").concat(themeInName, "',") + " the 'theme' prop '".concat(theme, "' will be ignored."));
22 }
23
24 var computedType = withThemeSuffix(removeTypeTheme(alias(type)), theme || 'outlined');
25 var targetIconComponent = iconsMap[computedType];
26 warning(targetIconComponent, 'Icon', "The icon name '".concat(type, "'").concat(theme ? "with ".concat(theme) : '', " doesn't exist, please check it at https://ant.design/components/icon"));
27 return targetIconComponent ? /*#__PURE__*/React.createElement(targetIconComponent, props) : null;
28};
29
30var Icon = function Icon(props) {
31 var type = props.type,
32 component = props.component,
33 children = props.children;
34 upgradeMessage('Icon');
35 warning(Boolean(type || component || children), 'Icon', 'Should have `type` prop or `component` prop or `children`.');
36
37 if (component || children) {
38 return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread({}, props));
39 }
40
41 if (typeof type === 'string') {
42 return /*#__PURE__*/React.createElement(LegacyTypeIcon, _objectSpread(_objectSpread({}, props), {}, {
43 type: type
44 }));
45 }
46
47 return /*#__PURE__*/React.createElement(AntdIcon, null);
48};
49
50Icon.createFromIconfontCN = createFromIconfontCN;
51Icon.getTwoToneColor = getTwoToneColor;
52Icon.setTwoToneColor = setTwoToneColor;
53export default Icon;
\No newline at end of file