UNPKG

@vtex/styleguide

Version:

> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))

96 lines (74 loc) 3.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _propTypes = require("prop-types"); var _propTypes2 = _interopRequireDefault(_propTypes); var _CaretDown = require("../icon/CaretDown"); var _CaretDown2 = _interopRequireDefault(_CaretDown); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } var StrategySelector = /*#__PURE__*/ function (_React$Component) { _inheritsLoose(StrategySelector, _React$Component); function StrategySelector() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; _this.handleOperatorChange = function (event) { var newOperator = event.target.value; var operator = _this.props.operator; if (operator !== newOperator) { _this.props.onChangeOperator(newOperator); } }; return _this; } var _proto = StrategySelector.prototype; _proto.render = function render() { var labels = this.props.labels; return _react2.default.createElement("div", { className: "flex flex-row nowrap" }, _react2.default.createElement("span", null, labels.headerPrefix), _react2.default.createElement("div", { className: "c-link relative" }, _react2.default.createElement("span", { className: "mh3 b" }, this.props.operator === 'all' ? labels.operatorAll : labels.operatorAny), _react2.default.createElement("select", { className: "o-0 absolute top-0 left-0 w-100 bottom-0 pointer t-small", onChange: this.handleOperatorChange, value: this.props.operator, style: { // safari select height fix WebkitAppearance: 'menulist-button' } }, _react2.default.createElement("option", { value: "all" }, labels.operatorAll), _react2.default.createElement("option", { value: "any" }, labels.operatorAny)), _react2.default.createElement(_CaretDown2.default, { size: 14 })), _react2.default.createElement("span", { className: "ml3" }, labels.headerSufix)); }; return StrategySelector; }(_react2.default.Component); StrategySelector.propTypes = { /** Operator indicates whether all the conditions should be met or any of them */ operator: _propTypes2.default.oneOf(['all', 'any']), /** Operator change callback: one of 'any', 'all' */ onChangeOperator: _propTypes2.default.func, /** Labels for the controls and texts, default is english */ labels: _propTypes2.default.shape({ operatorAll: _propTypes2.default.string, operatorAny: _propTypes2.default.string, headerPrefix: _propTypes2.default.string, headerSufix: _propTypes2.default.string }) }; exports.default = StrategySelector;