UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

167 lines (140 loc) 5.71 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectSpread from "@babel/runtime/helpers/objectSpread2"; import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _inherits from "@babel/runtime/helpers/inherits"; import _createSuper from "@babel/runtime/helpers/createSuper"; import { __decorate } from "tslib"; import React, { cloneElement, Component, isValidElement } from 'react'; import { observer } from 'mobx-react'; import isObject from 'lodash/isObject'; import { TableQueryBarType } from '../Table'; import TableContext from '../TableContext'; import autobind from '../../_util/autobind'; import { getEditorByField, getPlaceholderByField } from '../../table/utils'; import TableProfessionalBar from './TableProfessionalBar'; import TableDynamicFilterBar from './TableDynamicFilterBar'; var PerformanceTableQueryBar = /*#__PURE__*/function (_Component) { _inherits(PerformanceTableQueryBar, _Component); var _super = _createSuper(PerformanceTableQueryBar); function PerformanceTableQueryBar() { _classCallCheck(this, PerformanceTableQueryBar); return _super.apply(this, arguments); } _createClass(PerformanceTableQueryBar, [{ key: "handleQueryReset", value: function handleQueryReset() { var queryDataSet = this.context.tableStore.dataSet.queryDataSet; if (queryDataSet) { var current = queryDataSet.current; if (current) { current.reset(); } this.handleQuery(); } } }, { key: "handleQuery", value: function handleQuery() { var dataSet = this.context.tableStore.dataSet; return dataSet.query(); } }, { key: "getQueryFields", value: function getQueryFields() { var _this$context$tableSt = this.context.tableStore, dataSet = _this$context$tableSt.dataSet, _this$context$tableSt2 = _this$context$tableSt.queryBar, _this$context$tableSt3 = _this$context$tableSt2.queryFields, queryFields = _this$context$tableSt3 === void 0 ? {} : _this$context$tableSt3, type = _this$context$tableSt2.type; var queryDataSet = dataSet.queryDataSet; var result = []; if (queryDataSet) { var fields = queryDataSet.fields, current = queryDataSet.current; fields.forEach(function (field, name) { if (!field.get('bind', current) && !name.includes('__tls')) { var element = queryFields[name]; var filterBarProps = {}; if (type === TableQueryBarType.filterBar) { var placeholder = /*#__PURE__*/isValidElement(element) && element.props.placeholder ? element.props.placeholder : getPlaceholderByField(field, current); filterBarProps = { placeholder: placeholder, border: false, clearButton: true }; } var props = _objectSpread({ key: name, name: name, dataSet: queryDataSet, isFlat: type === TableQueryBarType.filterBar }, filterBarProps); result.push( /*#__PURE__*/isValidElement(element) ? /*#__PURE__*/cloneElement(element, props) : /*#__PURE__*/cloneElement(getEditorByField(field, current, type !== TableQueryBarType.professionalBar, type === TableQueryBarType.filterBar), _objectSpread(_objectSpread({}, props), isObject(element) ? element : {}))); } }); } return result; } }, { key: "renderProfessionalBar", value: function renderProfessionalBar(props) { var prefixCls = this.context.tableStore.prefixCls; return /*#__PURE__*/React.createElement(TableProfessionalBar, _extends({ key: "toolbar", prefixCls: prefixCls }, props)); } }, { key: "renderDynamicFilterBar", value: function renderDynamicFilterBar(props) { var prefixCls = this.context.tableStore.prefixCls; // @ts-ignore return /*#__PURE__*/React.createElement(TableDynamicFilterBar, _extends({ key: "toolbar", prefixCls: prefixCls }, props)); } }, { key: "render", value: function render() { var _this$context$tableSt4 = this.context.tableStore, queryBar = _this$context$tableSt4.queryBar, dataSet = _this$context$tableSt4.dataSet; if (dataSet) { var queryFields = this.getQueryFields(); var queryDataSet = dataSet.queryDataSet; var props = _objectSpread(_objectSpread({}, queryBar), {}, { queryFields: queryFields, queryDataSet: queryDataSet }); if (typeof queryBar.renderer === 'function') { return queryBar.renderer(props); } switch (queryBar.type) { case TableQueryBarType.professionalBar: return this.renderProfessionalBar(props); case TableQueryBarType.filterBar: return this.renderDynamicFilterBar(props); default: } } return null; } }], [{ key: "contextType", get: function get() { return TableContext; } }]); return PerformanceTableQueryBar; }(Component); PerformanceTableQueryBar.displayName = 'PerformanceTableQueryBar'; PerformanceTableQueryBar.defaultProps = { queryFieldsLimit: 3 }; __decorate([autobind], PerformanceTableQueryBar.prototype, "handleQueryReset", null); __decorate([autobind], PerformanceTableQueryBar.prototype, "handleQuery", null); PerformanceTableQueryBar = __decorate([observer], PerformanceTableQueryBar); export default PerformanceTableQueryBar; //# sourceMappingURL=index.js.map