@nokecy/qc-ui-components 2.0.0-beta.0 → 2.0.0-beta.2
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 +425 -157
- 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.d.ts +1 -0
- package/dist/cjs/ag-grid-plus/index.js +7 -0
- package/dist/cjs/ag-grid-plus/index.less +43 -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/agGridLicenseNotice.d.ts +7 -0
- package/dist/cjs/ag-grid-plus/utils/agGridLicenseNotice.js +105 -0
- 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 +3 -0
- package/dist/cjs/index.js +22 -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 +426 -157
- 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.d.ts +1 -0
- package/dist/esm/ag-grid-plus/index.js +3 -0
- package/dist/esm/ag-grid-plus/index.less +43 -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/agGridLicenseNotice.d.ts +7 -0
- package/dist/esm/ag-grid-plus/utils/agGridLicenseNotice.js +97 -0
- 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 +3 -0
- package/dist/esm/index.js +2 -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
|
@@ -15,17 +15,22 @@ var _columnGroup = require("./columnGroup");
|
|
|
15
15
|
var _indexColumn = require("./indexColumn");
|
|
16
16
|
var _gridSequence = require("../shared/gridSequence");
|
|
17
17
|
var _rowIdentity = require("./rowIdentity");
|
|
18
|
+
var _summary = require("./summary");
|
|
18
19
|
var _hooks = require("./hooks");
|
|
20
|
+
var _arrayAddBtn = _interopRequireWildcard(require("./arrayAddBtn"));
|
|
19
21
|
var _arrayBase = _interopRequireDefault(require("./arrayBase"));
|
|
20
|
-
var _arrayAddBtn = _interopRequireDefault(require("./arrayAddBtn"));
|
|
21
22
|
var _preview = _interopRequireDefault(require("./preview"));
|
|
22
23
|
var _antd = require("antd");
|
|
23
24
|
var _index = _interopRequireDefault(require("../ag-grid-plus/setting/index"));
|
|
24
25
|
var _columnGroupUtils = require("../ag-grid-plus/setting/columnGroupUtils");
|
|
25
26
|
var _theme = require("./theme");
|
|
26
27
|
var _fixedGuard = require("./fixedGuard");
|
|
28
|
+
var _autoHeight = require("./autoHeight");
|
|
29
|
+
var _title = require("./title");
|
|
27
30
|
var _rowFeedback = require("./rowFeedback");
|
|
28
31
|
var _index2 = require("../ag-grid-plus/index");
|
|
32
|
+
var _formilyAntd = require("@nokecy/formily-antd");
|
|
33
|
+
var _errorLocator = require("./errorLocator");
|
|
29
34
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
30
35
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
36
|
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); }
|
|
@@ -49,10 +54,13 @@ var additionRowDefaults = function additionRowDefaults(value) {
|
|
|
49
54
|
|
|
50
55
|
//@ts-ignore
|
|
51
56
|
var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
52
|
-
var _props$fixedColumnsMa,
|
|
57
|
+
var _props$fixedColumnsMa, _ref3, _addition$props$title, _addition$props, _addition$schema, _addition$props$metho, _addition$props3, _addition$props4;
|
|
53
58
|
var height = props.height,
|
|
54
59
|
gridKey = props.gridKey;
|
|
55
60
|
var arrayTableTheme = (0, _theme.useArrayTableTheme)(true);
|
|
61
|
+
var _useArrayTableMetrics = (0, _theme.useArrayTableMetrics)(),
|
|
62
|
+
rowHeight = _useArrayTableMetrics.rowHeight,
|
|
63
|
+
headerHeight = _useArrayTableMetrics.headerHeight;
|
|
56
64
|
|
|
57
65
|
// 【新增】运行时验证 gridKey
|
|
58
66
|
if (!gridKey) {
|
|
@@ -117,18 +125,31 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
117
125
|
|
|
118
126
|
// 有行内错误文字的行撑高,错误文字完整显示在输入框下方(任意行,含最后一行)。
|
|
119
127
|
// 错误行集合由 Formily 事件驱动更新(不在渲染期读错误,避免订阅整张字段表);行集合变化后让 AG-Grid 重算行高。@author nokecy
|
|
120
|
-
var _useFeedbackRows = (0, _rowFeedback.useFeedbackRows)(field),
|
|
128
|
+
var _useFeedbackRows = (0, _rowFeedback.useFeedbackRows)(field, _formilyAntd.FormLayout.useFormLayout().feedbackLayout),
|
|
121
129
|
feedbackRowsRef = _useFeedbackRows.rowsRef,
|
|
122
130
|
feedbackSignature = _useFeedbackRows.signature;
|
|
123
131
|
var getRowHeight = (0, _react.useCallback)(function (params) {
|
|
124
|
-
return params.data && feedbackRowsRef.current.has(params.data) ?
|
|
125
|
-
}, []);
|
|
132
|
+
return params.data && feedbackRowsRef.current.has(params.data) ? rowHeight + _rowFeedback.ROW_FEEDBACK_EXTRA_HEIGHT : rowHeight;
|
|
133
|
+
}, [rowHeight]);
|
|
134
|
+
var isAutoHeight = height === 'auto';
|
|
135
|
+
var autoGridHeight = isAutoHeight ? (0, _autoHeight.calcAutoGridHeight)({
|
|
136
|
+
rowCount: dataSource.length,
|
|
137
|
+
rowHeight: rowHeight,
|
|
138
|
+
headerHeight: headerHeight,
|
|
139
|
+
hasSummary: !!props.summary,
|
|
140
|
+
feedbackRows: feedbackSignature ? feedbackSignature.split(',').length : 0,
|
|
141
|
+
minRows: props.minRows,
|
|
142
|
+
maxRows: props.maxRows
|
|
143
|
+
}) : undefined;
|
|
144
|
+
// 密度切换时行高基数变了,AG-Grid 不会自己重算已布局的行。
|
|
126
145
|
(0, _react.useEffect)(function () {
|
|
127
146
|
gridApiState === null || gridApiState === void 0 || gridApiState.resetRowHeights();
|
|
128
|
-
}, [feedbackSignature, gridApiState]);
|
|
147
|
+
}, [feedbackSignature, gridApiState, rowHeight]);
|
|
129
148
|
|
|
130
149
|
// 使用自定义 hooks
|
|
131
|
-
var _useCellFocus = (0, _hooks.useCellFocus)(
|
|
150
|
+
var _useCellFocus = (0, _hooks.useCellFocus)({
|
|
151
|
+
openDateOnKeyboard: props.openDateOnKeyboard
|
|
152
|
+
}),
|
|
132
153
|
focusInputInCell = _useCellFocus.focusInputInCell,
|
|
133
154
|
scheduleCellFocus = _useCellFocus.scheduleCellFocus,
|
|
134
155
|
beginFocusRequest = _useCellFocus.beginFocusRequest;
|
|
@@ -196,9 +217,21 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
196
217
|
|
|
197
218
|
// 交给 AgGridReact 的列定义:按 x-component-props.headerGroup 把相邻同组的列合并成列组(多级表头)。
|
|
198
219
|
// stableColumnDefs 保持扁平,懒列识别、列方案还原等内部逻辑仍用它;只有喂给 AG-Grid 的这一份带分组。@author nokecy
|
|
199
|
-
var
|
|
220
|
+
var groupedColumnDefs = (0, _react.useMemo)(function () {
|
|
200
221
|
return (0, _columnGroup.groupColumnDefs)(stableColumnDefs);
|
|
201
222
|
}, [stableColumnDefs]);
|
|
223
|
+
// 合计行:渲染所需的 summary / 行数据经 ref 取最新值,列定义只在是否启用合计变化时重建。@author nokecy
|
|
224
|
+
var summaryRef = (0, _react.useRef)(props.summary);
|
|
225
|
+
summaryRef.current = props.summary;
|
|
226
|
+
var hasSummary = !!props.summary;
|
|
227
|
+
var gridColumnDefs = (0, _react.useMemo)(function () {
|
|
228
|
+
return hasSummary ? (0, _summary.withSummaryCells)(groupedColumnDefs, function () {
|
|
229
|
+
return summaryRef.current;
|
|
230
|
+
}, function () {
|
|
231
|
+
var _ref;
|
|
232
|
+
return (_ref = field.value) !== null && _ref !== void 0 ? _ref : [];
|
|
233
|
+
}) : groupedColumnDefs;
|
|
234
|
+
}, [groupedColumnDefs, hasSummary, field]);
|
|
202
235
|
|
|
203
236
|
// 懒挂载:把激活态 Set 通过 AG-Grid context 暴露给 LazyAgField(引用稳定,原地 mutate)。@author nokecy
|
|
204
237
|
var gridContext = (0, _react.useMemo)(function () {
|
|
@@ -280,9 +313,116 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
280
313
|
applyFixedGuard(gridApiState);
|
|
281
314
|
}, [applyFixedGuard, gridApiState]);
|
|
282
315
|
|
|
316
|
+
// 末格 Tab 新增行:新行要等 rowData 更新进入 AG 行模型后才能聚焦,待办存在 ref 里由 onRowDataUpdated 兑现。
|
|
317
|
+
// 不能在 push 之后按定时器猜时机,也不能让同一次 Tab 的 onCellKeyDown 再发起落焦(会取消这里的请求)。@author nokecy
|
|
318
|
+
var pendingAddFocusRef = (0, _react.useRef)(null);
|
|
319
|
+
var flushPendingAddFocus = function flushPendingAddFocus(api) {
|
|
320
|
+
var pending = pendingAddFocusRef.current;
|
|
321
|
+
if (!pending || !api) return;
|
|
322
|
+
if ((0, _hooks.focusAddedRow)({
|
|
323
|
+
api: api,
|
|
324
|
+
root: ref,
|
|
325
|
+
pending: pending,
|
|
326
|
+
beginFocusRequest: beginFocusRequest,
|
|
327
|
+
focusInputInCell: focusInputInCell,
|
|
328
|
+
activateCell: activateCell
|
|
329
|
+
})) {
|
|
330
|
+
pendingAddFocusRef.current = null;
|
|
331
|
+
}
|
|
332
|
+
};
|
|
283
333
|
// 键盘导航 hook 需要 activateCell(导航进懒列时先挂载再聚焦),故置于其后。@author nokecy
|
|
284
|
-
var _useKeyboardNavigatio = (0, _hooks.useKeyboardNavigation)(ref, dataSource, focusInputInCell, activateCell, beginFocusRequest)
|
|
334
|
+
var _useKeyboardNavigatio = (0, _hooks.useKeyboardNavigation)(ref, dataSource, focusInputInCell, activateCell, beginFocusRequest, function () {
|
|
335
|
+
return pendingAddFocusRef.current != null;
|
|
336
|
+
}),
|
|
285
337
|
handleCellKeyDown = _useKeyboardNavigatio.handleCellKeyDown;
|
|
338
|
+
(0, _hooks.useCellEscapeRevert)(ref);
|
|
339
|
+
// Tab 跳过序号/勾选列;开启 tabAddsRow 时,末格 Tab 新增一行并落焦到新行首个可编辑格。@author nokecy
|
|
340
|
+
var tabAddsRow = props.tabAddsRow !== false;
|
|
341
|
+
var tabAddRowRef = (0, _react.useRef)(function () {});
|
|
342
|
+
tabAddRowRef.current = function () {
|
|
343
|
+
var _api$getAllDisplayedC, _api$getAllDisplayedC2;
|
|
344
|
+
if (field.pattern !== 'editable' || field.disabled) return;
|
|
345
|
+
var api = apiRef.current;
|
|
346
|
+
// 新行的首个可编辑格:跳过序号/勾选列、只读展示列、拖拽手柄列。
|
|
347
|
+
var colId = ((_api$getAllDisplayedC = api === null || api === void 0 || (_api$getAllDisplayedC2 = api.getAllDisplayedColumns) === null || _api$getAllDisplayedC2 === void 0 ? void 0 : _api$getAllDisplayedC2.call(api)) !== null && _api$getAllDisplayedC !== void 0 ? _api$getAllDisplayedC : []).filter(function (c) {
|
|
348
|
+
var _c$getColDef, _c$getColDef2;
|
|
349
|
+
var def = (_c$getColDef = (_c$getColDef2 = c.getColDef) === null || _c$getColDef2 === void 0 ? void 0 : _c$getColDef2.call(c)) !== null && _c$getColDef !== void 0 ? _c$getColDef : {};
|
|
350
|
+
return c.getColId() !== _indexColumn.ARRAY_TABLE_INDEX_FIELD && c.getColId() !== 'ag-Grid-SelectionColumn' && def.cellRenderer !== _utils.LazyReadOnlyText && def.rowDrag !== true;
|
|
351
|
+
}).map(function (c) {
|
|
352
|
+
return c.getColId();
|
|
353
|
+
})[0];
|
|
354
|
+
field.push((0, _arrayAddBtn.getDefaultValue)(undefined, schema));
|
|
355
|
+
var newIndex = (Array.isArray(field.value) ? field.value.length : 1) - 1;
|
|
356
|
+
addedIndexRef.current = newIndex;
|
|
357
|
+
setIsAdd(true);
|
|
358
|
+
if (!api || !colId) return;
|
|
359
|
+
var addedRow = Array.isArray(field.value) ? field.value[newIndex] : undefined;
|
|
360
|
+
if (addedRow == null || _typeof(addedRow) !== 'object') return;
|
|
361
|
+
var pending = {
|
|
362
|
+
rowId: (0, _rowIdentity.getArrayTableRowId)(addedRow, rowIdMapRef.current),
|
|
363
|
+
colId: colId
|
|
364
|
+
};
|
|
365
|
+
pendingAddFocusRef.current = pending;
|
|
366
|
+
// 兜底:行更新事件之外再试一次,并保证待办不会一直挂着屏蔽 Tab 落焦。
|
|
367
|
+
setTimeout(function () {
|
|
368
|
+
if (pendingAddFocusRef.current !== pending) return;
|
|
369
|
+
flushPendingAddFocus(apiRef.current);
|
|
370
|
+
if (pendingAddFocusRef.current === pending) pendingAddFocusRef.current = null;
|
|
371
|
+
}, 300);
|
|
372
|
+
};
|
|
373
|
+
// 提交校验失败时,把表内最靠前的错误格滚到可见、激活并聚焦(定位器注册到 form-error-focus,与表外错误一起按页面位置排序)。
|
|
374
|
+
// 定位器只注册一次,用到的最新状态经 ref 读取。@author nokecy
|
|
375
|
+
var errorLocatorColumns = function errorLocatorColumns() {
|
|
376
|
+
return sources.filter(function (s) {
|
|
377
|
+
return (!s.display || s.display === 'visible') && (0, _utils.isColumnComponent)(s.schema);
|
|
378
|
+
}).map(function (s) {
|
|
379
|
+
var _findDataFieldSchema, _s$columnProps$header2, _s$columnProps4, _s$columnProps5;
|
|
380
|
+
return {
|
|
381
|
+
colId: s.name,
|
|
382
|
+
dataName: (_findDataFieldSchema = (0, _utils.findDataFieldSchema)(s.schema, s.name)) === null || _findDataFieldSchema === void 0 ? void 0 : _findDataFieldSchema.name,
|
|
383
|
+
title: (_s$columnProps$header2 = (_s$columnProps4 = s.columnProps) === null || _s$columnProps4 === void 0 ? void 0 : _s$columnProps4.headerName) !== null && _s$columnProps$header2 !== void 0 ? _s$columnProps$header2 : (_s$columnProps5 = s.columnProps) === null || _s$columnProps5 === void 0 ? void 0 : _s$columnProps5.title
|
|
384
|
+
};
|
|
385
|
+
});
|
|
386
|
+
};
|
|
387
|
+
var errorLocatorDepsRef = (0, _react.useRef)(null);
|
|
388
|
+
errorLocatorDepsRef.current = {
|
|
389
|
+
field: field,
|
|
390
|
+
getContainer: function getContainer() {
|
|
391
|
+
return ref.current;
|
|
392
|
+
},
|
|
393
|
+
getApi: function getApi() {
|
|
394
|
+
return apiRef.current;
|
|
395
|
+
},
|
|
396
|
+
getColumns: errorLocatorColumns,
|
|
397
|
+
getRowId: function getRowId(row) {
|
|
398
|
+
return (0, _rowIdentity.getArrayTableRowId)(row, rowIdMapRef.current);
|
|
399
|
+
},
|
|
400
|
+
focus: function focus(_ref2) {
|
|
401
|
+
var rowIndex = _ref2.rowIndex,
|
|
402
|
+
colId = _ref2.colId;
|
|
403
|
+
return apiRef.current ? (0, _hooks.focusGridCell)({
|
|
404
|
+
api: apiRef.current,
|
|
405
|
+
root: ref,
|
|
406
|
+
rowIndex: rowIndex,
|
|
407
|
+
colId: colId,
|
|
408
|
+
beginFocusRequest: beginFocusRequest,
|
|
409
|
+
focusInputInCell: focusInputInCell,
|
|
410
|
+
activateCell: activateCell,
|
|
411
|
+
ensureColumnVisible: true
|
|
412
|
+
}) : Promise.resolve(undefined);
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
(0, _react.useEffect)(function () {
|
|
416
|
+
return (0, _formilyAntd.registerErrorLocator)(function (form, root) {
|
|
417
|
+
var deps = errorLocatorDepsRef.current;
|
|
418
|
+
return deps ? (0, _errorLocator.createArrayTableErrorLocator)(deps)(form, root) : undefined;
|
|
419
|
+
});
|
|
420
|
+
}, [field]);
|
|
421
|
+
var tabToNextCell = (0, _react.useMemo)(function () {
|
|
422
|
+
return (0, _hooks.createTabToNextCell)(tabAddsRow ? function () {
|
|
423
|
+
return tabAddRowRef.current();
|
|
424
|
+
} : undefined);
|
|
425
|
+
}, [tabAddsRow]);
|
|
286
426
|
|
|
287
427
|
/**
|
|
288
428
|
* 方案自动加载
|
|
@@ -363,11 +503,6 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
363
503
|
}).then(function () {
|
|
364
504
|
if (cancelled || !gridApiState) return;
|
|
365
505
|
|
|
366
|
-
// 3. 应用过滤器(在列状态稳定后执行)
|
|
367
|
-
if (currentScheme.filterModel) {
|
|
368
|
-
gridApiState.setFilterModel(currentScheme.filterModel);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
506
|
// 【关键修复】记录已应用的方案状态(ID + updatedAt)
|
|
372
507
|
lastAppliedSchemeRef.current = {
|
|
373
508
|
id: currentScheme.id,
|
|
@@ -388,7 +523,7 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
388
523
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
389
524
|
ref: ref,
|
|
390
525
|
style: {
|
|
391
|
-
height: height ? height : 400,
|
|
526
|
+
height: isAutoHeight ? undefined : height ? height : 400,
|
|
392
527
|
display: 'flex',
|
|
393
528
|
flexDirection: 'column'
|
|
394
529
|
},
|
|
@@ -410,8 +545,10 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
410
545
|
style: {
|
|
411
546
|
marginBottom: 5
|
|
412
547
|
},
|
|
413
|
-
children: [
|
|
414
|
-
|
|
548
|
+
children: [props.title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_title.ArrayTableTitle, {
|
|
549
|
+
children: props.title
|
|
550
|
+
}) : null, addition ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_arrayAddBtn.default, _objectSpread(_objectSpread({}, addition.props), {}, {
|
|
551
|
+
title: (_ref3 = (_addition$props$title = (_addition$props = addition.props) === null || _addition$props === void 0 ? void 0 : _addition$props.title) !== null && _addition$props$title !== void 0 ? _addition$props$title : (_addition$schema = addition.schema) === null || _addition$schema === void 0 ? void 0 : _addition$schema.title) !== null && _ref3 !== void 0 ? _ref3 : '新增'
|
|
415
552
|
// 新增行总是回到数组顺序,避免当前列排序把空白新行插到旧明细前面;
|
|
416
553
|
// 先让表格滚到新行,再调用 Addition 节点上自己写的 onAdd,两者都生效。@author nokecy
|
|
417
554
|
,
|
|
@@ -457,7 +594,10 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
457
594
|
})]
|
|
458
595
|
})]
|
|
459
596
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
460
|
-
style: {
|
|
597
|
+
style: isAutoHeight ? {
|
|
598
|
+
flex: 'none',
|
|
599
|
+
height: autoGridHeight
|
|
600
|
+
} : {
|
|
461
601
|
flex: 1,
|
|
462
602
|
minHeight: 0
|
|
463
603
|
}
|
|
@@ -506,6 +646,7 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
506
646
|
maintainColumnOrder: true
|
|
507
647
|
},
|
|
508
648
|
onCellKeyDown: handleCellKeyDown,
|
|
649
|
+
tabToNextCell: tabToNextCell,
|
|
509
650
|
onCellClicked: function onCellClicked(event) {
|
|
510
651
|
var _event$column$getColI, _event$column, _event$colDef, _event$event;
|
|
511
652
|
// 懒挂载:点击懒列存量格时先激活挂树,等挂载完成再聚焦进编辑;否则沿用原即时聚焦。@author nokecy
|
|
@@ -526,7 +667,7 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
526
667
|
if (event.api.getDisplayedRowAtIndex(rowIndex) !== node) return false;
|
|
527
668
|
var focused = event.api.getFocusedCell();
|
|
528
669
|
return (focused === null || focused === void 0 ? void 0 : focused.rowIndex) === rowIndex && (focused === null || focused === void 0 ? void 0 : focused.column.getColId()) === colId;
|
|
529
|
-
});
|
|
670
|
+
}, justActivated ? 'pointer-activated' : 'pointer');
|
|
530
671
|
},
|
|
531
672
|
onRowDragMove: handleRowDragMove,
|
|
532
673
|
onRowDataUpdated: function onRowDataUpdated(e) {
|
|
@@ -546,6 +687,7 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
546
687
|
addedIndexRef.current = undefined;
|
|
547
688
|
setIsAdd(false);
|
|
548
689
|
}
|
|
690
|
+
flushPendingAddFocus(e.api);
|
|
549
691
|
(_props$onRowDataUpdat = props.onRowDataUpdated) === null || _props$onRowDataUpdat === void 0 || _props$onRowDataUpdat.call(props, e);
|
|
550
692
|
},
|
|
551
693
|
rowDragManaged: true,
|
|
@@ -569,8 +711,8 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
569
711
|
' <span data-ref="eSortAsc" class="ag-header-icon ag-sort-ascending-icon"></span>' + ' <span data-ref="eSortDesc" class="ag-header-icon ag-sort-descending-icon"></span>' + ' <span data-ref="eSortNone" class="ag-header-icon ag-sort-none-icon"></span>' + " </div>" + "</div>"
|
|
570
712
|
}
|
|
571
713
|
},
|
|
572
|
-
getRowId: function getRowId(
|
|
573
|
-
var data =
|
|
714
|
+
getRowId: function getRowId(_ref4) {
|
|
715
|
+
var data = _ref4.data;
|
|
574
716
|
return (0, _rowIdentity.getArrayTableRowId)(data, rowIdMapRef.current);
|
|
575
717
|
}
|
|
576
718
|
// rowDragEntireRow={true}
|
|
@@ -590,11 +732,13 @@ var ArrayTableInner = (0, _formilyReact.observer)(function (props) {
|
|
|
590
732
|
});
|
|
591
733
|
(_props$onSortChanged = props.onSortChanged) === null || _props$onSortChanged === void 0 || _props$onSortChanged.call(props, event);
|
|
592
734
|
},
|
|
593
|
-
rowHeight:
|
|
735
|
+
rowHeight: rowHeight,
|
|
736
|
+
headerHeight: headerHeight,
|
|
594
737
|
getRowHeight: getRowHeight,
|
|
595
738
|
pagination: false,
|
|
596
739
|
columnDefs: gridColumnDefs,
|
|
597
|
-
rowData: dataSource
|
|
740
|
+
rowData: dataSource,
|
|
741
|
+
pinnedBottomRowData: hasSummary ? _summary.ARRAY_TABLE_SUMMARY_ROW : undefined
|
|
598
742
|
})
|
|
599
743
|
}), sources.map(function (column, key) {
|
|
600
744
|
//专门用来承接对Column的状态管理
|
|
@@ -3,6 +3,7 @@ import { FieldDisplayTypes, GeneralField } from "@nokecy/formily-core";
|
|
|
3
3
|
import { Schema } from "@nokecy/formily-json-schema";
|
|
4
4
|
import { AgGridReactProps } from "ag-grid-react";
|
|
5
5
|
import React from "react";
|
|
6
|
+
import type { ArrayTableSummary } from "./summary";
|
|
6
7
|
/**
|
|
7
8
|
* ArrayTable.Column 的 x-component-props 里 qc-ui 自己认的扩展属性;
|
|
8
9
|
* 其余属性(width、headerName、pinned 等)按 AG-Grid 列定义处理。
|
|
@@ -42,8 +43,15 @@ interface ObservableColumnSource {
|
|
|
42
43
|
}
|
|
43
44
|
/** 公共明细表格的业务属性。@author nokecy */
|
|
44
45
|
export type ArrayTableProps = AgGridReactProps & {
|
|
46
|
+
/** 数字为固定高度;'auto' 按行数自适应(受 minRows / maxRows 限制),默认 400 */
|
|
45
47
|
height?: number | string;
|
|
48
|
+
/** height='auto' 时至少显示的行数,默认 1 */
|
|
49
|
+
minRows?: number;
|
|
50
|
+
/** height='auto' 时最多显示的行数,超出后内部滚动,默认 10 */
|
|
51
|
+
maxRows?: number;
|
|
46
52
|
gridKey: string;
|
|
53
|
+
/** 工具栏左侧的区域标题(带主色竖条),与「新增」同一行,不再另起一行占空间 */
|
|
54
|
+
title?: React.ReactNode;
|
|
47
55
|
onRowDrag?: boolean;
|
|
48
56
|
disabled?: boolean;
|
|
49
57
|
/** 默认对配置标准删除入口的可编辑明细开放批量删除;false 可显式关闭。 */
|
|
@@ -55,6 +63,20 @@ export type ArrayTableProps = AgGridReactProps & {
|
|
|
55
63
|
* 显式写的 pinned 不受影响。传 1 或 Infinity 关闭保护。
|
|
56
64
|
*/
|
|
57
65
|
fixedColumnsMaxRatio?: number;
|
|
66
|
+
/**
|
|
67
|
+
* 末行最后一格按 Tab 时新增一行并把焦点落到新行首个可编辑格(规范 §7.6.3),默认 true。
|
|
68
|
+
* 传 `false` 保持旧行为(焦点离开表格)。Shift+Tab、非末格不受影响。
|
|
69
|
+
*/
|
|
70
|
+
tabAddsRow?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* 键盘(Tab/Enter/方向键)到达日期格时自动展开日期面板,默认 false:与演示一致,鼠标点击展开、键盘到达保持收起。
|
|
73
|
+
*/
|
|
74
|
+
openDateOnKeyboard?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* 合计行:固定在表尾,键为列的 field,值为固定内容或 `(rows) => 内容`。
|
|
77
|
+
* 明细变化时自动重算;序号、勾选列和未列出的列该格留空。
|
|
78
|
+
*/
|
|
79
|
+
summary?: ArrayTableSummary;
|
|
58
80
|
};
|
|
59
81
|
/** ArrayTable 自己认的属性(其余按 AgGridReact 属性处理) */
|
|
60
82
|
type ArrayTableOwnProps = Omit<ArrayTableProps, keyof AgGridReactProps>;
|
|
@@ -4,20 +4,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _autoHeight = require("./autoHeight");
|
|
8
|
+
var _title = require("./title");
|
|
7
9
|
var _react = _interopRequireDefault(require("react"));
|
|
8
10
|
var _formilyReact = require("@nokecy/formily-react");
|
|
9
11
|
var _utils = require("./utils");
|
|
10
12
|
var _index = require("../ag-grid-plus/index");
|
|
11
13
|
var _theme = require("./theme");
|
|
14
|
+
var _summary = require("./summary");
|
|
12
15
|
var _indexColumn = require("./indexColumn");
|
|
13
16
|
var _gridSequence = require("../shared/gridSequence");
|
|
14
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
/** AgGridPlus 外层卡片的内边距与间隙(实测 24px),自适应高度要把它算进外框,否则最后一行被裁掉 */var PREVIEW_CHROME_HEIGHT = 24;
|
|
16
20
|
//@ts-ignore
|
|
17
21
|
var ArrayTable = function ArrayTable(props) {
|
|
18
22
|
var _buildArrayTableColum;
|
|
19
23
|
var height = props.height;
|
|
20
24
|
var arrayTablePreviewTheme = (0, _theme.useArrayTableTheme)();
|
|
25
|
+
var _useArrayTableMetrics = (0, _theme.useArrayTableMetrics)(),
|
|
26
|
+
rowHeight = _useArrayTableMetrics.rowHeight,
|
|
27
|
+
headerHeight = _useArrayTableMetrics.headerHeight;
|
|
21
28
|
var field = (0, _formilyReact.useField)();
|
|
22
29
|
var dataSource = Array.isArray(field.value) ? field.value.slice() : [];
|
|
23
30
|
var sources = (0, _utils.useArrayTableSources)();
|
|
@@ -27,9 +34,17 @@ var ArrayTable = function ArrayTable(props) {
|
|
|
27
34
|
if (showDefaultIndex) {
|
|
28
35
|
columns.unshift((0, _indexColumn.makeIndexColumn)());
|
|
29
36
|
}
|
|
30
|
-
|
|
37
|
+
var title = props.title;
|
|
38
|
+
var grid = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
31
39
|
style: {
|
|
32
|
-
height: height ?
|
|
40
|
+
height: height === 'auto' ? PREVIEW_CHROME_HEIGHT + (0, _autoHeight.calcAutoGridHeight)({
|
|
41
|
+
rowCount: dataSource.length,
|
|
42
|
+
rowHeight: rowHeight,
|
|
43
|
+
headerHeight: headerHeight,
|
|
44
|
+
hasSummary: !!props.summary,
|
|
45
|
+
minRows: props.minRows,
|
|
46
|
+
maxRows: props.maxRows
|
|
47
|
+
}) : height ? height : 400
|
|
33
48
|
},
|
|
34
49
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.AgGridPlus, {
|
|
35
50
|
gridOptions: {
|
|
@@ -41,9 +56,12 @@ var ArrayTable = function ArrayTable(props) {
|
|
|
41
56
|
return data._id || data.id;
|
|
42
57
|
},
|
|
43
58
|
hideTool: true,
|
|
59
|
+
hidePagination: true,
|
|
60
|
+
headerFilter: false,
|
|
44
61
|
search: false,
|
|
45
62
|
theme: arrayTablePreviewTheme,
|
|
46
|
-
rowHeight:
|
|
63
|
+
rowHeight: rowHeight,
|
|
64
|
+
headerHeight: headerHeight,
|
|
47
65
|
onGridReady: function onGridReady(event) {
|
|
48
66
|
var _props$onGridReady;
|
|
49
67
|
(0, _gridSequence.installDisplaySequenceOrder)(event.api);
|
|
@@ -67,9 +85,25 @@ var ArrayTable = function ArrayTable(props) {
|
|
|
67
85
|
});
|
|
68
86
|
}
|
|
69
87
|
},
|
|
70
|
-
columnDefs: columns,
|
|
71
|
-
|
|
88
|
+
columnDefs: props.summary ? (0, _summary.withSummaryCells)(columns, function () {
|
|
89
|
+
return props.summary;
|
|
90
|
+
}, function () {
|
|
91
|
+
return dataSource;
|
|
92
|
+
}) : columns,
|
|
93
|
+
rowData: dataSource,
|
|
94
|
+
pinnedBottomRowData: props.summary ? _summary.ARRAY_TABLE_SUMMARY_ROW : undefined
|
|
72
95
|
})
|
|
73
96
|
});
|
|
97
|
+
// 预览态没有工具栏,标题单独占一行;标题行高度不算进网格高度
|
|
98
|
+
return title ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
99
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
100
|
+
style: {
|
|
101
|
+
marginBottom: 5
|
|
102
|
+
},
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_title.ArrayTableTitle, {
|
|
104
|
+
children: title
|
|
105
|
+
})
|
|
106
|
+
}), grid]
|
|
107
|
+
}) : grid;
|
|
74
108
|
};
|
|
75
109
|
var _default = exports.default = ArrayTable;
|
|
@@ -12,7 +12,7 @@ export declare const ROW_FEEDBACK_EXTRA_HEIGHT = 24;
|
|
|
12
12
|
* 这里读的是整张字段表(queryFeedbacks 会遍历数组下所有字段),不要在组件渲染期间调用——
|
|
13
13
|
* 渲染期读它会让组件订阅字段表,每创建一个字段就重渲一次。请用 useFeedbackRows。@author nokecy
|
|
14
14
|
*/
|
|
15
|
-
export declare const collectFeedbackRows: (arrayField: ArrayField) => Set<object>;
|
|
15
|
+
export declare const collectFeedbackRows: (arrayField: ArrayField, defaultLayout?: string) => Set<object>;
|
|
16
16
|
/**
|
|
17
17
|
* 订阅数组下字段的校验反馈,返回「有行内错误文字的行」。
|
|
18
18
|
*
|
|
@@ -20,7 +20,7 @@ export declare const collectFeedbackRows: (arrayField: ArrayField) => Set<object
|
|
|
20
20
|
* 合并成一次(下一个宏任务)重算;行集合变化才触发重渲。rows 供 AG-Grid 的 getRowHeight 同步读取,
|
|
21
21
|
* signature(有错误的行下标)变化时调用方让网格重算行高。@author nokecy
|
|
22
22
|
*/
|
|
23
|
-
export declare const useFeedbackRows: (arrayField: ArrayField) => {
|
|
23
|
+
export declare const useFeedbackRows: (arrayField: ArrayField, defaultLayout?: string) => {
|
|
24
24
|
rowsRef: import("react").RefObject<Set<object>>;
|
|
25
25
|
signature: string;
|
|
26
26
|
};
|
|
@@ -22,8 +22,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
22
22
|
*/
|
|
23
23
|
var ROW_FEEDBACK_EXTRA_HEIGHT = exports.ROW_FEEDBACK_EXTRA_HEIGHT = 24;
|
|
24
24
|
|
|
25
|
-
/** 这些反馈布局的错误不占行内位置(浮层 / 不显示),不需要撑高行 */
|
|
26
|
-
var OUT_OF_FLOW_LAYOUTS = new Set(['popover', 'none']);
|
|
25
|
+
/** 这些反馈布局的错误不占行内位置(浮层 / 不显示 / terse 紧凑浮层),不需要撑高行 */
|
|
26
|
+
var OUT_OF_FLOW_LAYOUTS = new Set(['popover', 'none', 'terse']);
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* 找出当前有「行内错误文字」的行:返回这些行的数据对象(与 AG-Grid rowData 里的元素同一引用)。
|
|
@@ -32,7 +32,7 @@ var OUT_OF_FLOW_LAYOUTS = new Set(['popover', 'none']);
|
|
|
32
32
|
* 这里读的是整张字段表(queryFeedbacks 会遍历数组下所有字段),不要在组件渲染期间调用——
|
|
33
33
|
* 渲染期读它会让组件订阅字段表,每创建一个字段就重渲一次。请用 useFeedbackRows。@author nokecy
|
|
34
34
|
*/
|
|
35
|
-
var collectFeedbackRows = exports.collectFeedbackRows = function collectFeedbackRows(arrayField) {
|
|
35
|
+
var collectFeedbackRows = exports.collectFeedbackRows = function collectFeedbackRows(arrayField, defaultLayout) {
|
|
36
36
|
var rows = new Set();
|
|
37
37
|
var form = arrayField === null || arrayField === void 0 ? void 0 : arrayField.form;
|
|
38
38
|
var value = arrayField === null || arrayField === void 0 ? void 0 : arrayField.value;
|
|
@@ -46,12 +46,12 @@ var collectFeedbackRows = exports.collectFeedbackRows = function collectFeedback
|
|
|
46
46
|
_step;
|
|
47
47
|
try {
|
|
48
48
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
49
|
-
var _feedback$path$segmen, _feedback$path, _feedback$path2, _feedback$path2$toStr, _feedback$path3, _form$query$take;
|
|
49
|
+
var _feedback$path$segmen, _feedback$path, _feedback$path2, _feedback$path2$toStr, _feedback$path3, _form$query$take$deco, _form$query$take;
|
|
50
50
|
var feedback = _step.value;
|
|
51
51
|
var index = Number((_feedback$path$segmen = (_feedback$path = feedback.path) === null || _feedback$path === void 0 || (_feedback$path = _feedback$path.segments) === null || _feedback$path === void 0 ? void 0 : _feedback$path[baseLength]) !== null && _feedback$path$segmen !== void 0 ? _feedback$path$segmen : (_feedback$path2 = feedback.path) === null || _feedback$path2 === void 0 || (_feedback$path2$toStr = (_feedback$path3 = _feedback$path2).toString) === null || _feedback$path2$toStr === void 0 ? void 0 : _feedback$path2$toStr.call(_feedback$path3).split('.')[baseLength]);
|
|
52
52
|
var row = value[index];
|
|
53
53
|
if (!Number.isInteger(index) || row == null || _typeof(row) !== 'object') continue;
|
|
54
|
-
var layout = (_form$query$take = form.query(feedback.address).take()) === null || _form$query$take === void 0 || (_form$query$take = _form$query$take.decoratorProps) === null || _form$query$take === void 0 ? void 0 : _form$query$take.feedbackLayout;
|
|
54
|
+
var layout = (_form$query$take$deco = (_form$query$take = form.query(feedback.address).take()) === null || _form$query$take === void 0 || (_form$query$take = _form$query$take.decoratorProps) === null || _form$query$take === void 0 ? void 0 : _form$query$take.feedbackLayout) !== null && _form$query$take$deco !== void 0 ? _form$query$take$deco : defaultLayout;
|
|
55
55
|
if (OUT_OF_FLOW_LAYOUTS.has(layout)) continue;
|
|
56
56
|
rows.add(row);
|
|
57
57
|
}
|
|
@@ -70,7 +70,7 @@ var collectFeedbackRows = exports.collectFeedbackRows = function collectFeedback
|
|
|
70
70
|
* 合并成一次(下一个宏任务)重算;行集合变化才触发重渲。rows 供 AG-Grid 的 getRowHeight 同步读取,
|
|
71
71
|
* signature(有错误的行下标)变化时调用方让网格重算行高。@author nokecy
|
|
72
72
|
*/
|
|
73
|
-
var useFeedbackRows = exports.useFeedbackRows = function useFeedbackRows(arrayField) {
|
|
73
|
+
var useFeedbackRows = exports.useFeedbackRows = function useFeedbackRows(arrayField, defaultLayout) {
|
|
74
74
|
var rowsRef = (0, _react.useRef)(new Set());
|
|
75
75
|
var _useState = (0, _react.useState)(''),
|
|
76
76
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -86,7 +86,7 @@ var useFeedbackRows = exports.useFeedbackRows = function useFeedbackRows(arrayFi
|
|
|
86
86
|
if (timer !== undefined) clearTimeout(timer);
|
|
87
87
|
timer = setTimeout(function () {
|
|
88
88
|
timer = undefined;
|
|
89
|
-
var rows = collectFeedbackRows(arrayField);
|
|
89
|
+
var rows = collectFeedbackRows(arrayField, defaultLayout);
|
|
90
90
|
rowsRef.current = rows;
|
|
91
91
|
var value = Array.isArray(arrayField.value) ? arrayField.value : [];
|
|
92
92
|
var next = value.flatMap(function (row, index) {
|
|
@@ -107,7 +107,7 @@ var useFeedbackRows = exports.useFeedbackRows = function useFeedbackRows(arrayFi
|
|
|
107
107
|
if (timer !== undefined) clearTimeout(timer);
|
|
108
108
|
form.removeEffects(id);
|
|
109
109
|
};
|
|
110
|
-
}, [arrayField]);
|
|
110
|
+
}, [arrayField, defaultLayout]);
|
|
111
111
|
return {
|
|
112
112
|
rowsRef: rowsRef,
|
|
113
113
|
signature: signature
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ColDef } from 'ag-grid-community';
|
|
3
|
+
/**
|
|
4
|
+
* 合计行(固定在表尾,不随滚动,不参与排序、勾选、序号)。
|
|
5
|
+
* 键是列的 field(ArrayTable.Column 的 dataIndex / 内层字段名),值是固定内容,或由当前全部明细行算出内容的函数;
|
|
6
|
+
* 函数在 Observer 里执行,明细任何字段变化都会重算。没有写到的列该格留空。
|
|
7
|
+
*
|
|
8
|
+
* @author nokecy
|
|
9
|
+
*/
|
|
10
|
+
export type ArrayTableSummary = Record<string, React.ReactNode | ((rows: any[]) => React.ReactNode)>;
|
|
11
|
+
/** 合计行的承载数据;AG-Grid 要求固定行有数据对象才会渲染单元格 */
|
|
12
|
+
export declare const ARRAY_TABLE_SUMMARY_ROW: {
|
|
13
|
+
__arrayTableSummary: boolean;
|
|
14
|
+
}[];
|
|
15
|
+
type SummaryCellParams = {
|
|
16
|
+
colDef?: ColDef;
|
|
17
|
+
getSummary: () => ArrayTableSummary | undefined;
|
|
18
|
+
getRows: () => any[];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* 给列定义补上「固定行用合计渲染」的选择器,普通行仍走列原有的渲染器。
|
|
22
|
+
* 用 cellRendererSelector 而不是替换 cellRenderer:列上依赖 cellRenderer 身份的逻辑(懒挂载识别等)不受影响。
|
|
23
|
+
*/
|
|
24
|
+
export declare const withSummaryCells: (columns: ColDef[], getSummary: SummaryCellParams['getSummary'], getRows: SummaryCellParams['getRows']) => ColDef[];
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.withSummaryCells = exports.ARRAY_TABLE_SUMMARY_ROW = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _formilyReact = require("@nokecy/formily-react");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
16
|
+
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); } /**
|
|
17
|
+
* 合计行(固定在表尾,不随滚动,不参与排序、勾选、序号)。
|
|
18
|
+
* 键是列的 field(ArrayTable.Column 的 dataIndex / 内层字段名),值是固定内容,或由当前全部明细行算出内容的函数;
|
|
19
|
+
* 函数在 Observer 里执行,明细任何字段变化都会重算。没有写到的列该格留空。
|
|
20
|
+
*
|
|
21
|
+
* @author nokecy
|
|
22
|
+
*/
|
|
23
|
+
/** 合计行的承载数据;AG-Grid 要求固定行有数据对象才会渲染单元格 */
|
|
24
|
+
var ARRAY_TABLE_SUMMARY_ROW = exports.ARRAY_TABLE_SUMMARY_ROW = [{
|
|
25
|
+
__arrayTableSummary: true
|
|
26
|
+
}];
|
|
27
|
+
var SummaryCell = function SummaryCell(_ref) {
|
|
28
|
+
var colDef = _ref.colDef,
|
|
29
|
+
getSummary = _ref.getSummary,
|
|
30
|
+
getRows = _ref.getRows;
|
|
31
|
+
var key = colDef === null || colDef === void 0 ? void 0 : colDef.field;
|
|
32
|
+
if (!key) return null;
|
|
33
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formilyReact.Observer, {
|
|
34
|
+
children: function children() {
|
|
35
|
+
var _getSummary;
|
|
36
|
+
var item = (_getSummary = getSummary()) === null || _getSummary === void 0 ? void 0 : _getSummary[key];
|
|
37
|
+
var content = typeof item === 'function' ? item(getRows()) : item;
|
|
38
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
39
|
+
children: content == null ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
40
|
+
"data-array-table-summary": key,
|
|
41
|
+
children: content
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 给列定义补上「固定行用合计渲染」的选择器,普通行仍走列原有的渲染器。
|
|
50
|
+
* 用 cellRendererSelector 而不是替换 cellRenderer:列上依赖 cellRenderer 身份的逻辑(懒挂载识别等)不受影响。
|
|
51
|
+
*/
|
|
52
|
+
var withSummaryCells = exports.withSummaryCells = function withSummaryCells(columns, getSummary, getRows) {
|
|
53
|
+
return columns.map(function (col) {
|
|
54
|
+
if (Array.isArray(col.children)) return _objectSpread(_objectSpread({}, col), {}, {
|
|
55
|
+
children: withSummaryCells(col.children, getSummary, getRows)
|
|
56
|
+
});
|
|
57
|
+
return _objectSpread(_objectSpread({}, col), {}, {
|
|
58
|
+
cellRendererSelector: function cellRendererSelector(params) {
|
|
59
|
+
var _params$node, _col$cellRendererSele;
|
|
60
|
+
return (_params$node = params.node) !== null && _params$node !== void 0 && _params$node.rowPinned ? {
|
|
61
|
+
component: SummaryCell,
|
|
62
|
+
params: {
|
|
63
|
+
getSummary: getSummary,
|
|
64
|
+
getRows: getRows
|
|
65
|
+
}
|
|
66
|
+
} : (_col$cellRendererSele = col.cellRendererSelector) === null || _col$cellRendererSele === void 0 ? void 0 : _col$cellRendererSele.call(col, params);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
};
|