ze-react-component-library
Version:
ZeroETP React Component Library
186 lines (162 loc) • 6.22 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("antd/lib/select/style");
var _select = _interopRequireDefault(require("antd/lib/select"));
var _react = _interopRequireWildcard(require("react"));
var _useLocale = _interopRequireDefault(require("../hooks/useLocale"));
var _ValueHandler = _interopRequireDefault(require("./ValueHandler"));
require("./ZEOperator.less");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var __assign = void 0 && (void 0).__assign || function () {
__assign = Object.assign || function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
}
return t;
};
return __assign.apply(this, arguments);
};
var operatorMap = {
"=": {
label: "等于",
types: ["Number", "String", "Boolean"]
},
$ne: {
label: "不等于",
types: ["Number", "String", "Boolean"]
},
$in: {
label: "等于任一个",
types: ["String"]
},
$nin: {
label: "不等于任一个",
types: ["String"]
},
$contains: {
label: "包含",
types: ["String"]
},
$gt: {
label: "大于",
types: ["Number", "Date", "Timestamp"]
},
$gte: {
label: "大于等于",
types: ["Number", "Date", "Timestamp"]
},
$lt: {
label: "小于",
types: ["Number", "Date", "Timestamp"]
},
$lte: {
label: "小于等于",
types: ["Number", "Date", "Timestamp"]
},
between: {
label: "区间",
types: ["Number", "Date", "Timestamp"]
},
"is null": {
label: "为空",
types: ["Number", "Date", "Timestamp", "String", "Boolean"]
},
"is not null": {
label: "不为空",
types: ["Number", "Date", "Timestamp", "String", "Boolean"]
}
};
var FormOperator = /*#__PURE__*/(0, _react.memo)(function (_a) {
var type = _a.type,
value = _a.value,
initialValue = _a.initialValue,
onChange = _a.onChange,
operatorProps = _a.operatorProps,
valueProps = _a.valueProps,
disabled = _a.disabled,
style = _a.style,
_b = _a.className,
className = _b === void 0 ? "" : _b;
var _c = (0, _react.useState)(),
operator = _c[0],
setOperator = _c[1];
var _d = (0, _react.useState)(),
innerValue = _d[0],
setInnerValue = _d[1];
var t = (0, _useLocale.default)().t;
var operatorOptions = ((operatorProps === null || operatorProps === void 0 ? void 0 : operatorProps.options) || Object.keys(operatorMap)).filter(function (f) {
var _a, _b;
return (_b = (_a = operatorMap[f]) === null || _a === void 0 ? void 0 : _a.types) === null || _b === void 0 ? void 0 : _b.includes(type);
}).map(function (k) {
var _a;
return {
label: (_a = operatorMap[k]) === null || _a === void 0 ? void 0 : _a.label,
value: k
};
});
var actualValue = value || {
operator: operator,
value: innerValue
};
var actualChange = function actualChange(v) {
setOperator(v.operator);
setInnerValue(v.value);
onChange === null || onChange === void 0 ? void 0 : onChange(v);
};
(0, _react.useEffect)(function () {
var _a;
if (initialValue && !value) {
actualChange(initialValue);
} else if (!value) {
actualChange({
operator: ((_a = operatorOptions[0]) === null || _a === void 0 ? void 0 : _a.value) || "=",
value: undefined
});
}
}, []);
return /*#__PURE__*/_react.default.createElement("div", {
className: ["form-operator", className].join(" "),
style: style
}, /*#__PURE__*/_react.default.createElement(_select.default, __assign({}, operatorProps, {
disabled: disabled,
value: actualValue.operator,
onChange: function onChange(v) {
actualChange({
value: undefined,
operator: v
});
},
dropdownMatchSelectWidth: false,
options: operatorOptions.map(function (d) {
return __assign(__assign({}, d), {
label: t(d.label)
});
})
})), actualValue.operator && /*#__PURE__*/_react.default.createElement("div", {
className: "form-operator-value-handler"
}, /*#__PURE__*/_react.default.createElement(_ValueHandler.default, {
type: type,
operator: actualValue.operator,
valueProps: __assign(__assign({}, valueProps), {
disabled: disabled
}),
value: actualValue.value,
onChange: function onChange(v) {
actualChange({
value: v,
operator: actualValue.operator
});
}
})));
});
var _default = FormOperator;
exports.default = _default;