@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.
Files changed (181) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +43 -6
  3. package/dist/cn.d.ts +19 -0
  4. package/dist/cn.d.ts.map +1 -0
  5. package/dist/entity-capabilities.d.ts +31 -0
  6. package/dist/entity-capabilities.d.ts.map +1 -0
  7. package/dist/entity-detail/detail-tabs.d.ts +13 -2
  8. package/dist/entity-detail/detail-tabs.d.ts.map +1 -1
  9. package/dist/entity-detail/index.d.ts +5 -0
  10. package/dist/entity-detail/index.d.ts.map +1 -1
  11. package/dist/entity-detail/interfaces.d.ts +29 -1
  12. package/dist/entity-detail/interfaces.d.ts.map +1 -1
  13. package/dist/entity-field.utils.d.ts +60 -2
  14. package/dist/entity-field.utils.d.ts.map +1 -1
  15. package/dist/entity-form/form-data.d.ts +22 -1
  16. package/dist/entity-form/form-data.d.ts.map +1 -1
  17. package/dist/entity-form/form-fields.d.ts +25 -2
  18. package/dist/entity-form/form-fields.d.ts.map +1 -1
  19. package/dist/entity-form/form-validation.d.ts +20 -2
  20. package/dist/entity-form/form-validation.d.ts.map +1 -1
  21. package/dist/entity-form/index.d.ts +5 -0
  22. package/dist/entity-form/index.d.ts.map +1 -1
  23. package/dist/entity-form/interfaces.d.ts +65 -1
  24. package/dist/entity-form/interfaces.d.ts.map +1 -1
  25. package/dist/entity-list/manual-order-list.d.ts +99 -0
  26. package/dist/entity-list/manual-order-list.d.ts.map +1 -0
  27. package/dist/entity-table/columns/build-editable-columns.d.ts +26 -4
  28. package/dist/entity-table/columns/build-editable-columns.d.ts.map +1 -1
  29. package/dist/entity-table/columns/column-utils.d.ts +78 -12
  30. package/dist/entity-table/columns/column-utils.d.ts.map +1 -1
  31. package/dist/entity-table/editors/color-editor.d.ts +23 -0
  32. package/dist/entity-table/editors/color-editor.d.ts.map +1 -0
  33. package/dist/entity-table/editors/date-editor.d.ts +6 -1
  34. package/dist/entity-table/editors/date-editor.d.ts.map +1 -1
  35. package/dist/entity-table/editors/enum-editor.d.ts +11 -1
  36. package/dist/entity-table/editors/enum-editor.d.ts.map +1 -1
  37. package/dist/entity-table/editors/global-overlay-editor.d.ts +27 -4
  38. package/dist/entity-table/editors/global-overlay-editor.d.ts.map +1 -1
  39. package/dist/entity-table/editors/icon-list-editor.d.ts +13 -1
  40. package/dist/entity-table/editors/icon-list-editor.d.ts.map +1 -1
  41. package/dist/entity-table/editors/json-editor.d.ts +6 -1
  42. package/dist/entity-table/editors/json-editor.d.ts.map +1 -1
  43. package/dist/entity-table/editors/key-value-editor.d.ts +12 -2
  44. package/dist/entity-table/editors/key-value-editor.d.ts.map +1 -1
  45. package/dist/entity-table/editors/lucide-svg.d.ts +3 -2
  46. package/dist/entity-table/editors/lucide-svg.d.ts.map +1 -1
  47. package/dist/entity-table/editors/multiselect-editor.d.ts +24 -6
  48. package/dist/entity-table/editors/multiselect-editor.d.ts.map +1 -1
  49. package/dist/entity-table/editors/number-editor.d.ts +33 -3
  50. package/dist/entity-table/editors/number-editor.d.ts.map +1 -1
  51. package/dist/entity-table/editors/relation-editor.d.ts +14 -2
  52. package/dist/entity-table/editors/relation-editor.d.ts.map +1 -1
  53. package/dist/entity-table/editors/safe-list-editor.d.ts +1 -0
  54. package/dist/entity-table/editors/safe-list-editor.d.ts.map +1 -1
  55. package/dist/entity-table/editors/tags-editor.d.ts +12 -1
  56. package/dist/entity-table/editors/tags-editor.d.ts.map +1 -1
  57. package/dist/entity-table/editors/text-format-editor.d.ts +32 -0
  58. package/dist/entity-table/editors/text-format-editor.d.ts.map +1 -0
  59. package/dist/entity-table/editors/uuid-editor.d.ts +14 -1
  60. package/dist/entity-table/editors/uuid-editor.d.ts.map +1 -1
  61. package/dist/entity-table/index.d.ts +13 -3
  62. package/dist/entity-table/index.d.ts.map +1 -1
  63. package/dist/entity-table/interfaces.d.ts +13 -0
  64. package/dist/entity-table/interfaces.d.ts.map +1 -1
  65. package/dist/entity-table/vtable/table-clipboard.d.ts +31 -2
  66. package/dist/entity-table/vtable/table-clipboard.d.ts.map +1 -1
  67. package/dist/entity-table/vtable/table-factory.d.ts +25 -5
  68. package/dist/entity-table/vtable/table-factory.d.ts.map +1 -1
  69. package/dist/entity-table/vtable/table-keyboard.d.ts +18 -1
  70. package/dist/entity-table/vtable/table-keyboard.d.ts.map +1 -1
  71. package/dist/entity-table/vtable/table-operations.d.ts +44 -3
  72. package/dist/entity-table/vtable/table-operations.d.ts.map +1 -1
  73. package/dist/entity-table/vtable/table-row-move.d.ts +88 -0
  74. package/dist/entity-table/vtable/table-row-move.d.ts.map +1 -0
  75. package/dist/entity-table/vtable/table-theme.d.ts +47 -2
  76. package/dist/entity-table/vtable/table-theme.d.ts.map +1 -1
  77. package/dist/entity-table/vtable/table-tooltip.d.ts +7 -1
  78. package/dist/entity-table/vtable/table-tooltip.d.ts.map +1 -1
  79. package/dist/entity-table/vtable/vtable-compat.d.ts +33 -5
  80. package/dist/entity-table/vtable/vtable-compat.d.ts.map +1 -1
  81. package/dist/entity-value.utils.d.ts +50 -2
  82. package/dist/entity-value.utils.d.ts.map +1 -1
  83. package/dist/index.d.ts +9 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +4392 -64471
  86. package/dist/query-builder/models/config.interface.d.ts +2 -2
  87. package/dist/query-builder/models/operator.interface.d.ts +6 -2
  88. package/dist/query-builder/models/operator.interface.d.ts.map +1 -1
  89. package/dist/query-builder/models/query-builder-state.d.ts +31 -2
  90. package/dist/query-builder/models/query-builder-state.d.ts.map +1 -1
  91. package/dist/query-builder/models/validation.interface.d.ts +2 -2
  92. package/dist/query-builder/services/operator-registry.service.d.ts +13 -3
  93. package/dist/query-builder/services/operator-registry.service.d.ts.map +1 -1
  94. package/dist/query-builder/services/query-builder.service.d.ts +16 -6
  95. package/dist/query-builder/services/query-builder.service.d.ts.map +1 -1
  96. package/dist/query-builder/services/query-converter.service.d.ts +10 -2
  97. package/dist/query-builder/services/query-converter.service.d.ts.map +1 -1
  98. package/dist/query-builder/services/schema-parser.service.d.ts +10 -2
  99. package/dist/query-builder/services/schema-parser.service.d.ts.map +1 -1
  100. package/dist/query-builder/services/validation.service.d.ts +34 -4
  101. package/dist/query-builder/services/validation.service.d.ts.map +1 -1
  102. package/dist/query-builder/utils/date.d.ts +12 -0
  103. package/dist/query-builder/utils/date.d.ts.map +1 -1
  104. package/dist/query-builder/utils/field-tree.d.ts +7 -1
  105. package/dist/query-builder/utils/field-tree.d.ts.map +1 -1
  106. package/dist/query-builder/utils/id.d.ts +2 -0
  107. package/dist/query-builder/utils/id.d.ts.map +1 -1
  108. package/dist/query-builder/utils/metadata-field-extractor.d.ts +15 -3
  109. package/dist/query-builder/utils/metadata-field-extractor.d.ts.map +1 -1
  110. package/dist/query-builder/utils/popover-position.d.ts +11 -0
  111. package/dist/query-builder/utils/popover-position.d.ts.map +1 -1
  112. package/dist/query-builder/utils/schema-factory.d.ts +7 -3
  113. package/dist/query-builder/utils/structural-equal.d.ts +4 -0
  114. package/dist/query-builder/utils/structural-equal.d.ts.map +1 -1
  115. package/dist/query-builder/utils/value-input.d.ts +21 -1
  116. package/dist/query-builder/utils/value-input.d.ts.map +1 -1
  117. package/dist/structural-equal.d.ts +5 -1
  118. package/dist/structural-equal.d.ts.map +1 -1
  119. package/package.json +34 -10
  120. package/src/cn.ts +21 -0
  121. package/src/entity-capabilities.ts +37 -0
  122. package/src/entity-detail/detail-tabs.ts +48 -0
  123. package/src/entity-detail/index.ts +7 -0
  124. package/src/entity-detail/interfaces.ts +55 -0
  125. package/src/entity-field.utils.ts +205 -0
  126. package/src/entity-form/form-data.ts +83 -0
  127. package/src/entity-form/form-fields.ts +48 -0
  128. package/src/entity-form/form-validation.ts +34 -0
  129. package/src/entity-form/index.ts +9 -0
  130. package/src/entity-form/interfaces.ts +116 -0
  131. package/src/entity-list/manual-order-list.ts +159 -0
  132. package/src/entity-table/columns/build-editable-columns.ts +184 -0
  133. package/src/entity-table/columns/column-utils.ts +657 -0
  134. package/src/entity-table/editors/color-editor.ts +239 -0
  135. package/src/entity-table/editors/date-editor.ts +169 -0
  136. package/src/entity-table/editors/enum-editor.ts +167 -0
  137. package/src/entity-table/editors/global-overlay-editor.ts +277 -0
  138. package/src/entity-table/editors/icon-list-editor.ts +130 -0
  139. package/src/entity-table/editors/json-editor.ts +212 -0
  140. package/src/entity-table/editors/key-value-editor.ts +595 -0
  141. package/src/entity-table/editors/lucide-svg.ts +78 -0
  142. package/src/entity-table/editors/multiselect-editor.ts +171 -0
  143. package/src/entity-table/editors/number-editor.ts +322 -0
  144. package/src/entity-table/editors/relation-editor.ts +316 -0
  145. package/src/entity-table/editors/safe-list-editor.ts +17 -0
  146. package/src/entity-table/editors/tags-editor.ts +239 -0
  147. package/src/entity-table/editors/text-format-editor.ts +220 -0
  148. package/src/entity-table/editors/uuid-editor.ts +198 -0
  149. package/src/entity-table/index.ts +96 -0
  150. package/src/entity-table/interfaces.ts +72 -0
  151. package/src/entity-table/vtable/table-clipboard.ts +419 -0
  152. package/src/entity-table/vtable/table-factory.ts +117 -0
  153. package/src/entity-table/vtable/table-keyboard.ts +89 -0
  154. package/src/entity-table/vtable/table-operations.ts +123 -0
  155. package/src/entity-table/vtable/table-row-move.ts +122 -0
  156. package/src/entity-table/vtable/table-theme.ts +181 -0
  157. package/src/entity-table/vtable/table-tooltip.ts +70 -0
  158. package/src/entity-table/vtable/vtable-compat.ts +84 -0
  159. package/src/entity-value.utils.ts +456 -0
  160. package/src/index.ts +57 -0
  161. package/src/query-builder/models/config.interface.ts +31 -0
  162. package/src/query-builder/models/index.ts +8 -0
  163. package/src/query-builder/models/operator.interface.ts +191 -0
  164. package/src/query-builder/models/query-builder-state.ts +222 -0
  165. package/src/query-builder/models/validation.interface.ts +184 -0
  166. package/src/query-builder/services/index.ts +9 -0
  167. package/src/query-builder/services/operator-registry.service.ts +243 -0
  168. package/src/query-builder/services/query-builder.service.ts +568 -0
  169. package/src/query-builder/services/query-converter.service.ts +153 -0
  170. package/src/query-builder/services/schema-parser.service.ts +309 -0
  171. package/src/query-builder/services/validation.service.ts +390 -0
  172. package/src/query-builder/utils/date.ts +35 -0
  173. package/src/query-builder/utils/field-tree.ts +400 -0
  174. package/src/query-builder/utils/id.ts +15 -0
  175. package/src/query-builder/utils/index.ts +12 -0
  176. package/src/query-builder/utils/metadata-field-extractor.ts +460 -0
  177. package/src/query-builder/utils/popover-position.ts +59 -0
  178. package/src/query-builder/utils/schema-factory.ts +75 -0
  179. package/src/query-builder/utils/structural-equal.ts +5 -0
  180. package/src/query-builder/utils/value-input.ts +105 -0
  181. package/src/structural-equal.ts +49 -0
