@agile-team/wl-skills-ui 1.10.2 → 1.10.3
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/CHANGELOG.md +15 -0
- package/README.md +18 -8
- package/docs/ag-grid-empty-state.md +89 -0
- package/docs/composite-component-contracts.md +2 -1
- package/docs/split-grid-resize.md +10 -4
- package/docs/visual-regression.md +2 -0
- package/es/auto.js +1 -1
- package/es/{chunk-KCVRDXIH.js → chunk-D5EPTQY5.js} +35 -3
- package/es/{chunk-QLPJLXY6.js → chunk-KR4MHMFO.js} +422 -1
- package/es/common-preset.d.ts +2 -2
- package/es/common-preset.js +3 -3
- package/es/index.d.ts +24 -4
- package/es/index.js +3 -3
- package/es/presets/security.d.ts +1 -1
- package/es/presets/security.js +1 -1
- package/es/{renderers-ONyz3P5K.d.ts → renderers-BNvL--Ho.d.ts} +1 -1
- package/es/{types-DtmxwMWV.d.ts → types-CDUjHdDP.d.ts} +1 -0
- package/package.json +1 -1
- package/scanner/rules/button.mjs +29 -1
- package/skills/element/el-dialog/SKILL.md +2 -2
- package/skills/layouts/detail-page/SKILL.md +1 -1
- package/skills/layouts/form-dialog/SKILL.md +2 -1
- package/skills/layouts/list-page/SKILL.md +5 -4
- package/standards/component-structures.json +1 -1
- package/standards/rules.json +12 -0
- package/standards/ui/01-table.md +5 -1
- package/standards/ui/02-button.md +12 -6
- package/standards/ui/03-form.md +2 -0
- package/styles/element/_dialog.scss +26 -2
- package/styles/vendors/_ag-grid.scss +115 -0
- package/styles/vendors/_jh-ui.scss +3 -0
- package/templates/form-dialog/TPL-FORM-DIALOG.md +2 -1
- package/templates/list-page/TPL-LIST.md +3 -3
- package/templates/tree-list/TPL-TREE-LIST.md +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@ All notable changes to **@agile-team/wl-skills-ui** will be documented in this f
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [1.10.3] - 2026-08-16
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- 新增 R041 按钮尺寸扫描规则:`el-button` / `ElButton` / `BaseToolbar` 无显式 `size` 时报告 warning,默认建议 `small`;不自动修改,不覆盖显式其他或动态尺寸。
|
|
12
|
+
- 新增 `runtime/ag-grid-empty-state`:测量 AG Grid 真实数据区并为完整空态保留 160px;支持上下/左右分屏受控撑高、动态挂载、Resize 合并、豁免区和卸载清理。
|
|
13
|
+
- 新增完整空态 Node 行为测试与浏览器视觉基准,覆盖单层/分组表头、上下双空表滚动、数据区中心误差和数据恢复清理。
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- 精准修正旧新 Element Plus MessageBox 状态图标定位差异,仅命中容器直属状态图标结构。
|
|
18
|
+
- `jh-input-number` 内层文本起始位恢复 11px 间距,不改右侧步进按钮、单位和对齐配置。
|
|
19
|
+
- AG Grid 编辑单元格仅退出普通文本 padding;列 `align/headerAlign` 改为函数式 `cellStyle/cellClass` 桥接,合并业务已有配置并使表头与内容共轴。
|
|
20
|
+
- AG Grid 空态不再相对整张 Grid 居中或依赖 `top:36px/72px` 猜表头;插图、主文案和辅助说明始终完整同规格,低高度多表格不再压盖表头。
|
|
21
|
+
|
|
7
22
|
## [1.10.2] - 2026-08-15
|
|
8
23
|
|
|
9
24
|
### Fixed
|
package/README.md
CHANGED
|
@@ -104,9 +104,10 @@ wl-skills-ui/
|
|
|
104
104
|
│ │ ├── common.ts # 通用业务预设(enable/audit/verify + 起步包)
|
|
105
105
|
│ │ └── index.ts
|
|
106
106
|
│ ├── auto.ts # Skin/老项目包级保护自动入口
|
|
107
|
-
│ ├── guards.ts # 主题锁 + 长文本 +
|
|
107
|
+
│ ├── guards.ts # 主题锁 + 长文本 + 分屏/空态表格保护聚合
|
|
108
108
|
│ ├── overflow-tooltip.ts # 普通表格真实溢出 Tooltip 兜底
|
|
109
109
|
│ ├── split-grid-resize.ts # jh-drag-row 内 AG Grid Resize/高度链守护
|
|
110
|
+
│ ├── ag-grid-empty-state.ts # AG Grid 完整空态定位与受控撑高
|
|
110
111
|
│ └── index.ts # 公共 API 入口
|
|
111
112
|
│
|
|
112
113
|
├── scanner/ # 自动化扫描 / 修复
|
|
@@ -115,7 +116,7 @@ wl-skills-ui/
|
|
|
115
116
|
│ │ ├── _shared.mjs # 公共工具 + inferMeta(layer/vendor)
|
|
116
117
|
│ │ ├── table.mjs # R001 R002 R003 R014 R039
|
|
117
118
|
│ │ ├── form.mjs # R006 R007 R008
|
|
118
|
-
│ │ ├── button.mjs # R004 R005 R015 R038
|
|
119
|
+
│ │ ├── button.mjs # R004 R005 R015 R038 R041
|
|
119
120
|
│ │ ├── componentStructure.mjs # R040 复合结构登记审查
|
|
120
121
|
│ │ ├── tag.mjs # R009 R010 R012
|
|
121
122
|
│ │ ├── dialog.mjs # R011
|
|
@@ -227,7 +228,14 @@ yarn add @agile-team/wl-skills-ui
|
|
|
227
228
|
|
|
228
229
|
## 版本亮点
|
|
229
230
|
|
|
230
|
-
当前 v1.10.
|
|
231
|
+
当前 v1.10.3:
|
|
232
|
+
|
|
233
|
+
- **复合结构精准修复**:仅在 MessageBox 容器直接含状态图标时统一图标与文字布局;`jh-input-number` 仅给内层文本 wrapper 补 11px 左间距,不改步进按钮、单位后缀和对齐语义。
|
|
234
|
+
- **AG Grid 编辑与对齐闭环**:仅对已标记编辑态的单元格退出普通文本 padding;`align/headerAlign` 桥接为共享适配层可执行的函数配置,表头与内容使用同一对齐轴,并合并保留业务 `cellStyle/cellClass` 返回值。
|
|
235
|
+
- **AG Grid 完整空态闭环**:按真实 `.ag-body-viewport` 定位,数据区统一保留 160px;插图、主文案和辅助说明始终完整同规格。上下/左右多表格空间不足时由最近分屏受控滚动,数据恢复后自动清理全部标记。
|
|
236
|
+
- **按钮尺寸可重现**:新增 R041,只报告未显式声明 `size` 的 `el-button` / `ElButton` / `BaseToolbar`;默认建议 `small`,已设置其他或动态尺寸的业务代码不受影响。
|
|
237
|
+
|
|
238
|
+
上一版 v1.10.2:
|
|
231
239
|
|
|
232
240
|
- **判色纪律收紧**:单字状态词锚定(`待`/`无`/`否`/`未` 仅按词头或整词命中),「招待费」「无票运输」类业务文案不再误判;「未X」先行拦截,`未完成/未通过` 不再被子串反向误命中;不使用后行断言(旧 Safari 兼容)。
|
|
233
241
|
- **工程闭环补强(零运行时开销)**:`test:coverage` 内建覆盖率报告(零依赖);`publish.yml` Release 触发的自动发布(tag 校验 + verify 门禁)。
|
|
@@ -276,7 +284,7 @@ yarn add @agile-team/wl-skills-ui
|
|
|
276
284
|
|
|
277
285
|
- **输入附加段不再割裂**:`el-input-group` 由组合根统一 26px 高度、6px 外圆角和 default/hover/focus/error/disabled 描边;左侧 prefix、右侧 append 图标统一 14px,纯图标附加段 32px,文字/单位/按钮仍按内容宽度。
|
|
278
286
|
- **新旧 DOM 同时覆盖**:兼容 jh-ui 配套旧版 input 直挂结构和新版 `.el-input__wrapper` 结构,内部输入不再重复描边;普通 input、普通按钮、登录页和显式豁免区保持原行为。
|
|
279
|
-
-
|
|
287
|
+
- **分屏表格真正重布局**:有数据时,`runtime/auto` 只观察 `jh-drag-row` 内真实 AG Grid pane,补齐可收缩高度链并由 AG Grid 自身生成内部滚动条;只有完整空态确实放不下时,最近分屏根才临时承担一个纵向滚动条,数据恢复后撤销。
|
|
280
288
|
- **回归边界闭环**:结构清单新增 input-group 新旧 DOM 与 drag-row/AG Grid 契约;Node 行为测试覆盖动态挂载、批量 Resize、豁免区,真实浏览器验证附加段计算样式及 220px→120px 收缩后的内部滚动。
|
|
281
289
|
|
|
282
290
|
上一版 v1.9.12:
|
|
@@ -399,7 +407,7 @@ yarn add @agile-team/wl-skills-ui
|
|
|
399
407
|
- `standards/architecture/01-layer-boundaries.md` 固化 tokens、Element Plus、Project Vendors、layouts、runtime、scanner、skills 的扩展边界,明确 `Base*` / `jh-*` / `C_*` / AG Grid 是当前项目集群必覆盖层
|
|
400
408
|
- `vendors/jh-components` 使用 `<jh-*>` 全量通配治理,当前只维护代表性基线和专项覆盖准入,避免遗漏新增 jh 封装
|
|
401
409
|
- `npm run docs:check` 校验旧命名、旧命令、版本文案和编辑器配置,防止规则文档回退
|
|
402
|
-
-
|
|
410
|
+
- 表格空状态按真实数据区居中;AG Grid 空间不足时受控撑高,完整插图与文案保持一致
|
|
403
411
|
- 查询区/工具栏按钮补齐 token fallback,禁用按钮独立保留清晰禁用态
|
|
404
412
|
- 表单控件圆角统一使用 `--wk-form-control-radius`,覆盖 input/select/date/textarea/upload 等控件家族
|
|
405
413
|
- `wl-ui init/update` 会安装 Skill、触发提示、MCP 配置和 manifest 清单
|
|
@@ -456,7 +464,7 @@ npx wl-ui init --mode native
|
|
|
456
464
|
// 4. src/main.ts
|
|
457
465
|
import { installCommonPreset } from "@agile-team/wl-skills-ui/runtime/common-preset";
|
|
458
466
|
installCommonPreset();
|
|
459
|
-
//
|
|
467
|
+
// 已包含主题锁、普通表格长文本、分屏尺寸和完整空态保护,无需重复引入 runtime/auto。
|
|
460
468
|
```
|
|
461
469
|
|
|
462
470
|
```vue
|
|
@@ -785,7 +793,7 @@ export const myRules = [
|
|
|
785
793
|
|
|
786
794
|
## 规范清单
|
|
787
795
|
|
|
788
|
-
### UI 规则(R001-
|
|
796
|
+
### UI 规则(R001-R041,按 layer 自动分组)
|
|
789
797
|
|
|
790
798
|
| Rule | Layer | Vendor | 说明 |
|
|
791
799
|
| ---- | ----- | --------- | ------------------------------------ |
|
|
@@ -819,6 +827,7 @@ export const myRules = [
|
|
|
819
827
|
| R038 | L1 | element | 创建类主按钮缺 primary 填充主题色 |
|
|
820
828
|
| R039 | L1 | element | 普通数据列缺省略与悬停完整提示 |
|
|
821
829
|
| R040 | L2 | common-core | 未登记复合控件结构需人工评审 |
|
|
830
|
+
| R041 | L1 | element | 按钮未显式 size,默认应使用 small |
|
|
822
831
|
|
|
823
832
|
### 维护者防回归
|
|
824
833
|
|
|
@@ -840,7 +849,8 @@ pnpm test:visual:update
|
|
|
840
849
|
pnpm release:check
|
|
841
850
|
```
|
|
842
851
|
|
|
843
|
-
机制与准入细则见 [复合控件结构契约](docs/composite-component-contracts.md)
|
|
852
|
+
机制与准入细则见 [复合控件结构契约](docs/composite-component-contracts.md)、
|
|
853
|
+
[AG Grid 完整空状态](docs/ag-grid-empty-state.md) 和
|
|
844
854
|
[浏览器视觉回归](docs/visual-regression.md)。视觉基准依赖字体、浏览器与操作系统渲染,
|
|
845
855
|
必须在相同环境中比较;当前项目基准由 Windows Edge Chromium 生成。
|
|
846
856
|
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# AG Grid 完整空状态布局
|
|
2
|
+
|
|
3
|
+
## 目标
|
|
4
|
+
|
|
5
|
+
所有接入 `wl-skills-ui` 的 BaseTable/AG Grid 在无数据时始终显示同一套完整空态:
|
|
6
|
+
|
|
7
|
+
- 100×84px 插图;
|
|
8
|
+
- 主文案“暂无数据”;
|
|
9
|
+
- 辅助说明“未找到匹配数据,请调整筛选条件后重试”;
|
|
10
|
+
- 相同字号、间距和视觉中心。
|
|
11
|
+
|
|
12
|
+
不会因普通单表、上下分屏、左右分屏、单层表头或分组表头而缩小插图、隐藏文案或改变
|
|
13
|
+
构图。空间不足时通过受控撑高和最近布局容器滚动解决。
|
|
14
|
+
|
|
15
|
+
## 根因与禁止方案
|
|
16
|
+
|
|
17
|
+
AG Grid 的 no-rows overlay 在不同版本中可能覆盖整张 Grid。直接使用 `inset:0` 会把表头
|
|
18
|
+
计入居中区域;固定写 `top:36px` 或分组表头 `top:72px` 又依赖表头层数和固定行高,无法
|
|
19
|
+
适配动态表头、滚动设施和分屏拖动。
|
|
20
|
+
|
|
21
|
+
禁止:
|
|
22
|
+
|
|
23
|
+
- 在业务项目硬编码 `.ag-overlay-no-rows-wrapper { top:36px/72px }`;
|
|
24
|
+
- 按高度缩小插图、隐藏辅助说明或切换成文字版;
|
|
25
|
+
- 给所有 pane 永久增加 `overflow:auto`;
|
|
26
|
+
- 修改 common-core 或访问 Vue 私有实例、猜测 `gridApi`。
|
|
27
|
+
|
|
28
|
+
## 包内机制
|
|
29
|
+
|
|
30
|
+
`runtime/ag-grid-empty-state.ts` 随 `runtime/auto` 或 `installCommonPreset()` 安装:
|
|
31
|
+
|
|
32
|
+
1. 只识别当前可见的 `.ag-overlay-no-rows-wrapper`。
|
|
33
|
+
2. 优先读取 `.ag-body-viewport` 的真实矩形,兼容 AG Grid 29/32;缺少 viewport 时才回退
|
|
34
|
+
`.ag-body`。
|
|
35
|
+
3. 把 overlay 的 `top/height` 对齐真实数据区,不计算固定表头高度。
|
|
36
|
+
4. 数据区小于 160px 时,为 grid host 添加包内最小高度标记,保证完整空态可容纳。
|
|
37
|
+
5. 上下分屏保留进入空态前两个 pane 的高度基线;空间不足时仅让 `.drager_row` 承担
|
|
38
|
+
纵向滚动。
|
|
39
|
+
6. 左右分屏把两个 pane 撑到同一最小高度,仅让 `.drag-col-container` 承担纵向滚动。
|
|
40
|
+
7. 弹窗内独立空表由 `.el-dialog__body` 承担滚动,不突破弹窗可视边界。
|
|
41
|
+
8. 数据恢复、路由卸载或手动卸载守护时,包添加的属性和 CSS 变量全部清理。
|
|
42
|
+
|
|
43
|
+
运行时只写 `data-wl-ui-empty-*` 和 `--wl-ui-empty-*` 私有标记,不修改行高、列配置、
|
|
44
|
+
分屏比例或有数据时的 AG Grid 内部滚动。
|
|
45
|
+
|
|
46
|
+
以下区域保持原定制样式:
|
|
47
|
+
|
|
48
|
+
- `.lp-root`
|
|
49
|
+
- `.session-login`
|
|
50
|
+
- `.wl-ui-skin-exempt`
|
|
51
|
+
- `[data-wl-ui-skin="off"]`
|
|
52
|
+
|
|
53
|
+
## 接入
|
|
54
|
+
|
|
55
|
+
Skin 项目:
|
|
56
|
+
|
|
57
|
+
```scss
|
|
58
|
+
@use "@agile-team/wl-skills-ui/styles/presets/skin" as *;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
import "@agile-team/wl-skills-ui/runtime/auto";
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Native 项目调用一次 `installCommonPreset()`,无需重复引入 `runtime/auto`。
|
|
66
|
+
|
|
67
|
+
常规场景不需要业务代码。特殊宿主主动变更尺寸后如需立即同步,可调用:
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
import { refreshAgGridEmptyStateLayout } from "@agile-team/wl-skills-ui/runtime";
|
|
71
|
+
|
|
72
|
+
refreshAgGridEmptyStateLayout();
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 升级清理
|
|
76
|
+
|
|
77
|
+
升级后删除业务项目中针对 `.ag-overlay-no-rows-wrapper` 的固定 `top`、`height`、
|
|
78
|
+
`transform` 和插图缩放补丁,避免形成两套定位逻辑。不要新增业务侧 `!important` 覆盖。
|
|
79
|
+
|
|
80
|
+
## 验收
|
|
81
|
+
|
|
82
|
+
- 单层表头和分组表头的 overlay 顶部都从真实数据区开始;
|
|
83
|
+
- 数据区高度不低于 160px,插图、主文案、辅助说明均完整显示;
|
|
84
|
+
- 上下双空表出现一个分屏根滚动条,两个 pane 不互相压盖;
|
|
85
|
+
- 左右空表保持同高;
|
|
86
|
+
- overlay 中心与数据区中心误差不超过 1px;
|
|
87
|
+
- 数据恢复后无 `data-wl-ui-empty-*` 和最小高度残留;
|
|
88
|
+
- 登录页和显式豁免区域无新增标记;
|
|
89
|
+
- `npm test` 与 `npm run test:visual` 全部通过。
|
|
@@ -51,4 +51,5 @@ wrapper 时,应先按上述流程确认,不能直接扩大全局 Element 选
|
|
|
51
51
|
|
|
52
52
|
input-group 附加段保留文字、单位、按钮的内容驱动宽度,只有“直接子节点为唯一
|
|
53
53
|
`.el-icon`”时才使用 32px 紧凑宽度;普通 input、普通按钮和非 input-group 不命中。
|
|
54
|
-
分屏重布局的运行机制与接入方式见 `docs/split-grid-resize.md
|
|
54
|
+
分屏重布局的运行机制与接入方式见 `docs/split-grid-resize.md`;多表格无数据时的完整
|
|
55
|
+
空态定位、受控撑高与滚动边界见 `docs/ag-grid-empty-state.md`。
|
|
@@ -29,9 +29,14 @@
|
|
|
29
29
|
5. 同一动画帧内的连续 Resize 会合并,并在 grid host 上派发局部
|
|
30
30
|
`wl-ui:split-grid-resize` 事件,供特殊平台封装按需调用公开 grid API。
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
有数据时,本实现不会给 `.drager_top/.drager_bottom` 或 `.drager_row` 增加
|
|
33
|
+
`overflow:auto`。唯一例外是完整空状态:当 160px 数据区在当前上下分屏中放不下时,
|
|
34
|
+
`runtime/ag-grid-empty-state` 会保留两个 pane 的高度基线,并让最近的 `.drager_row`
|
|
35
|
+
临时承担一个纵向滚动条;数据恢复后立即撤销。pane 自身仍不滚动。
|
|
36
|
+
|
|
37
|
+
两套守护都不会访问 Vue 私有实例,不会遍历或猜测 `gridApi`,也不会广播全局
|
|
38
|
+
`window.resize`。卸载时,本包增加的结构标记会一并清理。完整机制见
|
|
39
|
+
`docs/ag-grid-empty-state.md`。
|
|
35
40
|
|
|
36
41
|
## 接入
|
|
37
42
|
|
|
@@ -60,7 +65,8 @@ gridHost.addEventListener("wl-ui:split-grid-resize", () => {
|
|
|
60
65
|
|
|
61
66
|
## 验收
|
|
62
67
|
|
|
63
|
-
-
|
|
68
|
+
- 有数据时,拖动前后 `.drager_top/.drager_bottom` 仍为 `overflow:hidden`;完整空态不足
|
|
69
|
+
160px 时仅 `.drager_row` 临时纵向滚动。
|
|
64
70
|
- `.ag-grid-table` 的实际高度随 pane 收缩,并带
|
|
65
71
|
`data-wl-ui-split-grid-host`。
|
|
66
72
|
- `.ag-body-viewport` 的 `scrollHeight > clientHeight` 时出现内部纵向滚动条。
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
- common-core 复合多标签外壳自然增高、内层无双描边。
|
|
16
16
|
- input-group 输入主体、前后附加段、左右图标的统一高度/尺寸/圆角与 focus 描边。
|
|
17
17
|
- jh-drag-row 收缩后 AG Grid host 跟随变高,纵向滚动只发生在内部 viewport。
|
|
18
|
+
- AG Grid 单层/分组表头下的完整空态均以真实数据区居中;上下双空表空间不足时由
|
|
19
|
+
分屏根统一滚动,插图和两行文案不缩小、不隐藏。
|
|
18
20
|
- Element Table 长文本真实溢出、省略号与按需完整提示。
|
|
19
21
|
- 表格选中行柔和状态色、BaseToolbar 分裂按钮与定制区域豁免。
|
|
20
22
|
- common-core `jh-input-number` 与普通表单控件同高,保留 `textAlign` 和 controls,且只有
|
package/es/auto.js
CHANGED
|
@@ -8,21 +8,53 @@ var HEADER_ALIGNMENT_CLASS = {
|
|
|
8
8
|
center: "wl-ui-table-header-align--center",
|
|
9
9
|
right: "wl-ui-table-header-align--right"
|
|
10
10
|
};
|
|
11
|
+
var CELL_ALIGNMENT_CLASS = {
|
|
12
|
+
left: "wl-ui-table-cell-align--left",
|
|
13
|
+
center: "wl-ui-table-cell-align--center",
|
|
14
|
+
right: "wl-ui-table-cell-align--right"
|
|
15
|
+
};
|
|
11
16
|
function isColumnAlignment(value) {
|
|
12
17
|
return value === "left" || value === "center" || value === "right";
|
|
13
18
|
}
|
|
19
|
+
function mergeCellClass(current, alignmentClass, params) {
|
|
20
|
+
const value = typeof current === "function" ? current(params) : current;
|
|
21
|
+
if (value === void 0 || value === null || value === "") {
|
|
22
|
+
return alignmentClass;
|
|
23
|
+
}
|
|
24
|
+
return Array.isArray(value) ? [...value, alignmentClass] : [value, alignmentClass];
|
|
25
|
+
}
|
|
26
|
+
function mergeCellStyle(current, align, params) {
|
|
27
|
+
const value = typeof current === "function" ? current(params) : current;
|
|
28
|
+
return {
|
|
29
|
+
textAlign: align,
|
|
30
|
+
...value ?? {}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
14
33
|
function normalizeColumnAlignment(column) {
|
|
15
34
|
const normalizedChildren = Array.isArray(column.children) ? normalizeColumnAlignments(column.children) : column.children;
|
|
16
35
|
const align = isColumnAlignment(column.align) ? column.align : void 0;
|
|
17
36
|
const headerAlign = isColumnAlignment(column.headerAlign) ? column.headerAlign : align;
|
|
18
37
|
const needsChildren = normalizedChildren !== column.children;
|
|
19
|
-
const needsCellStyle = Boolean(align)
|
|
38
|
+
const needsCellStyle = Boolean(align);
|
|
39
|
+
const needsCellClass = Boolean(align) && column.cellStyle === void 0;
|
|
20
40
|
const needsHeaderClass = Boolean(headerAlign) && column.headerClass === void 0;
|
|
21
|
-
if (!needsChildren && !needsCellStyle && !needsHeaderClass)
|
|
41
|
+
if (!needsChildren && !needsCellStyle && !needsCellClass && !needsHeaderClass)
|
|
42
|
+
return column;
|
|
22
43
|
return {
|
|
23
44
|
...column,
|
|
24
45
|
...needsChildren ? { children: normalizedChildren } : {},
|
|
25
|
-
|
|
46
|
+
// common-core 3.x 的 AG 适配层只调用函数型 cellStyle/cellClass;函数形态同时
|
|
47
|
+
// 也是 AG Grid 原生合法配置,避免对象型样式被兼容层静默丢弃。
|
|
48
|
+
...needsCellStyle ? {
|
|
49
|
+
cellStyle: (params) => mergeCellStyle(column.cellStyle, align, params)
|
|
50
|
+
} : {},
|
|
51
|
+
...needsCellClass ? {
|
|
52
|
+
cellClass: (params) => mergeCellClass(
|
|
53
|
+
column.cellClass,
|
|
54
|
+
CELL_ALIGNMENT_CLASS[align],
|
|
55
|
+
params
|
|
56
|
+
)
|
|
57
|
+
} : {},
|
|
26
58
|
...needsHeaderClass ? { headerClass: HEADER_ALIGNMENT_CLASS[headerAlign] } : {}
|
|
27
59
|
};
|
|
28
60
|
}
|