UNPKG

ze-react-component-library

Version:
200 lines (161 loc) 7.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("antd/lib/switch/style"); var _switch = _interopRequireDefault(require("antd/lib/switch")); require("antd/lib/card/style"); var _card = _interopRequireDefault(require("antd/lib/card")); require("antd/lib/drawer/style"); var _drawer = _interopRequireDefault(require("antd/lib/drawer")); require("antd/lib/button/style"); var _button = _interopRequireDefault(require("antd/lib/button")); require("antd/lib/list/style"); var _list = _interopRequireDefault(require("antd/lib/list")); var _react = _interopRequireWildcard(require("react")); var _ZELogicformVisualizer = _interopRequireDefault(require("../ZELogicformVisualizer")); var _underscore = _interopRequireDefault(require("underscore")); var _useLocale = _interopRequireDefault(require("../hooks/useLocale")); 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 }; } 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); } 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); }; /** * 注意,ZELogicformVisualizerList只接受norm后的logicform */ var ZELogicformVisualizerList = function ZELogicformVisualizerList(_a) { var initLogicforms = _a.logicforms, _b = _a.compact, compact = _b === void 0 ? false : _b, isDrawer = _a.isDrawer, _onClick = _a.onClick; var t = (0, _useLocale.default)().t; // 按照schema排序 var logicforms = _underscore.default.sortBy(initLogicforms, "schema"); var _c = (0, _react.useState)(false), showDiff = _c[0], setShowDiff = _c[1]; var diffLogicforms = getDiffLogicforms(logicforms); var content = /*#__PURE__*/_react.default.createElement(_list.default, { dataSource: showDiff ? diffLogicforms : logicforms, renderItem: function renderItem(logicform, index) { return /*#__PURE__*/_react.default.createElement(_list.default.Item, { key: JSON.stringify(logicform), actions: [/*#__PURE__*/_react.default.createElement(_button.default, { onClick: function onClick() { return _onClick(logicforms[index]); }, type: "primary" }, t("nlq.logicforms.choose"))] }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_ZELogicformVisualizer.default, { logicform: logicform, mode: "verbose", showQueryFilter: false }))); }, bordered: true }); var publicProps = { title: t("nlq.logicforms") }; if (isDrawer) { return /*#__PURE__*/_react.default.createElement(_drawer.default, __assign({ open: true, width: "100vw", contentWrapperStyle: { bottom: 80, top: "unset" }, closable: false, closeIcon: false, placement: "bottom" }, publicProps), content); } return /*#__PURE__*/_react.default.createElement(_card.default, __assign({}, publicProps, { size: compact ? "small" : "default", bodyStyle: { maxHeight: "60vh", overflowY: "scroll" }, className: "ze-logicform-visual-list" }), /*#__PURE__*/_react.default.createElement("div", { style: { paddingTop: 10, paddingBottom: 10, width: "100%", display: "flex" } }, /*#__PURE__*/_react.default.createElement("span", { style: { marginRight: 5 } }, t("nlq.logicforms.showDiff")), /*#__PURE__*/_react.default.createElement(_switch.default, { checked: showDiff, onChange: function onChange() { setShowDiff(!showDiff); } })), content); }; var getDiffLogicforms = function getDiffLogicforms(logicforms) { var diffKeyValuePool = {}; // 下面循环的一个帮助函数 var iterObject = function iterObject(obj, field) { Object.entries(obj).forEach(function (_a) { var _b; var k = _a[0], v = _a[1]; var key = field ? field + "_" + k : k; var isObj = v && _typeof(v) === "object" && !(v instanceof Array) && !((_b = Object.keys(v)[0]) === null || _b === void 0 ? void 0 : _b.startsWith("$")); if (isObj) { iterObject(v, key); } else { var value = JSON.stringify(v); if (!(key in diffKeyValuePool)) { diffKeyValuePool[key] = { value: value, count: 1 }; } else if (value === diffKeyValuePool[key].value) { diffKeyValuePool[key].count++; } } }); }; logicforms.forEach(function (logicform) { iterObject(logicform); }); // 生成diffLogicforms var diffLogicforms = JSON.parse(JSON.stringify(logicforms)); diffLogicforms.forEach(function (logicform) { Object.keys(diffKeyValuePool).forEach(function (key) { if (diffKeyValuePool[key].count === logicforms.length) { var keys_1 = key.split("_"); var obj_1 = logicform; keys_1.forEach(function (k, i) { if (i === keys_1.length - 1) { if (obj_1) { delete obj_1[k]; } } else { if (obj_1) { obj_1 = obj_1[k]; } } }); } }); }); return diffLogicforms; }; var _default = ZELogicformVisualizerList; exports.default = _default;