@centreon/react-components
Version:
react components used by centreon web frontend
108 lines (83 loc) • 4.74 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _IconEdit = _interopRequireDefault(require("../MaterialComponents/Icons/IconEdit"));
var _multiSelectHolder = _interopRequireDefault(require("./multi-select-holder.scss"));
/* eslint-disable jsx-a11y/no-static-element-interactions */
/* eslint-disable jsx-a11y/click-events-have-key-events */
/* eslint-disable react/jsx-filename-extension */
/* eslint-disable react/prop-types */
var InputFieldMultiSelectEmpty =
/*#__PURE__*/
function (_React$Component) {
(0, _inherits2["default"])(InputFieldMultiSelectEmpty, _React$Component);
function InputFieldMultiSelectEmpty() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2["default"])(this, InputFieldMultiSelectEmpty);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(InputFieldMultiSelectEmpty)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
isHovered: false
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleHover", function () {
var isHovered = _this.state.isHovered;
_this.setState({
isHovered: !isHovered
});
});
return _this;
}
(0, _createClass2["default"])(InputFieldMultiSelectEmpty, [{
key: "render",
value: function render() {
var _this$props = this.props,
isEmpty = _this$props.isEmpty,
multiSelectCount = _this$props.multiSelectCount,
multiSelectLabel = _this$props.multiSelectLabel,
ariaLabel = _this$props.ariaLabel,
children = _this$props.children,
error = _this$props.error,
onClick = _this$props.onClick,
selected = _this$props.selected,
emptyInfo = _this$props.emptyInfo;
var isHovered = this.state.isHovered;
return _react["default"].createElement("div", {
className: (0, _classnames["default"])(_multiSelectHolder["default"]['multi-select-holder'], isEmpty ? _multiSelectHolder["default"]['multi-select-holder-empty'] : '', error ? _multiSelectHolder["default"]['has-danger'] : '', selected ? _multiSelectHolder["default"]['multi-select-holder-selected'] : ''),
onMouseEnter: this.toggleHover.bind(this),
onMouseLeave: this.toggleHover.bind(this),
onClick: onClick,
"aria-label": ariaLabel
}, multiSelectLabel && multiSelectCount && _react["default"].createElement("span", {
className: (0, _classnames["default"])(_multiSelectHolder["default"]['multi-select-holder-label'])
}, "".concat(multiSelectLabel, " (").concat(multiSelectCount, ")")), _react["default"].createElement("div", {
className: (0, _classnames["default"])(_multiSelectHolder["default"]['multi-select-holder-inner'])
}, isEmpty && _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement("span", {
className: (0, _classnames["default"])(_multiSelectHolder["default"]['multi-select-holder-add'])
}, emptyInfo || 'Click to link')), children), isHovered ? _react["default"].createElement(_IconEdit["default"], {
style: {
display: "inline"
}
}) : null, error ? _react["default"].createElement("div", {
className: (0, _classnames["default"])(_multiSelectHolder["default"]['form-error'])
}, error) : null);
}
}]);
return InputFieldMultiSelectEmpty;
}(_react["default"].Component);
var _default = InputFieldMultiSelectEmpty;
exports["default"] = _default;