UNPKG

@nbamford123/arwes

Version:

Futuristic Sci-Fi and Cyberpunk Graphical User Interface Framework for Web Apps

176 lines (150 loc) 5.41 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; exports.default = Logo; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _d3Shape = require('d3-shape'); var _Animation = require('../Animation'); var _Animation2 = _interopRequireDefault(_Animation); 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 radians = function radians(degress) { return degress * Math.PI / 180; }; var createArc = (0, _d3Shape.arc)(); var Aux = function Aux(_ref) { var children = _ref.children; return children; }; var createArcLight = function createArcLight(details, classes) { for (var _len = arguments.length, props = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { props[_key - 2] = arguments[_key]; } return _react2.default.createElement( Aux, null, _react2.default.createElement('path', _extends({}, props, { className: (0, _classnames2.default)(classes.light, classes.elementFilter, props.className), d: createArc(details) })), _react2.default.createElement('path', _extends({}, props, { className: (0, _classnames2.default)(classes.light, props.className), d: createArc(details) })) ); }; function Logo(props) { var theme = props.theme, classes = props.classes, Animation = props.Animation, animation = props.animation, animate = props.animate, show = props.show, size = props.size, className = props.className, etc = _objectWithoutProperties(props, ['theme', 'classes', 'Animation', 'animation', 'animate', 'show', 'size', 'className']); var cls = (0, _classnames2.default)(classes.root, className); return _react2.default.createElement( Animation, _extends({ animate: animate, show: show, timeout: theme.animTime }, animation), function (anim) { return _react2.default.createElement( 'svg', _extends({ className: (0, _classnames2.default)(cls, classes[anim.status]), width: size, height: size, viewBox: '0 0 1000 1000', version: '1.1' }, etc), _react2.default.createElement( 'filter', { id: 'arwes-logo-filter-blur' }, _react2.default.createElement('feGaussianBlur', { 'in': 'SourceGraphic', stdDeviation: '20' }) ), _react2.default.createElement( 'g', { style: { transform: 'translate(500px,500px)' } }, _react2.default.createElement('circle', { className: (0, _classnames2.default)(classes.light, classes.elementFilter), cx: '0', cy: '0', r: '85' }), _react2.default.createElement('circle', { className: classes.light, cx: '0', cy: '0', r: '85' }), _react2.default.createElement('path', { className: classes.center, d: createArc({ innerRadius: 200, outerRadius: 275, startAngle: 0, endAngle: radians(360) }) }), _react2.default.createElement('path', { className: classes.outer, d: createArc({ innerRadius: 375, outerRadius: 475, startAngle: 0, endAngle: radians(360) }) }), createArcLight({ innerRadius: 375, outerRadius: 475, startAngle: radians(0 + 15), endAngle: radians(90 + 15) }, classes), createArcLight({ innerRadius: 375, outerRadius: 475, startAngle: radians(90 + 30 + 15), endAngle: radians(90 * 2 + 30 + 15) }, classes), createArcLight({ innerRadius: 375, outerRadius: 475, startAngle: radians(90 * 2 + 30 * 2 + 15), endAngle: radians(90 * 3 + 30 * 2 + 15) }, classes) ) ); } ); } Logo.propTypes = { Animation: _propTypes2.default.any.isRequired, theme: _propTypes2.default.any.isRequired, classes: _propTypes2.default.any.isRequired, animate: _propTypes2.default.bool, show: _propTypes2.default.bool, animation: _propTypes2.default.object, layer: _propTypes2.default.oneOf(['primary', 'secondary', 'header', 'control', 'success', 'alert', 'disabled']), /** * Since it is a square, the width and height of the container. */ size: _propTypes2.default.number }; Logo.defaultProps = { Animation: _Animation2.default, show: true, layer: 'primary', size: 100 };