UNPKG

zfd

Version:

An enterprise-class UI design language and React-based implementation

77 lines (60 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getThemeFromTypeName = getThemeFromTypeName; exports.removeTypeTheme = removeTypeTheme; exports.withThemeSuffix = withThemeSuffix; exports.alias = alias; exports.svgBaseProps = void 0; var _warning = _interopRequireDefault(require("../_util/warning")); var _svgBaseProps; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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; } // These props make sure that the SVG behaviours like genral text. // Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4 var svgBaseProps = (_svgBaseProps = { width: '1em', height: '1em', fill: 'currentColor' }, _defineProperty(_svgBaseProps, 'aria-hidden', true), _defineProperty(_svgBaseProps, "focusable", 'false'), _svgBaseProps); exports.svgBaseProps = svgBaseProps; 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, ''); } function withThemeSuffix(type, theme) { var result = type; if (theme === 'filled') { result += '-fill'; } else if (theme === 'outlined') { result += '-o'; } else if (theme === 'twoTone') { result += '-twotone'; } else { (0, _warning["default"])(false, 'Icon', "This icon '".concat(type, "' has unknown theme '").concat(theme, "'")); } return result; } function alias(type) { switch (type) { case 'cross': return 'close'; default: } return type; } //# sourceMappingURL=utils.js.map