@react-awesome-query-builder/mui
Version:
User-friendly query builder for React. MUI 5 widgets
102 lines (101 loc) • 4.46 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
var _ButtonGroup = _interopRequireDefault(require("@mui/material/ButtonGroup"));
var _Button = _interopRequireDefault(require("@mui/material/Button"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
var Conj = /*#__PURE__*/_react["default"].memo(function (_ref) {
var conjKey = _ref.conjKey,
id = _ref.id,
name = _ref.name,
label = _ref.label,
checked = _ref.checked,
setConjunction = _ref.setConjunction,
readonly = _ref.readonly,
disabled = _ref.disabled;
var onClick = (0, _react.useCallback)(function () {
setConjunction(conjKey);
}, [conjKey, setConjunction]);
var postfix = setConjunction.isDummyFn ? "__dummy" : "";
if ((readonly || disabled) && !checked) {
return null;
}
return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
key: id + postfix,
id: id + postfix,
color: checked ? "primary" : "inherit",
value: conjKey,
onClick: onClick,
disabled: readonly || disabled
}, label);
});
var Conjs = /*#__PURE__*/_react["default"].memo(function (_ref2) {
var id = _ref2.id,
not = _ref2.not,
setNot = _ref2.setNot,
conjunctionOptions = _ref2.conjunctionOptions,
setConjunction = _ref2.setConjunction,
disabled = _ref2.disabled,
readonly = _ref2.readonly,
config = _ref2.config,
showNot = _ref2.showNot,
notLabel = _ref2.notLabel;
//TIP: disabled=true if only 1 rule; readonly=true if immutable mode
var conjsCount = Object.keys(conjunctionOptions).length;
var lessThenTwo = disabled;
var forceShowConj = config.settings.forceShowConj;
var showConj = forceShowConj || conjsCount > 1 && !lessThenTwo;
var renderOptions = function renderOptions() {
return Object.keys(conjunctionOptions).map(function (conjKey) {
var _conjunctionOptions$c = conjunctionOptions[conjKey],
id = _conjunctionOptions$c.id,
name = _conjunctionOptions$c.name,
label = _conjunctionOptions$c.label,
checked = _conjunctionOptions$c.checked;
var conjProps = {
conjKey: conjKey,
id: id,
name: name,
label: label,
checked: checked,
setConjunction: setConjunction,
readonly: readonly,
disabled: disabled
};
if (disabled && !checked) {
return null;
}
return /*#__PURE__*/_react["default"].createElement(Conj, (0, _extends2["default"])({
key: id
}, conjProps));
});
};
var onNotClick = (0, _react.useCallback)(function () {
setNot(!not);
}, [not, setNot]);
var renderNot = function renderNot() {
if (readonly && !not) return null;
return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
key: id,
id: id + "__not",
color: not ? "error" : "inherit",
onClick: onNotClick,
disabled: readonly
}, notLabel || "NOT");
};
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], null, /*#__PURE__*/_react["default"].createElement(_ButtonGroup["default"], {
disableElevation: true,
variant: "contained",
size: "small",
disabled: readonly
}, showNot && renderNot(), showConj && renderOptions()));
});
var _default = exports["default"] = Conjs;