UNPKG

3.54 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
9var _templateObject = _taggedTemplateLiteral(['\n display: inline-block;\n position: relative;\n user-select: none;\n color: ', ';\n width: ', ';\n height: ', ';\n'], ['\n display: inline-block;\n position: relative;\n user-select: none;\n color: ', ';\n width: ', ';\n height: ', ';\n']),
10 _templateObject2 = _taggedTemplateLiteral(['\n display: block;\n height: 100%;\n visibility: hidden;\n'], ['\n display: block;\n height: 100%;\n visibility: hidden;\n']),
11 _templateObject3 = _taggedTemplateLiteral(['\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n fill: currentColor;\n'], ['\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n fill: currentColor;\n']);
12
13var _styledComponents = require('styled-components');
14
15var _styledComponents2 = _interopRequireDefault(_styledComponents);
16
17var _react = require('react');
18
19var _react2 = _interopRequireDefault(_react);
20
21var _isInteger = require('lodash/isInteger');
22
23var _isInteger2 = _interopRequireDefault(_isInteger);
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
28
29function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
30
31var Container = _styledComponents2.default.div(_templateObject, function (props) {
32 return props.color || 'currentColor';
33}, function (props) {
34 return props.width ? (0, _isInteger2.default)(props.width) ? props.width + 'px' : props.width : 'auto';
35}, function (props) {
36 return props.height ? (0, _isInteger2.default)(props.height) ? props.height + 'px' : props.height : 'auto';
37});
38
39var Canvas = _styledComponents2.default.canvas(_templateObject2);
40
41var Icon = _styledComponents2.default.svg(_templateObject3);
42
43var IconBase = function IconBase(_ref) {
44 var children = _ref.children,
45 title = _ref.title,
46 viewBox = _ref.viewBox,
47 width = _ref.width,
48 height = _ref.height,
49 color = _ref.color,
50 props = _objectWithoutProperties(_ref, ['children', 'title', 'viewBox', 'width', 'height', 'color']);
51
52 var fragments = viewBox.split(' ');
53
54 return _react2.default.createElement(
55 Container,
56 _extends({
57 className: 'icon',
58 role: 'img',
59 'aria-label': title,
60 color: color,
61 width: width,
62 height: height
63 }, props),
64 _react2.default.createElement(Canvas, { width: fragments[2], height: fragments[3] }),
65 _react2.default.createElement(
66 Icon,
67 { viewBox: viewBox },
68 children
69 )
70 );
71};
72
73IconBase.propTypes = {
74 color: _react.PropTypes.string,
75 title: _react.PropTypes.string,
76 width: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.number]),
77 height: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.number]),
78 children: _react.PropTypes.node.isRequired,
79 viewBox: _react.PropTypes.string.isRequired
80};
81
82exports.default = IconBase;
\No newline at end of file