@nokecy/qc-ui 1.1.80 → 1.1.82
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/array-table/readOnlyFormatters.d.ts +26 -0
- package/dist/cjs/array-table/readOnlyFormatters.js +69 -1
- package/dist/cjs/array-table/utils.js +42 -4
- package/dist/cjs/array-table-index/index.js +5 -3
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +22 -0
- package/dist/esm/array-table/readOnlyFormatters.d.ts +26 -0
- package/dist/esm/array-table/readOnlyFormatters.js +68 -0
- package/dist/esm/array-table/utils.js +43 -5
- package/dist/esm/array-table-index/index.js +5 -3
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +3 -0
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
export type ReadOnlyFormatterCtx = {
|
|
2
3
|
/** 列的 x-component-props(headerName/width/options/format 等) */
|
|
3
4
|
columnProps: any;
|
|
@@ -15,6 +16,31 @@ export type ReadOnlyFormatter = (value: any, ctx: ReadOnlyFormatterCtx) => strin
|
|
|
15
16
|
export declare const fallbackFormatter: ReadOnlyFormatter;
|
|
16
17
|
/** 消费方扩展自定义只读列的显示逻辑 */
|
|
17
18
|
export declare const registerReadOnlyFormatter: (component: string, formatter: ReadOnlyFormatter) => void;
|
|
19
|
+
/** 值 -> 名称表:对象 `{ '10': '参与' }`,或与 Select 同形的选项数组 `[{ label, value }]` */
|
|
20
|
+
export type ReadOnlyLabels = Record<string, string> | Array<{
|
|
21
|
+
label?: any;
|
|
22
|
+
value?: any;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* 给业务自定义选择器登记「值 -> 名称」,ArrayTable 未激活的格子与只读列按名称出文本。
|
|
26
|
+
*
|
|
27
|
+
* 业务组件(如「执行动作」「是否参与校验」这类固定选项的选择器)不在内置注册表里,
|
|
28
|
+
* 格子文本会走兜底格式化器把原值原样显示(10、00 这类编码)。在组件模块里调用一次即可,
|
|
29
|
+
* 所有用到该 x-component 的列都生效;同一组件在不同 Schema 里注册名不同时传名字数组。
|
|
30
|
+
* 按 String 宽松比对(容忍后端返回数字/字符串漂移);labelInValue 对象显示其 label;
|
|
31
|
+
* 数组逐个映射后逗号拼接;表里没有的值原样显示。@author nokecy
|
|
32
|
+
*/
|
|
33
|
+
export declare const registerReadOnlyLabels: (component: string | string[], labels: ReadOnlyLabels) => void;
|
|
34
|
+
/** 只读渲染器:按值出一段 React 内容(如组件自己的阅读态 Tag),格子未激活和只读列都用它显示 */
|
|
35
|
+
export type ReadOnlyRenderer = (value: any, ctx: ReadOnlyFormatterCtx) => ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* 给业务自定义组件登记只读渲染器。登记后 ArrayTable 可编辑列未激活的格子、只读列都渲染它的返回内容,
|
|
38
|
+
* 与组件自己的阅读态一致(例如带颜色的 Tag),仍不挂 Formily 字段树。空值不调用渲染器(出占位/留空)。
|
|
39
|
+
* 只要文字时用 registerReadOnlyLabels;两者都登记时显示走渲染器。@author nokecy
|
|
40
|
+
*/
|
|
41
|
+
export declare const registerReadOnlyRenderer: (component: string | string[], renderer: ReadOnlyRenderer) => void;
|
|
42
|
+
/** 取某组件类型的只读渲染器,未登记返回 null */
|
|
43
|
+
export declare const getReadOnlyRenderer: (component: string | undefined) => ReadOnlyRenderer | null;
|
|
18
44
|
/**
|
|
19
45
|
* 取某组件类型的只读格式化器。命中返回函数,未命中返回 null(调用方回退 AgField)。
|
|
20
46
|
*/
|
|
@@ -3,9 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.registerReadOnlyFormatter = exports.getReadOnlyFormatter = exports.fallbackFormatter = void 0;
|
|
6
|
+
exports.registerReadOnlyRenderer = exports.registerReadOnlyLabels = exports.registerReadOnlyFormatter = exports.getReadOnlyRenderer = exports.getReadOnlyFormatter = exports.fallbackFormatter = void 0;
|
|
7
7
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
+
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."); }
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
13
|
+
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; } }
|
|
14
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
9
15
|
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); } /**
|
|
10
16
|
* 只读列「纯文本快路径」格式化器注册表
|
|
11
17
|
*
|
|
@@ -127,6 +133,68 @@ var registerReadOnlyFormatter = exports.registerReadOnlyFormatter = function reg
|
|
|
127
133
|
registry[component] = formatter;
|
|
128
134
|
};
|
|
129
135
|
|
|
136
|
+
/** 值 -> 名称表:对象 `{ '10': '参与' }`,或与 Select 同形的选项数组 `[{ label, value }]` */
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* 给业务自定义选择器登记「值 -> 名称」,ArrayTable 未激活的格子与只读列按名称出文本。
|
|
140
|
+
*
|
|
141
|
+
* 业务组件(如「执行动作」「是否参与校验」这类固定选项的选择器)不在内置注册表里,
|
|
142
|
+
* 格子文本会走兜底格式化器把原值原样显示(10、00 这类编码)。在组件模块里调用一次即可,
|
|
143
|
+
* 所有用到该 x-component 的列都生效;同一组件在不同 Schema 里注册名不同时传名字数组。
|
|
144
|
+
* 按 String 宽松比对(容忍后端返回数字/字符串漂移);labelInValue 对象显示其 label;
|
|
145
|
+
* 数组逐个映射后逗号拼接;表里没有的值原样显示。@author nokecy
|
|
146
|
+
*/
|
|
147
|
+
var registerReadOnlyLabels = exports.registerReadOnlyLabels = function registerReadOnlyLabels(component, labels) {
|
|
148
|
+
var map = new Map();
|
|
149
|
+
if (Array.isArray(labels)) {
|
|
150
|
+
labels.forEach(function (o) {
|
|
151
|
+
var _o$label;
|
|
152
|
+
if (o && o.value != null) map.set(String(o.value), String((_o$label = o.label) !== null && _o$label !== void 0 ? _o$label : o.value));
|
|
153
|
+
});
|
|
154
|
+
} else {
|
|
155
|
+
Object.entries(labels !== null && labels !== void 0 ? labels : {}).forEach(function (_ref7) {
|
|
156
|
+
var _ref8 = _slicedToArray(_ref7, 2),
|
|
157
|
+
k = _ref8[0],
|
|
158
|
+
v = _ref8[1];
|
|
159
|
+
return map.set(String(k), String(v));
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
var toText = function toText(v) {
|
|
163
|
+
var _ref9, _v$label, _map$get;
|
|
164
|
+
if (v == null || v === '') return '';
|
|
165
|
+
if (_typeof(v) === 'object') return String((_ref9 = (_v$label = v.label) !== null && _v$label !== void 0 ? _v$label : v.value) !== null && _ref9 !== void 0 ? _ref9 : '');
|
|
166
|
+
return (_map$get = map.get(String(v))) !== null && _map$get !== void 0 ? _map$get : String(v);
|
|
167
|
+
};
|
|
168
|
+
var formatter = function formatter(value) {
|
|
169
|
+
return Array.isArray(value) ? value.map(toText).filter(Boolean).join(', ') : toText(value);
|
|
170
|
+
};
|
|
171
|
+
(Array.isArray(component) ? component : [component]).forEach(function (name) {
|
|
172
|
+
return registerReadOnlyFormatter(name, formatter);
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/** 只读渲染器:按值出一段 React 内容(如组件自己的阅读态 Tag),格子未激活和只读列都用它显示 */
|
|
177
|
+
|
|
178
|
+
var renderers = {};
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* 给业务自定义组件登记只读渲染器。登记后 ArrayTable 可编辑列未激活的格子、只读列都渲染它的返回内容,
|
|
182
|
+
* 与组件自己的阅读态一致(例如带颜色的 Tag),仍不挂 Formily 字段树。空值不调用渲染器(出占位/留空)。
|
|
183
|
+
* 只要文字时用 registerReadOnlyLabels;两者都登记时显示走渲染器。@author nokecy
|
|
184
|
+
*/
|
|
185
|
+
var registerReadOnlyRenderer = exports.registerReadOnlyRenderer = function registerReadOnlyRenderer(component, renderer) {
|
|
186
|
+
(Array.isArray(component) ? component : [component]).forEach(function (name) {
|
|
187
|
+
renderers[name] = renderer;
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
/** 取某组件类型的只读渲染器,未登记返回 null */
|
|
192
|
+
var getReadOnlyRenderer = exports.getReadOnlyRenderer = function getReadOnlyRenderer(component) {
|
|
193
|
+
var _renderers$component;
|
|
194
|
+
if (!component) return null;
|
|
195
|
+
return (_renderers$component = renderers[component]) !== null && _renderers$component !== void 0 ? _renderers$component : null;
|
|
196
|
+
};
|
|
197
|
+
|
|
130
198
|
/**
|
|
131
199
|
* 取某组件类型的只读格式化器。命中返回函数,未命中返回 null(调用方回退 AgField)。
|
|
132
200
|
*/
|
|
@@ -351,6 +351,7 @@ var LazyAgField = exports.LazyAgField = function LazyAgField(params) {
|
|
|
351
351
|
colDef = params.colDef,
|
|
352
352
|
context = params.context,
|
|
353
353
|
formatter = params.formatter,
|
|
354
|
+
renderer = params.renderer,
|
|
354
355
|
columnProps = params.columnProps,
|
|
355
356
|
fieldSchema = params.fieldSchema,
|
|
356
357
|
required = params.required;
|
|
@@ -470,6 +471,11 @@ var LazyAgField = exports.LazyAgField = function LazyAgField(params) {
|
|
|
470
471
|
}
|
|
471
472
|
}, resolveEmptyPlaceholder(fieldSchema));
|
|
472
473
|
}
|
|
474
|
+
// 登记了只读渲染器的组件(如带颜色的 Tag)按渲染器出内容,与组件自己的阅读态一致
|
|
475
|
+
var shown = renderer && text !== '' ? renderer(liveValue, {
|
|
476
|
+
columnProps: columnProps,
|
|
477
|
+
fieldSchema: fieldSchema
|
|
478
|
+
}) : text;
|
|
473
479
|
return /*#__PURE__*/_react.default.createElement("span", {
|
|
474
480
|
className: "ag-array-table-lazy-text",
|
|
475
481
|
style: {
|
|
@@ -477,7 +483,7 @@ var LazyAgField = exports.LazyAgField = function LazyAgField(params) {
|
|
|
477
483
|
width: '100%',
|
|
478
484
|
cursor: 'text'
|
|
479
485
|
}
|
|
480
|
-
},
|
|
486
|
+
}, shown);
|
|
481
487
|
});
|
|
482
488
|
};
|
|
483
489
|
|
|
@@ -497,6 +503,7 @@ var LazyReadOnlyText = exports.LazyReadOnlyText = function LazyReadOnlyText(para
|
|
|
497
503
|
record = params.data,
|
|
498
504
|
colDef = params.colDef,
|
|
499
505
|
formatter = params.formatter,
|
|
506
|
+
renderer = params.renderer,
|
|
500
507
|
columnProps = params.columnProps,
|
|
501
508
|
fieldSchema = params.fieldSchema;
|
|
502
509
|
var dataKey = (_fieldSchema$name2 = fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.name) !== null && _fieldSchema$name2 !== void 0 ? _fieldSchema$name2 : colDef === null || colDef === void 0 ? void 0 : colDef.field;
|
|
@@ -506,13 +513,17 @@ var LazyReadOnlyText = exports.LazyReadOnlyText = function LazyReadOnlyText(para
|
|
|
506
513
|
columnProps: columnProps,
|
|
507
514
|
fieldSchema: fieldSchema
|
|
508
515
|
}) : liveValue == null ? '' : String(liveValue);
|
|
516
|
+
var shown = renderer && text !== '' ? renderer(liveValue, {
|
|
517
|
+
columnProps: columnProps,
|
|
518
|
+
fieldSchema: fieldSchema
|
|
519
|
+
}) : text;
|
|
509
520
|
return /*#__PURE__*/_react.default.createElement("span", {
|
|
510
521
|
className: "ag-array-table-readonly-text",
|
|
511
522
|
style: {
|
|
512
523
|
display: 'inline-block',
|
|
513
524
|
width: '100%'
|
|
514
525
|
}
|
|
515
|
-
},
|
|
526
|
+
}, shown);
|
|
516
527
|
});
|
|
517
528
|
};
|
|
518
529
|
|
|
@@ -632,7 +643,9 @@ var buildArrayTableColumns = exports.buildArrayTableColumns = function buildArra
|
|
|
632
643
|
var readOnly = isColumnReadOnlyEligible(arrayPattern, dataField, columnProps);
|
|
633
644
|
// 可编辑的数据字段(非 void 操作按钮)即使是业务自定义组件,也按兜底格式化器出懒挂载文本,默认阅读态;
|
|
634
645
|
// 只读列不兜底:自定义只读组件常显示别的字段(如 SiblingText),按自身值出文本会错。@author nokecy
|
|
635
|
-
|
|
646
|
+
// 登记了只读渲染器的组件只读列也走快路径(渲染器出内容,兜底格式化器只用于判空)。@author nokecy
|
|
647
|
+
var renderer = (0, _readOnlyFormatters.getReadOnlyRenderer)(component);
|
|
648
|
+
var formatter = (_getReadOnlyFormatter = (0, _readOnlyFormatters.getReadOnlyFormatter)(component)) !== null && _getReadOnlyFormatter !== void 0 ? _getReadOnlyFormatter : (!readOnly || renderer) && component && (dataField === null || dataField === void 0 ? void 0 : dataField.type) !== 'void' ? _readOnlyFormatters.fallbackFormatter : null;
|
|
636
649
|
var hasReactions = !!(dataField && dataField['x-reactions']);
|
|
637
650
|
if (!readOnly) applyNumberInputDefaults(dataField);
|
|
638
651
|
var forceEager = (columnProps === null || columnProps === void 0 ? void 0 : columnProps.forceAgField) === true;
|
|
@@ -640,6 +653,9 @@ var buildArrayTableColumns = exports.buildArrayTableColumns = function buildArra
|
|
|
640
653
|
// 懒挂载会把它降成「是/否」纯文本(点击才挂出开关),用户会以为开关消失。故可编辑态强制 eager。
|
|
641
654
|
// 只读态(下方 ① 路径)仍走「是/否」文本快路径不受影响。@author nokecy
|
|
642
655
|
var isInlineToggle = component === 'Switch' || component === 'Checkbox';
|
|
656
|
+
// ArrayTableIndex 靠「挂载时 useEffect 调 onChange(index+1)」把行号写进数据字段(如工艺路线的 sort)。
|
|
657
|
+
// 懒挂载只出文本、不挂真组件,effect 永远不执行,新增行的行号字段就是空的,故强制 eager。@author nokecy
|
|
658
|
+
var isIndexWriter = component === 'ArrayTableIndex';
|
|
643
659
|
|
|
644
660
|
// formatter 路径(只读快路径/懒挂载)经 AG-Grid params.value 取值,而 params.value 由 colDef.field(=name)驱动。
|
|
645
661
|
// 但设计器生成的 schema 里 Column key 多为随机 designable-id 且无 dataIndex,真实数据键在内层字段 name 上,
|
|
@@ -665,11 +681,32 @@ var buildArrayTableColumns = exports.buildArrayTableColumns = function buildArra
|
|
|
665
681
|
cellRenderer: LazyReadOnlyText,
|
|
666
682
|
cellRendererParams: {
|
|
667
683
|
formatter: formatter,
|
|
684
|
+
renderer: renderer,
|
|
668
685
|
columnProps: columnProps,
|
|
669
686
|
fieldSchema: dataField
|
|
670
687
|
}
|
|
671
688
|
}));
|
|
672
689
|
}
|
|
690
|
+
if (renderer) {
|
|
691
|
+
// 登记了渲染器:整表阅读态也出渲染器内容(如 Tag),不退化成纯文字
|
|
692
|
+
return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
|
|
693
|
+
valueGetter: valueGetter
|
|
694
|
+
} : {}), {}, {
|
|
695
|
+
cellRenderer: function cellRenderer(params) {
|
|
696
|
+
var ctx = {
|
|
697
|
+
columnProps: columnProps,
|
|
698
|
+
fieldSchema: dataField
|
|
699
|
+
};
|
|
700
|
+
return formatter(params.value, ctx) === '' ? '' : renderer(params.value, ctx);
|
|
701
|
+
},
|
|
702
|
+
valueFormatter: function valueFormatter(params) {
|
|
703
|
+
return formatter(params.value, {
|
|
704
|
+
columnProps: columnProps,
|
|
705
|
+
fieldSchema: dataField
|
|
706
|
+
});
|
|
707
|
+
}
|
|
708
|
+
}));
|
|
709
|
+
}
|
|
673
710
|
return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
|
|
674
711
|
valueGetter: valueGetter
|
|
675
712
|
} : {}), {}, {
|
|
@@ -685,7 +722,7 @@ var buildArrayTableColumns = exports.buildArrayTableColumns = function buildArra
|
|
|
685
722
|
}
|
|
686
723
|
|
|
687
724
|
// ② 可编辑懒挂载(排除单击直控的 Switch/Checkbox:须 eager 出真控件)
|
|
688
|
-
if (!readOnly && formatter && !hasReactions && !forceEager && !isInlineToggle && canFastPath) {
|
|
725
|
+
if (!readOnly && formatter && !hasReactions && !forceEager && !isInlineToggle && !isIndexWriter && canFastPath) {
|
|
689
726
|
return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
|
|
690
727
|
valueGetter: valueGetter
|
|
691
728
|
} : {}), {}, {
|
|
@@ -695,6 +732,7 @@ var buildArrayTableColumns = exports.buildArrayTableColumns = function buildArra
|
|
|
695
732
|
schema: schema,
|
|
696
733
|
field: field,
|
|
697
734
|
formatter: formatter,
|
|
735
|
+
renderer: renderer,
|
|
698
736
|
columnProps: columnProps,
|
|
699
737
|
fieldSchema: dataField,
|
|
700
738
|
lazyEditable: true,
|
|
@@ -10,10 +10,12 @@ var _arrayBase = require("../array-table/arrayBase");
|
|
|
10
10
|
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); }
|
|
11
11
|
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; }
|
|
12
12
|
var _default = exports.default = function _default(props) {
|
|
13
|
-
var onChange = props.onChange
|
|
13
|
+
var onChange = props.onChange,
|
|
14
|
+
value = props.value;
|
|
14
15
|
var index = _arrayBase.ArrayBase.useIndex();
|
|
15
16
|
(0, _react.useEffect)(function () {
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
// 行号变了、或字段值被外部覆盖/清空(如 setValues、重置)而不等于行号时,重新写入
|
|
18
|
+
if (value !== index + 1) onChange(index + 1);
|
|
19
|
+
}, [index, value]);
|
|
18
20
|
return /*#__PURE__*/_react.default.createElement("span", props, "#", index + 1, ".");
|
|
19
21
|
};
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export type * from "./importModal";
|
|
|
29
29
|
export type * from "./fullScreenAlert";
|
|
30
30
|
export type * from "./RuleBuilder";
|
|
31
31
|
export type { ColumnConfig } from "./array-table/columnHelper";
|
|
32
|
+
export { registerReadOnlyFormatter, registerReadOnlyLabels, registerReadOnlyRenderer } from "./array-table/readOnlyFormatters";
|
|
33
|
+
export type { ReadOnlyFormatter, ReadOnlyFormatterCtx, ReadOnlyLabels, ReadOnlyRenderer } from "./array-table/readOnlyFormatters";
|
|
32
34
|
export type { CentralizedColumnScheme, QueryScheme, SchemeStorageAdapter, SchemeSyncDataDto, CurrentSchemeDto, SchemeStorageConfig, LocalStorageAdapterConfig, BackendApiAdapterConfig, UseSchemeManagerConfig, GridPlusContextValue, GlobalConfigPermissions, } from "./ag-grid-plus";
|
|
33
35
|
export * from './adapters';
|
|
34
36
|
export * from "./readPretty";
|
package/dist/cjs/index.js
CHANGED
|
@@ -48,6 +48,9 @@ var _exportNames = {
|
|
|
48
48
|
FlagsSelector: true,
|
|
49
49
|
MatchItem: true,
|
|
50
50
|
RegexRailroadDiagram: true,
|
|
51
|
+
registerReadOnlyFormatter: true,
|
|
52
|
+
registerReadOnlyLabels: true,
|
|
53
|
+
registerReadOnlyRenderer: true,
|
|
51
54
|
createEntitySelect: true,
|
|
52
55
|
ExportButton: true,
|
|
53
56
|
buildExportUrl: true,
|
|
@@ -380,6 +383,24 @@ Object.defineProperty(exports, "nonNegativeDecimal", {
|
|
|
380
383
|
return _businessDecimal.nonNegativeDecimal;
|
|
381
384
|
}
|
|
382
385
|
});
|
|
386
|
+
Object.defineProperty(exports, "registerReadOnlyFormatter", {
|
|
387
|
+
enumerable: true,
|
|
388
|
+
get: function get() {
|
|
389
|
+
return _readOnlyFormatters.registerReadOnlyFormatter;
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
Object.defineProperty(exports, "registerReadOnlyLabels", {
|
|
393
|
+
enumerable: true,
|
|
394
|
+
get: function get() {
|
|
395
|
+
return _readOnlyFormatters.registerReadOnlyLabels;
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
Object.defineProperty(exports, "registerReadOnlyRenderer", {
|
|
399
|
+
enumerable: true,
|
|
400
|
+
get: function get() {
|
|
401
|
+
return _readOnlyFormatters.registerReadOnlyRenderer;
|
|
402
|
+
}
|
|
403
|
+
});
|
|
383
404
|
Object.defineProperty(exports, "relativeLuminance", {
|
|
384
405
|
enumerable: true,
|
|
385
406
|
get: function get() {
|
|
@@ -505,6 +526,7 @@ var _standardFormDialog = require("./standardFormDialog");
|
|
|
505
526
|
var _deleteConfirm = _interopRequireDefault(require("./deleteConfirm"));
|
|
506
527
|
var _RuleBuilder = require("./RuleBuilder");
|
|
507
528
|
var _RegexEditor = require("./components/RegexEditor");
|
|
529
|
+
var _readOnlyFormatters = require("./array-table/readOnlyFormatters");
|
|
508
530
|
var _adapters = require("./adapters");
|
|
509
531
|
Object.keys(_adapters).forEach(function (key) {
|
|
510
532
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
export type ReadOnlyFormatterCtx = {
|
|
2
3
|
/** 列的 x-component-props(headerName/width/options/format 等) */
|
|
3
4
|
columnProps: any;
|
|
@@ -15,6 +16,31 @@ export type ReadOnlyFormatter = (value: any, ctx: ReadOnlyFormatterCtx) => strin
|
|
|
15
16
|
export declare const fallbackFormatter: ReadOnlyFormatter;
|
|
16
17
|
/** 消费方扩展自定义只读列的显示逻辑 */
|
|
17
18
|
export declare const registerReadOnlyFormatter: (component: string, formatter: ReadOnlyFormatter) => void;
|
|
19
|
+
/** 值 -> 名称表:对象 `{ '10': '参与' }`,或与 Select 同形的选项数组 `[{ label, value }]` */
|
|
20
|
+
export type ReadOnlyLabels = Record<string, string> | Array<{
|
|
21
|
+
label?: any;
|
|
22
|
+
value?: any;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* 给业务自定义选择器登记「值 -> 名称」,ArrayTable 未激活的格子与只读列按名称出文本。
|
|
26
|
+
*
|
|
27
|
+
* 业务组件(如「执行动作」「是否参与校验」这类固定选项的选择器)不在内置注册表里,
|
|
28
|
+
* 格子文本会走兜底格式化器把原值原样显示(10、00 这类编码)。在组件模块里调用一次即可,
|
|
29
|
+
* 所有用到该 x-component 的列都生效;同一组件在不同 Schema 里注册名不同时传名字数组。
|
|
30
|
+
* 按 String 宽松比对(容忍后端返回数字/字符串漂移);labelInValue 对象显示其 label;
|
|
31
|
+
* 数组逐个映射后逗号拼接;表里没有的值原样显示。@author nokecy
|
|
32
|
+
*/
|
|
33
|
+
export declare const registerReadOnlyLabels: (component: string | string[], labels: ReadOnlyLabels) => void;
|
|
34
|
+
/** 只读渲染器:按值出一段 React 内容(如组件自己的阅读态 Tag),格子未激活和只读列都用它显示 */
|
|
35
|
+
export type ReadOnlyRenderer = (value: any, ctx: ReadOnlyFormatterCtx) => ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* 给业务自定义组件登记只读渲染器。登记后 ArrayTable 可编辑列未激活的格子、只读列都渲染它的返回内容,
|
|
38
|
+
* 与组件自己的阅读态一致(例如带颜色的 Tag),仍不挂 Formily 字段树。空值不调用渲染器(出占位/留空)。
|
|
39
|
+
* 只要文字时用 registerReadOnlyLabels;两者都登记时显示走渲染器。@author nokecy
|
|
40
|
+
*/
|
|
41
|
+
export declare const registerReadOnlyRenderer: (component: string | string[], renderer: ReadOnlyRenderer) => void;
|
|
42
|
+
/** 取某组件类型的只读渲染器,未登记返回 null */
|
|
43
|
+
export declare const getReadOnlyRenderer: (component: string | undefined) => ReadOnlyRenderer | null;
|
|
18
44
|
/**
|
|
19
45
|
* 取某组件类型的只读格式化器。命中返回函数,未命中返回 null(调用方回退 AgField)。
|
|
20
46
|
*/
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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); }
|
|
4
|
+
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; }
|
|
5
|
+
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; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
1
7
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
8
|
/**
|
|
3
9
|
* 只读列「纯文本快路径」格式化器注册表
|
|
@@ -121,6 +127,68 @@ export var registerReadOnlyFormatter = function registerReadOnlyFormatter(compon
|
|
|
121
127
|
registry[component] = formatter;
|
|
122
128
|
};
|
|
123
129
|
|
|
130
|
+
/** 值 -> 名称表:对象 `{ '10': '参与' }`,或与 Select 同形的选项数组 `[{ label, value }]` */
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* 给业务自定义选择器登记「值 -> 名称」,ArrayTable 未激活的格子与只读列按名称出文本。
|
|
134
|
+
*
|
|
135
|
+
* 业务组件(如「执行动作」「是否参与校验」这类固定选项的选择器)不在内置注册表里,
|
|
136
|
+
* 格子文本会走兜底格式化器把原值原样显示(10、00 这类编码)。在组件模块里调用一次即可,
|
|
137
|
+
* 所有用到该 x-component 的列都生效;同一组件在不同 Schema 里注册名不同时传名字数组。
|
|
138
|
+
* 按 String 宽松比对(容忍后端返回数字/字符串漂移);labelInValue 对象显示其 label;
|
|
139
|
+
* 数组逐个映射后逗号拼接;表里没有的值原样显示。@author nokecy
|
|
140
|
+
*/
|
|
141
|
+
export var registerReadOnlyLabels = function registerReadOnlyLabels(component, labels) {
|
|
142
|
+
var map = new Map();
|
|
143
|
+
if (Array.isArray(labels)) {
|
|
144
|
+
labels.forEach(function (o) {
|
|
145
|
+
var _o$label;
|
|
146
|
+
if (o && o.value != null) map.set(String(o.value), String((_o$label = o.label) !== null && _o$label !== void 0 ? _o$label : o.value));
|
|
147
|
+
});
|
|
148
|
+
} else {
|
|
149
|
+
Object.entries(labels !== null && labels !== void 0 ? labels : {}).forEach(function (_ref7) {
|
|
150
|
+
var _ref8 = _slicedToArray(_ref7, 2),
|
|
151
|
+
k = _ref8[0],
|
|
152
|
+
v = _ref8[1];
|
|
153
|
+
return map.set(String(k), String(v));
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
var toText = function toText(v) {
|
|
157
|
+
var _ref9, _v$label, _map$get;
|
|
158
|
+
if (v == null || v === '') return '';
|
|
159
|
+
if (_typeof(v) === 'object') return String((_ref9 = (_v$label = v.label) !== null && _v$label !== void 0 ? _v$label : v.value) !== null && _ref9 !== void 0 ? _ref9 : '');
|
|
160
|
+
return (_map$get = map.get(String(v))) !== null && _map$get !== void 0 ? _map$get : String(v);
|
|
161
|
+
};
|
|
162
|
+
var formatter = function formatter(value) {
|
|
163
|
+
return Array.isArray(value) ? value.map(toText).filter(Boolean).join(', ') : toText(value);
|
|
164
|
+
};
|
|
165
|
+
(Array.isArray(component) ? component : [component]).forEach(function (name) {
|
|
166
|
+
return registerReadOnlyFormatter(name, formatter);
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/** 只读渲染器:按值出一段 React 内容(如组件自己的阅读态 Tag),格子未激活和只读列都用它显示 */
|
|
171
|
+
|
|
172
|
+
var renderers = {};
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* 给业务自定义组件登记只读渲染器。登记后 ArrayTable 可编辑列未激活的格子、只读列都渲染它的返回内容,
|
|
176
|
+
* 与组件自己的阅读态一致(例如带颜色的 Tag),仍不挂 Formily 字段树。空值不调用渲染器(出占位/留空)。
|
|
177
|
+
* 只要文字时用 registerReadOnlyLabels;两者都登记时显示走渲染器。@author nokecy
|
|
178
|
+
*/
|
|
179
|
+
export var registerReadOnlyRenderer = function registerReadOnlyRenderer(component, renderer) {
|
|
180
|
+
(Array.isArray(component) ? component : [component]).forEach(function (name) {
|
|
181
|
+
renderers[name] = renderer;
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/** 取某组件类型的只读渲染器,未登记返回 null */
|
|
186
|
+
export var getReadOnlyRenderer = function getReadOnlyRenderer(component) {
|
|
187
|
+
var _renderers$component;
|
|
188
|
+
if (!component) return null;
|
|
189
|
+
return (_renderers$component = renderers[component]) !== null && _renderers$component !== void 0 ? _renderers$component : null;
|
|
190
|
+
};
|
|
191
|
+
|
|
124
192
|
/**
|
|
125
193
|
* 取某组件类型的只读格式化器。命中返回函数,未命中返回 null(调用方回退 AgField)。
|
|
126
194
|
*/
|
|
@@ -22,7 +22,7 @@ import { useField, useFieldSchema, RecursionField, Observer, useExpressionScope
|
|
|
22
22
|
import { isArr, lazyMerge } from '@formily/shared';
|
|
23
23
|
import { Schema } from '@formily/json-schema';
|
|
24
24
|
import ArrayBase from "./arrayBase";
|
|
25
|
-
import { fallbackFormatter, getReadOnlyFormatter } from "./readOnlyFormatters";
|
|
25
|
+
import { fallbackFormatter, getReadOnlyFormatter, getReadOnlyRenderer } from "./readOnlyFormatters";
|
|
26
26
|
import { markHeaderGroup } from "./columnGroup";
|
|
27
27
|
import { CellFocusScope } from "./cellFocusScope";
|
|
28
28
|
var isColumnComponent = function isColumnComponent(schema) {
|
|
@@ -342,6 +342,7 @@ var LazyAgField = function LazyAgField(params) {
|
|
|
342
342
|
colDef = params.colDef,
|
|
343
343
|
context = params.context,
|
|
344
344
|
formatter = params.formatter,
|
|
345
|
+
renderer = params.renderer,
|
|
345
346
|
columnProps = params.columnProps,
|
|
346
347
|
fieldSchema = params.fieldSchema,
|
|
347
348
|
required = params.required;
|
|
@@ -461,6 +462,11 @@ var LazyAgField = function LazyAgField(params) {
|
|
|
461
462
|
}
|
|
462
463
|
}, resolveEmptyPlaceholder(fieldSchema));
|
|
463
464
|
}
|
|
465
|
+
// 登记了只读渲染器的组件(如带颜色的 Tag)按渲染器出内容,与组件自己的阅读态一致
|
|
466
|
+
var shown = renderer && text !== '' ? renderer(liveValue, {
|
|
467
|
+
columnProps: columnProps,
|
|
468
|
+
fieldSchema: fieldSchema
|
|
469
|
+
}) : text;
|
|
464
470
|
return /*#__PURE__*/React.createElement("span", {
|
|
465
471
|
className: "ag-array-table-lazy-text",
|
|
466
472
|
style: {
|
|
@@ -468,7 +474,7 @@ var LazyAgField = function LazyAgField(params) {
|
|
|
468
474
|
width: '100%',
|
|
469
475
|
cursor: 'text'
|
|
470
476
|
}
|
|
471
|
-
},
|
|
477
|
+
}, shown);
|
|
472
478
|
});
|
|
473
479
|
};
|
|
474
480
|
|
|
@@ -488,6 +494,7 @@ var LazyReadOnlyText = function LazyReadOnlyText(params) {
|
|
|
488
494
|
record = params.data,
|
|
489
495
|
colDef = params.colDef,
|
|
490
496
|
formatter = params.formatter,
|
|
497
|
+
renderer = params.renderer,
|
|
491
498
|
columnProps = params.columnProps,
|
|
492
499
|
fieldSchema = params.fieldSchema;
|
|
493
500
|
var dataKey = (_fieldSchema$name2 = fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.name) !== null && _fieldSchema$name2 !== void 0 ? _fieldSchema$name2 : colDef === null || colDef === void 0 ? void 0 : colDef.field;
|
|
@@ -497,13 +504,17 @@ var LazyReadOnlyText = function LazyReadOnlyText(params) {
|
|
|
497
504
|
columnProps: columnProps,
|
|
498
505
|
fieldSchema: fieldSchema
|
|
499
506
|
}) : liveValue == null ? '' : String(liveValue);
|
|
507
|
+
var shown = renderer && text !== '' ? renderer(liveValue, {
|
|
508
|
+
columnProps: columnProps,
|
|
509
|
+
fieldSchema: fieldSchema
|
|
510
|
+
}) : text;
|
|
500
511
|
return /*#__PURE__*/React.createElement("span", {
|
|
501
512
|
className: "ag-array-table-readonly-text",
|
|
502
513
|
style: {
|
|
503
514
|
display: 'inline-block',
|
|
504
515
|
width: '100%'
|
|
505
516
|
}
|
|
506
|
-
},
|
|
517
|
+
}, shown);
|
|
507
518
|
});
|
|
508
519
|
};
|
|
509
520
|
|
|
@@ -623,7 +634,9 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
|
|
|
623
634
|
var readOnly = isColumnReadOnlyEligible(arrayPattern, dataField, columnProps);
|
|
624
635
|
// 可编辑的数据字段(非 void 操作按钮)即使是业务自定义组件,也按兜底格式化器出懒挂载文本,默认阅读态;
|
|
625
636
|
// 只读列不兜底:自定义只读组件常显示别的字段(如 SiblingText),按自身值出文本会错。@author nokecy
|
|
626
|
-
|
|
637
|
+
// 登记了只读渲染器的组件只读列也走快路径(渲染器出内容,兜底格式化器只用于判空)。@author nokecy
|
|
638
|
+
var renderer = getReadOnlyRenderer(component);
|
|
639
|
+
var formatter = (_getReadOnlyFormatter = getReadOnlyFormatter(component)) !== null && _getReadOnlyFormatter !== void 0 ? _getReadOnlyFormatter : (!readOnly || renderer) && component && (dataField === null || dataField === void 0 ? void 0 : dataField.type) !== 'void' ? fallbackFormatter : null;
|
|
627
640
|
var hasReactions = !!(dataField && dataField['x-reactions']);
|
|
628
641
|
if (!readOnly) applyNumberInputDefaults(dataField);
|
|
629
642
|
var forceEager = (columnProps === null || columnProps === void 0 ? void 0 : columnProps.forceAgField) === true;
|
|
@@ -631,6 +644,9 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
|
|
|
631
644
|
// 懒挂载会把它降成「是/否」纯文本(点击才挂出开关),用户会以为开关消失。故可编辑态强制 eager。
|
|
632
645
|
// 只读态(下方 ① 路径)仍走「是/否」文本快路径不受影响。@author nokecy
|
|
633
646
|
var isInlineToggle = component === 'Switch' || component === 'Checkbox';
|
|
647
|
+
// ArrayTableIndex 靠「挂载时 useEffect 调 onChange(index+1)」把行号写进数据字段(如工艺路线的 sort)。
|
|
648
|
+
// 懒挂载只出文本、不挂真组件,effect 永远不执行,新增行的行号字段就是空的,故强制 eager。@author nokecy
|
|
649
|
+
var isIndexWriter = component === 'ArrayTableIndex';
|
|
634
650
|
|
|
635
651
|
// formatter 路径(只读快路径/懒挂载)经 AG-Grid params.value 取值,而 params.value 由 colDef.field(=name)驱动。
|
|
636
652
|
// 但设计器生成的 schema 里 Column key 多为随机 designable-id 且无 dataIndex,真实数据键在内层字段 name 上,
|
|
@@ -656,11 +672,32 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
|
|
|
656
672
|
cellRenderer: LazyReadOnlyText,
|
|
657
673
|
cellRendererParams: {
|
|
658
674
|
formatter: formatter,
|
|
675
|
+
renderer: renderer,
|
|
659
676
|
columnProps: columnProps,
|
|
660
677
|
fieldSchema: dataField
|
|
661
678
|
}
|
|
662
679
|
}));
|
|
663
680
|
}
|
|
681
|
+
if (renderer) {
|
|
682
|
+
// 登记了渲染器:整表阅读态也出渲染器内容(如 Tag),不退化成纯文字
|
|
683
|
+
return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
|
|
684
|
+
valueGetter: valueGetter
|
|
685
|
+
} : {}), {}, {
|
|
686
|
+
cellRenderer: function cellRenderer(params) {
|
|
687
|
+
var ctx = {
|
|
688
|
+
columnProps: columnProps,
|
|
689
|
+
fieldSchema: dataField
|
|
690
|
+
};
|
|
691
|
+
return formatter(params.value, ctx) === '' ? '' : renderer(params.value, ctx);
|
|
692
|
+
},
|
|
693
|
+
valueFormatter: function valueFormatter(params) {
|
|
694
|
+
return formatter(params.value, {
|
|
695
|
+
columnProps: columnProps,
|
|
696
|
+
fieldSchema: dataField
|
|
697
|
+
});
|
|
698
|
+
}
|
|
699
|
+
}));
|
|
700
|
+
}
|
|
664
701
|
return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
|
|
665
702
|
valueGetter: valueGetter
|
|
666
703
|
} : {}), {}, {
|
|
@@ -676,7 +713,7 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
|
|
|
676
713
|
}
|
|
677
714
|
|
|
678
715
|
// ② 可编辑懒挂载(排除单击直控的 Switch/Checkbox:须 eager 出真控件)
|
|
679
|
-
if (!readOnly && formatter && !hasReactions && !forceEager && !isInlineToggle && canFastPath) {
|
|
716
|
+
if (!readOnly && formatter && !hasReactions && !forceEager && !isInlineToggle && !isIndexWriter && canFastPath) {
|
|
680
717
|
return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
|
|
681
718
|
valueGetter: valueGetter
|
|
682
719
|
} : {}), {}, {
|
|
@@ -686,6 +723,7 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
|
|
|
686
723
|
schema: schema,
|
|
687
724
|
field: field,
|
|
688
725
|
formatter: formatter,
|
|
726
|
+
renderer: renderer,
|
|
689
727
|
columnProps: columnProps,
|
|
690
728
|
fieldSchema: dataField,
|
|
691
729
|
lazyEditable: true,
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React, { useEffect } from 'react';
|
|
2
2
|
import { ArrayBase } from "../array-table/arrayBase";
|
|
3
3
|
export default (function (props) {
|
|
4
|
-
var onChange = props.onChange
|
|
4
|
+
var onChange = props.onChange,
|
|
5
|
+
value = props.value;
|
|
5
6
|
var index = ArrayBase.useIndex();
|
|
6
7
|
useEffect(function () {
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
// 行号变了、或字段值被外部覆盖/清空(如 setValues、重置)而不等于行号时,重新写入
|
|
9
|
+
if (value !== index + 1) onChange(index + 1);
|
|
10
|
+
}, [index, value]);
|
|
9
11
|
return /*#__PURE__*/React.createElement("span", props, "#", index + 1, ".");
|
|
10
12
|
});
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export type * from "./importModal";
|
|
|
29
29
|
export type * from "./fullScreenAlert";
|
|
30
30
|
export type * from "./RuleBuilder";
|
|
31
31
|
export type { ColumnConfig } from "./array-table/columnHelper";
|
|
32
|
+
export { registerReadOnlyFormatter, registerReadOnlyLabels, registerReadOnlyRenderer } from "./array-table/readOnlyFormatters";
|
|
33
|
+
export type { ReadOnlyFormatter, ReadOnlyFormatterCtx, ReadOnlyLabels, ReadOnlyRenderer } from "./array-table/readOnlyFormatters";
|
|
32
34
|
export type { CentralizedColumnScheme, QueryScheme, SchemeStorageAdapter, SchemeSyncDataDto, CurrentSchemeDto, SchemeStorageConfig, LocalStorageAdapterConfig, BackendApiAdapterConfig, UseSchemeManagerConfig, GridPlusContextValue, GlobalConfigPermissions, } from "./ag-grid-plus";
|
|
33
35
|
export * from './adapters';
|
|
34
36
|
export * from "./readPretty";
|
package/dist/esm/index.js
CHANGED
|
@@ -35,6 +35,9 @@ useSchemeManager, useGridSchemes, LocalStorageSchemeAdapter, BackendApiSchemeAda
|
|
|
35
35
|
|
|
36
36
|
// 导出类型定义
|
|
37
37
|
|
|
38
|
+
// ArrayTable 格子文本:业务自定义组件登记「值 -> 名称」或自定义格式化器
|
|
39
|
+
export { registerReadOnlyFormatter, registerReadOnlyLabels, registerReadOnlyRenderer } from "./array-table/readOnlyFormatters";
|
|
40
|
+
|
|
38
41
|
// 集中式方案管理类型
|
|
39
42
|
|
|
40
43
|
// 注意: 旧的方案管理类型已废弃
|