arthub-table 0.2.34 → 0.2.35-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.
- package/dist/arthub-table.common.js +1 -1
- package/dist/arthub-table.common.js.map +1 -1
- package/dist/arthub-table.umd.js +1 -1
- package/dist/arthub-table.umd.js.map +1 -1
- package/dist/arthub-table.umd.min.js +1 -1
- package/dist/arthub-table.umd.min.js.map +1 -1
- package/dist/types/core/StyleManager.d.ts +2 -0
- package/dist/types/core/viewers/PreImageViewer.d.ts +49 -0
- package/dist/types/core/viewers/index.d.ts +3 -0
- package/dist/types/core/viewers/types.d.ts +24 -2
- package/dist/types/index.d.ts +2 -1
- package/package.json +1 -1
|
@@ -167,6 +167,8 @@ export interface ThemeTokens {
|
|
|
167
167
|
bgTagDefault: string;
|
|
168
168
|
/** 进度条轨道色 */
|
|
169
169
|
bgProgressTrack: string;
|
|
170
|
+
/** 分组特殊标识(hook_mark/mark_bg_color)容器背景色 */
|
|
171
|
+
bgGroupMarkPurple: string;
|
|
170
172
|
/** 顶层实体行背景色(path_id.length === 2 的 Entity 行) */
|
|
171
173
|
bgTopLevelEntity: string;
|
|
172
174
|
/** 顶层实体行 hover 背景色 */
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PreImageViewer - 文件预览图渲染器(DOM PreImageViewer 的 Canvas 对齐版)
|
|
3
|
+
*
|
|
4
|
+
* 与 ImageViewer 的差异(与 DOM `preImageViewer.ts` 行为对齐):
|
|
5
|
+
* 1. 当 fileFormat 不属于图片格式(且 URL 后缀也不属于图片格式)时,
|
|
6
|
+
* 显示 fileFormat 对应的"文件类型图标"(PDF / Word / Excel / Sketch ...),
|
|
7
|
+
* 而不是缩略图 — 与 DOM `PreImageViewer.updateMiddle` 的"非图片型"分支一致。
|
|
8
|
+
* 2. 其余渲染(hover 浮窗、双击预览、loading 占位、状态图标兜底等)100% 委托 `ImageViewer`,
|
|
9
|
+
* 不重复实现像素绘制逻辑。
|
|
10
|
+
*
|
|
11
|
+
* 实现策略:独立类 + 内部组合(持有)一个 ImageViewer 实例完成实际绘制,
|
|
12
|
+
* 在 draw 入口决定"绘制缩略图 URL"还是"绘制 fileFormat 图标 URL",
|
|
13
|
+
* 然后委托 `ImageViewer.draw` 完成像素级渲染。
|
|
14
|
+
*
|
|
15
|
+
* type 标识独立为 `'preImage'`,便于业务侧/适配层做精细化路由。
|
|
16
|
+
*/
|
|
17
|
+
import type { CellViewer, ViewerRenderContext, PreImageViewerData } from './types';
|
|
18
|
+
declare class PreImageViewer implements CellViewer<PreImageViewerData> {
|
|
19
|
+
readonly type = "preImage";
|
|
20
|
+
/** 内部组合的 ImageViewer 实例,承担实际像素绘制 / hover / 命中检测 */
|
|
21
|
+
private imageViewer;
|
|
22
|
+
constructor();
|
|
23
|
+
/**
|
|
24
|
+
* 绘制入口:判定是显示缩略图还是文件类型图标
|
|
25
|
+
* 对齐 DOM `preImageViewer.updateMiddle` 的 ext + IMAGE_EXTENSIONS 判定逻辑
|
|
26
|
+
*/
|
|
27
|
+
draw(context: ViewerRenderContext, data: PreImageViewerData): void;
|
|
28
|
+
/**
|
|
29
|
+
* 给委托给 ImageViewer 的 data 注入 __viewerType: 'preImage'
|
|
30
|
+
* 这样 ImageViewer 触发的 onImgMouseIn / onDblClick 回调里业务侧能识别这是 preImage 列
|
|
31
|
+
* (用于走"反馈面板 popper"而非"简版大图 popper")
|
|
32
|
+
*/
|
|
33
|
+
private withViewerType;
|
|
34
|
+
/**
|
|
35
|
+
* 双击委托给 ImageViewer(onClickImage 由业务侧注入,签名一致)
|
|
36
|
+
*/
|
|
37
|
+
onDblClick(context: ViewerRenderContext, data: PreImageViewerData, localX: number, localY: number): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 鼠标悬停光标 + hover 回调委托给 ImageViewer
|
|
40
|
+
* 注意:必须注入 __viewerType,否则 ImageViewer.handleHoverChange 透传给业务回调的 data 不带标记,
|
|
41
|
+
* 业务侧无法区分这是 preImage 列还是普通 image 列
|
|
42
|
+
*/
|
|
43
|
+
getInteractiveCursor(context: ViewerRenderContext, data: PreImageViewerData, localX: number, localY: number): string | null;
|
|
44
|
+
/**
|
|
45
|
+
* hover 状态重置委托给 ImageViewer
|
|
46
|
+
*/
|
|
47
|
+
resetHoverState(data: PreImageViewerData): void;
|
|
48
|
+
}
|
|
49
|
+
export default PreImageViewer;
|
|
@@ -7,6 +7,7 @@ export { default as ViewerRegistry, getViewerRegistry } from './ViewerRegistry';
|
|
|
7
7
|
export { default as TextViewer } from './TextViewer';
|
|
8
8
|
export { default as DropdownViewer } from './DropdownViewer';
|
|
9
9
|
export { default as ImageViewer } from './ImageViewer';
|
|
10
|
+
export { default as PreImageViewer } from './PreImageViewer';
|
|
10
11
|
export { default as PersonViewer } from './PersonViewer';
|
|
11
12
|
export { default as ProgressViewer } from './ProgressViewer';
|
|
12
13
|
export { default as DatetimeViewer } from './DatetimeViewer';
|
|
@@ -46,6 +47,7 @@ export { default as DeliveryExpectationsViewer } from './DeliveryExpectationsVie
|
|
|
46
47
|
import TextViewer from './TextViewer';
|
|
47
48
|
import DropdownViewer from './DropdownViewer';
|
|
48
49
|
import ImageViewer from './ImageViewer';
|
|
50
|
+
import PreImageViewer from './PreImageViewer';
|
|
49
51
|
import PersonViewer from './PersonViewer';
|
|
50
52
|
import ProgressViewer from './ProgressViewer';
|
|
51
53
|
import DatetimeViewer from './DatetimeViewer';
|
|
@@ -95,6 +97,7 @@ export declare const defaultViewers: {
|
|
|
95
97
|
number: typeof TextViewer;
|
|
96
98
|
select: typeof DropdownViewer;
|
|
97
99
|
image: typeof ImageViewer;
|
|
100
|
+
preImage: typeof PreImageViewer;
|
|
98
101
|
person: typeof PersonViewer;
|
|
99
102
|
progress: typeof ProgressViewer;
|
|
100
103
|
datetime: typeof DatetimeViewer;
|
|
@@ -303,8 +303,12 @@ export interface ImageViewerData extends CellViewerData {
|
|
|
303
303
|
animated?: boolean;
|
|
304
304
|
/** 点击图片回调(与 DOM multiImageViewer 的 onClickImage 签名一致) */
|
|
305
305
|
onClickImage?: (imgUrls: string[], initIndex: number, assetIds: (number | string | undefined)[], data: any) => void;
|
|
306
|
-
/**
|
|
307
|
-
|
|
306
|
+
/**
|
|
307
|
+
* 鼠标移入图片回调(用于显示大图预览)
|
|
308
|
+
* 第三个参数 data 透传当前 cell 的完整 ViewerData,便于业务侧根据 viewer 类型/行上下文做分支
|
|
309
|
+
* (如 preImage 列触发反馈面板 popper 而非简版预览,需要 _rowId / _colKey 走 findRow 拼 fullData)
|
|
310
|
+
*/
|
|
311
|
+
onImgMouseIn?: (url: string, virtualAnchor: any, data?: any) => void;
|
|
308
312
|
/** 鼠标移出图片回调(用于隐藏大图预览) */
|
|
309
313
|
onImgMouseOut?: () => void;
|
|
310
314
|
/**
|
|
@@ -323,6 +327,23 @@ export interface ImageViewerData extends CellViewerData {
|
|
|
323
327
|
progress?: number;
|
|
324
328
|
}>;
|
|
325
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* 文件预览图 viewer 数据
|
|
332
|
+
*
|
|
333
|
+
* 与 ImageViewerData 的差异(与 DOM `preImageViewer.ts` 行为对齐):
|
|
334
|
+
* 1. 接收单值 string URL(不像 ImageViewer 接收 string[])
|
|
335
|
+
* 2. 多接收 `fileFormat` 字段:当 fileFormat 不属于图片格式时,
|
|
336
|
+
* PreImageViewer 会显示 fileFormat 对应的文件类型图标(PDF / Word / Excel / Sketch ...),
|
|
337
|
+
* 而不是缩略图
|
|
338
|
+
*
|
|
339
|
+
* 其余字段语义与 ImageViewerData 一致(hover / 双击回调签名兼容,可直接复用 imageCallbacks)。
|
|
340
|
+
*/
|
|
341
|
+
export interface PreImageViewerData extends Omit<ImageViewerData, 'value'> {
|
|
342
|
+
/** 缩略图 URL(单值;空字符串/null 时显示占位符 '-') */
|
|
343
|
+
value: string | null;
|
|
344
|
+
/** 文件后缀名(如 'pdf' / 'docx' / 'png'),用于决定显示缩略图还是文件类型图标 */
|
|
345
|
+
fileFormat?: string;
|
|
346
|
+
}
|
|
326
347
|
/**
|
|
327
348
|
* Person/User viewer data
|
|
328
349
|
*/
|
|
@@ -977,6 +998,7 @@ export interface ViewerTypeMap {
|
|
|
977
998
|
text: TextViewerData;
|
|
978
999
|
select: DropdownViewerData;
|
|
979
1000
|
image: ImageViewerData;
|
|
1001
|
+
preImage: PreImageViewerData;
|
|
980
1002
|
person: PersonViewerData;
|
|
981
1003
|
progress: ProgressViewerData;
|
|
982
1004
|
datetime: DatetimeViewerData;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -10,13 +10,14 @@ export { install };
|
|
|
10
10
|
export default DataGrid;
|
|
11
11
|
export type { CellData, CellStyle, RowData, ColData, DataGridOptions, Position, Size, Rect, Range, CellRange, HistoryItem, ValidatorRule, ColumnType, ColumnConfig, SelectorState, EditorState, AutofillState, RangeState, DrawOptions, TextOptions, ClipboardState, EventHandlers, Direction, ScrollDirection, GroupLevel, SeparateLevel, BaseGroupedRowData, GroupRowData, SeparateRowData, NormalRowData, GroupedTableRowData, GroupRowStyle, SeparatorRowStyle, StatisticOption, FooterCellData, FooterData, FooterCellClickInfo, } from './core/types';
|
|
12
12
|
export { isGroupRow, isSeparateRow, isNormalRow, GROUP_TABLE_CONSTANTS, DEFAULT_GROUP_STYLES, DEFAULT_SEPARATOR_STYLES, } from './core/types';
|
|
13
|
-
export type { CellBounds, ViewerRenderContext, ViewerDragState, CellViewer, CellViewerData, ViewerOption, ViewerStyle, TextViewerData, DropdownViewerData, ImageViewerData, PersonViewerData, PersonInfo, ProgressViewerData, DatetimeViewerData, BooleanViewerData, StatusViewerData, StatusOption, GroupHeaderViewerData, GroupNameViewerData, GroupNameTagItem, GroupNamePersonItem, SeparatorRowViewerData, PunchViewerData, PunchValue, ModuleInfo, ModuleViewerData, TextViewerWithSwitcherData, FileItem, FileViewerData, HyperlinkTextViewerData, IUpstreamModule, IUpstreamReminderProperties, IUpstreamSyncProperty, IUpstreamFieldViewItem, UpstreamViewerData, TaskNodeItem, TaskNodeViewerData, NestedGridViewerData, NestedColumnConfig, ViewerConstructor, ViewerFactory, ViewerTypeMap, ViewerType, TypedCellData, TableActionButtonOption, TableActionButtonViewerData, } from './core/viewers/types';
|
|
13
|
+
export type { CellBounds, ViewerRenderContext, ViewerDragState, CellViewer, CellViewerData, ViewerOption, ViewerStyle, TextViewerData, DropdownViewerData, ImageViewerData, PreImageViewerData, PersonViewerData, PersonInfo, ProgressViewerData, DatetimeViewerData, BooleanViewerData, StatusViewerData, StatusOption, GroupHeaderViewerData, GroupNameViewerData, GroupNameTagItem, GroupNamePersonItem, SeparatorRowViewerData, PunchViewerData, PunchValue, ModuleInfo, ModuleViewerData, TextViewerWithSwitcherData, FileItem, FileViewerData, HyperlinkTextViewerData, IUpstreamModule, IUpstreamReminderProperties, IUpstreamSyncProperty, IUpstreamFieldViewItem, UpstreamViewerData, TaskNodeItem, TaskNodeViewerData, NestedGridViewerData, NestedColumnConfig, ViewerConstructor, ViewerFactory, ViewerTypeMap, ViewerType, TypedCellData, TableActionButtonOption, TableActionButtonViewerData, } from './core/viewers/types';
|
|
14
14
|
export { isTextViewerData, isDropdownViewerData, isPersonViewerData, isProgressViewerData, isNestedGridViewerData, } from './core/viewers/types';
|
|
15
15
|
export { default as ViewerRegistry, getViewerRegistry, } from './core/viewers/ViewerRegistry';
|
|
16
16
|
export { registerDefaultViewers, defaultViewers } from './core/viewers/index';
|
|
17
17
|
export { default as TextViewer } from './core/viewers/TextViewer';
|
|
18
18
|
export { default as DropdownViewer } from './core/viewers/DropdownViewer';
|
|
19
19
|
export { default as ImageViewer } from './core/viewers/ImageViewer';
|
|
20
|
+
export { default as PreImageViewer } from './core/viewers/PreImageViewer';
|
|
20
21
|
export { default as PersonViewer } from './core/viewers/PersonViewer';
|
|
21
22
|
export { default as ProgressViewer } from './core/viewers/ProgressViewer';
|
|
22
23
|
export { default as DatetimeViewer } from './core/viewers/DatetimeViewer';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arthub-table",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.35-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",
|