UNPKG

apeman-react-spinner

Version:
134 lines (106 loc) 9.9 kB
/** * apeman react package for spinner. * @class ApSpinner */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _asobj = require('asobj'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var SpinnerThemes = { a: ['fa', 'fa-spin', 'fa-spinner'], b: ['fa', 'fa-spin', 'fa-circle-o-notch'], c: ['fa', 'fa-spin', 'fa-refresh'], d: ['fa', 'fa-spin', 'fa-gear'], e: ['fa', 'fa-spin', 'fa-pulse'] }; var SpinnerSizes = ['medium', 'xx-small', 'x-small', 'small', 'large', 'x-large', 'xx-large', 'smaller', 'larger']; var DEFAULT_THEME = 'c'; var DEFAULT_SIZE = 'large'; /** @lends ApSpinner */ var ApSpinner = function (_Component) { _inherits(ApSpinner, _Component); function ApSpinner() { _classCallCheck(this, ApSpinner); return _possibleConstructorReturn(this, Object.getPrototypeOf(ApSpinner).apply(this, arguments)); } _createClass(ApSpinner, [{ key: 'render', value: function render() { var s = this; var props = s.props; var className = (0, _classnames2.default)('ap-spinner', props.className, { 'ap-spinner-cover': !!props.cover, 'ap-spinner-enabled': !!props.enabled }); return _react2.default.createElement( 'div', { className: className, style: Object.assign({}, props.style) }, _react2.default.createElement('span', { className: (0, _classnames2.default)('ap-spinner-icon', SpinnerThemes[props.theme]), style: { fontSize: props.size } }) ); } // -------------------- // Lifecycle // -------------------- }, { key: 'shouldComponentUpdate', value: function shouldComponentUpdate(nextProps, nextState) { var s = this; var props = s.props; var state = s.state; return !(0, _asobj.shallowEqual)(props, nextProps) || (0, _asobj.shallowEqual)(state, nextState); } }, { key: 'componentDidMount', value: function componentDidMount() { var s = this; s.setState({ iconVisible: true }); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { var s = this; } // -------------------- // Custom // -------------------- }]); return ApSpinner; }(_react.Component); Object.assign(ApSpinner, { // -------------------- // Specs // -------------------- propTypes: { /** Shows spin */ enabled: _react.PropTypes.bool, /** Theme of the spinner */ theme: _react.PropTypes.oneOf(Object.keys(SpinnerThemes)), /** Size of spinner icon */ size: _react.PropTypes.oneOf(SpinnerSizes), /** show as cover */ cover: _react.PropTypes.bool }, defaultProps: { enabled: false, theme: DEFAULT_THEME, size: DEFAULT_SIZE }, DEFAULT_THEME: DEFAULT_THEME }); exports.default = ApSpinner; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX3NwaW5uZXIuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztBQUtBOzs7Ozs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU0sZ0JBQWdCO0FBQ3BCLEtBQUcsQ0FBRSxJQUFGLEVBQVEsU0FBUixFQUFtQixZQUFuQixDQURpQjtBQUVwQixLQUFHLENBQUUsSUFBRixFQUFRLFNBQVIsRUFBbUIsbUJBQW5CLENBRmlCO0FBR3BCLEtBQUcsQ0FBRSxJQUFGLEVBQVEsU0FBUixFQUFtQixZQUFuQixDQUhpQjtBQUlwQixLQUFHLENBQUUsSUFBRixFQUFRLFNBQVIsRUFBbUIsU0FBbkIsQ0FKaUI7QUFLcEIsS0FBRyxDQUFFLElBQUYsRUFBUSxTQUFSLEVBQW1CLFVBQW5CO0FBTGlCLENBQXRCO0FBT0EsSUFBTSxlQUFlLENBQ25CLFFBRG1CLEVBRW5CLFVBRm1CLEVBR25CLFNBSG1CLEVBSW5CLE9BSm1CLEVBS25CLE9BTG1CLEVBTW5CLFNBTm1CLEVBT25CLFVBUG1CLEVBUW5CLFNBUm1CLEVBU25CLFFBVG1CLENBQXJCOztBQVlBLElBQU0sZ0JBQWdCLEdBQXRCO0FBQ0EsSUFBTSxlQUFlLE9BQXJCOztBQUVBOztJQUNNLFM7Ozs7Ozs7Ozs7OzZCQUNNO0FBQ1IsVUFBTSxJQUFJLElBQVY7QUFEUSxVQUVGLEtBRkUsR0FFUSxDQUZSLENBRUYsS0FGRTs7QUFHUixVQUFJLFlBQVksMEJBQVcsWUFBWCxFQUF5QixNQUFNLFNBQS9CLEVBQTBDO0FBQ3hELDRCQUFvQixDQUFDLENBQUMsTUFBTSxLQUQ0QjtBQUV4RCw4QkFBc0IsQ0FBQyxDQUFDLE1BQU07QUFGMEIsT0FBMUMsQ0FBaEI7QUFJQSxhQUNFO0FBQUE7QUFBQSxVQUFLLFdBQVksU0FBakI7QUFDSyxpQkFBUSxPQUFPLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLE1BQU0sS0FBeEIsQ0FEYjtBQUVFLGdEQUFNLFdBQVksMEJBQVcsaUJBQVgsRUFBOEIsY0FBZSxNQUFNLEtBQXJCLENBQTlCLENBQWxCO0FBQ00saUJBQVEsRUFBRSxVQUFVLE1BQU0sSUFBbEI7QUFEZDtBQUZGLE9BREY7QUFTRDs7QUFFRDtBQUNBO0FBQ0E7Ozs7MENBRXVCLFMsRUFBVyxTLEVBQVc7QUFDM0MsVUFBTSxJQUFJLElBQVY7QUFEMkMsVUFFckMsS0FGcUMsR0FFcEIsQ0FGb0IsQ0FFckMsS0FGcUM7QUFBQSxVQUU5QixLQUY4QixHQUVwQixDQUZvQixDQUU5QixLQUY4Qjs7QUFHM0MsYUFBTyxDQUFDLHlCQUFhLEtBQWIsRUFBb0IsU0FBcEIsQ0FBRCxJQUFtQyx5QkFBYSxLQUFiLEVBQW9CLFNBQXBCLENBQTFDO0FBQ0Q7Ozt3Q0FFb0I7QUFDbkIsVUFBTSxJQUFJLElBQVY7QUFDQSxRQUFFLFFBQUYsQ0FBVztBQUNULHFCQUFhO0FBREosT0FBWDtBQUdEOzs7MkNBRXVCO0FBQ3RCLFVBQU0sSUFBSSxJQUFWO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBOzs7Ozs7O0FBR0YsT0FBTyxNQUFQLENBQWMsU0FBZCxFQUF5QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQSxhQUFXO0FBQ1Q7QUFDQSxhQUFTLGlCQUFNLElBRk47QUFHVDtBQUNBLFdBQU8saUJBQU0sS0FBTixDQUNMLE9BQU8sSUFBUCxDQUFZLGFBQVosQ0FESyxDQUpFO0FBT1Q7QUFDQSxVQUFNLGlCQUFNLEtBQU4sQ0FBWSxZQUFaLENBUkc7QUFTVDtBQUNBLFdBQU8saUJBQU07QUFWSixHQUpZO0FBZ0J2QixnQkFBYztBQUNaLGFBQVMsS0FERztBQUVaLFdBQU8sYUFGSztBQUdaLFVBQU07QUFITSxHQWhCUztBQXFCdkI7QUFyQnVCLENBQXpCOztrQkF3QmUsUyIsImZpbGUiOiJhcF9zcGlubmVyLmpzeCIsInNvdXJjZVJvb3QiOiJsaWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGFwZW1hbiByZWFjdCBwYWNrYWdlIGZvciBzcGlubmVyLlxuICogQGNsYXNzIEFwU3Bpbm5lclxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIFByb3BUeXBlcyBhcyB0eXBlc30gZnJvbSAncmVhY3QnXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuaW1wb3J0IHtzaGFsbG93RXF1YWx9IGZyb20gJ2Fzb2JqJ1xuXG5jb25zdCBTcGlubmVyVGhlbWVzID0ge1xuICBhOiBbICdmYScsICdmYS1zcGluJywgJ2ZhLXNwaW5uZXInIF0sXG4gIGI6IFsgJ2ZhJywgJ2ZhLXNwaW4nLCAnZmEtY2lyY2xlLW8tbm90Y2gnIF0sXG4gIGM6IFsgJ2ZhJywgJ2ZhLXNwaW4nLCAnZmEtcmVmcmVzaCcgXSxcbiAgZDogWyAnZmEnLCAnZmEtc3BpbicsICdmYS1nZWFyJyBdLFxuICBlOiBbICdmYScsICdmYS1zcGluJywgJ2ZhLXB1bHNlJyBdXG59XG5jb25zdCBTcGlubmVyU2l6ZXMgPSBbXG4gICdtZWRpdW0nLFxuICAneHgtc21hbGwnLFxuICAneC1zbWFsbCcsXG4gICdzbWFsbCcsXG4gICdsYXJnZScsXG4gICd4LWxhcmdlJyxcbiAgJ3h4LWxhcmdlJyxcbiAgJ3NtYWxsZXInLFxuICAnbGFyZ2VyJ1xuXVxuXG5jb25zdCBERUZBVUxUX1RIRU1FID0gJ2MnXG5jb25zdCBERUZBVUxUX1NJWkUgPSAnbGFyZ2UnXG5cbi8qKiBAbGVuZHMgQXBTcGlubmVyICovXG5jbGFzcyBBcFNwaW5uZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBsZXQgY2xhc3NOYW1lID0gY2xhc3NuYW1lcygnYXAtc3Bpbm5lcicsIHByb3BzLmNsYXNzTmFtZSwge1xuICAgICAgJ2FwLXNwaW5uZXItY292ZXInOiAhIXByb3BzLmNvdmVyLFxuICAgICAgJ2FwLXNwaW5uZXItZW5hYmxlZCc6ICEhcHJvcHMuZW5hYmxlZFxuICAgIH0pXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXsgY2xhc3NOYW1lIH1cbiAgICAgICAgICAgc3R5bGU9eyBPYmplY3QuYXNzaWduKHt9LCBwcm9wcy5zdHlsZSkgfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAtc3Bpbm5lci1pY29uJywgU3Bpbm5lclRoZW1lc1sgcHJvcHMudGhlbWUgXSkgfVxuICAgICAgICAgICAgICBzdHlsZT17IHsgZm9udFNpemU6IHByb3BzLnNpemUgfSB9XG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgc2hvdWxkQ29tcG9uZW50VXBkYXRlIChuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMsIHN0YXRlIH0gPSBzXG4gICAgcmV0dXJuICFzaGFsbG93RXF1YWwocHJvcHMsIG5leHRQcm9wcykgfHwgc2hhbGxvd0VxdWFsKHN0YXRlLCBuZXh0U3RhdGUpXG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBzLnNldFN0YXRlKHtcbiAgICAgIGljb25WaXNpYmxlOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ3VzdG9tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG59XG5cbk9iamVjdC5hc3NpZ24oQXBTcGlubmVyLCB7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNwZWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByb3BUeXBlczoge1xuICAgIC8qKiBTaG93cyBzcGluICovXG4gICAgZW5hYmxlZDogdHlwZXMuYm9vbCxcbiAgICAvKiogVGhlbWUgb2YgdGhlIHNwaW5uZXIgKi9cbiAgICB0aGVtZTogdHlwZXMub25lT2YoXG4gICAgICBPYmplY3Qua2V5cyhTcGlubmVyVGhlbWVzKVxuICAgICksXG4gICAgLyoqIFNpemUgb2Ygc3Bpbm5lciBpY29uICovXG4gICAgc2l6ZTogdHlwZXMub25lT2YoU3Bpbm5lclNpemVzKSxcbiAgICAvKiogc2hvdyBhcyBjb3ZlciAqL1xuICAgIGNvdmVyOiB0eXBlcy5ib29sXG4gIH0sXG4gIGRlZmF1bHRQcm9wczoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIHRoZW1lOiBERUZBVUxUX1RIRU1FLFxuICAgIHNpemU6IERFRkFVTFRfU0laRVxuICB9LFxuICBERUZBVUxUX1RIRU1FXG59KVxuXG5leHBvcnQgZGVmYXVsdCBBcFNwaW5uZXJcbiJdfQ==