@nokecy/qc-ui-components 2.0.0-beta.0 → 2.0.0-beta.1
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.
- package/dist/cjs/ConfirmPro/index.d.ts +12 -9
- package/dist/cjs/ConfirmPro/index.js +11 -34
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +422 -156
- package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +12 -1
- package/dist/cjs/ag-grid-plus/context/queryFormContext.d.ts +2 -0
- package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
- package/dist/cjs/ag-grid-plus/density.d.ts +25 -0
- package/dist/cjs/ag-grid-plus/density.js +52 -0
- package/dist/cjs/ag-grid-plus/index.less +36 -0
- package/dist/cjs/ag-grid-plus/interface.d.ts +58 -1
- package/dist/cjs/ag-grid-plus/interface.js +1 -1
- package/dist/cjs/ag-grid-plus/queryForm/index.d.ts +11 -0
- package/dist/cjs/ag-grid-plus/queryForm/index.js +62 -10
- package/dist/cjs/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
- package/dist/cjs/ag-grid-plus/queryForm/queryForm.js +63 -26
- package/dist/cjs/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
- package/dist/cjs/ag-grid-plus/queryForm/queryValues.js +61 -0
- package/dist/cjs/ag-grid-plus/rowColors.d.ts +12 -0
- package/dist/cjs/ag-grid-plus/rowColors.js +58 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +108 -76
- package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
- package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
- package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.js +206 -0
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +19 -1
- package/dist/cjs/ag-grid-plus/setting/index.js +5 -14
- package/dist/cjs/ag-grid-plus/settingItem/index.d.ts +11 -1
- package/dist/cjs/ag-grid-plus/settingItem/index.js +34 -12
- package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
- package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.js +87 -0
- package/dist/cjs/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
- package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
- package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.js +40 -0
- package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
- package/dist/cjs/ag-grid-plus/theme.d.ts +7 -1
- package/dist/cjs/ag-grid-plus/theme.js +31 -6
- package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
- package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.js +128 -0
- package/dist/cjs/ag-grid-plus/toolBar/index.d.ts +3 -1
- package/dist/cjs/ag-grid-plus/toolBar/index.js +43 -35
- package/dist/cjs/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
- package/dist/cjs/ag-grid-plus/toolBar/leftContent.js +2 -2
- package/dist/cjs/ag-grid-plus/toolBar/overflow.d.ts +20 -0
- package/dist/cjs/ag-grid-plus/toolBar/overflow.js +48 -0
- package/dist/cjs/ag-grid-plus/toolBar/style.js +71 -15
- package/dist/cjs/ag-grid-plus/types.d.ts +6 -0
- package/dist/cjs/ag-grid-plus/utils/agGridCompat.js +12 -3
- package/dist/cjs/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
- package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +13 -2
- package/dist/cjs/ag-grid-plus/utils/constants.d.ts +3 -2
- package/dist/cjs/ag-grid-plus/utils/constants.js +3 -2
- package/dist/cjs/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
- package/dist/cjs/ag-grid-plus/utils/crossPageSelection.js +58 -0
- package/dist/cjs/ag-grid-plus/utils/emptyState.d.ts +2 -0
- package/dist/cjs/ag-grid-plus/utils/emptyState.js +9 -5
- package/dist/cjs/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
- package/dist/cjs/ag-grid-plus/utils/listKeyboard.js +83 -0
- package/dist/cjs/ag-grid-plus/utils/pagination.d.ts +26 -0
- package/dist/cjs/ag-grid-plus/utils/pagination.js +69 -0
- package/dist/cjs/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
- package/dist/cjs/ag-grid-plus/utils/queryDispatch.js +17 -0
- package/dist/cjs/ag-grid-plus/utils/statusPill.d.ts +25 -0
- package/dist/cjs/ag-grid-plus/utils/statusPill.js +196 -0
- package/dist/cjs/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
- package/dist/cjs/ag-grid-plus/utils/valueEnumColor.js +13 -9
- package/dist/cjs/ag-grid-plus/utils/valueFormat.d.ts +19 -0
- package/dist/cjs/ag-grid-plus/utils/valueFormat.js +73 -0
- package/dist/cjs/ag-grid-plus/utils.js +3 -2
- package/dist/cjs/array-table/arrayAddBtn.d.ts +1 -0
- package/dist/cjs/array-table/arrayAddBtn.js +2 -2
- package/dist/cjs/array-table/autoHeight.d.ts +18 -0
- package/dist/cjs/array-table/autoHeight.js +30 -0
- package/dist/cjs/array-table/batchRemove.d.ts +2 -2
- package/dist/cjs/array-table/cellEditorMarker.d.ts +18 -0
- package/dist/cjs/array-table/cellEditorMarker.js +92 -0
- package/dist/cjs/array-table/errorLocator.d.ts +29 -0
- package/dist/cjs/array-table/errorLocator.js +101 -0
- package/dist/cjs/array-table/hooks.d.ts +52 -4
- package/dist/cjs/array-table/hooks.js +251 -18
- package/dist/cjs/array-table/index.d.ts +6 -0
- package/dist/cjs/array-table/index.js +167 -23
- package/dist/cjs/array-table/interface.d.ts +22 -0
- package/dist/cjs/array-table/preview.js +39 -5
- package/dist/cjs/array-table/rowFeedback.d.ts +2 -2
- package/dist/cjs/array-table/rowFeedback.js +8 -8
- package/dist/cjs/array-table/summary.d.ts +25 -0
- package/dist/cjs/array-table/summary.js +70 -0
- package/dist/cjs/array-table/theme.d.ts +35 -5
- package/dist/cjs/array-table/theme.js +49 -12
- package/dist/cjs/array-table/title.d.ts +3 -0
- package/dist/cjs/array-table/title.js +29 -0
- package/dist/cjs/array-table/utils.d.ts +2 -1
- package/dist/cjs/array-table/utils.js +94 -23
- package/dist/cjs/card/pro-card/Card/useLegacyItems.d.ts +1 -1
- package/dist/cjs/dateCellEditor/DateCellEditor.d.ts +5 -0
- package/dist/cjs/dateCellEditor/DateCellEditor.js +42 -17
- package/dist/cjs/deleteConfirm/index.d.ts +14 -0
- package/dist/cjs/deleteConfirm/index.js +73 -12
- package/dist/cjs/dialogSelect/index.d.ts +19 -0
- package/dist/cjs/dialogSelect/index.js +189 -15
- package/dist/cjs/dialogSelect/index.less +18 -0
- package/dist/cjs/documentPage/documentPage.d.ts +6 -3
- package/dist/cjs/documentPage/documentPage.js +23 -8
- package/dist/cjs/documentPage/index.d.ts +2 -0
- package/dist/cjs/documentPage/index.js +19 -0
- package/dist/cjs/documentPage/leaveGuard.d.ts +31 -0
- package/dist/cjs/documentPage/leaveGuard.js +91 -0
- package/dist/cjs/draggableModal/index.d.ts +24 -1
- package/dist/cjs/draggableModal/index.js +36 -6
- package/dist/cjs/fullScreenAlert/index.less +10 -10
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +15 -0
- package/dist/cjs/readPretty/arrayTable.js +5 -1
- package/dist/cjs/scanCollect/ScanFeedbackInput.d.ts +26 -0
- package/dist/cjs/scanCollect/ScanFeedbackInput.js +113 -0
- package/dist/cjs/scanCollect/index.d.ts +4 -0
- package/dist/cjs/scanCollect/index.js +14 -0
- package/dist/cjs/scanCollect/scanSound.d.ts +15 -0
- package/dist/cjs/scanCollect/scanSound.js +91 -0
- package/dist/esm/ConfirmPro/index.d.ts +12 -9
- package/dist/esm/ConfirmPro/index.js +11 -34
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +423 -156
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts +12 -1
- package/dist/esm/ag-grid-plus/context/queryFormContext.d.ts +2 -0
- package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
- package/dist/esm/ag-grid-plus/density.d.ts +25 -0
- package/dist/esm/ag-grid-plus/density.js +45 -0
- package/dist/esm/ag-grid-plus/index.less +36 -0
- package/dist/esm/ag-grid-plus/interface.d.ts +58 -1
- package/dist/esm/ag-grid-plus/interface.js +2 -0
- package/dist/esm/ag-grid-plus/queryForm/index.d.ts +11 -0
- package/dist/esm/ag-grid-plus/queryForm/index.js +62 -10
- package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
- package/dist/esm/ag-grid-plus/queryForm/queryForm.js +64 -26
- package/dist/esm/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
- package/dist/esm/ag-grid-plus/queryForm/queryValues.js +54 -0
- package/dist/esm/ag-grid-plus/rowColors.d.ts +12 -0
- package/dist/esm/ag-grid-plus/rowColors.js +50 -0
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +110 -78
- package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
- package/dist/esm/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
- package/dist/esm/ag-grid-plus/setting/autoColumnMemory.js +198 -0
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +18 -1
- package/dist/esm/ag-grid-plus/setting/index.js +6 -15
- package/dist/esm/ag-grid-plus/settingItem/index.d.ts +11 -1
- package/dist/esm/ag-grid-plus/settingItem/index.js +35 -13
- package/dist/esm/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
- package/dist/esm/ag-grid-plus/shared/EmptyIllustration.js +82 -0
- package/dist/esm/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
- package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
- package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.js +34 -0
- package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
- package/dist/esm/ag-grid-plus/theme.d.ts +7 -1
- package/dist/esm/ag-grid-plus/theme.js +31 -6
- package/dist/esm/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
- package/dist/esm/ag-grid-plus/toolBar/OverflowActions.js +120 -0
- package/dist/esm/ag-grid-plus/toolBar/index.d.ts +3 -1
- package/dist/esm/ag-grid-plus/toolBar/index.js +43 -35
- package/dist/esm/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
- package/dist/esm/ag-grid-plus/toolBar/leftContent.js +2 -2
- package/dist/esm/ag-grid-plus/toolBar/overflow.d.ts +20 -0
- package/dist/esm/ag-grid-plus/toolBar/overflow.js +41 -0
- package/dist/esm/ag-grid-plus/toolBar/style.js +71 -15
- package/dist/esm/ag-grid-plus/types.d.ts +6 -0
- package/dist/esm/ag-grid-plus/utils/agGridCompat.js +12 -3
- package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
- package/dist/esm/ag-grid-plus/utils/columnProcessors.js +14 -3
- package/dist/esm/ag-grid-plus/utils/constants.d.ts +3 -2
- package/dist/esm/ag-grid-plus/utils/constants.js +3 -2
- package/dist/esm/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
- package/dist/esm/ag-grid-plus/utils/crossPageSelection.js +52 -0
- package/dist/esm/ag-grid-plus/utils/emptyState.d.ts +2 -0
- package/dist/esm/ag-grid-plus/utils/emptyState.js +9 -5
- package/dist/esm/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
- package/dist/esm/ag-grid-plus/utils/listKeyboard.js +77 -0
- package/dist/esm/ag-grid-plus/utils/pagination.d.ts +26 -0
- package/dist/esm/ag-grid-plus/utils/pagination.js +60 -0
- package/dist/esm/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
- package/dist/esm/ag-grid-plus/utils/queryDispatch.js +11 -0
- package/dist/esm/ag-grid-plus/utils/statusPill.d.ts +25 -0
- package/dist/esm/ag-grid-plus/utils/statusPill.js +192 -0
- package/dist/esm/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
- package/dist/esm/ag-grid-plus/utils/valueEnumColor.js +12 -8
- package/dist/esm/ag-grid-plus/utils/valueFormat.d.ts +19 -0
- package/dist/esm/ag-grid-plus/utils/valueFormat.js +63 -0
- package/dist/esm/ag-grid-plus/utils.js +3 -2
- package/dist/esm/array-table/arrayAddBtn.d.ts +1 -0
- package/dist/esm/array-table/arrayAddBtn.js +1 -1
- package/dist/esm/array-table/autoHeight.d.ts +18 -0
- package/dist/esm/array-table/autoHeight.js +25 -0
- package/dist/esm/array-table/batchRemove.d.ts +2 -2
- package/dist/esm/array-table/cellEditorMarker.d.ts +18 -0
- package/dist/esm/array-table/cellEditorMarker.js +84 -0
- package/dist/esm/array-table/errorLocator.d.ts +29 -0
- package/dist/esm/array-table/errorLocator.js +95 -0
- package/dist/esm/array-table/hooks.d.ts +52 -4
- package/dist/esm/array-table/hooks.js +251 -17
- package/dist/esm/array-table/index.d.ts +6 -0
- package/dist/esm/array-table/index.js +170 -25
- package/dist/esm/array-table/interface.d.ts +22 -0
- package/dist/esm/array-table/preview.js +43 -7
- package/dist/esm/array-table/rowFeedback.d.ts +2 -2
- package/dist/esm/array-table/rowFeedback.js +8 -8
- package/dist/esm/array-table/summary.d.ts +25 -0
- package/dist/esm/array-table/summary.js +66 -0
- package/dist/esm/array-table/theme.d.ts +35 -5
- package/dist/esm/array-table/theme.js +47 -12
- package/dist/esm/array-table/title.d.ts +3 -0
- package/dist/esm/array-table/title.js +24 -0
- package/dist/esm/array-table/utils.d.ts +2 -1
- package/dist/esm/array-table/utils.js +93 -22
- package/dist/esm/card/pro-card/Card/useLegacyItems.d.ts +1 -1
- package/dist/esm/dateCellEditor/DateCellEditor.d.ts +5 -0
- package/dist/esm/dateCellEditor/DateCellEditor.js +42 -17
- package/dist/esm/deleteConfirm/index.d.ts +14 -0
- package/dist/esm/deleteConfirm/index.js +72 -12
- package/dist/esm/dialogSelect/index.d.ts +19 -0
- package/dist/esm/dialogSelect/index.js +190 -16
- package/dist/esm/dialogSelect/index.less +18 -0
- package/dist/esm/documentPage/documentPage.d.ts +6 -3
- package/dist/esm/documentPage/documentPage.js +23 -8
- package/dist/esm/documentPage/index.d.ts +2 -0
- package/dist/esm/documentPage/index.js +1 -0
- package/dist/esm/documentPage/leaveGuard.d.ts +31 -0
- package/dist/esm/documentPage/leaveGuard.js +86 -0
- package/dist/esm/draggableModal/index.d.ts +24 -1
- package/dist/esm/draggableModal/index.js +35 -5
- package/dist/esm/fullScreenAlert/index.less +10 -10
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/readPretty/arrayTable.js +6 -2
- package/dist/esm/scanCollect/ScanFeedbackInput.d.ts +26 -0
- package/dist/esm/scanCollect/ScanFeedbackInput.js +107 -0
- package/dist/esm/scanCollect/index.d.ts +4 -0
- package/dist/esm/scanCollect/index.js +2 -0
- package/dist/esm/scanCollect/scanSound.d.ts +15 -0
- package/dist/esm/scanCollect/scanSound.js +84 -0
- package/package.json +2 -2
|
@@ -8,6 +8,7 @@ exports.useAgGridTheme = useAgGridTheme;
|
|
|
8
8
|
var _agGridCommunity = require("ag-grid-community");
|
|
9
9
|
var _antd = require("antd");
|
|
10
10
|
var _react = require("react");
|
|
11
|
+
var _rowColors = require("./rowColors");
|
|
11
12
|
/**
|
|
12
13
|
* AG-Grid v33 主题配置
|
|
13
14
|
* 使用 themeQuartz API 替代 CSS 变量方式
|
|
@@ -18,7 +19,18 @@ var headerFilterPlacement = (0, _agGridCommunity.createPart)({
|
|
|
18
19
|
feature: 'qcHeaderFilterPlacement',
|
|
19
20
|
css: "\n .ag-ltr .ag-right-aligned-header .ag-cell-label-container {\n flex-direction: row-reverse;\n }\n .ag-ltr .ag-right-aligned-header .ag-header-cell-filter-button {\n margin-left: var(--ag-spacing);\n margin-right: 0;\n }\n "
|
|
20
21
|
});
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 选中且悬浮行底色取 CSS 变量 `--qc-row-selected-hover-bg`(由 AgGridPlus 容器按主题写入):
|
|
25
|
+
* 否则选中行被悬浮时只显示悬浮色,「选中」反而变淡。
|
|
26
|
+
* 表头键盘焦点环用主色 2px 实线(对白底 ≥ 3:1),原先的 3px 浅色外环对比度不足。
|
|
27
|
+
* 内置编辑器只留单元格那一层框,去掉输入框自带的第二层;单元格错误态用 `ag-cell-error` 类名(列上 cellClassRules 返回即可)。@author nokecy
|
|
28
|
+
*/
|
|
29
|
+
var interactionStates = (0, _agGridCommunity.createPart)({
|
|
30
|
+
feature: 'qcInteractionStates',
|
|
31
|
+
css: "\n .ag-row-selected.ag-row-hover::before {\n background-color: var(--qc-row-selected-hover-bg, var(--ag-selected-row-background-color));\n }\n .ag-header-cell:focus-visible,\n .ag-header-group-cell:focus-visible {\n outline: 2px solid var(--ag-accent-color);\n outline-offset: -2px;\n box-shadow: none;\n }\n .ag-header-cell:focus-visible::after,\n .ag-header-group-cell:focus-visible::after {\n display: none;\n }\n .ag-cell-inline-editing .ag-input-field-input,\n .ag-cell-inline-editing .ag-text-field-input,\n .ag-cell-inline-editing .ag-select .ag-picker-field-wrapper,\n .ag-cell-inline-editing .ant-input,\n .ag-cell-inline-editing .ant-input-number,\n .ag-cell-inline-editing .ant-picker,\n .ag-cell-inline-editing .ant-select .ant-select-selector {\n border: 0 !important;\n box-shadow: none !important;\n outline: none !important;\n background-color: transparent;\n }\n /* \u805A\u7126\u3001\u9519\u8BEF\u53EA\u7528\u5355\u5143\u683C\u8FD9\u4E00\u5C42\u6846\u8868\u8FBE\uFF1Ainset \u4E0D\u5360\u5E03\u5C40\uFF0C\u4E5F\u4E0D\u4F1A\u53E0\u5728\u5355\u5143\u683C\u7EBF\u5916 */\n .ag-cell-inline-editing {\n border: 0 !important;\n box-shadow: inset 0 0 0 1px var(--ag-accent-color);\n }\n .ag-cell.ag-cell-error,\n .ag-cell-inline-editing.ag-cell-error {\n box-shadow: inset 0 0 0 1px var(--ag-invalid-color);\n }\n "
|
|
32
|
+
});
|
|
33
|
+
var agGridTheme = exports.agGridTheme = _agGridCommunity.themeQuartz.withPart(headerFilterPlacement).withPart(interactionStates).withParams({
|
|
22
34
|
// 基础颜色
|
|
23
35
|
backgroundColor: '#FFFFFF',
|
|
24
36
|
foregroundColor: '#555B62',
|
|
@@ -89,11 +101,16 @@ var agGridTheme = exports.agGridTheme = _agGridCommunity.themeQuartz.withPart(he
|
|
|
89
101
|
* 根据当前 Ant Design ConfigProvider 主题生成 AgGrid 主题色。
|
|
90
102
|
* 网格、筛选弹层、输入框和强调状态均直接跟随 antd 主题。@author nokecy
|
|
91
103
|
*/
|
|
92
|
-
function useAgGridTheme() {
|
|
104
|
+
function useAgGridTheme(options) {
|
|
93
105
|
var _antdTheme$useToken = _antd.theme.useToken(),
|
|
94
106
|
token = _antdTheme$useToken.token;
|
|
107
|
+
var density = options === null || options === void 0 ? void 0 : options.density;
|
|
108
|
+
var themeParams = options === null || options === void 0 ? void 0 : options.themeParams;
|
|
95
109
|
return (0, _react.useMemo)(function () {
|
|
96
|
-
|
|
110
|
+
var _rowColors$hover, _rowColors$selected;
|
|
111
|
+
// 规范底色:主色朝白混合,链接压其上 ≥ 4.5:1;主色不是 6 位 hex 时退回 antd 派生
|
|
112
|
+
var rowColors = (0, _rowColors.deriveRowColors)(token.colorPrimary, token.colorLink);
|
|
113
|
+
var themed = agGridTheme.withParams({
|
|
97
114
|
// 弹层可能挂到网格容器之外,必须由组件主题完整声明颜色。@author nokecy
|
|
98
115
|
backgroundColor: token.colorBgContainer,
|
|
99
116
|
foregroundColor: token.colorText,
|
|
@@ -116,8 +133,8 @@ function useAgGridTheme() {
|
|
|
116
133
|
invalidColor: token.colorError,
|
|
117
134
|
browserColorScheme: 'inherit',
|
|
118
135
|
accentColor: token.colorPrimary,
|
|
119
|
-
rowHoverColor: token.colorPrimaryBg,
|
|
120
|
-
selectedRowBackgroundColor: token.colorPrimaryBgHover,
|
|
136
|
+
rowHoverColor: (_rowColors$hover = rowColors === null || rowColors === void 0 ? void 0 : rowColors.hover) !== null && _rowColors$hover !== void 0 ? _rowColors$hover : token.colorPrimaryBg,
|
|
137
|
+
selectedRowBackgroundColor: (_rowColors$selected = rowColors === null || rowColors === void 0 ? void 0 : rowColors.selected) !== null && _rowColors$selected !== void 0 ? _rowColors$selected : token.colorPrimaryBgHover,
|
|
121
138
|
columnHoverColor: token.colorPrimaryBg,
|
|
122
139
|
rangeSelectionBorderColor: token.colorPrimary,
|
|
123
140
|
rangeSelectionBackgroundColor: token.colorPrimaryBgHover,
|
|
@@ -132,5 +149,13 @@ function useAgGridTheme() {
|
|
|
132
149
|
checkboxIndeterminateShapeColor: token.colorWhite,
|
|
133
150
|
toggleButtonOnBackgroundColor: token.colorPrimary
|
|
134
151
|
});
|
|
135
|
-
|
|
152
|
+
var withDensity = density ? themed.withParams({
|
|
153
|
+
fontSize: density.fontSize,
|
|
154
|
+
headerFontSize: density.fontSize,
|
|
155
|
+
rowHeight: density.rowHeight,
|
|
156
|
+
headerHeight: density.headerHeight,
|
|
157
|
+
cellHorizontalPadding: density.paddingInline
|
|
158
|
+
}) : themed;
|
|
159
|
+
return themeParams ? withDensity.withParams(themeParams) : withDensity;
|
|
160
|
+
}, [token, density, themeParams]);
|
|
136
161
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface OverflowActionsProps {
|
|
3
|
+
items: React.ReactNode[];
|
|
4
|
+
prefixCls: string;
|
|
5
|
+
hashId?: string;
|
|
6
|
+
/** 外显个数上限,超出进「更多」;不传则只按宽度收纳。 */
|
|
7
|
+
maxVisible?: number;
|
|
8
|
+
/** 「更多」按钮文案 */
|
|
9
|
+
moreText?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 工具栏操作区:放不下的按钮收进「更多」。
|
|
13
|
+
* 收起的按钮仍留在原位量宽(不可见、不可聚焦),展开面板里渲染同一批按钮。@author nokecy
|
|
14
|
+
*/
|
|
15
|
+
declare const OverflowActions: React.FC<OverflowActionsProps>;
|
|
16
|
+
export default OverflowActions;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _icons = require("@ant-design/icons");
|
|
9
|
+
var _antd = require("antd");
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _overflow = require("./overflow");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
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); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
16
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
18
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
19
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
21
|
+
/**
|
|
22
|
+
* 工具栏操作区:放不下的按钮收进「更多」。
|
|
23
|
+
* 收起的按钮仍留在原位量宽(不可见、不可聚焦),展开面板里渲染同一批按钮。@author nokecy
|
|
24
|
+
*/
|
|
25
|
+
var OverflowActions = function OverflowActions(_ref) {
|
|
26
|
+
var items = _ref.items,
|
|
27
|
+
prefixCls = _ref.prefixCls,
|
|
28
|
+
hashId = _ref.hashId,
|
|
29
|
+
maxVisible = _ref.maxVisible,
|
|
30
|
+
_ref$moreText = _ref.moreText,
|
|
31
|
+
moreText = _ref$moreText === void 0 ? '更多' : _ref$moreText;
|
|
32
|
+
var containerRef = (0, _react.useRef)(null);
|
|
33
|
+
var moreRef = (0, _react.useRef)(null);
|
|
34
|
+
var itemRefs = (0, _react.useRef)([]);
|
|
35
|
+
var moreWidthRef = (0, _react.useRef)(_overflow.OVERFLOW_MORE_FALLBACK_WIDTH);
|
|
36
|
+
var _useState = (0, _react.useState)(items.length),
|
|
37
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
38
|
+
visibleCount = _useState2[0],
|
|
39
|
+
setVisibleCount = _useState2[1];
|
|
40
|
+
var measure = (0, _react.useCallback)(function () {
|
|
41
|
+
var _moreRef$current;
|
|
42
|
+
var container = containerRef.current;
|
|
43
|
+
if (!container) return;
|
|
44
|
+
if ((_moreRef$current = moreRef.current) !== null && _moreRef$current !== void 0 && _moreRef$current.offsetWidth) moreWidthRef.current = moreRef.current.offsetWidth;
|
|
45
|
+
var widths = items.map(function (_, index) {
|
|
46
|
+
var _itemRefs$current$ind, _itemRefs$current$ind2;
|
|
47
|
+
return (_itemRefs$current$ind = (_itemRefs$current$ind2 = itemRefs.current[index]) === null || _itemRefs$current$ind2 === void 0 ? void 0 : _itemRefs$current$ind2.offsetWidth) !== null && _itemRefs$current$ind !== void 0 ? _itemRefs$current$ind : 0;
|
|
48
|
+
});
|
|
49
|
+
var next = (0, _overflow.computeVisibleCount)(widths, container.clientWidth, {
|
|
50
|
+
gap: _overflow.OVERFLOW_GAP,
|
|
51
|
+
moreWidth: moreWidthRef.current,
|
|
52
|
+
maxVisible: maxVisible
|
|
53
|
+
});
|
|
54
|
+
setVisibleCount(function (prev) {
|
|
55
|
+
return prev === next ? prev : next;
|
|
56
|
+
});
|
|
57
|
+
}, [items, maxVisible]);
|
|
58
|
+
|
|
59
|
+
// 每次渲染都量:操作区内容由页面每轮重新给出,宽度可能随之变化;只在个数变了才更新状态
|
|
60
|
+
(0, _react.useLayoutEffect)(function () {
|
|
61
|
+
measure();
|
|
62
|
+
});
|
|
63
|
+
(0, _react.useLayoutEffect)(function () {
|
|
64
|
+
var container = containerRef.current;
|
|
65
|
+
if (!container || typeof ResizeObserver === 'undefined') return;
|
|
66
|
+
var observer = new ResizeObserver(function () {
|
|
67
|
+
return measure();
|
|
68
|
+
});
|
|
69
|
+
observer.observe(container);
|
|
70
|
+
return function () {
|
|
71
|
+
return observer.disconnect();
|
|
72
|
+
};
|
|
73
|
+
}, [measure]);
|
|
74
|
+
var count = Math.min(visibleCount, items.length);
|
|
75
|
+
var hidden = items.slice(count);
|
|
76
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
77
|
+
ref: containerRef,
|
|
78
|
+
className: "".concat(prefixCls, "-actions ").concat(hashId !== null && hashId !== void 0 ? hashId : ''),
|
|
79
|
+
style: {
|
|
80
|
+
gap: _overflow.OVERFLOW_GAP
|
|
81
|
+
},
|
|
82
|
+
children: [items.map(function (item, index) {
|
|
83
|
+
var collapsed = index >= count;
|
|
84
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
85
|
+
ref: function ref(node) {
|
|
86
|
+
itemRefs.current[index] = node;
|
|
87
|
+
},
|
|
88
|
+
className: "".concat(prefixCls, "-action-item"),
|
|
89
|
+
"data-overflow-hidden": collapsed || undefined,
|
|
90
|
+
"aria-hidden": collapsed || undefined,
|
|
91
|
+
style: collapsed ? {
|
|
92
|
+
position: 'absolute',
|
|
93
|
+
insetInlineStart: 0,
|
|
94
|
+
visibility: 'hidden',
|
|
95
|
+
pointerEvents: 'none'
|
|
96
|
+
} : undefined,
|
|
97
|
+
children: item
|
|
98
|
+
}, index);
|
|
99
|
+
}), hidden.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
100
|
+
ref: moreRef,
|
|
101
|
+
className: "".concat(prefixCls, "-action-more"),
|
|
102
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Dropdown, {
|
|
103
|
+
trigger: ['click'],
|
|
104
|
+
placement: "bottomLeft",
|
|
105
|
+
popupRender: function popupRender() {
|
|
106
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
107
|
+
className: "".concat(prefixCls, "-more-panel ").concat(hashId !== null && hashId !== void 0 ? hashId : ''),
|
|
108
|
+
children: hidden.map(function (item, index) {
|
|
109
|
+
return (
|
|
110
|
+
/*#__PURE__*/
|
|
111
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
112
|
+
(0, _jsxRuntime.jsx)("div", {
|
|
113
|
+
className: "".concat(prefixCls, "-more-item"),
|
|
114
|
+
children: item
|
|
115
|
+
}, index)
|
|
116
|
+
);
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
},
|
|
120
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_antd.Button, {
|
|
121
|
+
"aria-haspopup": "menu",
|
|
122
|
+
children: [moreText, /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.DownOutlined, {})]
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
}) : null]
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
var _default = exports.default = OverflowActions;
|
|
@@ -15,6 +15,8 @@ export type ListToolBarProps = {
|
|
|
15
15
|
actions?: React.ReactNode[];
|
|
16
16
|
/** 工作栏右侧设置区 */
|
|
17
17
|
settings?: SettingPropType[];
|
|
18
|
+
/** 操作区外显个数上限,超出进「更多」;不传则只按宽度收纳。 */
|
|
19
|
+
maxVisibleActions?: number;
|
|
18
20
|
};
|
|
19
|
-
declare const ListToolBar: ({ prefixCls: customizePrefixCls, title, subTitle, tooltip, className, style, actions, settings }: ListToolBarProps) => React.JSX.Element;
|
|
21
|
+
declare const ListToolBar: ({ prefixCls: customizePrefixCls, title, subTitle, tooltip, className, style, actions, settings, maxVisibleActions, }: ListToolBarProps) => React.JSX.Element;
|
|
20
22
|
export default ListToolBar;
|
|
@@ -11,6 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _labelIconTip = require("../../shared/labelIconTip");
|
|
12
12
|
var _style = require("./style");
|
|
13
13
|
var _leftContent = require("./leftContent");
|
|
14
|
+
var _OverflowActions = _interopRequireDefault(require("./OverflowActions"));
|
|
14
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
16
|
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); }
|
|
16
17
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -42,9 +43,13 @@ function getSettingItem(setting) {
|
|
|
42
43
|
_onClick = settingConfig.onClick,
|
|
43
44
|
key = settingConfig.key;
|
|
44
45
|
if (icon && tooltip) {
|
|
46
|
+
// 真 button:可键盘聚焦、Enter/Space 触发,Tooltip 同时作为无障碍名称。@author nokecy
|
|
45
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
46
48
|
title: tooltip,
|
|
47
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("
|
|
49
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
50
|
+
type: "button",
|
|
51
|
+
"aria-label": typeof tooltip === 'string' ? tooltip : undefined,
|
|
52
|
+
className: "qc-toolbar-icon-button",
|
|
48
53
|
onClick: function onClick() {
|
|
49
54
|
if (_onClick) {
|
|
50
55
|
_onClick(key);
|
|
@@ -68,7 +73,8 @@ var ListToolBar = function ListToolBar(_ref) {
|
|
|
68
73
|
_ref$actions = _ref.actions,
|
|
69
74
|
actions = _ref$actions === void 0 ? [] : _ref$actions,
|
|
70
75
|
_ref$settings = _ref.settings,
|
|
71
|
-
settings = _ref$settings === void 0 ? [] : _ref$settings
|
|
76
|
+
settings = _ref$settings === void 0 ? [] : _ref$settings,
|
|
77
|
+
maxVisibleActions = _ref.maxVisibleActions;
|
|
72
78
|
var _useContext = (0, _react.useContext)(_antd.ConfigProvider.ConfigContext),
|
|
73
79
|
getPrefixCls = _useContext.getPrefixCls;
|
|
74
80
|
var prefixCls = getPrefixCls('pro-table-list-toolbar', customizePrefixCls);
|
|
@@ -93,30 +99,34 @@ var ListToolBar = function ListToolBar(_ref) {
|
|
|
93
99
|
if (actions.length < 1) {
|
|
94
100
|
return null;
|
|
95
101
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
102
|
+
var nodes = actions.map(function (action, index) {
|
|
103
|
+
if (! /*#__PURE__*/_react.default.isValidElement(action)) {
|
|
104
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
105
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
|
|
106
|
+
children: action
|
|
107
|
+
}, index);
|
|
108
|
+
}
|
|
109
|
+
return /*#__PURE__*/_react.default.cloneElement(action, _objectSpread({
|
|
110
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
111
|
+
key: index
|
|
112
|
+
}, action === null || action === void 0 ? void 0 : action.props));
|
|
113
|
+
});
|
|
114
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_OverflowActions.default, {
|
|
115
|
+
items: nodes,
|
|
116
|
+
prefixCls: prefixCls,
|
|
117
|
+
hashId: hashId,
|
|
118
|
+
maxVisible: maxVisibleActions
|
|
110
119
|
});
|
|
111
|
-
}, [actions, hashId, prefixCls]);
|
|
120
|
+
}, [actions, hashId, prefixCls, maxVisibleActions]);
|
|
112
121
|
var hasRight = (0, _react.useMemo)(function () {
|
|
113
122
|
return hasTitle || actionDom || (settings === null || settings === void 0 ? void 0 : settings.length);
|
|
114
123
|
}, [actionDom, hasTitle, settings === null || settings === void 0 ? void 0 : settings.length]);
|
|
115
124
|
var hasLeft = (0, _react.useMemo)(function () {
|
|
116
125
|
return tooltip || title || subTitle;
|
|
117
126
|
}, [hasTitle, subTitle, title, tooltip]);
|
|
127
|
+
|
|
128
|
+
// 三区结构(DESIGN.md §5.1):左=标题与写操作,中=选择摘要等视图内容,右=视图图标。位置固定。@author nokecy
|
|
118
129
|
var leftTitleDom = (0, _react.useMemo)(function () {
|
|
119
|
-
// 保留左侧占位,并为操作组件提供当前列表独立的辅助内容位。@author nokecy
|
|
120
130
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
121
131
|
className: "".concat(prefixCls, "-left ").concat(hashId),
|
|
122
132
|
children: [hasTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -126,22 +136,20 @@ var ListToolBar = function ListToolBar(_ref) {
|
|
|
126
136
|
label: title,
|
|
127
137
|
subTitle: subTitle
|
|
128
138
|
})
|
|
129
|
-
}),
|
|
130
|
-
ref: setLeftContainer,
|
|
131
|
-
style: {
|
|
132
|
-
display: 'contents'
|
|
133
|
-
}
|
|
134
|
-
})]
|
|
139
|
+
}), actionDom]
|
|
135
140
|
});
|
|
136
|
-
}, [
|
|
141
|
+
}, [actionDom, hasTitle, hashId, prefixCls, subTitle, title, tooltip]);
|
|
142
|
+
var centerDom = (0, _react.useMemo)(function () {
|
|
143
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
144
|
+
ref: setLeftContainer,
|
|
145
|
+
className: "".concat(prefixCls, "-center ").concat(hashId)
|
|
146
|
+
});
|
|
147
|
+
}, [hashId, prefixCls]);
|
|
137
148
|
var rightTitleDom = (0, _react.useMemo)(function () {
|
|
138
|
-
if (!
|
|
139
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
149
|
+
if (!(settings !== null && settings !== void 0 && settings.length)) return null;
|
|
150
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
140
151
|
className: "".concat(prefixCls, "-right ").concat(hashId),
|
|
141
|
-
|
|
142
|
-
alignItems: 'center'
|
|
143
|
-
},
|
|
144
|
-
children: [actionDom, settings !== null && settings !== void 0 && settings.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
152
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
145
153
|
className: "".concat(prefixCls, "-setting-items ").concat(hashId),
|
|
146
154
|
children: settings.map(function (setting, index) {
|
|
147
155
|
var settingItem = getSettingItem(setting);
|
|
@@ -154,17 +162,17 @@ var ListToolBar = function ListToolBar(_ref) {
|
|
|
154
162
|
}, index)
|
|
155
163
|
);
|
|
156
164
|
})
|
|
157
|
-
})
|
|
165
|
+
})
|
|
158
166
|
});
|
|
159
|
-
}, [
|
|
167
|
+
}, [hashId, prefixCls, settings]);
|
|
160
168
|
var titleNode = (0, _react.useMemo)(function () {
|
|
161
169
|
if (!hasRight && !hasLeft) return null;
|
|
162
170
|
var containerClassName = (0, _classnames.default)("".concat(prefixCls, "-container"), hashId, {});
|
|
163
171
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
164
172
|
className: containerClassName,
|
|
165
|
-
children: [leftTitleDom, rightTitleDom]
|
|
173
|
+
children: [leftTitleDom, centerDom, rightTitleDom]
|
|
166
174
|
});
|
|
167
|
-
}, [hasLeft, hasRight, hashId, leftTitleDom, prefixCls, rightTitleDom]);
|
|
175
|
+
}, [centerDom, hasLeft, hasRight, hashId, leftTitleDom, prefixCls, rightTitleDom]);
|
|
168
176
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_leftContent.ListToolbarLeftContext.Provider, {
|
|
169
177
|
value: leftContainer,
|
|
170
178
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
/**
|
|
2
|
+
/** 当前列表工具栏的中区容器(选择摘要等视图内容);undefined 表示位于列表工具栏之外。@author nokecy */
|
|
3
3
|
export declare const ListToolbarLeftContext: React.Context<HTMLElement | null | undefined>;
|
|
4
|
-
/**
|
|
4
|
+
/** 将选择摘要等辅助内容放进工具栏中区;独立使用时保留原位置。@author nokecy */
|
|
5
5
|
export declare const ListToolbarLeft: React.FC<React.PropsWithChildren>;
|
|
@@ -10,10 +10,10 @@ var _reactDom = require("react-dom");
|
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
11
|
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); }
|
|
12
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
-
/**
|
|
13
|
+
/** 当前列表工具栏的中区容器(选择摘要等视图内容);undefined 表示位于列表工具栏之外。@author nokecy */
|
|
14
14
|
var ListToolbarLeftContext = exports.ListToolbarLeftContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
15
15
|
|
|
16
|
-
/**
|
|
16
|
+
/** 将选择摘要等辅助内容放进工具栏中区;独立使用时保留原位置。@author nokecy */
|
|
17
17
|
var ListToolbarLeft = exports.ListToolbarLeft = function ListToolbarLeft(_ref) {
|
|
18
18
|
var children = _ref.children;
|
|
19
19
|
var container = (0, _react.useContext)(ListToolbarLeftContext);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具栏「更多」溢出的纯计算(DESIGN.md §5.4):放不下的按钮收进「更多」,
|
|
3
|
+
* 不缩小、不换行、不横向滚动;先收排在后面的,排在最前面的至少保留一个。
|
|
4
|
+
* @author nokecy
|
|
5
|
+
*/
|
|
6
|
+
/** 按钮之间的间距(px)。 */
|
|
7
|
+
export declare const OVERFLOW_GAP = 8;
|
|
8
|
+
/** 「更多」按钮未测量时的预估宽度(px)。 */
|
|
9
|
+
export declare const OVERFLOW_MORE_FALLBACK_WIDTH = 72;
|
|
10
|
+
/**
|
|
11
|
+
* 返回外显的按钮个数,其余进「更多」。
|
|
12
|
+
* @param widths 每个按钮的自然宽度
|
|
13
|
+
* @param available 操作区可用宽度;<=0 视为尚未布局,只受 maxVisible 约束
|
|
14
|
+
* @param maxVisible 外显个数上限(可选)
|
|
15
|
+
*/
|
|
16
|
+
export declare function computeVisibleCount(widths: number[], available: number, options?: {
|
|
17
|
+
gap?: number;
|
|
18
|
+
moreWidth?: number;
|
|
19
|
+
maxVisible?: number;
|
|
20
|
+
}): number;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.OVERFLOW_MORE_FALLBACK_WIDTH = exports.OVERFLOW_GAP = void 0;
|
|
7
|
+
exports.computeVisibleCount = computeVisibleCount;
|
|
8
|
+
/**
|
|
9
|
+
* 工具栏「更多」溢出的纯计算(DESIGN.md §5.4):放不下的按钮收进「更多」,
|
|
10
|
+
* 不缩小、不换行、不横向滚动;先收排在后面的,排在最前面的至少保留一个。
|
|
11
|
+
* @author nokecy
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** 按钮之间的间距(px)。 */
|
|
15
|
+
var OVERFLOW_GAP = exports.OVERFLOW_GAP = 8;
|
|
16
|
+
/** 「更多」按钮未测量时的预估宽度(px)。 */
|
|
17
|
+
var OVERFLOW_MORE_FALLBACK_WIDTH = exports.OVERFLOW_MORE_FALLBACK_WIDTH = 72;
|
|
18
|
+
var span = function span(widths, count, gap) {
|
|
19
|
+
return count <= 0 ? 0 : widths.slice(0, count).reduce(function (sum, width) {
|
|
20
|
+
return sum + width;
|
|
21
|
+
}, 0) + gap * (count - 1);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 返回外显的按钮个数,其余进「更多」。
|
|
26
|
+
* @param widths 每个按钮的自然宽度
|
|
27
|
+
* @param available 操作区可用宽度;<=0 视为尚未布局,只受 maxVisible 约束
|
|
28
|
+
* @param maxVisible 外显个数上限(可选)
|
|
29
|
+
*/
|
|
30
|
+
function computeVisibleCount(widths, available) {
|
|
31
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
32
|
+
var _options$gap = options.gap,
|
|
33
|
+
gap = _options$gap === void 0 ? OVERFLOW_GAP : _options$gap,
|
|
34
|
+
_options$moreWidth = options.moreWidth,
|
|
35
|
+
moreWidth = _options$moreWidth === void 0 ? OVERFLOW_MORE_FALLBACK_WIDTH : _options$moreWidth,
|
|
36
|
+
maxVisible = options.maxVisible;
|
|
37
|
+
var total = widths.length;
|
|
38
|
+
if (total === 0) return 0;
|
|
39
|
+
var cap = maxVisible === undefined ? total : Math.max(1, Math.min(total, Math.floor(maxVisible)));
|
|
40
|
+
if (available <= 0) return cap;
|
|
41
|
+
if (cap === total && span(widths, total, gap) <= available) return total;
|
|
42
|
+
|
|
43
|
+
// 需要「更多」按钮:它自己也占一份宽度和一个间距
|
|
44
|
+
for (var count = Math.min(cap, total - 1); count >= 1; count--) {
|
|
45
|
+
if (span(widths, count, gap) + gap + moreWidth <= available) return count;
|
|
46
|
+
}
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
@@ -18,7 +18,10 @@ var genProListStyle = function genProListStyle(token) {
|
|
|
18
18
|
display: "flex",
|
|
19
19
|
justifyContent: "space-between",
|
|
20
20
|
alignItems: "center",
|
|
21
|
+
// 放不下时中区、右区换到下一行,而不是把左区挤到 0 宽后互相叠压
|
|
22
|
+
flexWrap: "wrap",
|
|
21
23
|
minWidth: 0,
|
|
24
|
+
gap: token.marginSM,
|
|
22
25
|
paddingBlock: 8,
|
|
23
26
|
//token.padding,
|
|
24
27
|
paddingInline: 0,
|
|
@@ -27,6 +30,7 @@ var genProListStyle = function genProListStyle(token) {
|
|
|
27
30
|
}
|
|
28
31
|
},
|
|
29
32
|
"&-title": {
|
|
33
|
+
flex: "0 0 auto",
|
|
30
34
|
display: "flex",
|
|
31
35
|
alignItems: "center",
|
|
32
36
|
justifyContent: "flex-start",
|
|
@@ -44,7 +48,8 @@ var genProListStyle = function genProListStyle(token) {
|
|
|
44
48
|
marginInline: 4,
|
|
45
49
|
color: token.colorIconHover,
|
|
46
50
|
fontSize: token.fontSizeLG,
|
|
47
|
-
|
|
51
|
+
display: "flex",
|
|
52
|
+
alignItems: "center",
|
|
48
53
|
"> span": {
|
|
49
54
|
display: "block",
|
|
50
55
|
width: "100%",
|
|
@@ -54,43 +59,94 @@ var genProListStyle = function genProListStyle(token) {
|
|
|
54
59
|
color: token.colorPrimary
|
|
55
60
|
}
|
|
56
61
|
},
|
|
62
|
+
// 视图图标是真 button:去掉浏览器默认样式,保留键盘焦点环。@author nokecy
|
|
63
|
+
"&-setting-item button": {
|
|
64
|
+
display: "inline-flex",
|
|
65
|
+
alignItems: "center",
|
|
66
|
+
justifyContent: "center",
|
|
67
|
+
minWidth: 28,
|
|
68
|
+
height: 28,
|
|
69
|
+
padding: 0,
|
|
70
|
+
border: 0,
|
|
71
|
+
background: "transparent",
|
|
72
|
+
color: "inherit",
|
|
73
|
+
fontSize: "inherit",
|
|
74
|
+
lineHeight: 1,
|
|
75
|
+
cursor: "pointer",
|
|
76
|
+
borderRadius: token.borderRadiusSM,
|
|
77
|
+
"&:hover": {
|
|
78
|
+
background: token.colorFillTertiary
|
|
79
|
+
},
|
|
80
|
+
"&:focus-visible": {
|
|
81
|
+
outline: "2px solid ".concat(token.colorPrimary),
|
|
82
|
+
outlineOffset: 1
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
// 左:标题 + 写操作;占满剩余宽度,操作区在其中按宽度把放不下的收进「更多」。
|
|
57
86
|
"&-left": _defineProperty(_defineProperty({
|
|
58
87
|
display: "flex",
|
|
59
88
|
flexWrap: "nowrap",
|
|
60
89
|
alignItems: "center",
|
|
61
|
-
gap: token.
|
|
90
|
+
gap: token.marginSM,
|
|
62
91
|
justifyContent: "flex-start",
|
|
63
92
|
minWidth: 0,
|
|
64
|
-
flex: "
|
|
93
|
+
flex: "1 1 240px"
|
|
65
94
|
}, "".concat(token.antCls, "-tabs"), {
|
|
66
95
|
width: "100%"
|
|
67
96
|
}), "&-has-tabs", {
|
|
68
97
|
overflow: "hidden"
|
|
69
98
|
}),
|
|
99
|
+
// 中:选择摘要等视图内容,没有内容时不占位。
|
|
100
|
+
"&-center": {
|
|
101
|
+
display: "flex",
|
|
102
|
+
alignItems: "center",
|
|
103
|
+
gap: token.marginXS,
|
|
104
|
+
flex: "0 0 auto",
|
|
105
|
+
"&:empty": {
|
|
106
|
+
display: "none"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
// 右:视图图标,位置固定。
|
|
70
110
|
"&-right": {
|
|
71
|
-
flex: "
|
|
72
|
-
|
|
111
|
+
flex: "0 0 auto",
|
|
112
|
+
marginInlineStart: "auto",
|
|
73
113
|
display: "flex",
|
|
74
114
|
flexWrap: "nowrap",
|
|
75
115
|
alignItems: "center",
|
|
76
116
|
justifyContent: "flex-end",
|
|
77
117
|
gap: token.marginXS
|
|
78
118
|
},
|
|
79
|
-
//
|
|
119
|
+
// 操作区:放不下的按钮收进「更多」,不缩小、不换行、不横向滚动(§5.4)。
|
|
80
120
|
"&-actions": {
|
|
121
|
+
position: "relative",
|
|
81
122
|
display: "flex",
|
|
82
123
|
alignItems: "center",
|
|
83
|
-
gap: token.marginXS,
|
|
84
124
|
minWidth: 0,
|
|
85
|
-
flex: "
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
125
|
+
flex: "1 1 0",
|
|
126
|
+
overflow: "hidden",
|
|
127
|
+
whiteSpace: "nowrap"
|
|
128
|
+
},
|
|
129
|
+
"&-action-item, &-action-more": {
|
|
130
|
+
display: "flex",
|
|
131
|
+
alignItems: "center",
|
|
132
|
+
flex: "none"
|
|
93
133
|
},
|
|
134
|
+
"&-more-panel": {
|
|
135
|
+
display: "flex",
|
|
136
|
+
flexDirection: "column",
|
|
137
|
+
gap: token.marginXXS,
|
|
138
|
+
minWidth: 140,
|
|
139
|
+
padding: token.paddingXXS,
|
|
140
|
+
background: token.colorBgElevated,
|
|
141
|
+
borderRadius: token.borderRadiusLG,
|
|
142
|
+
boxShadow: token.boxShadowSecondary
|
|
143
|
+
},
|
|
144
|
+
"&-more-item": _defineProperty({
|
|
145
|
+
display: "flex"
|
|
146
|
+
}, "> ".concat(token.antCls, "-btn, > *"), {
|
|
147
|
+
flex: 1,
|
|
148
|
+
justifyContent: "flex-start"
|
|
149
|
+
}),
|
|
94
150
|
"&-extra-line": {
|
|
95
151
|
marginBlockEnd: token.margin
|
|
96
152
|
},
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { ColumnState, GridApi, ColDef, ICellRendererParams } from 'ag-grid-community';
|
|
8
8
|
import { ReactNode, type JSX } from 'react';
|
|
9
|
+
import type { StatusKey } from './utils/statusPill';
|
|
9
10
|
/**
|
|
10
11
|
* 分页状态
|
|
11
12
|
*/
|
|
@@ -108,6 +109,11 @@ export interface ValueEnumItem {
|
|
|
108
109
|
label: string;
|
|
109
110
|
/** 标签颜色 (可选) */
|
|
110
111
|
color?: string;
|
|
112
|
+
/**
|
|
113
|
+
* 状态语义(可选)。配置后渲染为「图标 + 文字 + 底色」的状态胶囊,优先于 `color`。
|
|
114
|
+
* wait 待处理 / running 进行中 / done 已完成 / warning 预警 / alarm 报警 / closed 已关闭。
|
|
115
|
+
*/
|
|
116
|
+
status?: StatusKey;
|
|
111
117
|
/** 是否为默认值 (可选) */
|
|
112
118
|
default?: boolean;
|
|
113
119
|
}
|