UNPKG

@react-awesome-query-builder/ui

Version:
258 lines (257 loc) 12.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); 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 _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _GroupContainer = _interopRequireDefault(require("../containers/GroupContainer")); var _Draggable = _interopRequireDefault(require("../containers/Draggable")); var _Group = require("./Group"); var _GroupActions = require("./GroupActions"); var _reactUtils = require("../../utils/reactUtils"); var _utils = require("../utils"); var _Widget = _interopRequireDefault(require("../rule/Widget")); var _classnames = _interopRequireDefault(require("classnames")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var CaseGroup = /*#__PURE__*/function (_BasicGroup) { function CaseGroup(props) { var _this; (0, _classCallCheck2["default"])(this, CaseGroup); _this = _callSuper(this, CaseGroup, [props]); _this.childrenClassName = function () { return "case_group--children"; }; _this.renderFooterWrapper = function () { return null; }; return _this; } (0, _inherits2["default"])(CaseGroup, _BasicGroup); return (0, _createClass2["default"])(CaseGroup, [{ key: "onPropsChanged", value: function onPropsChanged(nextProps) { var prevProps = this.props; var configChanged = !this.renderBeforeCaseValue || (prevProps === null || prevProps === void 0 ? void 0 : prevProps.config) !== (nextProps === null || nextProps === void 0 ? void 0 : nextProps.config); (0, _get2["default"])((0, _getPrototypeOf2["default"])(CaseGroup.prototype), "onPropsChanged", this).call(this, nextProps); if (configChanged) { var config = nextProps.config; var _config$settings = config.settings, renderBeforeCaseValue = _config$settings.renderBeforeCaseValue, renderAfterCaseValue = _config$settings.renderAfterCaseValue, renderRuleError = _config$settings.renderRuleError; this.BeforeCaseValue = (0, _utils.getRenderFromConfig)(config, renderBeforeCaseValue); this.AfterCaseValue = (0, _utils.getRenderFromConfig)(config, renderAfterCaseValue); this.RuleError = (0, _utils.getRenderFromConfig)(config, renderRuleError); } } }, { key: "isDefaultCase", value: function isDefaultCase() { return this.props.children1 == undefined; } }, { key: "reordableNodesCnt", value: function reordableNodesCnt() { // `parentReordableNodesCnt` is number of cases to reorder return this.props.parentReordableNodesCnt; } }, { key: "reordableNodesCntForItem", value: function reordableNodesCntForItem(_item) { // `reordableNodesCnt` is number of nodes is current case if (this.props.isLocked) return 0; return this.props.reordableNodesCnt; } }, { key: "totalRulesCntForItem", value: function totalRulesCntForItem(_item) { // `totalRulesCnt` is number of nodes is current case return this.props.totalRulesCnt; } }, { key: "showDragIcon", value: function showDragIcon() { // default impl of `showDragIcon()` uses `this.reordableNodesCnt()` if (this.isDefaultCase()) return false; return (0, _get2["default"])((0, _getPrototypeOf2["default"])(CaseGroup.prototype), "showDragIcon", this).call(this); } }, { key: "renderHeaderWrapper", value: function renderHeaderWrapper() { return /*#__PURE__*/_react["default"].createElement("div", { key: "group-header", className: (0, _classnames["default"])("group--header", this.isOneChild() ? "one--child" : "", this.isOneChild() ? "hide--line" : "", this.isNoChildren() ? "no--children" : "", this.showDragIcon() ? "with--drag" : "hide--drag", this.showConjs() && (!this.isOneChild() || this.showNot()) ? "with--conjs" : "hide--conjs") }, this.renderHeaderLeft(), this.renderHeaderCenter(), this.renderActions()); } }, { key: "renderChildrenWrapper", value: function renderChildrenWrapper() { if (this.isDefaultCase()) return null; // body has 2 columns: condition & value return /*#__PURE__*/_react["default"].createElement("div", { className: "case_group--body" }, this.renderCondition(), this.renderBeforeValue(), this.renderValue(), this.renderAfterValue()); } }, { key: "renderHeaderLeft", value: function renderHeaderLeft() { if (this.isDefaultCase()) { var defaultCaseLabel = this.props.config.settings.defaultCaseLabel; return defaultCaseLabel || ""; } // default impl: return /*#__PURE__*/_react["default"].createElement("div", { className: "group--conjunctions" }, this.renderConjs(), this.renderDrag(), this.renderError()); } }, { key: "renderCondition", value: function renderCondition() { if (this.isDefaultCase()) return null; return (0, _get2["default"])((0, _getPrototypeOf2["default"])(CaseGroup.prototype), "renderChildrenWrapper", this).call(this); } }, { key: "renderHeaderCenter", value: function renderHeaderCenter() { if (this.isDefaultCase()) { return /*#__PURE__*/_react["default"].createElement("div", null, this.renderValue(), this.renderError()); } return null; } }, { key: "canAddGroup", value: function canAddGroup() { if (this.isDefaultCase()) return false; return (0, _get2["default"])((0, _getPrototypeOf2["default"])(CaseGroup.prototype), "canAddGroup", this).call(this); } }, { key: "canAddRule", value: function canAddRule() { if (this.isDefaultCase()) return false; return (0, _get2["default"])((0, _getPrototypeOf2["default"])(CaseGroup.prototype), "canAddRule", this).call(this); } }, { key: "renderBeforeValue", value: function renderBeforeValue() { var BeforeCaseValue = this.BeforeCaseValue; if (BeforeCaseValue == undefined) return null; return /*#__PURE__*/_react["default"].createElement(BeforeCaseValue, (0, _extends2["default"])({ key: "values-before" }, this.props)); } }, { key: "renderAfterValue", value: function renderAfterValue() { var AfterCaseValue = this.AfterCaseValue; if (AfterCaseValue == undefined) return null; return /*#__PURE__*/_react["default"].createElement(AfterCaseValue, (0, _extends2["default"])({ key: "values-after" }, this.props)); } }, { key: "renderError", value: function renderError() { var _this$props = this.props, config = _this$props.config, valueError = _this$props.valueError; var showErrorMessage = config.settings.showErrorMessage; var RuleError = this.RuleError; var oneError = (0, _toConsumableArray2["default"])((valueError === null || valueError === void 0 ? void 0 : valueError.toArray()) || []).filter(function (e) { return !!e; }).shift() || null; return showErrorMessage && oneError && /*#__PURE__*/_react["default"].createElement("div", { className: "rule--error" }, RuleError ? /*#__PURE__*/_react["default"].createElement(RuleError, { error: oneError }) : oneError); } }, { key: "renderValue", value: function renderValue() { var _this$props2 = this.props, config = _this$props2.config, isLocked = _this$props2.isLocked, value = _this$props2.value, valueSrc = _this$props2.valueSrc, valueError = _this$props2.valueError, setValue = _this$props2.setValue, setValueSrc = _this$props2.setValueSrc, setFuncValue = _this$props2.setFuncValue, id = _this$props2.id; var immutableValuesMode = config.settings.immutableValuesMode; var widget = /*#__PURE__*/_react["default"].createElement(_Widget["default"], { key: "values", isCaseValue: true, field: "!case_value", operator: null, value: value, valueSrc: valueSrc !== null && valueSrc !== void 0 ? valueSrc : "value", valueError: valueError, fieldError: null, config: config, setValue: !immutableValuesMode ? setValue : _utils.dummyFn, setValueSrc: !immutableValuesMode ? setValueSrc : _utils.dummyFn, setFuncValue: !immutableValuesMode ? setFuncValue : _utils.dummyFn, readonly: immutableValuesMode || isLocked, id: id, groupId: null }); return /*#__PURE__*/_react["default"].createElement(_utils.Col, { className: "case_group--value" }, widget); } }, { key: "renderActions", value: function renderActions() { var _this$props3 = this.props, config = _this$props3.config, addGroup = _this$props3.addGroup, addRule = _this$props3.addRule, isLocked = _this$props3.isLocked, isTrueLocked = _this$props3.isTrueLocked, id = _this$props3.id; return /*#__PURE__*/_react["default"].createElement(_GroupActions.GroupActions, { config: config, addGroup: addGroup, addRule: addRule, canAddRule: this.canAddRule(), canAddGroup: this.canAddGroup(), canDeleteGroup: this.canDeleteGroup(), removeSelf: this.removeSelf, setLock: this.setLock, isLocked: isLocked, isTrueLocked: isTrueLocked, id: id }); } }, { key: "isEmptyCurrentGroup", value: function isEmptyCurrentGroup() { // used to confirm self-deletion var value = this.props.value; var oneValue = value && value.size ? value.get(0) : null; var hasValue = oneValue != null && (Array.isArray(oneValue) ? oneValue.length > 0 : true); return (0, _get2["default"])((0, _getPrototypeOf2["default"])(CaseGroup.prototype), "isEmptyCurrentGroup", this).call(this) && !hasValue; } }]); }(_Group.BasicGroup); CaseGroup.propTypes = _objectSpread(_objectSpread({}, _Group.BasicGroup.propTypes), {}, { parentReordableNodesCnt: _propTypes["default"].number, value: _propTypes["default"].any, setValue: _propTypes["default"].func }); var _default = exports["default"] = (0, _GroupContainer["default"])((0, _Draggable["default"])("group case_group")((0, _utils.WithConfirmFn)(CaseGroup)), "case_group");