focus-components-v3
Version:
Focus web components to build applications (based on Material Design)
97 lines (73 loc) • 7.56 kB
JavaScript
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; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return 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; }
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) : _defaults(subClass, superClass); }
// component default props.
var defaultProps = {
affix: false,
affixOffset: 0,
menuList: []
};
// component props definition.
var propTypes = {
affix: _react.PropTypes.bool,
affixOffset: _react.PropTypes.number,
menuList: _react.PropTypes.array
};
/**
* Sticky menu component.
*/
var StickyMenu = function (_Component) {
_inherits(StickyMenu, _Component);
function StickyMenu() {
_classCallCheck(this, StickyMenu);
return _possibleConstructorReturn(this, _Component.apply(this, arguments));
}
/**
* Render the a block container and the cild content of the block.
* @return {DOM} React DOM element
*/
StickyMenu.prototype.render = function render() {
var _props = this.props,
affix = _props.affix,
affixOffset = _props.affixOffset,
menuList = _props.menuList,
otherProps = _objectWithoutProperties(_props, ['affix', 'affixOffset', 'menuList']);
return _react2.default.createElement(
'nav',
_extends({ 'data-affix': affix, 'data-focus': 'sticky-menu', 'data-offset': affixOffset }, otherProps),
_react2.default.createElement(
'ul',
null,
menuList.map(function (menu) {
var label = menu.label,
nodeId = menu.nodeId,
isActive = menu.isActive,
onClick = menu.onClick;
return _react2.default.createElement(
'li',
{ 'data-active': isActive, key: nodeId, onClick: onClick },
label
);
})
)
);
};
return StickyMenu;
}(_react.Component);
//Static props.
StickyMenu.displayName = 'StickyMenu';
StickyMenu.defaultProps = defaultProps;
StickyMenu.propTypes = propTypes;
exports.default = StickyMenu;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZyLUZSLmpzIl0sIm5hbWVzIjpbImRlZmF1bHRQcm9wcyIsImFmZml4IiwiYWZmaXhPZmZzZXQiLCJtZW51TGlzdCIsInByb3BUeXBlcyIsImJvb2wiLCJudW1iZXIiLCJhcnJheSIsIlN0aWNreU1lbnUiLCJyZW5kZXIiLCJwcm9wcyIsIm90aGVyUHJvcHMiLCJtYXAiLCJtZW51IiwibGFiZWwiLCJub2RlSWQiLCJpc0FjdGl2ZSIsIm9uQ2xpY2siLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7OztBQUVBO0FBQ0EsSUFBTUEsZUFBZTtBQUNqQkMsV0FBTyxLQURVO0FBRWpCQyxpQkFBYSxDQUZJO0FBR2pCQyxjQUFVO0FBSE8sQ0FBckI7O0FBTUE7QUFDQSxJQUFNQyxZQUFZO0FBQ2RILFdBQU8saUJBQVVJLElBREg7QUFFZEgsaUJBQWEsaUJBQVVJLE1BRlQ7QUFHZEgsY0FBVSxpQkFBVUk7QUFITixDQUFsQjs7QUFNQTs7OztJQUdNQyxVO2NBQUFBLFU7O2FBQUFBLFU7OEJBQUFBLFU7Ozs7O0FBQ0Y7Ozs7QUFERUEsYyxXQUtGQyxNLHFCQUFTO0FBQUEscUJBQ2lELEtBQUtDLEtBRHREO0FBQUEsWUFDRVQsS0FERixVQUNFQSxLQURGO0FBQUEsWUFDU0MsV0FEVCxVQUNTQSxXQURUO0FBQUEsWUFDc0JDLFFBRHRCLFVBQ3NCQSxRQUR0QjtBQUFBLFlBQ21DUSxVQURuQzs7QUFFTCxlQUNJO0FBQUE7QUFBQSx1QkFBSyxjQUFZVixLQUFqQixFQUF3QixjQUFXLGFBQW5DLEVBQWlELGVBQWFDLFdBQTlELElBQStFUyxVQUEvRTtBQUNJO0FBQUE7QUFBQTtBQUNLUix5QkFBU1MsR0FBVCxDQUFhLFVBQUNDLElBQUQsRUFBVTtBQUFBLHdCQUNiQyxLQURhLEdBQ3VCRCxJQUR2QixDQUNiQyxLQURhO0FBQUEsd0JBQ05DLE1BRE0sR0FDdUJGLElBRHZCLENBQ05FLE1BRE07QUFBQSx3QkFDRUMsUUFERixHQUN1QkgsSUFEdkIsQ0FDRUcsUUFERjtBQUFBLHdCQUNZQyxPQURaLEdBQ3VCSixJQUR2QixDQUNZSSxPQURaOztBQUVwQiwyQkFDSTtBQUFBO0FBQUEsMEJBQUksZUFBYUQsUUFBakIsRUFBMkIsS0FBS0QsTUFBaEMsRUFBd0MsU0FBU0UsT0FBakQ7QUFBMkRIO0FBQTNELHFCQURKO0FBR0gsaUJBTEE7QUFETDtBQURKLFNBREo7QUFZSCxLOztXQW5CQ04sVTs7O0FBc0JOOzs7QUFDQUEsV0FBV1UsV0FBWCxHQUF5QixZQUF6QjtBQUNBVixXQUFXUixZQUFYLEdBQTBCQSxZQUExQjtBQUNBUSxXQUFXSixTQUFYLEdBQXVCQSxTQUF2Qjs7a0JBRWVJLFUiLCJmaWxlIjoiZnItRlIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIFByb3BUeXBlc30gZnJvbSAncmVhY3QnO1xyXG5cclxuLy8gY29tcG9uZW50IGRlZmF1bHQgcHJvcHMuXHJcbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgIGFmZml4OiBmYWxzZSxcclxuICAgIGFmZml4T2Zmc2V0OiAwLFxyXG4gICAgbWVudUxpc3Q6IFtdXHJcbn07XHJcblxyXG4vLyBjb21wb25lbnQgcHJvcHMgZGVmaW5pdGlvbi5cclxuY29uc3QgcHJvcFR5cGVzID0ge1xyXG4gICAgYWZmaXg6IFByb3BUeXBlcy5ib29sLFxyXG4gICAgYWZmaXhPZmZzZXQ6IFByb3BUeXBlcy5udW1iZXIsXHJcbiAgICBtZW51TGlzdDogUHJvcFR5cGVzLmFycmF5XHJcbn07XHJcblxyXG4vKipcclxuKiBTdGlja3kgbWVudSBjb21wb25lbnQuXHJcbiovXHJcbmNsYXNzIFN0aWNreU1lbnUgZXh0ZW5kcyBDb21wb25lbnQge1xyXG4gICAgLyoqXHJcbiAgICAqIFJlbmRlciB0aGUgYSBibG9jayBjb250YWluZXIgYW5kIHRoZSBjaWxkIGNvbnRlbnQgb2YgdGhlIGJsb2NrLlxyXG4gICAgKiBAcmV0dXJuIHtET019IFJlYWN0IERPTSBlbGVtZW50XHJcbiAgICAqL1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHthZmZpeCwgYWZmaXhPZmZzZXQsIG1lbnVMaXN0LCAuLi5vdGhlclByb3BzfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPG5hdiBkYXRhLWFmZml4PXthZmZpeH0gZGF0YS1mb2N1cz0nc3RpY2t5LW1lbnUnIGRhdGEtb2Zmc2V0PXthZmZpeE9mZnNldH0gey4uLm90aGVyUHJvcHN9PlxyXG4gICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51TGlzdC5tYXAoKG1lbnUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qge2xhYmVsLCBub2RlSWQsIGlzQWN0aXZlLCBvbkNsaWNrfSA9IG1lbnU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS1hY3RpdmU9e2lzQWN0aXZlfSBrZXk9e25vZGVJZH0gb25DbGljaz17b25DbGlja30+e2xhYmVsfTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L25hdj5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vL1N0YXRpYyBwcm9wcy5cclxuU3RpY2t5TWVudS5kaXNwbGF5TmFtZSA9ICdTdGlja3lNZW51JztcclxuU3RpY2t5TWVudS5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XHJcblN0aWNreU1lbnUucHJvcFR5cGVzID0gcHJvcFR5cGVzO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU3RpY2t5TWVudTtcclxuIl19
;