arthub-table 0.2.92 → 0.2.93-next.0

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.
@@ -76,6 +76,18 @@ export interface DataGridInitOptions {
76
76
  theme?: string | Record<string, any>;
77
77
  /** WfState Viewer 显示样式:'icon'=图标+文字(默认),'tag'=色块标签 */
78
78
  wfStateStyle?: 'icon' | 'tag';
79
+ /**
80
+ * Reminder 蓝色三角的锚点位置(4 个角可选),默认 'top-right'(右上角)。
81
+ * 由业务侧按场景覆盖(例如 AssetMatrix 和平玩法传 'top-left' 把角标挪到左上角)。
82
+ * 三角形状会随 anchor 等效镜像翻转,保持视觉对称。
83
+ */
84
+ remindAnchor?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
85
+ /**
86
+ * Reminder 蓝色三角的点击命中热区边长(像素,正方形)。
87
+ * 默认沿用可视三角边长 18(保持历史行为),业务侧可放大到 20/24 以便用户命中触发弹窗。
88
+ * 命中区是以 anchor 对应角为起点、朝单元格内部延伸的 size×size 正方形(独立于可视三角)。
89
+ */
90
+ remindHitAreaSize?: number;
79
91
  /** 嵌套表格数据源字段名,默认 '$$pipelineView$$' */
80
92
  pipelineViewKey?: string;
81
93
  /** 嵌套表格折叠时默认显示行数,默认 3 */
@@ -3,6 +3,7 @@ import Validator from "./Validator";
3
3
  import NestedGrid from "./NestedGrid";
4
4
  import type DataGrid from "./DataGrid";
5
5
  import type { ColumnConfig } from "./types";
6
+ import { type RemindAnchor } from "./constants";
6
7
  import { type CellViewerData, type ViewerRenderContext } from "./viewers";
7
8
  interface Column extends ColumnConfig {
8
9
  [key: string]: any;
@@ -143,8 +144,14 @@ declare class Cell extends Context {
143
144
  [key: string]: any;
144
145
  } | null;
145
146
  /**
146
- * 判断鼠标坐标是否在蓝色提醒三角区域内(右上角 18x18 三角形)
147
- * 三角区域为:(right-18, top), (right, top), (right, top+18) 构成的直角三角形
147
+ * 判断鼠标坐标是否在蓝色提醒三角的命中热区内。
148
+ *
149
+ * 命中热区是以 anchor 对应角为起点、朝单元格内部延伸的 size×size 正方形。
150
+ * 热区尺寸由 grid.remindHitAreaSize 控制(默认与可视三角边长一致 18px),
151
+ * 业务侧可按场景放大到 20/24 以便用户点击触发弹窗。
152
+ *
153
+ * 注意:热区是矩形而非三角,这样热区放大时在整个角都可命中、点击体验更好。
154
+ *
148
155
  * @param mouseX 鼠标在 canvas 上的 x 坐标(已经过 scrollX 修正的坐标)
149
156
  * @param mouseY 鼠标在 canvas 上的 y 坐标(已经过 scrollY 修正的坐标)
150
157
  * @param cellX 单元格左上角 x(已含 scroll/fixed 偏移)
@@ -152,4 +159,34 @@ declare class Cell extends Context {
152
159
  */
153
160
  isInsideReminderTriangle(mouseX: number, mouseY: number, cellX: number, cellY: number): boolean;
154
161
  }
162
+ /**
163
+ * 计算 reminder 三角形在指定 anchor 下的 3 个顶点。
164
+ * 三角形是直角三角,直角始终贴在 anchor 对应的角上,斜边指向单元格内部(等效镜像翻转)。
165
+ *
166
+ * @param x 单元格左上角 x
167
+ * @param y 单元格左上角 y
168
+ * @param width 单元格宽
169
+ * @param height 单元格高
170
+ * @param size 三角边长
171
+ * @param anchor 锚点位置
172
+ */
173
+ declare function computeReminderTrianglePoints(x: number, y: number, width: number, height: number, size: number, anchor: RemindAnchor): number[][];
174
+ /**
175
+ * 计算 reminder 点击命中热区(正方形)。
176
+ * 热区以 anchor 对应角为起点、朝单元格内部延伸 size 长度。
177
+ *
178
+ * @param cellX 单元格左上角 x
179
+ * @param cellY 单元格左上角 y
180
+ * @param width 单元格宽
181
+ * @param height 单元格高
182
+ * @param size 热区边长
183
+ * @param anchor 锚点位置
184
+ */
185
+ declare function computeReminderHitRect(cellX: number, cellY: number, width: number, height: number, size: number, anchor: RemindAnchor): {
186
+ x: number;
187
+ y: number;
188
+ width: number;
189
+ height: number;
190
+ };
191
+ export { computeReminderTrianglePoints, computeReminderHitRect };
155
192
  export default Cell;
@@ -12,6 +12,7 @@ import Histories from "./History";
12
12
  import { StyleManager, type TableTheme } from "./StyleManager";
13
13
  import EdgeScroller from "./EdgeScroller";
14
14
  import { type HeaderConfig } from "./util";
15
+ import { type RemindAnchor } from "./constants";
15
16
  import { type FooterCellClickInfo, type FooterData, type FooterCellData, type GroupHeaderCellClickInfo, type GroupHeaderCellHoverInfo, type FooterStatRefreshInfo, type GroupHeaderStatRefreshInfo, type ConditionalStyle, type ConditionalStylePatch, type ActiveCellInfo } from "./types";
16
17
  import { type PerformanceMonitor } from "./PerformanceMonitor";
17
18
  interface Column extends HeaderConfig {
@@ -693,6 +694,18 @@ export interface DataGridOptions {
693
694
  };
694
695
  rowData: Record<string, any>;
695
696
  }) => void;
