@schema-render/search-table-react
Version:
Conditional search table component.
188 lines (187 loc) • 7.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return useTitle;
}
});
var _jsxruntime = require("react/jsx-runtime");
var _icons = require("@ant-design/icons");
var _corereact = require("@schema-render/core-react");
var _formrenderreact = require("@schema-render/form-render-react");
var _antd = require("antd");
var _react = require("react");
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) {
symbols = symbols.filter(function(sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
}
keys.push.apply(keys, symbols);
}
return keys;
}
function _object_spread_props(target, source) {
source = source != null ? source : {};
if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function(key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
return target;
}
function _tagged_template_literal(strings, raw) {
if (!raw) {
raw = strings.slice(0);
}
return Object.freeze(Object.defineProperties(strings, {
raw: {
value: Object.freeze(raw)
}
}));
}
function _templateObject() {
var data = _tagged_template_literal([
"\n > div::before {\n content: none !important;\n }\n"
]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var classNames = _corereact.utils.classNames;
// 隐藏 Tabs 下划线
var tabsHideLine = (0, _formrenderreact.cij)(_templateObject());
function useTitle(param) {
var locale = param.locale, _param_title = param.title, title = _param_title === void 0 ? {} : _param_title, loading = param.loading, globalStateRef = param.globalStateRef, runRequest = param.runRequest, openSettingModal = param.openSettingModal;
var _title_leftExtraContent, _title_rightExtraContent, _title_tabs, _title_tabs1, _title_tabs2;
// Tab Change 事件处理
var handleTabChange = (0, _corereact.useMemoizedFn)(function(activeKey) {
var // 触发 onChange 事件
_title_tabs_onChange, _title_tabs;
// 数据请求中,不允许连续切换 Tab
if (loading) {
return;
}
// 设置 tab 正在切换
globalStateRef.current.isTabChanging = true;
(_title_tabs = title.tabs) === null || _title_tabs === void 0 ? void 0 : (_title_tabs_onChange = _title_tabs.onChange) === null || _title_tabs_onChange === void 0 ? void 0 : _title_tabs_onChange.call(_title_tabs, activeKey);
// 等事件 setState 值更新完毕后再发起请求
setTimeout(/**
* 1、Tab 切换分页重置到第一页
* 2、请求完毕更新 isTabChanging 值
*/ function() {
return runRequest({
current: 1
}).finally(function() {
return globalStateRef.current.isTabChanging = false;
});
}, 0);
});
// 公共插槽参数
var comRenderParams = {
loading: loading
};
// 额外的左右侧内容
var leftExtraContent = (_title_leftExtraContent = title.leftExtraContent) === null || _title_leftExtraContent === void 0 ? void 0 : _title_leftExtraContent.call(title, comRenderParams);
var rightExtraContent = (_title_rightExtraContent = title.rightExtraContent) === null || _title_rightExtraContent === void 0 ? void 0 : _title_rightExtraContent.call(title, comRenderParams);
var tabBarLeftExtraContent = null;
var tabBarRightExtraContent = null;
// 列设置按钮
var settingBtn = title.showSetting ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tooltip, {
title: locale.SearchTable.settingTips,
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Button, {
icon: /*#__PURE__*/ (0, _jsxruntime.jsx)(_icons.SettingOutlined, {}),
disabled: loading,
onClick: openSettingModal
})
}) : null;
// 刷新按钮
var refreshBtn = title.showRefresh ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tooltip, {
title: locale.SearchTable.refreshTips,
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Button, {
icon: /*#__PURE__*/ (0, _jsxruntime.jsx)(_icons.SyncOutlined, {}),
disabled: loading,
onClick: function() {
return runRequest();
}
})
}) : null;
// Antd tabBarExtraContent 标准化处理
if ((_title_tabs = title.tabs) === null || _title_tabs === void 0 ? void 0 : _title_tabs.tabBarExtraContent) {
if (/*#__PURE__*/ (0, _react.isValidElement)(title.tabs.tabBarExtraContent)) {
tabBarRightExtraContent = title.tabs.tabBarExtraContent;
} else {
var extraContent = title.tabs.tabBarExtraContent;
tabBarLeftExtraContent = extraContent.left;
tabBarRightExtraContent = extraContent.right;
}
}
var tabBarExtraContent = {
left: tabBarLeftExtraContent || leftExtraContent ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_antd.Space, {
size: 10,
style: {
marginRight: 16
},
children: [
tabBarLeftExtraContent,
leftExtraContent
]
}) : null,
right: tabBarRightExtraContent || rightExtraContent || refreshBtn || settingBtn ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_antd.Space, {
size: 10,
children: [
tabBarRightExtraContent,
rightExtraContent,
refreshBtn,
settingBtn
]
}) : null
};
// 标题节点内容
var titleNodeHolder = tabBarExtraContent.left || tabBarExtraContent.right || title.tabs ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tabs, _object_spread_props(_object_spread({}, title.tabs), {
className: classNames(title.className, (_title_tabs1 = title.tabs) === null || _title_tabs1 === void 0 ? void 0 : _title_tabs1.className, _define_property({}, tabsHideLine, !title.tabs)),
style: title.style || ((_title_tabs2 = title.tabs) === null || _title_tabs2 === void 0 ? void 0 : _title_tabs2.style),
tabBarExtraContent: tabBarExtraContent,
onChange: handleTabChange
})) : null;
return {
titleNodeHolder: titleNodeHolder
};
}