UNPKG

@schema-render/search-table-react

Version:
188 lines (187 loc) 7.64 kB
"use strict"; 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 }; }