focus-components-v3
Version:
Focus web components to build applications (based on Material Design)
79 lines (66 loc) • 8.28 kB
JavaScript
'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