@@ -1,23 +1,41 @@
1
1
  import { GlobalOverlayEditor } from './global-overlay-editor.js';
2
- /** 多选选项:id + 显示名 */
2
+ /** 多选选项:id + 显示名 + 可选色点 / 禁用 */
3
3
  export interface MultiSelectOption {
4
+ /** 选项唯一标识(也是存储值) */
4
5
  id: string;
6
+ /** 选项显示名 */
5
7
  name: string;
8
+ /** 色点颜色(可选,显示在复选框左侧) */
9
+ color?: string;
10
+ /** 是否禁用(只影响展示与选择,不改变合法性) */
11
+ disabled?: boolean;
6
12
  }
7
13
  /**
8
14
  * VTable 自定义多选编辑器
9
15
  *
10
- * 弹出浮层显示 checkbox 列表,支持 toggle 多选。
11
- * 确认后将选中 ID 以逗号分隔写回单元格。
12
- * 点击外部或 Esc 提交并关闭。
16
+ * 弹出浮层显示 checkbox 列表,支持 toggle 多选;禁用的选项不可勾选。
17
+ * 结束编辑时以选中 id 列表(逗号分隔)写回单元格,并通过 onCommit 回调给出 id 数组。
18
+ * 未显式传入初始选中时,从单元格 origin 值读取。
13
19
  */
