react-font-awesome-5
Version:
A React component library for Font Awesome 5
128 lines (98 loc) • 4.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Mask = exports.Icon = exports.Layer = exports.config = undefined;
var _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; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactFontawesome = require('@fortawesome/react-fontawesome');
var _reactFontawesome2 = _interopRequireDefault(_reactFontawesome);
var _fontawesomeFreeSolid = require('@fortawesome/fontawesome-free-solid');
var _fontawesomeFreeSolid2 = _interopRequireDefault(_fontawesomeFreeSolid);
var _fontawesomeFreeRegular = require('@fortawesome/fontawesome-free-regular');
var _fontawesomeFreeRegular2 = _interopRequireDefault(_fontawesomeFreeRegular);
var _fontawesomeFreeBrands = require('@fortawesome/fontawesome-free-brands');
var _fontawesomeFreeBrands2 = _interopRequireDefault(_fontawesomeFreeBrands);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _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; }
var iconsRaw = { solid: _fontawesomeFreeSolid2.default, regular: _fontawesomeFreeRegular2.default, brands: _fontawesomeFreeBrands2.default };
var _config = {
defaultStyle: "solid"
};
var config = exports.config = function config(name, value) {
_config[name] = value;
};
var Icon = {};
var Mask = {};
['solid', 'regular', 'brands'].forEach(function (style) {
Object.keys(iconsRaw[style]).forEach(function (icon) {
var data = iconsRaw[style][icon];
var mask = [data.prefix, data.iconName];
var iconName = icon.substr(2);
var component = function component(_ref) {
var inverse = _ref.inverse,
stack = _ref.stack,
props = _objectWithoutProperties(_ref, ['inverse', 'stack']);
props.icon = data;
var classes = [];
var option = function option(flag, name) {
if (flag) classes.push(name);
};
option(inverse, 'fa-inverse');
//Generate and return the icon
return stack ? _react2.default.createElement(
Layer,
props.stack,
_react2.default.createElement(_reactFontawesome2.default, _extends({}, props, { className: classes.join(' '), transform: 'shrink-2 left-4 up-4', style: { opacity: 0.2 } })),
_react2.default.createElement(_reactFontawesome2.default, _extends({}, props, { className: classes.join(' '), transform: 'shrink-2', style: { opacity: 0.5 } })),
_react2.default.createElement(_reactFontawesome2.default, _extends({}, props, { className: classes.join(' '), transform: 'shrink-2 right-4 down-4' }))
) : _react2.default.createElement(_reactFontawesome2.default, _extends({}, props, { className: classes.join(' ') }));
};
if (typeof Icon[iconName] === 'undefined') {
Icon[iconName] = component;
Mask[iconName] = mask;
}
Icon[iconName][style] = component;
Mask[iconName][style] = mask;
});
});
var Layer = function Layer(_ref2) {
var children = _ref2.children,
className = _ref2.className,
size = _ref2.size,
props = _objectWithoutProperties(_ref2, ['children', 'className', 'size']);
return _react2.default.createElement(
'span',
{ className: size ? 'fa-' + size : "" },
_react2.default.createElement(
'span',
_extends({ className: (className || "") + " fa-layers fa-fw" }, props),
children
)
);
};
Layer.Text = function (_ref3) {
var children = _ref3.children,
className = _ref3.className,
transform = _ref3.transform,
props = _objectWithoutProperties(_ref3, ['children', 'className', 'transform']);
return _react2.default.createElement(
'span',
_extends({ className: (className || "") + " fa-layers-text" }, props, { 'data-fa-transform': transform || "" }),
children
);
};
Layer.Counter = function (_ref4) {
var children = _ref4.children,
className = _ref4.className,
props = _objectWithoutProperties(_ref4, ['children', 'className']);
return _react2.default.createElement(
'span',
_extends({ className: (className || "") + " fa-layers-counter" }, props),
children
);
};
exports.Layer = Layer;
exports.Icon = Icon;
exports.Mask = Mask;