UNPKG

focus-components-v3

Version:

Focus web components to build applications (based on Material Design)

79 lines (66 loc) 8.28 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _button = require('../button'); var _button2 = _interopRequireDefault(_button); var _dropdown = require('../dropdown'); var _dropdown2 = _interopRequireDefault(_dropdown); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var defautDropdownPosition = { vertical: 'bottom', horizontal: 'right' }; // [ // { // action: () => alert('toto'), //function called when clicked // className: 'action-save' //not mandatory, if you want to specify a custom style // icon: 'edit' //icon of action (display if primar*) // label: 'my.action.save' // action label // } // ] var HeaderActions = function HeaderActions(_ref) { var primary = _ref.primary, secondary = _ref.secondary; var hasPrimary = primary && primary.length > 0; var hasSecondary = secondary && secondary.length > 0; if (!hasPrimary && !hasSecondary) return null; return _react2.default.createElement( 'div', { 'data-focus': 'header-actions' }, primary.map(function (primary) { if (Array.isArray(primary.action)) { return _react2.default.createElement(_dropdown2.default, { button: { icon: primary.icon, label: '', shape: 'fab' }, operations: primary.action, position: defautDropdownPosition }); } else { return _react2.default.createElement(_button2.default, { key: primary.label, handleOnClick: primary.action, icon: primary.icon, label: primary.label, shape: 'fab', style: { className: primary.className }, type: 'button' }); } }), hasSecondary && _react2.default.createElement(_dropdown2.default, { button: { icon: 'more_vert', label: 'header.actions.more.label', shape: 'fab' }, operations: secondary, position: defautDropdownPosition }) ); }; HeaderActions.displayName = 'HeaderActions'; HeaderActions.propTypes = { primary: _react.PropTypes.array, secondary: _react.PropTypes.array }; HeaderActions.defaultProps = { primary: [], secondary: [] }; exports.default = HeaderActions; // { // primary: [ // {icon: 'edit', label: 'test', shape: 'fab'}, // {icon: 'edit', label: 'test', shape: 'fab', action: // [ // {icon: 'edit', label: 'test', shape: 'fab', action: () => console.log('toto')}, // {icon: 'edit', label: 'test', shape: 'fab', action: () => console.log('toto')} // ] // }, // ], // secondary: [{icon: 'edit', label: 'test', shape: 'fab'},] // }, module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZyLUZSLmpzIl0sIm5hbWVzIjpbImRlZmF1dERyb3Bkb3duUG9zaXRpb24iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJIZWFkZXJBY3Rpb25zIiwicHJpbWFyeSIsInNlY29uZGFyeSIsImhhc1ByaW1hcnkiLCJsZW5ndGgiLCJoYXNTZWNvbmRhcnkiLCJtYXAiLCJBcnJheSIsImlzQXJyYXkiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJzaGFwZSIsImNsYXNzTmFtZSIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwiYXJyYXkiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBR0EsSUFBTUEseUJBQXlCO0FBQzNCQyxjQUFVLFFBRGlCO0FBRTNCQyxnQkFBWTtBQUZlLENBQS9COztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxnQkFBZ0IsU0FBaEJBLGFBQWdCLE9BQTJCO0FBQUEsUUFBekJDLE9BQXlCLFFBQXpCQSxPQUF5QjtBQUFBLFFBQWhCQyxTQUFnQixRQUFoQkEsU0FBZ0I7O0FBQzdDLFFBQU1DLGFBQWFGLFdBQVdBLFFBQVFHLE1BQVIsR0FBaUIsQ0FBL0M7QUFDQSxRQUFNQyxlQUFlSCxhQUFhQSxVQUFVRSxNQUFWLEdBQW1CLENBQXJEO0FBQ0EsUUFBRyxDQUFDRCxVQUFELElBQWUsQ0FBQ0UsWUFBbkIsRUFBaUMsT0FBTyxJQUFQO0FBQ2pDLFdBQ0k7QUFBQTtBQUFBLFVBQUssY0FBVyxnQkFBaEI7QUFDS0osZ0JBQVFLLEdBQVIsQ0FBWSxVQUFDTCxPQUFELEVBQWE7QUFDdEIsZ0JBQUdNLE1BQU1DLE9BQU4sQ0FBY1AsUUFBUVEsTUFBdEIsQ0FBSCxFQUFrQztBQUM5Qix1QkFBTyxvREFBVSxRQUFRLEVBQUNDLE1BQU1ULFFBQVFTLElBQWYsRUFBcUJDLE9BQU8sRUFBNUIsRUFBZ0NDLE9BQU8sS0FBdkMsRUFBbEIsRUFBaUUsWUFBWVgsUUFBUVEsTUFBckYsRUFBNkYsVUFBVVosc0JBQXZHLEdBQVA7QUFDSCxhQUZELE1BRU87QUFDSCx1QkFDSSxrREFBUSxLQUFLSSxRQUFRVSxLQUFyQixFQUE0QixlQUFlVixRQUFRUSxNQUFuRCxFQUEyRCxNQUFNUixRQUFRUyxJQUF6RSxFQUErRSxPQUFPVCxRQUFRVSxLQUE5RixFQUFxRyxPQUFNLEtBQTNHLEVBQWlILE9BQU8sRUFBQ0UsV0FBV1osUUFBUVksU0FBcEIsRUFBeEgsRUFBd0osTUFBSyxRQUE3SixHQURKO0FBR0g7QUFDSixTQVJBLENBREw7QUFVS1Isd0JBQWdCLG9EQUFVLFFBQVEsRUFBQ0ssTUFBTSxXQUFQLEVBQW9CQyxPQUFPLDJCQUEzQixFQUF3REMsT0FBTyxLQUEvRCxFQUFsQixFQUF5RixZQUFZVixTQUFyRyxFQUFnSCxVQUFVTCxzQkFBMUg7QUFWckIsS0FESjtBQWNILENBbEJEO0FBbUJBRyxjQUFjYyxXQUFkLEdBQTRCLGVBQTVCO0FBQ0FkLGNBQWNlLFNBQWQsR0FBMEI7QUFDdEJkLGFBQVMsaUJBQVVlLEtBREc7QUFFdEJkLGVBQVcsaUJBQVVjO0FBRkMsQ0FBMUI7QUFJQWhCLGNBQWNpQixZQUFkLEdBQTZCO0FBQ3pCaEIsYUFBUyxFQURnQjtBQUV6QkMsZUFBVztBQUZjLENBQTdCO2tCQUllRixhOztBQUVmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJmci1GUi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1Byb3BUeXBlc30gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL2J1dHRvbic7XHJcbmltcG9ydCBEcm9wZG93biBmcm9tICcuLi9kcm9wZG93bidcclxuXHJcblxyXG5jb25zdCBkZWZhdXREcm9wZG93blBvc2l0aW9uID0ge1xyXG4gICAgdmVydGljYWw6ICdib3R0b20nLFxyXG4gICAgaG9yaXpvbnRhbDogJ3JpZ2h0J1xyXG59O1xyXG5cclxuLy8gW1xyXG4vLyAgICAge1xyXG4vLyAgICAgICAgIGFjdGlvbjogKCkgPT4gYWxlcnQoJ3RvdG8nKSwgLy9mdW5jdGlvbiBjYWxsZWQgd2hlbiBjbGlja2VkXHJcbi8vICAgICAgICAgY2xhc3NOYW1lOiAnYWN0aW9uLXNhdmUnIC8vbm90IG1hbmRhdG9yeSwgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIGN1c3RvbSBzdHlsZVxyXG4vLyAgICAgICAgIGljb246ICdlZGl0JyAvL2ljb24gb2YgYWN0aW9uIChkaXNwbGF5IGlmIHByaW1hciopXHJcbi8vICAgICAgICAgbGFiZWw6ICdteS5hY3Rpb24uc2F2ZScgLy8gYWN0aW9uIGxhYmVsXHJcbi8vICAgICB9XHJcbi8vIF1cclxuY29uc3QgSGVhZGVyQWN0aW9ucyA9ICh7cHJpbWFyeSwgc2Vjb25kYXJ5fSkgPT4gIHtcclxuICAgIGNvbnN0IGhhc1ByaW1hcnkgPSBwcmltYXJ5ICYmIHByaW1hcnkubGVuZ3RoID4gMDtcclxuICAgIGNvbnN0IGhhc1NlY29uZGFyeSA9IHNlY29uZGFyeSAmJiBzZWNvbmRhcnkubGVuZ3RoID4gMDtcclxuICAgIGlmKCFoYXNQcmltYXJ5ICYmICFoYXNTZWNvbmRhcnkpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGRhdGEtZm9jdXM9J2hlYWRlci1hY3Rpb25zJz5cclxuICAgICAgICAgICAge3ByaW1hcnkubWFwKChwcmltYXJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihBcnJheS5pc0FycmF5KHByaW1hcnkuYWN0aW9uKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8RHJvcGRvd24gYnV0dG9uPXt7aWNvbjogcHJpbWFyeS5pY29uLCBsYWJlbDogJycsIHNoYXBlOiAnZmFiJ319IG9wZXJhdGlvbnM9e3ByaW1hcnkuYWN0aW9ufSBwb3NpdGlvbj17ZGVmYXV0RHJvcGRvd25Qb3NpdGlvbn0gLz5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBrZXk9e3ByaW1hcnkubGFiZWx9IGhhbmRsZU9uQ2xpY2s9e3ByaW1hcnkuYWN0aW9ufSBpY29uPXtwcmltYXJ5Lmljb259IGxhYmVsPXtwcmltYXJ5LmxhYmVsfSBzaGFwZT0nZmFiJyBzdHlsZT17e2NsYXNzTmFtZTogcHJpbWFyeS5jbGFzc05hbWV9fSB0eXBlPSdidXR0b24nLz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAge2hhc1NlY29uZGFyeSAmJiA8RHJvcGRvd24gYnV0dG9uPXt7aWNvbjogJ21vcmVfdmVydCcsIGxhYmVsOiAnaGVhZGVyLmFjdGlvbnMubW9yZS5sYWJlbCcsIHNoYXBlOiAnZmFiJ319IG9wZXJhdGlvbnM9e3NlY29uZGFyeX0gcG9zaXRpb249e2RlZmF1dERyb3Bkb3duUG9zaXRpb259IC8+fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxufTtcclxuSGVhZGVyQWN0aW9ucy5kaXNwbGF5TmFtZSA9ICdIZWFkZXJBY3Rpb25zJztcclxuSGVhZGVyQWN0aW9ucy5wcm9wVHlwZXMgPSB7XHJcbiAgICBwcmltYXJ5OiBQcm9wVHlwZXMuYXJyYXksXHJcbiAgICBzZWNvbmRhcnk6IFByb3BUeXBlcy5hcnJheVxyXG59O1xyXG5IZWFkZXJBY3Rpb25zLmRlZmF1bHRQcm9wcyA9IHtcclxuICAgIHByaW1hcnk6IFtdLFxyXG4gICAgc2Vjb25kYXJ5OiBbXVxyXG59O1xyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJBY3Rpb25zO1xyXG5cclxuLy8gICAgIHtcclxuLy8gICAgICAgICBwcmltYXJ5OiBbXHJcbi8vICAgICAgICAgICAgIHtpY29uOiAnZWRpdCcsIGxhYmVsOiAndGVzdCcsIHNoYXBlOiAnZmFiJ30sXHJcbi8vICAgICAgICAgICAgIHtpY29uOiAnZWRpdCcsIGxhYmVsOiAndGVzdCcsIHNoYXBlOiAnZmFiJywgYWN0aW9uOlxyXG4vLyAgICAgICAgICAgICAgICAgW1xyXG4vLyAgICAgICAgICAgICAgICAgICAgIHtpY29uOiAnZWRpdCcsIGxhYmVsOiAndGVzdCcsIHNoYXBlOiAnZmFiJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygndG90bycpfSxcclxuLy8gICAgICAgICAgICAgICAgICAgICB7aWNvbjogJ2VkaXQnLCBsYWJlbDogJ3Rlc3QnLCBzaGFwZTogJ2ZhYicsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ3RvdG8nKX1cclxuLy8gICAgICAgICAgICAgICAgIF1cclxuLy8gICAgICAgICAgICAgfSxcclxuLy8gICAgICAgICBdLFxyXG4vLyAgICAgICAgIHNlY29uZGFyeTogW3tpY29uOiAnZWRpdCcsIGxhYmVsOiAndGVzdCcsIHNoYXBlOiAnZmFiJ30sXVxyXG4vLyAgICAgfSxcclxuIl19