1 | function 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 |
|
3 | function _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 |
|
5 | function _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 |
|
7 | import React from 'react';
|
8 | import * as allIcons from "@ant-design/icons/es/icons";
|
9 | import AntdIcon, { createFromIconfontCN, getTwoToneColor, setTwoToneColor } from '@ant-design/icons';
|
10 | import { withThemeSuffix, removeTypeTheme, getThemeFromTypeName, alias } from './utils';
|
11 | import warning from '../_util/warning';
|
12 | import upgradeMessage from '../_util/upgradeMessage';
|
13 | var iconsMap = allIcons;
|
14 |
|
15 | var 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 ? React.createElement(targetIconComponent, props) : null;
|
28 | };
|
29 |
|
30 | var 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 React.createElement(AntdIcon, _objectSpread({}, props));
|
39 | }
|
40 |
|
41 | if (typeof type === 'string') {
|
42 | return React.createElement(LegacyTypeIcon, _objectSpread(_objectSpread({}, props), {}, {
|
43 | type: type
|
44 | }));
|
45 | }
|
46 |
|
47 | return React.createElement(AntdIcon, null);
|
48 | };
|
49 |
|
50 | Icon.createFromIconfontCN = createFromIconfontCN;
|
51 | Icon.getTwoToneColor = getTwoToneColor;
|
52 | Icon.setTwoToneColor = setTwoToneColor;
|
53 | export default Icon; |
\ | No newline at end of file |