@react-awesome-query-builder/ui
Version:
User-friendly query builder for React. Core React UI
159 lines (157 loc) • 8.4 kB
JavaScript
;
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireWildcard(require("react"));
var _core = require("@react-awesome-query-builder/core");
var _omit = _interopRequireDefault(require("lodash/omit"));
var _excluded = ["widgetFactory"],
_excluded2 = ["factory"];
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; }
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; }
var getTitleInListValues = _core.Utils.ListUtils.getTitleInListValues;
var _widgetDefKeysToOmit = _core.Utils.ConfigUtils._widgetDefKeysToOmit;
var _Utils$TreeUtils = _core.Utils.TreeUtils,
_fixImmutableValue = _Utils$TreeUtils._fixImmutableValue,
isImmutable = _Utils$TreeUtils.isImmutable;
var WidgetFactoryMemo = /*#__PURE__*/(0, _react.memo)(function (_ref) {
var widgetFactory = _ref.widgetFactory,
widgetProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
var config = widgetProps.config,
isFuncArg = widgetProps.isFuncArg,
fieldDefinition = widgetProps.fieldDefinition;
var _ref2 = fieldDefinition || {},
fieldSettings = _ref2.fieldSettings,
defaultValue = _ref2.defaultValue,
valueSources = _ref2.valueSources;
var isConst = isFuncArg && (valueSources === null || valueSources === void 0 ? void 0 : valueSources.length) == 1 && (valueSources === null || valueSources === void 0 ? void 0 : valueSources[0]) === "const";
var listValues = (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.treeValues) || (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.listValues);
if (isConst && defaultValue) {
if (typeof defaultValue === "boolean") {
return defaultValue ? widgetProps.labelYes || "YES" : widgetProps.labelNo || "NO";
} else if (listValues) {
if (Array.isArray(defaultValue)) return defaultValue.map(function (v) {
return getTitleInListValues(listValues, v) || v;
}).join(", ");else return getTitleInListValues(listValues, defaultValue) || defaultValue;
}
return "" + defaultValue;
}
if (!widgetFactory) {
return "?";
}
return widgetFactory(widgetProps, config.ctx);
});
WidgetFactoryMemo.displayName = "WidgetFactoryMemo";
var WidgetFactory = function WidgetFactory(_ref3) {
var delta = _ref3.delta,
parentDelta = _ref3.parentDelta,
isFuncArg = _ref3.isFuncArg,
valueSrc = _ref3.valueSrc,
immValue = _ref3.value,
immValueError = _ref3.valueError,
fieldError = _ref3.fieldError,
asyncListValues = _ref3.asyncListValues,
isSpecialRange = _ref3.isSpecialRange,
fieldDefinition = _ref3.fieldDefinition,
widget = _ref3.widget,
widgetDefinition = _ref3.widgetDefinition,
widgetValueLabel = _ref3.widgetValueLabel,
valueLabels = _ref3.valueLabels,
textSeparators = _ref3.textSeparators,
setValue = _ref3.setValue,
setFuncValue = _ref3.setFuncValue,
config = _ref3.config,
field = _ref3.field,
fieldSrc = _ref3.fieldSrc,
fieldPath = _ref3.fieldPath,
fieldType = _ref3.fieldType,
isLHS = _ref3.isLHS,
operator = _ref3.operator,
readonly = _ref3.readonly,
parentField = _ref3.parentField,
parentFuncs = _ref3.parentFuncs,
id = _ref3.id,
groupId = _ref3.groupId,
widgetId = _ref3.widgetId;
var widgetFactory = widgetDefinition.factory,
fieldWidgetProps = (0, _objectWithoutProperties2["default"])(widgetDefinition, _excluded2);
// Widget value (if it's not a func with args) should NOT be Immutable
// Eg. for multiselect value should be a JS Array, not Immutable List
var fixedImmValue = immValue ? immValue.map(function (v) {
return _fixImmutableValue(v);
}) : undefined;
var value = (0, _react.useMemo)(function () {
if (isSpecialRange) {
var _value = [fixedImmValue === null || fixedImmValue === void 0 ? void 0 : fixedImmValue.get(0), fixedImmValue === null || fixedImmValue === void 0 ? void 0 : fixedImmValue.get(1)];
if (_value[0] === undefined && _value[1] === undefined) _value = undefined;
return _value;
}
return fixedImmValue === null || fixedImmValue === void 0 ? void 0 : fixedImmValue.get(delta);
}, [isSpecialRange, immValue]);
var valueError = (0, _react.useMemo)(function () {
var _immValueError$get;
if (!immValueError) {
return null;
}
if (isSpecialRange) {
return [immValueError.get(0), immValueError.get(1), immValueError.get(2)];
}
return immValueError === null || immValueError === void 0 || (_immValueError$get = immValueError.get) === null || _immValueError$get === void 0 ? void 0 : _immValueError$get.call(immValueError, delta);
}, [isSpecialRange, immValue]);
var errorMessage = isLHS ? fieldError : valueError;
var _ref4 = fieldDefinition || {},
fieldSettings = _ref4.fieldSettings;
var label = widgetValueLabel.label,
placeholder = widgetValueLabel.placeholder;
var placeholders = valueLabels ? valueLabels.placeholder : null;
var simpleField = isImmutable(field) ? null : field;
var widgetProps = (0, _omit["default"])(_objectSpread(_objectSpread(_objectSpread({}, fieldWidgetProps), fieldSettings), {}, {
config: config,
field: simpleField,
// !!! using of field prop in widget is strongly discouraged
fieldPath: fieldPath,
fieldSrc: fieldSrc,
fieldType: fieldType,
isLHS: isLHS,
parentField: parentField,
parentFuncs: parentFuncs,
fieldDefinition: fieldDefinition,
operator: operator,
delta: delta,
parentDelta: parentDelta,
isSpecialRange: isSpecialRange,
isFuncArg: isFuncArg,
value: value,
valueSrc: valueSrc,
valueError: valueError,
fieldError: fieldError,
errorMessage: errorMessage,
label: label,
placeholder: placeholder,
placeholders: placeholders,
textSeparators: textSeparators,
setValue: setValue,
setFuncValue: setFuncValue,
readonly: readonly,
asyncListValues: asyncListValues,
id: id,
groupId: groupId,
widgetId: widgetId,
widgetFactory: widgetFactory,
widget: widget
}), [].concat((0, _toConsumableArray2["default"])(_widgetDefKeysToOmit), ["toJS"]));
return /*#__PURE__*/_react["default"].createElement(WidgetFactoryMemo, (0, _extends2["default"])({
widgetFactory: widgetFactory
}, widgetProps));
};
WidgetFactory.displayName = "WidgetFactory";
var _default = exports["default"] = WidgetFactory;