14
20
  export declare class MultiSelectEditor extends GlobalOverlayEditor {
15
21
  #private;
16
22
  protected get initialFocusIndex(): number;
17
23
  protected get itemCount(): number;
18
- readonly editorType = "multiselect";
19
- constructor(options: MultiSelectOption[], selectedIds: string[], onCommit?: (ids: string[]) => void);
24
+ /** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
25
+ readonly editorType = "multiselect-editor";
26
+ /**
27
+ * 创建多选编辑器
28
+ *
29
+ * @param options - 全部可选项
30
+ * @param selectedIds - 初始选中的选项 ID;不传(null / undefined)时从单元格 origin 值读取
31
+ * @param onCommit - 结束编辑时的提交回调,收到当前选中的 ID 列表
32
+ */
33
+ constructor(options: MultiSelectOption[], selectedIds?: string[] | null, onCommit?: (ids: string[]) => void);
34
+ /** 打开浮层:无显式初始选中时从单元格 origin 值解析已选 id */
35
+ onStart(ctx: Parameters<GlobalOverlayEditor['onStart']>[0]): void;
36
+ /** 结束编辑时以当前选中的 ID 列表触发提交回调 */
20
37
  onEnd(): void;
38
+ /** 返回当前选中选项的 id,以逗号加空格拼接(存储值口径,非显示名) */
21
39
  getValue(): string;
22
40
  protected buildRows(panel: HTMLDivElement): void;
23
41
  protected onRowClick(idx: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/multiselect-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/E,oBAAoB;AACpB,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;;IAKxD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,QAAQ,CAAC,UAAU,iBAAiB;gBAExB,OAAO,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI;IAO1F,KAAK,IAAI,IAAI;IAKtB,QAAQ,IAAI,MAAM;IAOlB,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IA6ChD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAavC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAMzD"}
1
+ {"version":3,"file":"multiselect-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/multiselect-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/E,gCAAgC;AAChC,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgBD;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;;IAMxD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,uCAAuC;IACvC,QAAQ,CAAC,UAAU,wBAAwB;IAE3C;;;;;;OAMG;gBACS,OAAO,EAAE,iBAAiB,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI;IAQ3G,wCAAwC;IAC/B,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAU1E,8BAA8B;IACrB,KAAK,IAAI,IAAI;IAKtB,wCAAwC;IACxC,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IA8DhD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAavC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAMzD"}
@@ -1,12 +1,42 @@
1
- import { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
1
+ import type { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
2
+ /** 数字编辑器的可选行为配置 */
3
+ export interface NumberEditorOptions {
4
+ /** true 为 64 位大整数模式(值类型 bigint) */
5
+ bigint?: boolean;
6
+ /** 最小值(含) */
7
+ min?: number;
8
+ /** 最大值(含) */
9
+ max?: number;
10
+ /** 取值步长(相对 min 对齐,容差 1e-8) */
11
+ step?: number;
12
+ }
13
+ /**
14
+ * 数字输入编辑器
15
+ *
16
+ * 在单元格上方弹出固定定位输入框,输入时实时校验并显示红色错误提示。
17
+ * Enter / Tab 提交;Escape 恢复原值;点击外部提交,提交失败时恢复原值。
18
+ * 支持整数 / 小数 / bigint 三种模式,并可按 min / max / step 约束值域。
19
+ */
2
20
  export declare class NumberEditor implements IEditor<unknown> {
3
21
  #private;
22
+ /** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
4
23
  readonly editorType: string;
5
- constructor(isInteger?: boolean);
24
+ /**
25
+ * 创建数字编辑器
26
+ *
27
+ * @param isInteger - true 为整数模式,false(默认)为小数模式
28
+ * @param options - 可选行为配置(bigint 模式与值域约束)
29
+ */
30
+ constructor(isInteger?: boolean, options?: NumberEditorOptions);
31
+ /** 创建并显示输入框与错误提示浮层,绑定输入校验与提交逻辑 */
6
32
  onStart(ctx: EditContext<unknown>): void;
7
- getValue(): number | null;
33
+ /** 返回当前数值(bigint 模式下为 bigint),空值为 null */
34
+ getValue(): number | bigint | null;
35
+ /** 移除输入框与提示浮层,解绑全局点击事件 */
8
36
  onEnd(): void;
37
+ /** 判断目标元素是否属于本编辑器(输入框或错误提示浮层) */
9
38
  isEditorElement(el: HTMLElement | EventTarget): boolean;
39
+ /** 按新的单元格矩形重新定位输入框与错误提示浮层 */
10
40
  adjustPosition(rect: RectProps): void;
11
41
  }
12
42
  //# sourceMappingURL=number-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/number-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAKhF,qBAAa,YAAa,YAAW,OAAO,CAAC,OAAO,CAAC;;IAUnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,SAAS,UAAQ;IAK7B,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IA2HxC,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;IAKvD,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAiDtC"}
1
+ {"version":3,"file":"number-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/number-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAKhF,mBAAmB;AACnB,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAQD;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,OAAO,CAAC,OAAO,CAAC;;IAcnD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;;OAKG;gBACS,SAAS,UAAQ,EAAE,OAAO,GAAE,mBAAwB;IAYhE,kCAAkC;IAClC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAmIxC,0CAA0C;IAC1C,QAAQ,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI;IAIlC,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IAIb,iCAAiC;IACjC,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;IAKvD,6BAA6B;IAC7B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CA2GtC"}
@@ -1,5 +1,5 @@
1
- import { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
2
- import { RelatedEntityItem } from '../../entity-form/interfaces.js';
1
+ import type { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
2
+ import type { RelatedEntityItem } from '../../entity-form/interfaces.js';
3
3
  /** 关联实体选项项 */
4
4
  export { type RelatedEntityItem };
5
5
  /**
@@ -12,12 +12,24 @@ export { type RelatedEntityItem };
12
12
  */
13
13
  export declare class RelationEditor implements IEditor<string> {
14
14
  #private;
15
+ /** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
15
16
  readonly editorType = "relation-editor";
17
+ /**
18
+ * 创建关系下拉编辑器
19
+ *
20
+ * @param items - 候选实体列表,或每次打开时重新求值的工厂函数
21
+ * @param nullable - 是否允许空值,为 true 时列表首项为“(空)”
22
+ */
16
23
  constructor(items?: RelatedEntityItem[] | (() => RelatedEntityItem[]), nullable?: boolean);
24
+ /** 弹出搜索浮层,解析候选列表并绑定键盘与点击事件 */
17
25
  onStart(ctx: EditContext<string>): void;
26
+ /** 移除浮层并解绑全局事件 */
18
27
  onEnd(): void;
28
+ /** 返回当前选中的关联实体 ID(未选中为空字符串) */
19
29
  getValue(): string;
30
+ /** 判断目标元素是否位于本编辑器浮层内 */
20
31
  isEditorElement(target: HTMLElement): boolean;
32
+ /** 按新的单元格矩形重新定位浮层 */
21
33
  adjustPosition(rect: RectProps): void;
22
34
  }
23
35
  //# sourceMappingURL=relation-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/relation-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,cAAc;AAEd,OAAO,EAAE,KAAK,iBAAiB,EAAE,CAAC;AAElC;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,OAAO,CAAC,MAAM,CAAC;;IAkBpD,QAAQ,CAAC,UAAU,qBAAqB;gBAE5B,KAAK,GAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,iBAAiB,EAAE,CAAM,EAAE,QAAQ,UAAQ;IAgD3F,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAkFvC,KAAK,IAAI,IAAI;IAWb,QAAQ,IAAI,MAAM;IAIlB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI7C,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAsHtC"}
1
+ {"version":3,"file":"relation-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/relation-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,cAAc;AAEd,OAAO,EAAE,KAAK,iBAAiB,EAAE,CAAC;AAElC;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,OAAO,CAAC,MAAM,CAAC;;IAkBpD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,qBAAqB;IAExC;;;;;OAKG;gBACS,KAAK,GAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,iBAAiB,EAAE,CAAM,EAAE,QAAQ,UAAQ;IAgD3F,8BAA8B;IAC9B,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAkFvC,kBAAkB;IAClB,KAAK,IAAI,IAAI;IAWb,+BAA+B;IAC/B,QAAQ,IAAI,MAAM;IAIlB,wBAAwB;IACxB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI7C,qBAAqB;IACrB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAsHtC"}
@@ -5,6 +5,7 @@ import { ListEditor } from '@visactor/vtable-editors';
5
5
  * during keyboard-triggered cell navigation.
6
6
  */
7
7
  export declare class SafeListEditor extends ListEditor {
8
+ /** 调用父类 onEnd,吞掉键盘导航场景下 parentNode 为 null 引发的 TypeError */
8
9
  onEnd(): void;
9
10
  }
10
11
  //# sourceMappingURL=safe-list-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-list-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/safe-list-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,UAAU;IACnC,KAAK,IAAI,IAAI;CAOvB"}
1
+ {"version":3,"file":"safe-list-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/safe-list-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,2DAA2D;IAClD,KAAK,IAAI,IAAI;CAOvB"}
@@ -1,4 +1,5 @@
1
- import { EditContext, IEditor } from '@visactor/vtable-editors';
1
+ import type { EditContext, IEditor } from '@visactor/vtable-editors';
2
+ /** 标签编辑器模式:'string' 字符串标签 / 'number' 数字标签 */
2
3
  export type TagsMode = 'string' | 'number';
3
4
  /**
4
5
  * 标签(数组)输入编辑器
@@ -14,11 +15,21 @@ export type TagsMode = 'string' | 'number';
14
15
  */
15
16
  export declare class TagsEditor implements IEditor<unknown> {
16
17
  #private;
18
+ /** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
17
19
  readonly editorType: string;
20
+ /**
21
+ * 创建标签编辑器
22
+ *
23
+ * @param mode - 标签模式,'string'(默认)或 'number'
24
+ */
18
25
  constructor(mode?: TagsMode);
26
+ /** 弹出标签编辑浮层,从单元格值解析初始标签并绑定交互事件 */
19
27
  onStart(ctx: EditContext<unknown>): void;
28
+ /** 返回标签数组;number 模式下返回数字数组 */
20
29
  getValue(): string[] | number[];
30
+ /** 移除浮层并解绑全局点击事件 */
21
31
  onEnd(): void;
32
+ /** 判断目标元素是否位于本编辑器浮层内 */
22
33
  isEditorElement(el: HTMLElement | EventTarget): boolean;
23
34
  }
24
35
  //# sourceMappingURL=tags-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tags-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/tags-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IAUjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,IAAI,GAAE,QAAmB;IAKrC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IA4GxC,QAAQ,IAAI,MAAM,EAAE,GAAG,MAAM,EAAE;IAO/B,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CAwExD"}
1
+ {"version":3,"file":"tags-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/tags-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE,6CAA6C;AAC7C,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IAUjD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;gBACS,IAAI,GAAE,QAAmB;IAKrC,kCAAkC;IAClC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IA4GxC,8BAA8B;IAC9B,QAAQ,IAAI,MAAM,EAAE,GAAG,MAAM,EAAE;IAO/B,oBAAoB;IACpB,KAAK,IAAI,IAAI;IAIb,wBAAwB;IACxB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CAwExD"}
@@ -0,0 +1,32 @@
1
+ import type { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
2
+ /** TextFormatEditor 支持的 format 判别 */
3
+ export type TextFormatMode = 'email' | 'phone' | 'url';
4
+ /**
5
+ * 文本语义编辑器(url / email / phone)
6
+ *
7
+ * 与普通文本输入一致,但提交时按 format 语义校验(协议白名单 / 邮箱形状 / 电话形状),
8
+ * 校验失败显示红色错误提示并拒绝提交。
9
+ */
10
+ export declare class TextFormatEditor implements IEditor<unknown> {
11
+ #private;
12
+ /** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
13
+ readonly editorType = "text-format-editor";
14
+ /**
15
+ * 创建文本语义编辑器
16
+ *
17
+ * @param mode - 校验模式
18
+ * @param schemes - url 模式的协议白名单(不传则不限制协议)
19
+ */
20
+ constructor(mode: TextFormatMode, schemes?: readonly string[]);
21
+ /** 创建并显示输入框与错误提示浮层,绑定校验与提交逻辑 */
22
+ onStart(ctx: EditContext<unknown>): void;
23
+ /** 返回当前文本值,空值为 null */
24
+ getValue(): string | null;
25
+ /** 移除输入框与提示浮层,解绑全局点击事件 */
26
+ onEnd(): void;
27
+ /** 判断目标元素是否属于本编辑器(输入框或错误提示浮层) */
28
+ isEditorElement(el: HTMLElement | EventTarget): boolean;
29
+ /** 按新的单元格矩形重新定位输入框与错误提示浮层 */
30
+ adjustPosition(rect: RectProps): void;
31
+ }
32
+ //# sourceMappingURL=text-format-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-format-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/text-format-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAMhF,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,OAAO,CAAC,OAAO,CAAC;;IAWvD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,wBAAwB;IAE3C;;;;;OAKG;gBACS,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE;IAK7D,gCAAgC;IAChC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAsIxC,uBAAuB;IACvB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IAIb,iCAAiC;IACjC,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;IAKvD,6BAA6B;IAC7B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CA2BtC"}
@@ -1,13 +1,26 @@
1
- import { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
1
+ import type { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
2
2
  import { UUID_RE } from '../../entity-value.utils.js';
3
+ /** UUID 格式正则(re-export,定义见 entity-value.utils) */
3
4
  export { UUID_RE };
5
+ /**
6
+ * UUID 文本编辑器
7
+ *
8
+ * 在单元格上方弹出固定定位输入框,提交时校验 UUID 格式(非法则红色提示)。
9
+ * Enter / Tab 提交;Escape 恢复原值;点击外部提交,非法输入恢复原值。
10
+ */
4
11
  export declare class UuidEditor implements IEditor<unknown> {
5
12
  #private;
13
+ /** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
6
14
  readonly editorType = "uuid-editor";
15
+ /** 创建并显示输入框与错误提示浮层,绑定格式校验与提交逻辑 */
7
16
  onStart(ctx: EditContext<unknown>): void;
17
+ /** 返回当前 UUID 值,空值为 null */
8
18
  getValue(): string | null;
19
+ /** 移除输入框与提示浮层,解绑全局点击事件 */
9
20
  onEnd(): void;
21
+ /** 判断目标元素是否属于本编辑器(输入框或错误提示浮层) */
10
22
  isEditorElement(el: HTMLElement | EventTarget): boolean;
23
+ /** 按新的单元格矩形重新定位输入框与错误提示浮层 */
11
24
  adjustPosition(rect: RectProps): void;
12
25
  }
13
26
  //# sourceMappingURL=uuid-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uuid-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/uuid-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAKtD,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IASjD,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IA6HxC,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;IAKvD,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CA2BtC"}
1
+ {"version":3,"file":"uuid-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/uuid-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAKtD,kDAAkD;AAClD,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IASjD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,kCAAkC;IAClC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IA6HxC,2BAA2B;IAC3B,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IAIb,iCAAiC;IACjC,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;IAKvD,6BAA6B;IAC7B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CA2BtC"}
@@ -1,22 +1,32 @@
1
+ /**
2
+ * 实体表格模块
3
+ *
4
+ * 提供 VTable 驱动的实体表格基础设施:接口与配置、表格工厂/主题/操作、
5
+ * 自定义编辑器与列构建工具的统一出口。
6
+ *
7
+ * @module entity-table
8
+ */
1
9
  export type { BatchChangeItem, CellChangeEvent, EntityTableConfig, EntityTableRecord, PendingWrite, RowDeleteEvent, RowReorderEvent } from './interfaces.js';
2
10
  export { TableClipboardManager, applyClipboard, applySystemText, collectDeleteWrites, formatAsTsv, snapshotSelection, type ClipboardCell, type ClipboardContent } from './vtable/table-clipboard.js';
3
11
  export { _resetEditorRegistry, buildTableOptions, createListTable, ensureBaseEditorRegistered, registerEditor } from './vtable/table-factory.js';
4
12
  export { handleTableKeydown, type KeyboardHandlerContext } from './vtable/table-keyboard.js';
5
- export { collectReorderedIds, patchDragIconForReadonlyRows, updateTableRecords } from './vtable/table-operations.js';
13
+ export { collectReorderedIds, patchDragIconForReadonlyRows, syncHeaderSortIcon, updateTableRecords, type HeaderSortClick } from './vtable/table-operations.js';
6
14
  export { createTheme, getCSSVariables, getDefaultColors, type CSSVariables } from './vtable/table-theme.js';
7
15
  export { CellTooltipManager, computeTooltipPosition } from './vtable/table-tooltip.js';
8
16
  export { ROW_SERIES_COL_OFFSET, changeCellValue, completeTableEdit, getTableContainer, isTableEditing, setCellSwitchState } from './vtable/vtable-compat.js';
17
+ export { ColorEditor } from './editors/color-editor.js';
9
18
  export { DateEditor } from './editors/date-editor.js';
10
19
  export { EnumEditor, type EnumItem } from './editors/enum-editor.js';
11
20
  export { DAISY_COLORS, GlobalOverlayEditor, positionOverlayPanel, scheduleEditorSetup } from './editors/global-overlay-editor.js';
12
21
  export { IconListEditor, type IconLabeledItem } from './editors/icon-list-editor.js';
13
22
  export { JsonEditor } from './editors/json-editor.js';
14
23
  export { KeyValueEditor } from './editors/key-value-editor.js';
15
- export { lucideToSvgHtml, type IconData } from './editors/lucide-svg.js';
24
+ export { lucideToSvgElement, type IconData } from './editors/lucide-svg.js';
16
25
  export { MultiSelectEditor, type MultiSelectOption } from './editors/multiselect-editor.js';
17
- export { NumberEditor } from './editors/number-editor.js';
26
+ export { NumberEditor, type NumberEditorOptions } from './editors/number-editor.js';
18
27
  export { RelationEditor } from './editors/relation-editor.js';
19
28
  export { SafeListEditor } from './editors/safe-list-editor.js';
20
29
  export { TagsEditor, type TagsMode } from './editors/tags-editor.js';
30
+ export { TextFormatEditor, type TextFormatMode } from './editors/text-format-editor.js';
21
31
  export { DELETE_COLOR, actionsColumn, buildPropertyColumn, disabledEditorForReadonly, formatDateValue, getCellRecord, isReadonly, isReadonlyOrAddRow, makeDeleteIcons, makeEditorForReadonly, parsePropertyColumnValue, switchDisabledForReadonly, type KVSchemaEntry, type PropertyColumnConfig, type PropertyTypeString, type SwitchDisableCallback } from './columns/column-utils.js';
22
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entity-table/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACrH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entity-table/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGxF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC"}
@@ -5,6 +5,7 @@
5
5
  * `_` 前缀字段为内部元数据,不会被剪贴板/编辑操作处理。
6
6
  */
7
7
  export interface EntityTableRecord {
8
+ /** 记录字段值(字段名 → 值) */
8
9
  [key: string]: unknown;
9
10
  /** 只读行(不可编辑、不可拖拽、不可删除) */
10
11
  _readonly?: boolean;
@@ -17,29 +18,41 @@ export interface EntityTableRecord {
17
18
  }
18
19
  /** 单元格变更事件 */
19
20
  export interface CellChangeEvent {
21
+ /** 变更所在列索引 */
20
22
  col: number;
23
+ /** 变更所在行索引 */
21
24
  row: number;
25
+ /** 变更的字段名 */
22
26
  field: string;
27
+ /** 变更后的值 */
23
28
  value: unknown;
29
+ /** 变更所在行记录 */
24
30
  record: EntityTableRecord;
25
31
  }
26
32
  /** 批量变更项 */
27
33
  export interface BatchChangeItem {
34
+ /** 目标记录 ID */
28
35
  recordId: string;
36
+ /** 字段名到新值的映射 */
29
37
  changes: Record<string, unknown>;
30
38
  }
31
39
  /** 行删除事件 */
32
40
  export interface RowDeleteEvent {
41
+ /** 被删除的行记录 */
33
42
  record: EntityTableRecord;
34
43
  }
35
44
  /** 行重排事件 */
36
45
  export interface RowReorderEvent {
46
+ /** 重排后的行 ID 顺序列表 */
37
47
  orderedIds: string[];
38
48
  }
39
49
  /** 剪贴板/批量写入的待提交操作 */
40
50
  export interface PendingWrite {
51
+ /** 目标列索引 */
41
52
  col: number;
53
+ /** 目标行索引 */
42
54
  row: number;
55
+ /** 待写入的值 */
43
56
  value: unknown;
44
57
  /** 目标列字段名 */
45
58
  field: string;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/entity-table/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,qBAAqB;IACrB,cAAc,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACxC;AAED,cAAc;AACd,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,WAAW;AACX,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/entity-table/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,qBAAqB;IACrB,cAAc,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACxC;AAED,cAAc;AACd,MAAM,WAAW,eAAe;IAC9B,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,cAAc;IACd,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,cAAc;IACd,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,YAAY;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,WAAW;AACX,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,11 +1,16 @@
1
- import { PendingWrite } from '../interfaces.js';
2
1
  import type * as VTable from '@visactor/vtable';
2
+ import type { PendingWrite } from '../interfaces.js';
3
3
  /** 单个单元格的剪贴板快照 */
4
4
  export interface ClipboardCell {
5
+ /** 列索引 */
5
6
  col: number;
7
+ /** 字段名 */
6
8
  field: string;
9
+ /** 单元格值 */
7
10
  value: unknown;
11
+ /** 单元格类型 */
8
12
  cellType: string;
13
+ /** 属性类型 */
9
14
  propertyType?: string;
10
15
  }
11
16
  /** 剪贴板内容:行优先二维数组 `[rowOffset][colOffset]` */
@@ -14,25 +19,47 @@ export type ClipboardContent = ClipboardCell[][];
14
19
  * 将当前 VTable 选区快照为剪贴板内容。
15
20
  *
16
21
  * 跳过:表头行、只读行、新增行、元字段列(`_` 前缀)。
22
+ *
23
+ * @param table 目标表格实例
24
+ * @param columns 列定义列表(可选),用于读取列属性类型
25
+ * @returns 剪贴板快照;无可复制单元格时返回 null
17
26
  */
18
27
  export declare function snapshotSelection(table: VTable.ListTable, columns?: readonly Record<string, unknown>[]): ClipboardContent | null;
19
- /** 将 ClipboardContent 序列化为 TSV 字符串 */
28
+ /**
29
+ * 将 ClipboardContent 序列化为 TSV 字符串
30
+ *
31
+ * @param clipboard 内部剪贴板内容
32
+ * @returns TSV 格式文本,null/undefined 值序列化为空字符串
33
+ */
20
34
  export declare function formatAsTsv(clipboard: ClipboardContent): string;
21
35
  /**
22
36
  * 从内部剪贴板收集待写入操作(按列位置匹配,类 Excel 行为)。
23
37
  * cellType 必须一致;行/列数不足时循环复用。
24
38
  * 若目标列定义了 menuList,则跳过不在枚举范围内的值。
39
+ *
40
+ * @param table 目标表格实例
41
+ * @param clipboard 内部剪贴板内容
42
+ * @param columns 列定义列表(可选),用于读取列属性类型与枚举选项
43
+ * @returns 待写入操作列表
25
44
  */
26
45
  export declare function applyClipboard(table: VTable.ListTable, clipboard: ClipboardContent, columns?: readonly Record<string, unknown>[]): PendingWrite[];
27
46
  /**
28
47
  * 从系统剪贴板文本(TSV)收集待写入操作。
29
48
  * 布尔列自动将文本转为布尔值(true/1/yes/是 → true,false/0/no/否/空 → false),
30
49
  * 无法识别的值跳过;枚举列跳过不在 menuList 中的值;行/列数不足时循环复用。
50
+ *
51
+ * @param table 目标表格实例
52
+ * @param text 系统剪贴板文本(TSV 格式,按 \n 分行、\t 分列)
53
+ * @param columns 列定义列表(可选),用于读取列属性类型与枚举选项
54
+ * @returns 待写入操作列表
31
55
  */
32
56
  export declare function applySystemText(table: VTable.ListTable, text: string, columns?: readonly Record<string, unknown>[]): PendingWrite[];
33
57
  /**
34
58
  * 从选区收集 Delete/Backspace 需要清空的单元格写入列表。
35
59
  *
60
+ * @param table 目标表格实例
61
+ * @param columns 列定义列表
62
+ * @param nonClearableFields 禁止清空的字段名集合
36
63
  * @param cellClearable 业务层回调判断单元格是否可清空,返回 false 跳过该单元格
37
64
  * @returns writes — 需要写入的清空操作;boolCells — 需要刷新视觉状态的布尔列坐标
38
65
  */
@@ -49,7 +76,9 @@ export declare function collectDeleteWrites(table: VTable.ListTable, columns: re
49
76
  /** 内部剪贴板管理器 — 封装系统剪贴板 API 交互 + 内部备份 */
50
77
  export declare class TableClipboardManager {
51
78
  #private;
79
+ /** 复制当前选区到系统剪贴板,并写入内部备份 */
52
80
  copy(table: VTable.ListTable, columns?: readonly Record<string, unknown>[]): Promise<void>;
81
+ /** 粘贴:系统剪贴板文本与上次写入不同时按文本解析,否则退回内部备份按列匹配写入 */
53
82
  paste(table: VTable.ListTable, columns?: readonly Record<string, unknown>[]): Promise<PendingWrite[]>;
54
83
  }
55
84
  //# sourceMappingURL=table-clipboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-clipboard.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqGxE,kBAAkB;AAClB,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,aAAa,EAAE,EAAE,CAAC;AAoCjD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC3C,gBAAgB,GAAG,IAAI,CA8BzB;AAED,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC3C,YAAY,EAAE,CAoChB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC3C,YAAY,EAAE,CA0ChB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,OAAO,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC,CAAA;CAAE,EAAE,EAC5F,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,EACvC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAC1E;IAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAgCvE;AAED,uCAAuC;AACvC,qBAAa,qBAAqB;;IAI1B,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1F,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAe5G"}
1
+ {"version":3,"file":"table-clipboard.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmHxE,kBAAkB;AAClB,MAAM,WAAW,aAAa;IAC5B,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,KAAK,EAAE,OAAO,CAAC;IACf,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,aAAa,EAAE,EAAE,CAAC;AAuCjD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC3C,gBAAgB,GAAG,IAAI,CA8BzB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAE/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,SAAS,EAAE,gBAAgB,EAC3B,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC3C,YAAY,EAAE,CAoChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC3C,YAAY,EAAE,CA0ChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,OAAO,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC,CAAA;CAAE,EAAE,EAC5F,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,EACvC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAC1E;IAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAgCvE;AAED,uCAAuC;AACvC,qBAAa,qBAAqB;;IAIhC,2BAA2B;IACrB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAahG,6CAA6C;IACvC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAe5G"}
@@ -1,17 +1,37 @@
1
- import { ListTableConstructorOptions } from '@visactor/vtable';
2
- import { EntityTableRecord } from '../interfaces.js';
1
+ import type { ListTableConstructorOptions } from '@visactor/vtable';
3
2
  import * as VTable from '@visactor/vtable';
4
- /** 注册 VTable 基础编辑器(全局单例,仅 input + list) */
3
+ import type { EntityTableRecord } from '../interfaces.js';
4
+ /** 注册 VTable 基础编辑器(全局单例,重复调用仅注册一次) */
5
5
  export declare function ensureBaseEditorRegistered(): void;
6
6
  /**
7
7
  * 注册自定义编辑器
8
8
  *
9
9
  * 业务层调用此函数注册领域相关编辑器(如属性类型选择器)。
10
+ *
11
+ * @param name 编辑器名称
12
+ * @param editor 编辑器实例
10
13
  */
11
14
  export declare function registerEditor(name: string, editor: unknown): void;
12
- /** 构建 ListTable 初始化选项 */
15
+ /**
16
+ * 构建 ListTable 初始化选项
17
+ *
18
+ * @param records 表格行数据
19
+ * @param columns 列定义
20
+ * @param isDarkMode 是否暗色主题
21
+ * @param options 额外选项(可选),覆盖默认配置
22
+ * @returns ListTable 构造选项
23
+ */
13
24
  export declare function buildTableOptions(records: EntityTableRecord[], columns: ListTableConstructorOptions['columns'], isDarkMode: boolean, options?: Partial<ListTableConstructorOptions>): ListTableConstructorOptions;
14
- /** 创建 VTable ListTable 实例 */
25
+ /**
26
+ * 创建 VTable ListTable 实例
27
+ *
28
+ * @param container 挂载容器元素
29
+ * @param records 表格行数据
30
+ * @param columns 列定义
31
+ * @param isDarkMode 是否暗色主题
32
+ * @param options 额外选项(可选),覆盖默认配置
33
+ * @returns 已注册基础编辑器的 ListTable 实例
34
+ */
15
35
  export declare function createListTable(container: HTMLElement, records: EntityTableRecord[], columns: ListTableConstructorOptions['columns'], isDarkMode: boolean, options?: Partial<ListTableConstructorOptions>): VTable.ListTable;
16
36
  /** 重置编辑器注册状态(仅供测试使用) */
17
37
  export declare function _resetEditorRegistry(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"table-factory.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAW3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D,2CAA2C;AAC3C,wBAAgB,0BAA0B,IAAI,IAAI,CAejD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAElE;AAED,yBAAyB;AACzB,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC/C,UAAU,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAC7C,2BAA2B,CAmB7B;AAED,6BAA6B;AAC7B,wBAAgB,eAAe,CAC7B,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC/C,UAAU,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAC7C,MAAM,CAAC,SAAS,CAIlB;AAED,wBAAwB;AACxB,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
1
+ {"version":3,"file":"table-factory.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAc3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,sCAAsC;AACtC,wBAAgB,0BAA0B,IAAI,IAAI,CAoBjD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC/C,UAAU,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAC7C,2BAA2B,CAmB7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC/C,UAAU,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAC7C,MAAM,CAAC,SAAS,CAIlB;AAED,wBAAwB;AACxB,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -1,20 +1,37 @@
1
1
  import type * as VTable from '@visactor/vtable';
2
2
  /** 键盘处理上下文 — 由组件提供回调 */
3
3
  export interface KeyboardHandlerContext {
4
+ /** 获取当前表格实例 */
4
5
  getTable(): VTable.ListTable | null;
6
+ /** 获取当前选中单元格坐标 */
5
7
  getSelectedCell(): {
8
+ /** 列索引 */
6
9
  col: number;
10
+ /** 行索引 */
7
11
  row: number;
8
12
  } | null;
13
+ /** 按列索引获取列定义 */
9
14
  getColDef(col: number): {
15
+ /** 单元格类型 */
10
16
  cellType?: string;
17
+ /** 字段名 */
11
18
  field?: string;
12
19
  } | undefined;
20
+ /** 复制回调 */
13
21
  onCopy(): void;
22
+ /** 粘贴回调 */
14
23
  onPaste(): void;
24
+ /** 删除回调 */
15
25
  onDelete(): void;
26
+ /** 单元格值变更回调 */
16
27
  onCellChange(col: number, row: number, value: unknown): void;
17
28
  }
18
- /** 表格容器 keydown 事件处理 — 剪贴板快捷键 + 布尔切换 + 删除 */
29
+ /**
30
+ * 表格容器 keydown 事件处理 — 剪贴板快捷键 + 布尔切换 + 删除。
31
+ * 编辑状态下不拦截剪贴板快捷键与删除键。
32
+ *
33
+ * @param ctx 键盘处理上下文
34
+ * @param e 键盘事件
35
+ */
19
36
  export declare function handleTableKeydown(ctx: KeyboardHandlerContext, e: KeyboardEvent): void;
20
37
  //# sourceMappingURL=table-keyboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-keyboard.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAIhD,wBAAwB;AACxB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IACpC,eAAe,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC1E,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,IAAI,IAAI,CAAC;IACjB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9D;AAID,6CAA6C;AAC7C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,EAAE,aAAa,GAAG,IAAI,CA2BtF"}
1
+ {"version":3,"file":"table-keyboard.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAIhD,wBAAwB;AACxB,MAAM,WAAW,sBAAsB;IACrC,eAAe;IACf,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IACpC,kBAAkB;IAClB,eAAe,IAAI;QACjB,UAAU;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU;QACV,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;IACT,gBAAgB;IAChB,SAAS,CAAC,GAAG,EAAE,MAAM,GACjB;QACE,YAAY;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACD,SAAS,CAAC;IACd,WAAW;IACX,MAAM,IAAI,IAAI,CAAC;IACf,WAAW;IACX,OAAO,IAAI,IAAI,CAAC;IAChB,WAAW;IACX,QAAQ,IAAI,IAAI,CAAC;IACjB,eAAe;IACf,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9D;AAKD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,EAAE,aAAa,GAAG,IAAI,CA2BtF"}