'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }();

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _styles = require('../helpers/styles');

var _theme = require('../const/theme');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var Spinner = function Spinner(props) {
    return _jsx('div', {
        className: (0, _styles.css)(styles.spinner, styles.getPreset('size', props.size)),
        style: { borderColor: props.color || _theme.COLOR.PRIMARY }
    });
};

Spinner.defaultProps = {
    size: 'xs',
    color: _theme.COLOR.PRIMARY
};

var styles = _styles.StyleSheet.create({
    spinner: {
        animation: 'SpinnerAnimation 1250ms infinite linear',
        borderWidth: '4px',
        borderStyle: 'solid',
        borderRightColor: 'transparent !important',
        borderRadius: '50%',
        boxSizing: 'border-box',
        display: 'inline-block',
        position: 'relative',
        overflow: 'hidden',
        textIndent: '-9999px'
    },
    sizeXs: {
        width: '16px',
        height: '16px',
        borderWidth: '2px'
    },
    sizeS: {
        width: '24px',
        height: '24px',
        borderWidth: '3px'
    },
    sizeM: {
        width: '32px',
        height: '32px'
    },
    sizeL: {
        width: '64px',
        height: '64px',
        borderWidth: '6px'
    },
    sizeTiny: {
        width: '12px',
        height: '12px',
        borderWidth: '1px'
    },
    '@keyframes SpinnerAnimation': {
        '0%': {
            transform: 'rotate(0deg)'
        },
        '100%': {
            transform: 'rotate(360deg)'
        }
    }
});

exports.default = Spinner;