@nokecy/qc-ui 1.1.58 → 1.1.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -885,6 +885,10 @@ function AgGridPlus(props) {
885
885
  onRetry: onRefresh
886
886
  };
887
887
  }, [loadError, accessible, filtered, overlayNoRowsTemplateText, emptyState, onRefresh]);
888
+ // 调用方自带空态浮层时让位,见 resolveNoRowsOverlay。@author nokecy
889
+ var noRowsOverlay = (0, _react.useMemo)(function () {
890
+ return (0, _emptyState.resolveNoRowsOverlay)(_NoRowsOverlay.default, noRowsOverlayParams, rest.noRowsOverlayComponent, rest.noRowsOverlayComponentParams);
891
+ }, [noRowsOverlayParams, rest.noRowsOverlayComponent, rest.noRowsOverlayComponentParams]);
888
892
  (0, _react.useEffect)(function () {
889
893
  gridRef.current = {
890
894
  onRefresh: onRefresh
@@ -1323,8 +1327,8 @@ function AgGridPlus(props) {
1323
1327
  ensureDomOrder: true,
1324
1328
  columnHoverHighlight: true
1325
1329
  },
1326
- noRowsOverlayComponent: _NoRowsOverlay.default,
1327
- noRowsOverlayComponentParams: noRowsOverlayParams
1330
+ noRowsOverlayComponent: noRowsOverlay.component,
1331
+ noRowsOverlayComponentParams: noRowsOverlay.params
1328
1332
  // 加载中不显示空态:外层 Spin 已经在转,再叠一句「暂无数据」会让用户
1329
1333
  // 以为真的没数据(冒烟截图里这两者确实同时出现过)。@author nokecy
1330
1334
  ,
@@ -48,3 +48,9 @@
48
48
  .custom-cell-right {
49
49
  text-align: right !important;
50
50
  }
51
+
52
+ // 空态浮层里的「重试」「新建」「清空筛选」要能点:AG-Grid 给 .ag-overlay 设了 pointer-events: none,
53
+ // 只给加载浮层放开,空态浮层里的按钮因此点不到。只放开可交互元素,空白处仍穿透到表格。@author nokecy
54
+ .ag-overlay-no-rows-wrapper :is(button, a, input, [role='button']) {
55
+ pointer-events: auto;
56
+ }
@@ -11,6 +11,7 @@ var _icons = require("@ant-design/icons");
11
11
  var _antdV = require("@formily/antd-v5");
12
12
  var _react2 = require("@formily/react");
13
13
  var _arrayTable = _interopRequireDefault(require("../../array-table"));
14
+ var _columnGroupUtils = require("./columnGroupUtils");
14
15
  var _NameColumnRenderer = _interopRequireDefault(require("./NameColumnRenderer"));
15
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -304,7 +305,7 @@ var ColumnConfigForm = function ColumnConfigForm(_ref) {
304
305
  return /*#__PURE__*/_react.default.createElement("span", null, "-");
305
306
  }
306
307
  return /*#__PURE__*/_react.default.createElement(_antdV.Select, {
307
- value: props.value || 'custom-cell-left',
308
+ value: (0, _columnGroupUtils.normalizeCellAlign)(props.value),
308
309
  onChange: props.onChange,
309
310
  options: [{
310
311
  value: 'custom-cell-left',
@@ -178,7 +178,7 @@ var AlignmentCellRenderer = function AlignmentCellRenderer(props) {
178
178
  if (!item || item.type !== 'column') return /*#__PURE__*/_react.default.createElement("span", null, "-");
179
179
 
180
180
  // 标准化 cellClass 值,默认为左对齐
181
- var normalizedValue = item.cellClass || 'custom-cell-left';
181
+ var normalizedValue = (0, _columnGroupUtils.normalizeCellAlign)(item.cellClass);
182
182
  return /*#__PURE__*/_react.default.createElement(_antd.Select, {
183
183
  value: normalizedValue,
184
184
  onChange: function onChange(val) {
@@ -6,6 +6,11 @@ interface ColumnSettingProps {
6
6
  visible: boolean;
7
7
  onClose: () => void;
8
8
  onSaveColumnState: (state: any) => void;
9
+ /**
10
+ * 调用方自带的原始列定义(含 cellRenderer 等),优先于 Context。
11
+ * ArrayTable 不在 AgGridPlus 的 Context 里,不传会导致保存后重建出裸列、单元格空白。@author nokecy
12
+ */
13
+ allColDefs?: any[];
9
14
  }
10
15
  /**
11
16
  * 列方案管理组件 - 集成列配置和列方案管理
@@ -56,14 +56,15 @@ var ColumnSetting = function ColumnSetting(_ref) {
56
56
  gridApi = _ref.gridApi,
57
57
  visible = _ref.visible,
58
58
  onClose = _ref.onClose,
59
- onSaveColumnState = _ref.onSaveColumnState;
59
+ onSaveColumnState = _ref.onSaveColumnState,
60
+ allColDefsProp = _ref.allColDefs;
60
61
  var gridTheme = (0, _theme.useAgGridTheme)();
61
62
  // 使用新的集中式方案管理 API(包含状态数据和操作方法)
62
63
  var _useGridSchemes = (0, _useSchemeManager.useGridSchemes)(),
63
64
  columnSchemes = _useGridSchemes.columnSchemes,
64
65
  currentSchemes = _useGridSchemes.currentSchemes,
65
- allColDefs = _useGridSchemes.allColDefs,
66
- initialColumnDefs = _useGridSchemes.initialColumnDefs,
66
+ contextAllColDefs = _useGridSchemes.allColDefs,
67
+ contextInitialColumnDefs = _useGridSchemes.initialColumnDefs,
67
68
  saveColumnScheme = _useGridSchemes.saveColumnScheme,
68
69
  deleteColumnScheme = _useGridSchemes.deleteColumnScheme,
69
70
  setCurrentColumnScheme = _useGridSchemes.setCurrentColumnScheme,
@@ -73,6 +74,10 @@ var ColumnSetting = function ColumnSetting(_ref) {
73
74
  globalConfigPermissions = _useGridSchemes.globalConfigPermissions,
74
75
  isUsingGlobalFallback = _useGridSchemes.isUsingGlobalFallback;
75
76
 
77
+ // 调用方传入的列定义优先:Context 里的属于外层 AgGridPlus 或为空 @author nokecy
78
+ var allColDefs = allColDefsProp !== null && allColDefsProp !== void 0 ? allColDefsProp : contextAllColDefs;
79
+ var initialColumnDefs = allColDefsProp !== null && allColDefsProp !== void 0 ? allColDefsProp : contextInitialColumnDefs;
80
+
76
81
  // 解构权限信息
77
82
  var canApplyToGlobal = (_globalConfigPermissi = globalConfigPermissions === null || globalConfigPermissions === void 0 ? void 0 : globalConfigPermissions.canApplyToGlobal) !== null && _globalConfigPermissi !== void 0 ? _globalConfigPermissi : false;
78
83
  var canResetAllUsers = (_globalConfigPermissi2 = globalConfigPermissions === null || globalConfigPermissions === void 0 ? void 0 : globalConfigPermissions.canResetAllUsers) !== null && _globalConfigPermissi2 !== void 0 ? _globalConfigPermissi2 : false;
@@ -95,3 +95,9 @@ export declare function isOldSchemeData(data: any[]): boolean;
95
95
  * @returns AG-Grid columnState 数组
96
96
  */
97
97
  export declare function flatConfigToColumnState(flatConfig: FlatColumnItem[], originalColumnDefs?: (ColDef | ColGroupDef)[]): any[];
98
+ /**
99
+ * 把列上的 cellClass 归一为对齐下拉的三个选项值。
100
+ * 列定义里可能是 AG-Grid 数值类型自带的 ag-right-aligned-cell、ArrayTable 的 ag-cell-right 等,
101
+ * 下拉只认 custom-cell-*,不归一就会把原始类名直接显示出来。@author nokecy
102
+ */
103
+ export declare function normalizeCellAlign(cellClass: unknown): 'custom-cell-left' | 'custom-cell-centered' | 'custom-cell-right';
@@ -13,6 +13,7 @@ exports.generateId = void 0;
13
13
  exports.gridStateToFlatConfig = gridStateToFlatConfig;
14
14
  exports.isOldSchemeData = isOldSchemeData;
15
15
  exports.migrateOldScheme = migrateOldScheme;
16
+ exports.normalizeCellAlign = normalizeCellAlign;
16
17
  exports.reorderItems = reorderItems;
17
18
  var _lodash = require("lodash");
18
19
  var _logger = require("../utils/logger");
@@ -629,4 +630,16 @@ function flatConfigToColumnState(flatConfig, originalColumnDefs) {
629
630
  }
630
631
  }
631
632
  return result;
633
+ }
634
+
635
+ /**
636
+ * 把列上的 cellClass 归一为对齐下拉的三个选项值。
637
+ * 列定义里可能是 AG-Grid 数值类型自带的 ag-right-aligned-cell、ArrayTable 的 ag-cell-right 等,
638
+ * 下拉只认 custom-cell-*,不归一就会把原始类名直接显示出来。@author nokecy
639
+ */
640
+ function normalizeCellAlign(cellClass) {
641
+ var text = Array.isArray(cellClass) ? cellClass.join(' ') : typeof cellClass === 'string' ? cellClass : '';
642
+ if (/right/.test(text)) return 'custom-cell-right';
643
+ if (/cent/.test(text)) return 'custom-cell-centered';
644
+ return 'custom-cell-left';
632
645
  }
@@ -26,6 +26,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
26
  var Setting = function Setting(props) {
27
27
  var gridKey = props.gridKey,
28
28
  gridApi = props.gridApi,
29
+ allColDefs = props.allColDefs,
29
30
  onSaveColumnState = props.onSaveColumnState,
30
31
  _props$showQuerySchem = props.showQueryScheme,
31
32
  showQueryScheme = _props$showQuerySchem === void 0 ? true : _props$showQuerySchem;
@@ -78,7 +79,8 @@ var Setting = function Setting(props) {
78
79
  onClose: function onClose() {
79
80
  return setColumnSettingVisible(false);
80
81
  },
81
- onSaveColumnState: onSaveColumnState || function () {}
82
+ onSaveColumnState: onSaveColumnState || function () {},
83
+ allColDefs: allColDefs
82
84
  }), gridKey && showQueryScheme && /*#__PURE__*/_react.default.createElement(_QuerySchemeManager.default, {
83
85
  gridKey: gridKey,
84
86
  visible: querySchemeVisible,
@@ -40,3 +40,15 @@ export declare function resolveEmptyText(state: {
40
40
  override?: string;
41
41
  texts?: EmptyStateTexts;
42
42
  }): string;
43
+ /**
44
+ * 选出空态浮层组件及其入参。
45
+ * 调用方传了 `noRowsOverlayComponent` 就用调用方的:宿主往往有自己的空态(例如无数据时带「新建」按钮、
46
+ * 外部筛选栏的「清空筛选」),此前内置浮层写死在 `...rest` 之后,把它们全部覆盖掉了。
47
+ * 入参合并:内置的 branch / text / onRetry 照样传给自定义组件,调用方同名入参优先。
48
+ *
49
+ * @author nokecy
50
+ */
51
+ export declare function resolveNoRowsOverlay<C, P extends object>(builtIn: C, builtInParams: P, custom?: C | null, customParams?: Record<string, any> | null): {
52
+ component: C;
53
+ params: P & Record<string, any>;
54
+ };
@@ -7,6 +7,12 @@ exports.DEFAULT_EMPTY_TEXTS = void 0;
7
7
  exports.hasEffectiveFilter = hasEffectiveFilter;
8
8
  exports.resolveEmptyBranch = resolveEmptyBranch;
9
9
  exports.resolveEmptyText = resolveEmptyText;
10
+ exports.resolveNoRowsOverlay = resolveNoRowsOverlay;
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
16
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
11
17
  /**
12
18
  * 表格空态四分。
@@ -74,4 +80,19 @@ function resolveEmptyText(state) {
74
80
  if (state.override) return state.override;
75
81
  var branch = resolveEmptyBranch(state);
76
82
  return (_state$texts$branch = (_state$texts = state.texts) === null || _state$texts === void 0 ? void 0 : _state$texts[branch]) !== null && _state$texts$branch !== void 0 ? _state$texts$branch : DEFAULT_EMPTY_TEXTS[branch];
83
+ }
84
+
85
+ /**
86
+ * 选出空态浮层组件及其入参。
87
+ * 调用方传了 `noRowsOverlayComponent` 就用调用方的:宿主往往有自己的空态(例如无数据时带「新建」按钮、
88
+ * 外部筛选栏的「清空筛选」),此前内置浮层写死在 `...rest` 之后,把它们全部覆盖掉了。
89
+ * 入参合并:内置的 branch / text / onRetry 照样传给自定义组件,调用方同名入参优先。
90
+ *
91
+ * @author nokecy
92
+ */
93
+ function resolveNoRowsOverlay(builtIn, builtInParams, custom, customParams) {
94
+ return {
95
+ component: custom !== null && custom !== void 0 ? custom : builtIn,
96
+ params: customParams ? _objectSpread(_objectSpread({}, builtInParams), customParams) : builtInParams
97
+ };
77
98
  }
@@ -46,7 +46,7 @@ import _, { isArray } from 'lodash';
46
46
  import CustomGroupCellRenderer from "./_utils/customGroupCellRenderer";
47
47
  import NoRowsOverlay from "./shared/NoRowsOverlay";
48
48
  import { DEFAULT_PAGE_SIZE_OPTIONS } from "./utils/constants";
49
- import { hasEffectiveFilter, resolveEmptyBranch, resolveEmptyText } from "./utils/emptyState";
49
+ import { hasEffectiveFilter, resolveEmptyBranch, resolveEmptyText, resolveNoRowsOverlay } from "./utils/emptyState";
50
50
  import processColumnGroups from "./_utils/processColumnGroups";
51
51
  import flattenColumnState from "./_utils/processFormColumnState";
52
52
  import { localeText } from "./locale";
@@ -877,6 +877,10 @@ function AgGridPlus(props) {
877
877
  onRetry: onRefresh
878
878
  };
879
879
  }, [loadError, accessible, filtered, overlayNoRowsTemplateText, emptyState, onRefresh]);
880
+ // 调用方自带空态浮层时让位,见 resolveNoRowsOverlay。@author nokecy
881
+ var noRowsOverlay = useMemo(function () {
882
+ return resolveNoRowsOverlay(NoRowsOverlay, noRowsOverlayParams, rest.noRowsOverlayComponent, rest.noRowsOverlayComponentParams);
883
+ }, [noRowsOverlayParams, rest.noRowsOverlayComponent, rest.noRowsOverlayComponentParams]);
880
884
  useEffect(function () {
881
885
  gridRef.current = {
882
886
  onRefresh: onRefresh
@@ -1315,8 +1319,8 @@ function AgGridPlus(props) {
1315
1319
  ensureDomOrder: true,
1316
1320
  columnHoverHighlight: true
1317
1321
  },
1318
- noRowsOverlayComponent: NoRowsOverlay,
1319
- noRowsOverlayComponentParams: noRowsOverlayParams
1322
+ noRowsOverlayComponent: noRowsOverlay.component,
1323
+ noRowsOverlayComponentParams: noRowsOverlay.params
1320
1324
  // 加载中不显示空态:外层 Spin 已经在转,再叠一句「暂无数据」会让用户
1321
1325
  // 以为真的没数据(冒烟截图里这两者确实同时出现过)。@author nokecy
1322
1326
  ,
@@ -48,3 +48,9 @@
48
48
  .custom-cell-right {
49
49
  text-align: right !important;
50
50
  }
51
+
52
+ // 空态浮层里的「重试」「新建」「清空筛选」要能点:AG-Grid 给 .ag-overlay 设了 pointer-events: none,
53
+ // 只给加载浮层放开,空态浮层里的按钮因此点不到。只放开可交互元素,空白处仍穿透到表格。@author nokecy
54
+ .ag-overlay-no-rows-wrapper :is(button, a, input, [role='button']) {
55
+ pointer-events: auto;
56
+ }
@@ -10,6 +10,7 @@ import { DeleteOutlined, HolderOutlined } from '@ant-design/icons';
10
10
  import { FormGrid, FormItem, FormLayout, Input, Select, NumberPicker, Switch } from '@formily/antd-v5';
11
11
  import { createSchemaField } from '@formily/react';
12
12
  import ArrayTable from "../../array-table";
13
+ import { normalizeCellAlign } from "./columnGroupUtils";
13
14
  import NameColumnRenderer from "./NameColumnRenderer";
14
15
  var SchemaField = createSchemaField({
15
16
  components: {
@@ -294,7 +295,7 @@ var ColumnConfigForm = function ColumnConfigForm(_ref) {
294
295
  return /*#__PURE__*/React.createElement("span", null, "-");
295
296
  }
296
297
  return /*#__PURE__*/React.createElement(Select, {
297
- value: props.value || 'custom-cell-left',
298
+ value: normalizeCellAlign(props.value),
298
299
  onChange: props.onChange,
299
300
  options: [{
300
301
  value: 'custom-cell-left',
@@ -23,7 +23,7 @@ import React, { useCallback, useMemo, useState, useRef, useEffect } from 'react'
23
23
  import { Button, Select, Switch, Space, Popconfirm, message, Tag } from 'antd';
24
24
  import { DeleteOutlined, FolderOutlined, FolderAddOutlined, FileOutlined } from '@ant-design/icons';
25
25
  import { AgGridReact } from 'ag-grid-react';
26
- import { generateId } from "./columnGroupUtils";
26
+ import { generateId, normalizeCellAlign } from "./columnGroupUtils";
27
27
  import { DebounceNumberInput } from "./DebounceInputs";
28
28
  import { useAgGridTheme } from "../theme";
29
29
  import { ColumnNameCellRenderer } from "./ColumnNameCellRenderer";
@@ -172,7 +172,7 @@ var AlignmentCellRenderer = function AlignmentCellRenderer(props) {
172
172
  if (!item || item.type !== 'column') return /*#__PURE__*/React.createElement("span", null, "-");
173
173
 
174
174
  // 标准化 cellClass 值,默认为左对齐
175
- var normalizedValue = item.cellClass || 'custom-cell-left';
175
+ var normalizedValue = normalizeCellAlign(item.cellClass);
176
176
  return /*#__PURE__*/React.createElement(Select, {
177
177
  value: normalizedValue,
178
178
  onChange: function onChange(val) {
@@ -6,6 +6,11 @@ interface ColumnSettingProps {
6
6
  visible: boolean;
7
7
  onClose: () => void;
8
8
  onSaveColumnState: (state: any) => void;
9
+ /**
10
+ * 调用方自带的原始列定义(含 cellRenderer 等),优先于 Context。
11
+ * ArrayTable 不在 AgGridPlus 的 Context 里,不传会导致保存后重建出裸列、单元格空白。@author nokecy
12
+ */
13
+ allColDefs?: any[];
9
14
  }
10
15
  /**
11
16
  * 列方案管理组件 - 集成列配置和列方案管理
@@ -49,14 +49,15 @@ var ColumnSetting = function ColumnSetting(_ref) {
49
49
  gridApi = _ref.gridApi,
50
50
  visible = _ref.visible,
51
51
  onClose = _ref.onClose,
52
- onSaveColumnState = _ref.onSaveColumnState;
52
+ onSaveColumnState = _ref.onSaveColumnState,
53
+ allColDefsProp = _ref.allColDefs;
53
54
  var gridTheme = useAgGridTheme();
54
55
  // 使用新的集中式方案管理 API(包含状态数据和操作方法)
55
56
  var _useGridSchemes = useGridSchemes(),
56
57
  columnSchemes = _useGridSchemes.columnSchemes,
57
58
  currentSchemes = _useGridSchemes.currentSchemes,
58
- allColDefs = _useGridSchemes.allColDefs,
59
- initialColumnDefs = _useGridSchemes.initialColumnDefs,
59
+ contextAllColDefs = _useGridSchemes.allColDefs,
60
+ contextInitialColumnDefs = _useGridSchemes.initialColumnDefs,
60
61
  saveColumnScheme = _useGridSchemes.saveColumnScheme,
61
62
  deleteColumnScheme = _useGridSchemes.deleteColumnScheme,
62
63
  setCurrentColumnScheme = _useGridSchemes.setCurrentColumnScheme,
@@ -66,6 +67,10 @@ var ColumnSetting = function ColumnSetting(_ref) {
66
67
  globalConfigPermissions = _useGridSchemes.globalConfigPermissions,
67
68
  isUsingGlobalFallback = _useGridSchemes.isUsingGlobalFallback;
68
69
 
70
+ // 调用方传入的列定义优先:Context 里的属于外层 AgGridPlus 或为空 @author nokecy
71
+ var allColDefs = allColDefsProp !== null && allColDefsProp !== void 0 ? allColDefsProp : contextAllColDefs;
72
+ var initialColumnDefs = allColDefsProp !== null && allColDefsProp !== void 0 ? allColDefsProp : contextInitialColumnDefs;
73
+
69
74
  // 解构权限信息
70
75
  var canApplyToGlobal = (_globalConfigPermissi = globalConfigPermissions === null || globalConfigPermissions === void 0 ? void 0 : globalConfigPermissions.canApplyToGlobal) !== null && _globalConfigPermissi !== void 0 ? _globalConfigPermissi : false;
71
76
  var canResetAllUsers = (_globalConfigPermissi2 = globalConfigPermissions === null || globalConfigPermissions === void 0 ? void 0 : globalConfigPermissions.canResetAllUsers) !== null && _globalConfigPermissi2 !== void 0 ? _globalConfigPermissi2 : false;
@@ -95,3 +95,9 @@ export declare function isOldSchemeData(data: any[]): boolean;
95
95
  * @returns AG-Grid columnState 数组
96
96
  */
97
97
  export declare function flatConfigToColumnState(flatConfig: FlatColumnItem[], originalColumnDefs?: (ColDef | ColGroupDef)[]): any[];
98
+ /**
99
+ * 把列上的 cellClass 归一为对齐下拉的三个选项值。
100
+ * 列定义里可能是 AG-Grid 数值类型自带的 ag-right-aligned-cell、ArrayTable 的 ag-cell-right 等,
101
+ * 下拉只认 custom-cell-*,不归一就会把原始类名直接显示出来。@author nokecy
102
+ */
103
+ export declare function normalizeCellAlign(cellClass: unknown): 'custom-cell-left' | 'custom-cell-centered' | 'custom-cell-right';
@@ -615,4 +615,16 @@ export function flatConfigToColumnState(flatConfig, originalColumnDefs) {
615
615
  }
616
616
  }
617
617
  return result;
618
+ }
619
+
620
+ /**
621
+ * 把列上的 cellClass 归一为对齐下拉的三个选项值。
622
+ * 列定义里可能是 AG-Grid 数值类型自带的 ag-right-aligned-cell、ArrayTable 的 ag-cell-right 等,
623
+ * 下拉只认 custom-cell-*,不归一就会把原始类名直接显示出来。@author nokecy
624
+ */
625
+ export function normalizeCellAlign(cellClass) {
626
+ var text = Array.isArray(cellClass) ? cellClass.join(' ') : typeof cellClass === 'string' ? cellClass : '';
627
+ if (/right/.test(text)) return 'custom-cell-right';
628
+ if (/cent/.test(text)) return 'custom-cell-centered';
629
+ return 'custom-cell-left';
618
630
  }
@@ -16,6 +16,7 @@ import QuerySchemeManager from "./QuerySchemeManager";
16
16
  var Setting = function Setting(props) {
17
17
  var gridKey = props.gridKey,
18
18
  gridApi = props.gridApi,
19
+ allColDefs = props.allColDefs,
19
20
  onSaveColumnState = props.onSaveColumnState,
20
21
  _props$showQuerySchem = props.showQueryScheme,
21
22
  showQueryScheme = _props$showQuerySchem === void 0 ? true : _props$showQuerySchem;
@@ -68,7 +69,8 @@ var Setting = function Setting(props) {
68
69
  onClose: function onClose() {
69
70
  return setColumnSettingVisible(false);
70
71
  },
71
- onSaveColumnState: onSaveColumnState || function () {}
72
+ onSaveColumnState: onSaveColumnState || function () {},
73
+ allColDefs: allColDefs
72
74
  }), gridKey && showQueryScheme && /*#__PURE__*/React.createElement(QuerySchemeManager, {
73
75
  gridKey: gridKey,
74
76
  visible: querySchemeVisible,
@@ -40,3 +40,15 @@ export declare function resolveEmptyText(state: {
40
40
  override?: string;
41
41
  texts?: EmptyStateTexts;
42
42
  }): string;
43
+ /**
44
+ * 选出空态浮层组件及其入参。
45
+ * 调用方传了 `noRowsOverlayComponent` 就用调用方的:宿主往往有自己的空态(例如无数据时带「新建」按钮、
46
+ * 外部筛选栏的「清空筛选」),此前内置浮层写死在 `...rest` 之后,把它们全部覆盖掉了。
47
+ * 入参合并:内置的 branch / text / onRetry 照样传给自定义组件,调用方同名入参优先。
48
+ *
49
+ * @author nokecy
50
+ */
51
+ export declare function resolveNoRowsOverlay<C, P extends object>(builtIn: C, builtInParams: P, custom?: C | null, customParams?: Record<string, any> | null): {
52
+ component: C;
53
+ params: P & Record<string, any>;
54
+ };
@@ -1,3 +1,8 @@
1
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
5
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
6
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
7
  /**
3
8
  * 表格空态四分。
@@ -65,4 +70,19 @@ export function resolveEmptyText(state) {
65
70
  if (state.override) return state.override;
66
71
  var branch = resolveEmptyBranch(state);
67
72
  return (_state$texts$branch = (_state$texts = state.texts) === null || _state$texts === void 0 ? void 0 : _state$texts[branch]) !== null && _state$texts$branch !== void 0 ? _state$texts$branch : DEFAULT_EMPTY_TEXTS[branch];
73
+ }
74
+
75
+ /**
76
+ * 选出空态浮层组件及其入参。
77
+ * 调用方传了 `noRowsOverlayComponent` 就用调用方的:宿主往往有自己的空态(例如无数据时带「新建」按钮、
78
+ * 外部筛选栏的「清空筛选」),此前内置浮层写死在 `...rest` 之后,把它们全部覆盖掉了。
79
+ * 入参合并:内置的 branch / text / onRetry 照样传给自定义组件,调用方同名入参优先。
80
+ *
81
+ * @author nokecy
82
+ */
83
+ export function resolveNoRowsOverlay(builtIn, builtInParams, custom, customParams) {
84
+ return {
85
+ component: custom !== null && custom !== void 0 ? custom : builtIn,
86
+ params: customParams ? _objectSpread(_objectSpread({}, builtInParams), customParams) : builtInParams
87
+ };
68
88
  }