UNPKG

@ant-design/compatible

Version:

Ant Design v3 to v4 compatible package

81 lines (78 loc) 2.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.alias = alias; exports.getThemeFromTypeName = getThemeFromTypeName; exports.removeTypeTheme = removeTypeTheme; exports.svgBaseProps = void 0; exports.withThemeSuffix = withThemeSuffix; var _lodash = _interopRequireDefault(require("lodash.camelcase")); var _lodash2 = _interopRequireDefault(require("lodash.upperfirst")); var _warning = _interopRequireDefault(require("../_util/warning")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // These props make sure that the SVG behaviours like general text. // Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4 var svgBaseProps = exports.svgBaseProps = { width: '1em', height: '1em', fill: 'currentColor', 'aria-hidden': true, focusable: 'false' }; // moved from https://github.com/ant-design/ant-design/blob/master/components/icon/utils.ts var fillTester = /-fill$/; var outlineTester = /-o$/; var twoToneTester = /-twotone$/; function getThemeFromTypeName(type) { var result = null; if (fillTester.test(type)) { result = 'filled'; } else if (outlineTester.test(type)) { result = 'outlined'; } else if (twoToneTester.test(type)) { result = 'twoTone'; } return result; } function removeTypeTheme(type) { return type.replace(fillTester, '').replace(outlineTester, '').replace(twoToneTester, ''); } var themeMap = { filled: 'filled', outlined: 'outlined', // default theme twoTone: 'twoTone' }; function withThemeSuffix(type, theme) { var result = (0, _lodash2.default)((0, _lodash.default)(type)); var realTheme = (0, _lodash2.default)(themeMap[theme]); if (theme !== 'outlined' && !realTheme) { (0, _warning.default)(false, 'Icon', "This icon '".concat(type, "' has unknown theme '").concat(theme, "'")); } return result + realTheme; } // For alias or compatibility function alias(type) { var newType = type; switch (type) { case 'cross': newType = 'close'; break; // https://github.com/ant-design/ant-design/issues/13007 case 'interation': newType = 'interaction'; break; // https://github.com/ant-design/ant-design/issues/16810 case 'canlendar': newType = 'calendar'; break; // https://github.com/ant-design/ant-design/issues/17448 case 'colum-height': newType = 'column-height'; break; default: } (0, _warning.default)(newType === type, 'Icon', "Icon '".concat(type, "' was a typo and is now deprecated, please use '").concat(newType, "' instead.")); return newType; }