@aiao/rxdb-model 0.0.18 → 0.0.26
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/LICENSE +1 -1
- package/README.md +43 -6
- package/dist/cn.d.ts +19 -0
- package/dist/cn.d.ts.map +1 -0
- package/dist/entity-capabilities.d.ts +31 -0
- package/dist/entity-capabilities.d.ts.map +1 -0
- package/dist/entity-detail/detail-tabs.d.ts +13 -2
- package/dist/entity-detail/detail-tabs.d.ts.map +1 -1
- package/dist/entity-detail/index.d.ts +5 -0
- package/dist/entity-detail/index.d.ts.map +1 -1
- package/dist/entity-detail/interfaces.d.ts +29 -1
- package/dist/entity-detail/interfaces.d.ts.map +1 -1
- package/dist/entity-field.utils.d.ts +60 -2
- package/dist/entity-field.utils.d.ts.map +1 -1
- package/dist/entity-form/form-data.d.ts +22 -1
- package/dist/entity-form/form-data.d.ts.map +1 -1
- package/dist/entity-form/form-fields.d.ts +25 -2
- package/dist/entity-form/form-fields.d.ts.map +1 -1
- package/dist/entity-form/form-validation.d.ts +20 -2
- package/dist/entity-form/form-validation.d.ts.map +1 -1
- package/dist/entity-form/index.d.ts +5 -0
- package/dist/entity-form/index.d.ts.map +1 -1
- package/dist/entity-form/interfaces.d.ts +65 -1
- package/dist/entity-form/interfaces.d.ts.map +1 -1
- package/dist/entity-list/manual-order-list.d.ts +99 -0
- package/dist/entity-list/manual-order-list.d.ts.map +1 -0
- package/dist/entity-table/columns/build-editable-columns.d.ts +26 -4
- package/dist/entity-table/columns/build-editable-columns.d.ts.map +1 -1
- package/dist/entity-table/columns/column-utils.d.ts +78 -12
- package/dist/entity-table/columns/column-utils.d.ts.map +1 -1
- package/dist/entity-table/editors/color-editor.d.ts +23 -0
- package/dist/entity-table/editors/color-editor.d.ts.map +1 -0
- package/dist/entity-table/editors/date-editor.d.ts +6 -1
- package/dist/entity-table/editors/date-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/enum-editor.d.ts +11 -1
- package/dist/entity-table/editors/enum-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/global-overlay-editor.d.ts +27 -4
- package/dist/entity-table/editors/global-overlay-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/icon-list-editor.d.ts +13 -1
- package/dist/entity-table/editors/icon-list-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/json-editor.d.ts +6 -1
- package/dist/entity-table/editors/json-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/key-value-editor.d.ts +12 -2
- package/dist/entity-table/editors/key-value-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/lucide-svg.d.ts +3 -2
- package/dist/entity-table/editors/lucide-svg.d.ts.map +1 -1
- package/dist/entity-table/editors/multiselect-editor.d.ts +24 -6
- package/dist/entity-table/editors/multiselect-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/number-editor.d.ts +33 -3
- package/dist/entity-table/editors/number-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/relation-editor.d.ts +14 -2
- package/dist/entity-table/editors/relation-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/safe-list-editor.d.ts +1 -0
- package/dist/entity-table/editors/safe-list-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/tags-editor.d.ts +12 -1
- package/dist/entity-table/editors/tags-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/text-format-editor.d.ts +32 -0
- package/dist/entity-table/editors/text-format-editor.d.ts.map +1 -0
- package/dist/entity-table/editors/uuid-editor.d.ts +14 -1
- package/dist/entity-table/editors/uuid-editor.d.ts.map +1 -1
- package/dist/entity-table/index.d.ts +13 -3
- package/dist/entity-table/index.d.ts.map +1 -1
- package/dist/entity-table/interfaces.d.ts +13 -0
- package/dist/entity-table/interfaces.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-clipboard.d.ts +31 -2
- package/dist/entity-table/vtable/table-clipboard.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-factory.d.ts +25 -5
- package/dist/entity-table/vtable/table-factory.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-keyboard.d.ts +18 -1
- package/dist/entity-table/vtable/table-keyboard.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-operations.d.ts +44 -3
- package/dist/entity-table/vtable/table-operations.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-row-move.d.ts +88 -0
- package/dist/entity-table/vtable/table-row-move.d.ts.map +1 -0
- package/dist/entity-table/vtable/table-theme.d.ts +47 -2
- package/dist/entity-table/vtable/table-theme.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-tooltip.d.ts +7 -1
- package/dist/entity-table/vtable/table-tooltip.d.ts.map +1 -1
- package/dist/entity-table/vtable/vtable-compat.d.ts +33 -5
- package/dist/entity-table/vtable/vtable-compat.d.ts.map +1 -1
- package/dist/entity-value.utils.d.ts +50 -2
- package/dist/entity-value.utils.d.ts.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4392 -64471
- package/dist/query-builder/models/config.interface.d.ts +2 -2
- package/dist/query-builder/models/operator.interface.d.ts +6 -2
- package/dist/query-builder/models/operator.interface.d.ts.map +1 -1
- package/dist/query-builder/models/query-builder-state.d.ts +31 -2
- package/dist/query-builder/models/query-builder-state.d.ts.map +1 -1
- package/dist/query-builder/models/validation.interface.d.ts +2 -2
- package/dist/query-builder/services/operator-registry.service.d.ts +13 -3
- package/dist/query-builder/services/operator-registry.service.d.ts.map +1 -1
- package/dist/query-builder/services/query-builder.service.d.ts +16 -6
- package/dist/query-builder/services/query-builder.service.d.ts.map +1 -1
- package/dist/query-builder/services/query-converter.service.d.ts +10 -2
- package/dist/query-builder/services/query-converter.service.d.ts.map +1 -1
- package/dist/query-builder/services/schema-parser.service.d.ts +10 -2
- package/dist/query-builder/services/schema-parser.service.d.ts.map +1 -1
- package/dist/query-builder/services/validation.service.d.ts +34 -4
- package/dist/query-builder/services/validation.service.d.ts.map +1 -1
- package/dist/query-builder/utils/date.d.ts +12 -0
- package/dist/query-builder/utils/date.d.ts.map +1 -1
- package/dist/query-builder/utils/field-tree.d.ts +7 -1
- package/dist/query-builder/utils/field-tree.d.ts.map +1 -1
- package/dist/query-builder/utils/id.d.ts +2 -0
- package/dist/query-builder/utils/id.d.ts.map +1 -1
- package/dist/query-builder/utils/metadata-field-extractor.d.ts +15 -3
- package/dist/query-builder/utils/metadata-field-extractor.d.ts.map +1 -1
- package/dist/query-builder/utils/popover-position.d.ts +11 -0
- package/dist/query-builder/utils/popover-position.d.ts.map +1 -1
- package/dist/query-builder/utils/schema-factory.d.ts +7 -3
- package/dist/query-builder/utils/structural-equal.d.ts +4 -0
- package/dist/query-builder/utils/structural-equal.d.ts.map +1 -1
- package/dist/query-builder/utils/value-input.d.ts +21 -1
- package/dist/query-builder/utils/value-input.d.ts.map +1 -1
- package/dist/structural-equal.d.ts +5 -1
- package/dist/structural-equal.d.ts.map +1 -1
- package/package.json +34 -10
- package/src/cn.ts +21 -0
- package/src/entity-capabilities.ts +37 -0
- package/src/entity-detail/detail-tabs.ts +48 -0
- package/src/entity-detail/index.ts +7 -0
- package/src/entity-detail/interfaces.ts +55 -0
- package/src/entity-field.utils.ts +205 -0
- package/src/entity-form/form-data.ts +83 -0
- package/src/entity-form/form-fields.ts +48 -0
- package/src/entity-form/form-validation.ts +34 -0
- package/src/entity-form/index.ts +9 -0
- package/src/entity-form/interfaces.ts +116 -0
- package/src/entity-list/manual-order-list.ts +159 -0
- package/src/entity-table/columns/build-editable-columns.ts +184 -0
- package/src/entity-table/columns/column-utils.ts +657 -0
- package/src/entity-table/editors/color-editor.ts +239 -0
- package/src/entity-table/editors/date-editor.ts +169 -0
- package/src/entity-table/editors/enum-editor.ts +167 -0
- package/src/entity-table/editors/global-overlay-editor.ts +277 -0
- package/src/entity-table/editors/icon-list-editor.ts +130 -0
- package/src/entity-table/editors/json-editor.ts +212 -0
- package/src/entity-table/editors/key-value-editor.ts +595 -0
- package/src/entity-table/editors/lucide-svg.ts +78 -0
- package/src/entity-table/editors/multiselect-editor.ts +171 -0
- package/src/entity-table/editors/number-editor.ts +322 -0
- package/src/entity-table/editors/relation-editor.ts +316 -0
- package/src/entity-table/editors/safe-list-editor.ts +17 -0
- package/src/entity-table/editors/tags-editor.ts +239 -0
- package/src/entity-table/editors/text-format-editor.ts +220 -0
- package/src/entity-table/editors/uuid-editor.ts +198 -0
- package/src/entity-table/index.ts +96 -0
- package/src/entity-table/interfaces.ts +72 -0
- package/src/entity-table/vtable/table-clipboard.ts +419 -0
- package/src/entity-table/vtable/table-factory.ts +117 -0
- package/src/entity-table/vtable/table-keyboard.ts +89 -0
- package/src/entity-table/vtable/table-operations.ts +123 -0
- package/src/entity-table/vtable/table-row-move.ts +122 -0
- package/src/entity-table/vtable/table-theme.ts +181 -0
- package/src/entity-table/vtable/table-tooltip.ts +70 -0
- package/src/entity-table/vtable/vtable-compat.ts +84 -0
- package/src/entity-value.utils.ts +456 -0
- package/src/index.ts +57 -0
- package/src/query-builder/models/config.interface.ts +31 -0
- package/src/query-builder/models/index.ts +8 -0
- package/src/query-builder/models/operator.interface.ts +191 -0
- package/src/query-builder/models/query-builder-state.ts +222 -0
- package/src/query-builder/models/validation.interface.ts +184 -0
- package/src/query-builder/services/index.ts +9 -0
- package/src/query-builder/services/operator-registry.service.ts +243 -0
- package/src/query-builder/services/query-builder.service.ts +568 -0
- package/src/query-builder/services/query-converter.service.ts +153 -0
- package/src/query-builder/services/schema-parser.service.ts +309 -0
- package/src/query-builder/services/validation.service.ts +390 -0
- package/src/query-builder/utils/date.ts +35 -0
- package/src/query-builder/utils/field-tree.ts +400 -0
- package/src/query-builder/utils/id.ts +15 -0
- package/src/query-builder/utils/index.ts +12 -0
- package/src/query-builder/utils/metadata-field-extractor.ts +460 -0
- package/src/query-builder/utils/popover-position.ts +59 -0
- package/src/query-builder/utils/schema-factory.ts +75 -0
- package/src/query-builder/utils/structural-equal.ts +5 -0
- package/src/query-builder/utils/value-input.ts +105 -0
- package/src/structural-equal.ts +49 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview 实体列表的手动排序:拖拽启用谓词、默认排序与落库协调(US-028 阶段 B)
|
|
3
|
+
*
|
|
4
|
+
* 列表只在「看到的行就是一条完整排序域」时允许拖拽:邻居才是真邻居,
|
|
5
|
+
* `Repository.reorder()` 才能按 `{ prevId, nextId }` 落到用户看到的位置。
|
|
6
|
+
* 三端 `EntityList` 共用这一份判定与协调,框架层只负责收集状态和接线。
|
|
7
|
+
*/
|
|
8
|
+
import { type EntityMetadata, type OrderBy } from '@aiao/rxdb';
|
|
9
|
+
import type { RowMoveEvent } from '../entity-table/vtable/table-row-move.js';
|
|
10
|
+
/** 列表排序判定需要的实体元数据 */
|
|
11
|
+
export type ManualOrderListMetadata = Pick<EntityMetadata, 'manualOrder' | 'propertyMap'>;
|
|
12
|
+
/** 列表的固定查询(详情页关系标签传入),结构同查询构建器的规则组 */
|
|
13
|
+
export interface ListFixedQuery {
|
|
14
|
+
/** 规则组合方式 */
|
|
15
|
+
readonly combinator: 'and' | 'or';
|
|
16
|
+
/** 规则;嵌套规则组视为不能钉住排序域 */
|
|
17
|
+
readonly rules: readonly unknown[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 判定列表能否拖拽排序时用到的列表状态
|
|
21
|
+
*/
|
|
22
|
+
export interface ListReorderState {
|
|
23
|
+
/** 当前实体元数据;未注册实体为 `undefined` */
|
|
24
|
+
readonly metadata: ManualOrderListMetadata | undefined;
|
|
25
|
+
/** 列头排序状态;只有 `normal`(未按列排序)时显示的才是手动顺序 */
|
|
26
|
+
readonly sortOrder: 'asc' | 'desc' | 'normal';
|
|
27
|
+
/** 用户在筛选框里加了条件 */
|
|
28
|
+
readonly hasUserFilter: boolean;
|
|
29
|
+
/** 列表处于关联选择模式 */
|
|
30
|
+
readonly selectMode: boolean;
|
|
31
|
+
/** 外部传入的固定查询 */
|
|
32
|
+
readonly fixedQuery: ListFixedQuery | undefined;
|
|
33
|
+
/** 排序域已全部加载:没有下一页且不在加载中 */
|
|
34
|
+
readonly fullyLoaded: boolean;
|
|
35
|
+
/** 存在只读行(无编辑权限) */
|
|
36
|
+
readonly hasReadonlyRows: boolean;
|
|
37
|
+
/** 存在未落库的草稿行 */
|
|
38
|
+
readonly hasDrafts: boolean;
|
|
39
|
+
/** 存在未完成的单元格编辑写入 */
|
|
40
|
+
readonly hasPendingEdits: boolean;
|
|
41
|
+
/** 上一次拖拽的重排还没落定 */
|
|
42
|
+
readonly reorderPending: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 固定查询是否恰好钉住一条完整的排序域
|
|
46
|
+
*
|
|
47
|
+
* @param groupFields - 实体声明的分组字段
|
|
48
|
+
* @param fixedQuery - 列表的固定查询
|
|
49
|
+
* @returns 整表排序要求没有固定条件;分组排序要求只有对全部分组字段各一条等值(或 `null`)条件
|
|
50
|
+
*/
|
|
51
|
+
export declare function pinsSingleOrderDomain(groupFields: readonly string[], fixedQuery: ListFixedQuery | undefined): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* 实体列表当前是否允许拖拽排序
|
|
54
|
+
*
|
|
55
|
+
* @param state - 列表状态
|
|
56
|
+
* @returns 全部条件满足时为 `true`:手动排序实体、字符串主键、未按列排序、无用户筛选、非选择模式、
|
|
57
|
+
* 固定查询钉住一条完整排序域、已全部加载、没有只读行 / 草稿 / 未完成编辑 / 未落定的重排
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const enabled = canReorderEntityList({ metadata, sortOrder: 'normal', fixedQuery, ...flags });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare function canReorderEntityList(state: ListReorderState): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* 列表未按列排序时的游标排序
|
|
67
|
+
*
|
|
68
|
+
* @param metadata - 实体元数据;未注册实体为 `undefined`
|
|
69
|
+
* @returns 手动排序实体为 `[分组字段… asc, sortOrder asc, id asc]`,其余为 `[id desc]`
|
|
70
|
+
*/
|
|
71
|
+
export declare function defaultListOrderBy(metadata: Pick<EntityMetadata, 'manualOrder'> | undefined): OrderBy[];
|
|
72
|
+
/**
|
|
73
|
+
* 行拖放落库时与界面交互的钩子
|
|
74
|
+
*/
|
|
75
|
+
export interface RowMoveCommitHooks {
|
|
76
|
+
/** 放下这一刻列表是否允许拖拽排序({@link canReorderEntityList} 的结论) */
|
|
77
|
+
readonly enabled: boolean;
|
|
78
|
+
/** 落库重排,通常是 `repository.reorder(move.id, { prevId, nextId })` */
|
|
79
|
+
reorder(move: RowMoveEvent): Promise<unknown>;
|
|
80
|
+
/** 把表格行恢复成最近一次已提交的顺序 */
|
|
81
|
+
restore(): void;
|
|
82
|
+
/** 重排进行中状态变化 */
|
|
83
|
+
setPending(pending: boolean): void;
|
|
84
|
+
/** 显示(或用 `null` 清除)落库错误 */
|
|
85
|
+
setError(error: unknown): void;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 协调一次行拖放的落库
|
|
89
|
+
*
|
|
90
|
+
* @param move - 表格读出的拖放结果
|
|
91
|
+
* @param hooks - 界面钩子
|
|
92
|
+
* @returns 落库成功为 `true`;不允许拖拽或落库失败为 `false`,此时表格已恢复原顺序
|
|
93
|
+
*
|
|
94
|
+
* @remarks
|
|
95
|
+
* 不允许时零写入,直接恢复表格(程序触发的拖放事件同样被拒)。成功后不改表格,
|
|
96
|
+
* 由活查询按数据库重查的结果刷新;失败时显式恢复,下一次拖拽照常可用。
|
|
97
|
+
*/
|
|
98
|
+
export declare function commitRowMove(move: RowMoveEvent, hooks: RowMoveCommitHooks): Promise<boolean>;
|
|
99
|
+
//# sourceMappingURL=manual-order-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-order-list.d.ts","sourceRoot":"","sources":["../../src/entity-list/manual-order-list.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,OAAO,EAKb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAE7E,qBAAqB;AACrB,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC;AAE1F,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,aAAa;IACb,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACvD,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC9C,kBAAkB;IAClB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,iBAAiB;IACjB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,gBAAgB;IAChB,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS,CAAC;IAChD,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,mBAAmB;IACnB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,gBAAgB;IAChB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,mBAAmB;IACnB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAUD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAQrH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CASrE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,CAIvG;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,wBAAwB;IACxB,OAAO,IAAI,IAAI,CAAC;IAChB,gBAAgB;IAChB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBnG"}
|
|
@@ -1,20 +1,38 @@
|
|
|
1
|
-
import { EntityMetadata } from '
|
|
2
|
-
import { ColumnDefine } from '@visactor/vtable/es/ts-types/index.js';
|
|
3
|
-
import { RelatedEntityItem } from '../../entity-form/interfaces.js';
|
|
1
|
+
import type { EntityMetadata, EntityPropertyMetadata } from '@aiao/rxdb';
|
|
2
|
+
import type { ColumnDefine } from '@visactor/vtable/es/ts-types/index.js';
|
|
3
|
+
import type { RelatedEntityItem } from '../../entity-form/interfaces.js';
|
|
4
|
+
import { type KVSchemaEntry } from './column-utils.js';
|
|
4
5
|
/** 仅展示(不可编辑)的系统字段 */
|
|
5
6
|
export declare const DISPLAY_ONLY_FIELDS: Set<string>;
|
|
6
7
|
/** 跳过(不显示为独立列)的系统字段 */
|
|
7
8
|
export declare const SKIP_FIELDS: Set<string>;
|
|
8
9
|
/** 关联实体候选 provider 工厂:根据外键字段和关联实体名返回 provider 函数 */
|
|
9
10
|
export type RelatedItemsProviderFactory = (fkField: string, relatedEntityName: string) => (() => RelatedEntityItem[]) | undefined;
|
|
11
|
+
/** 构建可编辑列的选项 */
|
|
10
12
|
export interface BuildEditableColumnsOptions {
|
|
13
|
+
/** 关联实体候选 provider 工厂(按外键字段与关联实体名返回 provider) */
|
|
11
14
|
relatedItemsProviderFactory?: RelatedItemsProviderFactory;
|
|
15
|
+
/** 操作列标题(默认「操作」) */
|
|
12
16
|
actionsTitle?: string;
|
|
17
|
+
/** 删除按钮文案(默认「删除」) */
|
|
13
18
|
deleteLabel?: string;
|
|
19
|
+
/** 查看按钮文案(默认「查看」) */
|
|
14
20
|
viewLabel?: string;
|
|
21
|
+
/** 创建时间列标题(默认「创建时间」) */
|
|
15
22
|
createdAtTitle?: string;
|
|
23
|
+
/** 更新时间列标题(默认「更新时间」) */
|
|
16
24
|
updatedAtTitle?: string;
|
|
17
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* 将实体属性类型归一化为 keyValue Schema 值类型
|
|
28
|
+
*
|
|
29
|
+
* 仅 string / enum / uuid / number / integer / boolean / date 可直接映射,
|
|
30
|
+
* 其余类型返回 undefined。
|
|
31
|
+
*
|
|
32
|
+
* @param type 实体属性类型(PropertyType 枚举值)
|
|
33
|
+
* @returns 对应的 KVSchemaEntry 值类型;无法映射时返回 undefined
|
|
34
|
+
*/
|
|
35
|
+
export declare function normalizeKVSchemaEntryType(type: EntityPropertyMetadata['type']): KVSchemaEntry['type'] | undefined;
|
|
18
36
|
/**
|
|
19
37
|
* 根据 EntityMetadata 构建可编辑的 VTable 列定义
|
|
20
38
|
*
|
|
@@ -24,7 +42,11 @@ export interface BuildEditableColumnsOptions {
|
|
|
24
42
|
* 3. 计算属性列
|
|
25
43
|
* 4. 外键关系列
|
|
26
44
|
* 5. createdAt / updatedAt 系统时间列
|
|
27
|
-
* 6. 操作列(查看 +
|
|
45
|
+
* 6. 操作列(查看 + 删除;删除按实体 `permissions.delete` 派生,见 {@link deriveEntityCapabilities})
|
|
46
|
+
*
|
|
47
|
+
* @param metadata 实体元数据
|
|
48
|
+
* @param options 可选构建选项
|
|
49
|
+
* @returns 可编辑的列定义数组
|
|
28
50
|
*/
|
|
29
51
|
export declare function buildEditableColumns(metadata: EntityMetadata, options?: BuildEditableColumnsOptions): ColumnDefine[];
|
|
30
52
|
//# sourceMappingURL=build-editable-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-editable-columns.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/build-editable-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"build-editable-columns.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/build-editable-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EAIvB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAuD,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5G,qBAAqB;AACrB,eAAO,MAAM,mBAAmB,aAAsC,CAAC;AAEvE,uBAAuB;AACvB,eAAO,MAAM,WAAW,aAA4C,CAAC;AAErE,oDAAoD;AACpD,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,KACtB,CAAC,MAAM,iBAAiB,EAAE,CAAC,GAAG,SAAS,CAAC;AAE7C,gBAAgB;AAChB,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAiBlH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,2BAAgC,GACxC,YAAY,EAAE,CAuEhB"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { FieldFormat, FieldOptions } from '@aiao/rxdb';
|
|
2
|
+
import type { ColumnDefine, StylePropertyFunctionArg } from '@visactor/vtable/es/ts-types/index.js';
|
|
3
|
+
import type { RelatedEntityItem } from '../../entity-form/interfaces.js';
|
|
4
|
+
import { type EnumItem } from '../editors/enum-editor.js';
|
|
4
5
|
/** 删除图标默认颜色 */
|
|
5
6
|
export declare const DELETE_COLOR = "var(--entity-table-delete, #ef4444)";
|
|
6
7
|
/**
|
|
7
8
|
* 实体属性类型字符串字面量
|
|
8
9
|
* 与 `@aiao/rxdb` 的 `PropertyType` 枚举值一一对应,另扩展关系类型与计算属性
|
|
9
10
|
*/
|
|
10
|
-
export type PropertyTypeString = 'uuid' | 'string' | 'enum' | 'number' | 'integer' | 'boolean' | 'date' | 'stringArray' | 'numberArray' | 'keyValue' | 'json'
|
|
11
|
+
export type PropertyTypeString = 'uuid' | 'string' | 'enum' | 'number' | 'integer' | 'bigint' | 'boolean' | 'date' | 'binary' | 'stringArray' | 'numberArray' | 'keyValue' | 'json'
|
|
11
12
|
/** 一对一关系:存外键 ID,显示关联实体 displayName,可搜索下拉编辑 */
|
|
12
13
|
| 'oneToOne'
|
|
13
14
|
/** 多对一关系:存外键 ID,显示关联实体 displayName,可搜索下拉编辑 */
|
|
@@ -38,6 +39,14 @@ export interface PropertyColumnConfig {
|
|
|
38
39
|
sort?: boolean;
|
|
39
40
|
/** keyValue 属性 Schema—定义允许的键以及对应的值类型 */
|
|
40
41
|
keyValueSchema?: Record<string, KVSchemaEntry>;
|
|
42
|
+
/**
|
|
43
|
+
* 字段语义标注(决定展示形态与编辑器选择,不改变运行时值类型)
|
|
44
|
+
*/
|
|
45
|
+
format?: FieldFormat;
|
|
46
|
+
/**
|
|
47
|
+
* 枚举/多选值的展示元数据(label / color / disabled),键是 `enum` 的子集
|
|
48
|
+
*/
|
|
49
|
+
options?: FieldOptions;
|
|
41
50
|
/**
|
|
42
51
|
* 关联实体候选列表(oneToOne / manyToOne 类型使用)
|
|
43
52
|
*
|
|
@@ -64,12 +73,20 @@ export interface KVSchemaEntry {
|
|
|
64
73
|
/** 是否可以为 null */
|
|
65
74
|
nullable?: boolean;
|
|
66
75
|
}
|
|
67
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* 格式化日期值为本地字符串
|
|
78
|
+
*
|
|
79
|
+
* @param v 待格式化的日期值
|
|
80
|
+
* @returns 本地化日期字符串
|
|
81
|
+
*/
|
|
68
82
|
export declare function formatDateValue(v: unknown): string;
|
|
69
83
|
/**
|
|
70
84
|
* 构建编辑器函数:非只读行使用指定编辑器名称,只读行返回 undefined
|
|
71
85
|
*
|
|
72
86
|
* 用于 ColumnDefine.editor,以便在行级别区分只读/可编辑状态。
|
|
87
|
+
*
|
|
88
|
+
* @param editorName 非只读行使用的编辑器名称
|
|
89
|
+
* @returns 可挂载到 ColumnDefine.editor 的编辑器回调
|
|
73
90
|
*/
|
|
74
91
|
export declare function makeEditorForReadonly(editorName: string): ColumnDefine['editor'];
|
|
75
92
|
/** 各属性类型的默认列宽及最小/最大宽度 */
|
|
@@ -90,34 +107,83 @@ export declare const DEFAULT_COLUMN_SIZES: Record<string, {
|
|
|
90
107
|
* - numberArray → 逗号分隔显示 + number-tags-editor 数字标签输入(非只读时)
|
|
91
108
|
* - keyValue → JSON 字符串显示 + key-value-editor 键值对编辑器(非只读时)
|
|
92
109
|
* - json → JSON 字符串显示 + json-editor 文本区域(非只读时)
|
|
110
|
+
*
|
|
111
|
+
* @param config 属性列配置
|
|
112
|
+
* @returns 构建好的 VTable ColumnDefine
|
|
93
113
|
*/
|
|
94
114
|
export declare function buildPropertyColumn(config: PropertyColumnConfig): ColumnDefine;
|
|
95
115
|
/**
|
|
96
116
|
* 将 input-editor 输入的字符串值解析回属性原始类型
|
|
97
117
|
*
|
|
98
118
|
* 在 cellChanged 事件处理器中调用此函数,将用户输入转成正确的 JS 类型后再保存。
|
|
119
|
+
*
|
|
120
|
+
* @param type 属性类型
|
|
121
|
+
* @param raw 编辑器输入的原始值
|
|
122
|
+
* @returns 解析后的属性值
|
|
99
123
|
*/
|
|
100
124
|
export declare function parsePropertyColumnValue(type: PropertyTypeString | string, raw: unknown): unknown;
|
|
101
125
|
type ColumnRecord = Record<string, unknown> & {
|
|
102
126
|
_readonly?: boolean;
|
|
103
127
|
_isAddRow?: boolean;
|
|
104
128
|
};
|
|
105
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* 通过 VTable 回调参数安全获取当前行记录
|
|
131
|
+
*
|
|
132
|
+
* @param args VTable 回调参数
|
|
133
|
+
* @returns 当前行记录;无法获取时返回 undefined
|
|
134
|
+
*/
|
|
106
135
|
export declare const getCellRecord: (args: StylePropertyFunctionArg) => ColumnRecord | undefined;
|
|
136
|
+
/**
|
|
137
|
+
* switch 禁用状态判断回调
|
|
138
|
+
*
|
|
139
|
+
* @param args VTable 回调参数(用于获取当前行记录)
|
|
140
|
+
* @returns true 表示禁用 switch
|
|
141
|
+
*/
|
|
107
142
|
export type SwitchDisableCallback = (args: StylePropertyFunctionArg) => boolean;
|
|
108
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* 检查记录是否为只读行
|
|
145
|
+
*
|
|
146
|
+
* @param record 待检查的行记录
|
|
147
|
+
* @returns 是否为只读行
|
|
148
|
+
*/
|
|
109
149
|
export declare const isReadonly: (record: unknown) => boolean;
|
|
110
|
-
/**
|
|
150
|
+
/**
|
|
151
|
+
* 检查记录是否为只读行或新增模板行
|
|
152
|
+
*
|
|
153
|
+
* @param record 待检查的行记录
|
|
154
|
+
* @returns 是否为只读行或新增模板行
|
|
155
|
+
*/
|
|
111
156
|
export declare const isReadonlyOrAddRow: (record: unknown) => boolean;
|
|
112
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* 生成查看按钮的图标选项(仅 SVG,避免 text 撑满剩余宽度)
|
|
159
|
+
*
|
|
160
|
+
* @returns 图标选项数组
|
|
161
|
+
*/
|
|
113
162
|
export declare function makeViewIcons(): unknown[];
|
|
114
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* 生成删除按钮的图标选项(SVG 图标 + 文字标签)
|
|
165
|
+
*
|
|
166
|
+
* @param label 删除按钮文字
|
|
167
|
+
* @returns 图标选项数组
|
|
168
|
+
*/
|
|
115
169
|
export declare function makeDeleteIcons(label: string): unknown[];
|
|
116
170
|
/** 不可编辑的行:禁用 editor */
|
|
117
171
|
export declare const disabledEditorForReadonly: ColumnDefine["editor"];
|
|
118
172
|
/** 禁用 switch:只读行不可操作 */
|
|
119
173
|
export declare const switchDisabledForReadonly: SwitchDisableCallback;
|
|
120
|
-
/**
|
|
121
|
-
|
|
174
|
+
/**
|
|
175
|
+
* 判定某一行能否删除;`actionsColumn` 逐行调用
|
|
176
|
+
*/
|
|
177
|
+
export type RecordDeletePredicate = (record: Readonly<Record<string, unknown>>) => boolean;
|
|
178
|
+
/**
|
|
179
|
+
* 操作列:可选包含查看(view)和删除按钮
|
|
180
|
+
*
|
|
181
|
+
* @param title 列标题
|
|
182
|
+
* @param deleteLabel 删除按钮文案
|
|
183
|
+
* @param canDelete 逐行判定是否出删除按钮;与行是否只读无关(`update: 'system'` 的实体行只读仍可删)
|
|
184
|
+
* @param viewLabel 查看按钮文案(可选,不传则只显示删除按钮,不可删的行因此无图标)
|
|
185
|
+
* @returns 操作列定义
|
|
186
|
+
*/
|
|
187
|
+
export declare function actionsColumn(title: string, deleteLabel: string, canDelete: RecordDeletePredicate, viewLabel?: string): ColumnDefine;
|
|
122
188
|
export {};
|
|
123
189
|
//# sourceMappingURL=column-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-utils.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/column-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"column-utils.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/column-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
|
|
2
|
+
/**
|
|
3
|
+
* 颜色编辑器
|
|
4
|
+
*
|
|
5
|
+
* 在单元格上方弹出原生取色器 + 十六进制文本输入,两者双向同步。
|
|
6
|
+
* Enter / Tab 提交;Escape 恢复原值;点击外部提交,提交失败时恢复原值。
|
|
7
|
+
*/
|
|
8
|
+
export declare class ColorEditor implements IEditor<unknown> {
|
|
9
|
+
#private;
|
|
10
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
11
|
+
readonly editorType = "color-editor";
|
|
12
|
+
/** 创建并显示取色器、文本输入与错误提示浮层 */
|
|
13
|
+
onStart(ctx: EditContext<unknown>): void;
|
|
14
|
+
/** 返回当前颜色值,空值为 null */
|
|
15
|
+
getValue(): string | null;
|
|
16
|
+
/** 移除输入框与提示浮层,解绑全局点击事件 */
|
|
17
|
+
onEnd(): void;
|
|
18
|
+
/** 判断目标元素是否属于本编辑器 */
|
|
19
|
+
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
20
|
+
/** 按新的单元格矩形重新定位取色器、输入框与提示浮层 */
|
|
21
|
+
adjustPosition(rect: RectProps): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=color-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/color-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAehF;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,OAAO,CAAC,OAAO,CAAC;;IAUlD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,kBAAkB;IAErC,2BAA2B;IAC3B,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAyJxC,uBAAuB;IACvB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IAIb,qBAAqB;IACrB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;IAKvD,+BAA+B;IAC/B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAiCtC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
1
|
+
import type { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
2
2
|
/**
|
|
3
3
|
* 日期时间选择编辑器
|
|
4
4
|
*
|
|
@@ -10,10 +10,15 @@ import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class DateEditor implements IEditor<unknown> {
|
|
12
12
|
#private;
|
|
13
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
13
14
|
readonly editorType = "date-editor";
|
|
15
|
+
/** 打开编辑器:构建浮层面板并初始化原生 datetime-local 输入 */
|
|
14
16
|
onStart(ctx: EditContext<unknown>): void;
|
|
17
|
+
/** 返回当前选择的日期值 */
|
|
15
18
|
getValue(): Date | null;
|
|
19
|
+
/** 结束编辑:清理浮层面板与事件监听 */
|
|
16
20
|
onEnd(): void;
|
|
21
|
+
/** 判断目标元素是否属于编辑器浮层 */
|
|
17
22
|
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
18
23
|
}
|
|
19
24
|
//# sourceMappingURL=date-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/date-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IAOjD,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAuGxC,QAAQ,IAAI,IAAI,GAAG,IAAI;IAIvB,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA6BxD"}
|
|
1
|
+
{"version":3,"file":"date-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/date-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IAOjD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,2CAA2C;IAC3C,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAuGxC,iBAAiB;IACjB,QAAQ,IAAI,IAAI,GAAG,IAAI;IAIvB,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAIb,sBAAsB;IACtB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA6BxD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GlobalOverlayEditor } from './global-overlay-editor.js';
|
|
2
|
-
import { IconData } from './lucide-svg.js';
|
|
2
|
+
import { type IconData } from './lucide-svg.js';
|
|
3
3
|
/** 枚举选项配置 */
|
|
4
4
|
export interface EnumItem {
|
|
5
5
|
/** 存储值 */
|
|
@@ -10,6 +10,8 @@ export interface EnumItem {
|
|
|
10
10
|
icon?: IconData;
|
|
11
11
|
/** 图标描边颜色(可选,配合 icon 使用) */
|
|
12
12
|
color?: string;
|
|
13
|
+
/** 是否禁用(只影响展示与选择,不改变枚举合法性) */
|
|
14
|
+
disabled?: boolean;
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* 枚举下拉选择编辑器
|
|
@@ -26,9 +28,17 @@ export declare class EnumEditor extends GlobalOverlayEditor {
|
|
|
26
28
|
#private;
|
|
27
29
|
protected get initialFocusIndex(): number;
|
|
28
30
|
protected get itemCount(): number;
|
|
31
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
29
32
|
readonly editorType = "enum-editor";
|
|
33
|
+
/**
|
|
34
|
+
* 创建枚举编辑器
|
|
35
|
+
*
|
|
36
|
+
* @param presetItems 预设选项;不传时在 onStart 中从列定义 menuList 读取
|
|
37
|
+
*/
|
|
30
38
|
constructor(presetItems?: EnumItem[]);
|
|
39
|
+
/** 初始化编辑:解析原始值并加载可选项(预设选项优先,其次列定义 menuList) */
|
|
31
40
|
onStart(ctx: Parameters<GlobalOverlayEditor['onStart']>[0]): void;
|
|
41
|
+
/** 返回当前选中的枚举值 */
|
|
32
42
|
getValue(): string;
|
|
33
43
|
protected onDeleteKey(): void;
|
|
34
44
|
protected buildRows(panel: HTMLDivElement): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/enum-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"enum-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/enum-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,aAAa;AACb,MAAM,WAAW,QAAQ;IACvB,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAOD;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,SAAQ,mBAAmB;;IAKjD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,uCAAuC;IACvC,QAAQ,CAAC,UAAU,iBAAiB;IAEpC;;;;OAIG;gBACS,WAAW,CAAC,EAAE,QAAQ,EAAE;IAKpC,+CAA+C;IACtC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IA4B1E,iBAAiB;IACR,QAAQ,IAAI,MAAM;cAIR,WAAW,IAAI,IAAI;IAQtC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAiDhD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CASzD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
|
|
1
|
+
import type { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
|
|
2
2
|
/** daisyUI v5 主题色引用(CSS 变量,主题自适应) */
|
|
3
3
|
export declare const DAISY_COLORS: {
|
|
4
4
|
readonly bg: "var(--color-base-100)";
|
|
@@ -12,11 +12,27 @@ export declare const DAISY_COLORS: {
|
|
|
12
12
|
readonly selectedBg: "color-mix(in srgb, var(--color-primary) 15%, transparent)";
|
|
13
13
|
readonly focusBg: "color-mix(in srgb, var(--color-primary) 30%, var(--color-base-100))";
|
|
14
14
|
};
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* 延迟执行编辑器初始化(注册外部点击监听 + 聚焦),避免 VTable 事件干扰
|
|
17
|
+
*
|
|
18
|
+
* @param fn 延迟执行的初始化回调
|
|
19
|
+
*/
|
|
16
20
|
export declare function scheduleEditorSetup(fn: () => void): void;
|
|
17
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* 编辑结束后将焦点还给 VTable root element(tabindex=0 的 .vtable div = ctx.container = table.getElement()),使方向键导航继续工作
|
|
23
|
+
*
|
|
24
|
+
* @param container VTable 容器元素
|
|
25
|
+
*/
|
|
18
26
|
export declare function refocusTable(container: HTMLElement | null | undefined): void;
|
|
19
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* 将浮层面板定位到单元格下方(空间不足时翻转到上方)
|
|
29
|
+
*
|
|
30
|
+
* @param panel 浮层面板元素
|
|
31
|
+
* @param rect 单元格相对 VTable 容器的位置矩形
|
|
32
|
+
* @param container VTable 容器(用于换算页面绝对坐标)
|
|
33
|
+
* @param estimatedHeight 面板估算高度(用于判断是否翻转到上方)
|
|
34
|
+
* @param options 可选布局选项(maxRight 面板最大右边界、minWidth 面板最小宽度)
|
|
35
|
+
*/
|
|
20
36
|
export declare function positionOverlayPanel(panel: HTMLElement, rect: {
|
|
21
37
|
left: number;
|
|
22
38
|
top: number;
|
|
@@ -55,12 +71,19 @@ export declare abstract class GlobalOverlayEditor implements IEditor<string> {
|
|
|
55
71
|
protected abstract get initialFocusIndex(): number;
|
|
56
72
|
protected abstract get itemCount(): number;
|
|
57
73
|
protected get focusedIndex(): number;
|
|
74
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名,子类赋值) */
|
|
58
75
|
abstract readonly editorType: string;
|
|
76
|
+
/** 构造浮层编辑器基类(子类在 onStart 中构建面板) */
|
|
59
77
|
constructor();
|
|
78
|
+
/** 打开浮层:渲染行、定位面板并注册全局鼠标/键盘监听 */
|
|
60
79
|
onStart(ctx: EditContext<string>): void;
|
|
80
|
+
/** 关闭浮层:移除面板并注销全局鼠标/键盘监听 */
|
|
61
81
|
onEnd(): void;
|
|
82
|
+
/** 返回编辑结果值 */
|
|
62
83
|
abstract getValue(): string;
|
|
84
|
+
/** 判断目标元素是否属于浮层面板 */
|
|
63
85
|
isEditorElement(target: HTMLElement): boolean;
|
|
86
|
+
/** 根据新的单元格矩形重新定位浮层面板 */
|
|
64
87
|
adjustPosition(rect: RectProps): void;
|
|
65
88
|
protected abstract buildRows(panel: HTMLDivElement): void;
|
|
66
89
|
protected abstract onRowClick(idx: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-overlay-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/global-overlay-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEhF,qCAAqC;AACrC,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAKX
|
|
1
|
+
{"version":3,"file":"global-overlay-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/global-overlay-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEhF,qCAAqC;AACrC,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAKX;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAExD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAE5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACpE,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACzC,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,IAAI,CAkBN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,8BAAsB,mBAAoB,YAAW,OAAO,CAAC,MAAM,CAAC;;IAQlE,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC/C,SAAS,CAAC,KAAK,EAAE;QAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAQ;IACzF,SAAS,CAAC,OAAO,SAAK;IACtB,SAAS,CAAC,OAAO,SAAK;IAEtB,SAAS,CAAC,QAAQ,KAAK,iBAAiB,IAAI,MAAM,CAAC;IACnD,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC;IAE3C,SAAS,KAAK,YAAY,IAAI,MAAM,CAEnC;IAED,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAErC,mCAAmC;;IAsCnC,gCAAgC;IAChC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAkCvC,4BAA4B;IAC5B,KAAK,IAAI,IAAI;IAUb,cAAc;IACd,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B,qBAAqB;IACrB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI7C,wBAAwB;IACxB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAIrC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACzD,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAChD,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAEjE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIhD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B,SAAS,CAAC,KAAK,IAAI,IAAI;IAKvB,SAAS,CAAC,YAAY,IAAI,IAAI;CA0C/B"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { GlobalOverlayEditor } from './global-overlay-editor.js';
|
|
2
|
-
import { IconData } from './lucide-svg.js';
|
|
2
|
+
import { type IconData } from './lucide-svg.js';
|
|
3
3
|
/**
|
|
4
4
|
* 带图标的列表条目
|
|
5
5
|
* @deprecated 请改用 `EnumItem`,`EnumEditor` 已原生支持 icon 和 color 字段。
|
|
6
6
|
*/
|
|
7
7
|
export interface IconLabeledItem {
|
|
8
|
+
/** 显示文本 */
|
|
8
9
|
text: string;
|
|
10
|
+
/** 存储值 */
|
|
9
11
|
value: string;
|
|
12
|
+
/** Lucide 图标数据(可选,配合 color 使用) */
|
|
10
13
|
icon?: IconData;
|
|
14
|
+
/** 图标描边颜色(可选,配合 icon 使用) */
|
|
11
15
|
color?: string;
|
|
12
16
|
}
|
|
13
17
|
/**
|
|
@@ -23,11 +27,19 @@ export declare class IconListEditor extends GlobalOverlayEditor {
|
|
|
23
27
|
#private;
|
|
24
28
|
protected get initialFocusIndex(): number;
|
|
25
29
|
protected get itemCount(): number;
|
|
30
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
26
31
|
readonly editorType = "icon-list";
|
|
32
|
+
/**
|
|
33
|
+
* 创建图标列表编辑器
|
|
34
|
+
*
|
|
35
|
+
* @param config 编辑器配置(values 为条目列表)
|
|
36
|
+
*/
|
|
27
37
|
constructor(config: {
|
|
28
38
|
values: IconLabeledItem[];
|
|
29
39
|
});
|
|
40
|
+
/** 初始化编辑:解析当前值;不在候选列表中时回退到单元格原始值 */
|
|
30
41
|
onStart(ctx: Parameters<GlobalOverlayEditor['onStart']>[0]): void;
|
|
42
|
+
/** 返回当前选中的条目值 */
|
|
31
43
|
getValue(): string;
|
|
32
44
|
protected onDeleteKey(): void;
|
|
33
45
|
protected buildRows(panel: HTMLDivElement): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-list-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/icon-list-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"icon-list-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/icon-list-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,mBAAmB;;IAIrD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,uCAAuC;IACvC,QAAQ,CAAC,UAAU,eAAe;IAElC;;;;OAIG;gBACS,MAAM,EAAE;QAAE,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;IAKjD,oCAAoC;IAC3B,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAa1E,iBAAiB;IACR,QAAQ,IAAI,MAAM;cAIR,WAAW,IAAI,IAAI;IAKtC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAqChD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CASzD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
1
|
+
import type { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
2
2
|
/**
|
|
3
3
|
* JSON / KeyValue 编辑器
|
|
4
4
|
*
|
|
@@ -10,10 +10,15 @@ import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class JsonEditor implements IEditor<unknown> {
|
|
12
12
|
#private;
|
|
13
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
13
14
|
readonly editorType = "json-editor";
|
|
15
|
+
/** 打开编辑器:构建浮层 textarea 面板并初始化原始值 */
|
|
14
16
|
onStart(ctx: EditContext<unknown>): void;
|
|
17
|
+
/** 返回当前编辑值 */
|
|
15
18
|
getValue(): unknown;
|
|
19
|
+
/** 结束编辑:清理浮层面板与事件监听 */
|
|
16
20
|
onEnd(): void;
|
|
21
|
+
/** 判断目标元素是否属于编辑器浮层 */
|
|
17
22
|
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
18
23
|
}
|
|
19
24
|
//# sourceMappingURL=json-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/json-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IASjD,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAiIxC,QAAQ,IAAI,OAAO;IAInB,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA4CxD"}
|
|
1
|
+
{"version":3,"file":"json-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/json-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IASjD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,oCAAoC;IACpC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAiIxC,cAAc;IACd,QAAQ,IAAI,OAAO;IAInB,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAIb,sBAAsB;IACtB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA4CxD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
2
|
-
import { KVSchemaEntry } from '../columns/column-utils.js';
|
|
1
|
+
import type { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
2
|
+
import type { KVSchemaEntry } from '../columns/column-utils.js';
|
|
3
3
|
/**
|
|
4
4
|
* KeyValue (Record<string, unknown>) editor — Schema mode only
|
|
5
5
|
*
|
|
@@ -11,11 +11,21 @@ import { KVSchemaEntry } from '../columns/column-utils.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class KeyValueEditor implements IEditor<unknown> {
|
|
13
13
|
#private;
|
|
14
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
14
15
|
readonly editorType = "key-value-editor";
|
|
16
|
+
/**
|
|
17
|
+
* 创建 KeyValue 编辑器
|
|
18
|
+
*
|
|
19
|
+
* @param schema 可选的键 Schema 定义;不传或为空时进入自由模式
|
|
20
|
+
*/
|
|
15
21
|
constructor(schema?: Record<string, KVSchemaEntry> | null);
|
|
22
|
+
/** 打开编辑器:构建键值对编辑浮层并按初始值 / Schema 填充行 */
|
|
16
23
|
onStart(ctx: EditContext<unknown>): void;
|
|
24
|
+
/** 返回当前编辑的键值对象 */
|
|
17
25
|
getValue(): Record<string, unknown>;
|
|
26
|
+
/** 结束编辑:中止未决监听并清理浮层 */
|
|
18
27
|
onEnd(): void;
|
|
28
|
+
/** 判断目标元素是否属于编辑器浮层 */
|
|
19
29
|
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
20
30
|
}
|
|
21
31
|
//# sourceMappingURL=key-value-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/key-value-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAahE;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,OAAO,CAAC,OAAO,CAAC;;IAYrD,QAAQ,CAAC,UAAU,sBAAsB;
|
|
1
|
+
{"version":3,"file":"key-value-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/key-value-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAahE;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,OAAO,CAAC,OAAO,CAAC;;IAYrD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,sBAAsB;IAEzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IAIzD,wCAAwC;IACxC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IA2JxC,kBAAkB;IAClB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAIb,sBAAsB;IACtB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA4XxD"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/** Lucide 图标数据 — [tagName, attributes] 元组数组 */
|
|
2
2
|
export type IconData = readonly (readonly [string, Record<string, unknown>])[];
|
|
3
3
|
/**
|
|
4
|
-
* 将 `LucideIconData` 转为内联 SVG
|
|
4
|
+
* 将 `LucideIconData` 转为内联 SVG 元素(DOM API 构造,免疫标记注入)
|
|
5
5
|
*
|
|
6
6
|
* @param icon - lucide 图标数据
|
|
7
7
|
* @param color - stroke 颜色(不合法时回退 currentColor)
|
|
8
8
|
* @param size - 宽高像素,默认 13
|
|
9
|
+
* @returns 内联 SVG 元素
|
|
9
10
|
*/
|
|
10
|
-
export declare function
|
|
11
|
+
export declare function lucideToSvgElement(icon: IconData, color: string, size?: number): SVGSVGElement;
|
|
11
12
|
//# sourceMappingURL=lucide-svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucide-svg.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/lucide-svg.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"lucide-svg.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/lucide-svg.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AA6C/E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,aAAa,CAuB1F"}
|