697
+ /**
698
+ * Reminder 蓝色三角的锚点位置(4 个角可选),默认 'top-right'(右上角)。
699
+ * 由业务侧按场景覆盖(如 AssetMatrix 和平玩法传 'top-left' 把角标挪到左上角)。
700
+ * 三角形状会随 anchor 做等效镜像翻转,保持视觉对称。
701
+ */
702
+ remindAnchor?: RemindAnchor;
703
+ /**
704
+ * Reminder 蓝色三角的点击命中热区边长(像素,正方形)。
705
+ * 默认 18(与可视三角一致),业务侧可放大到 20/24 以便用户点击触发弹窗。
706
+ * 命中区是以 anchor 对应角为起点、朝单元格内部延伸的 size×size 正方形。
707
+ */
708
+ remindHitAreaSize?: number;
696
709
  /** 表头 Link icon hover 回调:鼠标悬停/离开引用字段表头 link icon 时触发 */
697
710
  onHeaderLinkIconHover?: (info: {
698
711
  show: boolean;
@@ -884,8 +897,6 @@ declare class DataGrid {
884
897
  rowIdMap: Map<string, number>;
885
898
  private conditionalRowStyles;
886
899
  private conditionalCellStyles;
887
- /** 行、单元格样式同时命中时复用合并结果,避免每一帧为每个单元格创建临时对象。 */
888
- private resolvedConditionalCellStyles;
889
900
  selectedRowIds: Set<string>;
890
901
  selectedGroupIds: Set<string>;
891
902
  lastSelectedRowIndex: number;
@@ -1325,6 +1336,10 @@ declare class DataGrid {
1325
1336
  };
1326
1337
  rowData: Record<string, any>;
1327
1338
  }) => void;
1339
+ /** Reminder 蓝色三角的锚点位置(4 个角可选),默认 'top-right'。 */
1340
+ remindAnchor: RemindAnchor;
1341
+ /** Reminder 蓝色三角的点击命中热区边长(像素,正方形)。 */
1342
+ remindHitAreaSize: number;
1328
1343
  onHeaderLinkIconHover?: (info: {
1329
1344
  show: boolean;
1330
1345
  colKey: string;
@@ -29,6 +29,21 @@ export declare const ERROR_TIP_COLOR: string;
29
29
  /** @deprecated 请使用 styleManager.getToken('reminderColor') */
30
30
  export declare const REMINDER_TIP_COLOR: string;
31
31
  export declare const REMINDER_TRIANGLE_SIZE = 18;
32
+ /**
33
+ * 蓝色提醒三角的锚点位置(4 个角可选)。
34
+ * 默认 'top-right'(右上角),与历史渲染行为保持一致。
35
+ * 由业务侧(如 AssetMatrix)按场景/玩法通过 DataGridOptions.remindAnchor 覆盖。
36
+ */
37
+ export type RemindAnchor = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
38
+ export declare const REMINDER_ANCHOR_DEFAULT: RemindAnchor;
39
+ /**
40
+ * 蓝色提醒三角的点击命中热区尺寸(像素,正方形边长)。
41
+ * 默认沿用 REMINDER_TRIANGLE_SIZE(18px)保持历史点击面积;
42
+ * 业务侧(如 AssetMatrix 和平玩法)可通过 DataGridOptions.remindHitAreaSize 放大为 20/24 等,
43
+ * 便于用户命中以触发外部 Reminder 弹窗(点击行为,非 hover)。
44
+ * 命中区是以 anchor 对应角为起点、朝单元格内部延伸的 size×size 正方形(独立于可视三角大小)。
45
+ */
46
+ export declare const REMINDER_HIT_AREA_SIZE_DEFAULT = 18;
32
47
  /** @deprecated 请使用 styleManager.getToken('textHeader') */
33
48
  export declare const HEADER_TEXT_COLOR: string;
34
49
  /** 表头图标尺寸常量 */
@@ -109,5 +109,9 @@ declare class TextViewer implements CellViewer<TextViewerData> {
109
109
  height: number;
110
110
  };
111
111
  } | null;
112
+ /**
113
+ * 653:hover 到尾部 "+N" 折叠标识时显示 pointer 光标(点击该区域 = 点击单元格 → 进入编辑态)
114
+ */
115
+ getInteractiveCursor(context: ViewerRenderContext, _data: TextViewerData, localX: number, localY: number): string | null;
112
116
  }
113
117
  export default TextViewer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arthub-table",
3
- "version": "0.2.92",
3
+ "version": "0.2.93-next.0",
4
4
  "description": "High-performance canvas-based table/grid component for Vue 3 with TypeScript support, featuring virtual scrolling, cell viewers, grouped rows, and nested grids.",
5
5
  "main": "dist/arthub-table.common.js",
6
6
  "module": "dist/arthub-table.umd.min.js",