@aiao/rxdb-model 0.0.19 → 0.0.28
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 +25 -0
- package/dist/entity-capabilities.d.ts.map +1 -0
- package/dist/entity-detail/detail-tabs.d.ts +7 -1
- 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 +25 -1
- package/dist/entity-detail/interfaces.d.ts.map +1 -1
- package/dist/entity-field.utils.d.ts +54 -2
- package/dist/entity-field.utils.d.ts.map +1 -1
- package/dist/entity-form/form-data.d.ts +21 -0
- package/dist/entity-form/form-data.d.ts.map +1 -1
- package/dist/entity-form/form-fields.d.ts +19 -1
- package/dist/entity-form/form-fields.d.ts.map +1 -1
- package/dist/entity-form/form-validation.d.ts +13 -0
- 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 +60 -0
- package/dist/entity-form/interfaces.d.ts.map +1 -1
- package/dist/entity-list/manual-order-list.d.ts +92 -0
- package/dist/entity-list/manual-order-list.d.ts.map +1 -0
- package/dist/entity-list/types.d.ts +25 -0
- package/dist/entity-list/types.d.ts.map +1 -0
- package/dist/entity-table/columns/build-editable-columns.d.ts +24 -2
- package/dist/entity-table/columns/build-editable-columns.d.ts.map +1 -1
- package/dist/entity-table/columns/column-utils.d.ts +75 -9
- 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 +5 -0
- package/dist/entity-table/editors/date-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/enum-editor.d.ts +10 -0
- package/dist/entity-table/editors/enum-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/global-overlay-editor.d.ts +26 -3
- package/dist/entity-table/editors/global-overlay-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/icon-list-editor.d.ts +12 -0
- package/dist/entity-table/editors/icon-list-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/json-editor.d.ts +5 -0
- package/dist/entity-table/editors/json-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/key-value-editor.d.ts +11 -1
- 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 +32 -2
- package/dist/entity-table/editors/number-editor.d.ts.map +1 -1
- package/dist/entity-table/editors/relation-editor.d.ts +12 -0
- 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 +11 -0
- 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 +13 -0
- 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 +38 -0
- package/dist/entity-table/interfaces.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-clipboard.d.ts +30 -1
- package/dist/entity-table/vtable/table-clipboard.d.ts.map +1 -1
- package/dist/entity-table/vtable/table-factory.d.ts +23 -3
- 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 +42 -1
- 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 +49 -1
- package/dist/entity-value.utils.d.ts.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4394 -64471
- package/dist/query-builder/models/operator.interface.d.ts +5 -1
- 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 +1 -1
- package/dist/query-builder/services/operator-registry.service.d.ts +7 -1
- package/dist/query-builder/services/operator-registry.service.d.ts.map +1 -1
- package/dist/query-builder/services/query-builder.service.d.ts +10 -4
- package/dist/query-builder/services/query-builder.service.d.ts.map +1 -1
- package/dist/query-builder/services/query-converter.service.d.ts +5 -1
- package/dist/query-builder/services/query-converter.service.d.ts.map +1 -1
- package/dist/query-builder/services/schema-parser.service.d.ts +5 -1
- package/dist/query-builder/services/schema-parser.service.d.ts.map +1 -1
- package/dist/query-builder/services/validation.service.d.ts +29 -3
- 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.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 +13 -2
- 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 +1 -1
- 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 +20 -0
- 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-list/types.ts +22 -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 +100 -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 +58 -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 +312 -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 +63 -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
|
@@ -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;;
|
|
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"}
|
|
@@ -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;
|
|
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;
|
|
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
1
|
import { 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;
|
|
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 { 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
1
|
import { 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 {
|
|
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":"
|
|
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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ListTable } from '@visactor/vtable';
|
|
1
2
|
/**
|
|
2
3
|
* 通用实体表记录基础接口
|
|
3
4
|
*
|
|
@@ -5,6 +6,7 @@
|
|
|
5
6
|
* `_` 前缀字段为内部元数据,不会被剪贴板/编辑操作处理。
|
|
6
7
|
*/
|
|
7
8
|
export interface EntityTableRecord {
|
|
9
|
+
/** 记录字段值(字段名 → 值) */
|
|
8
10
|
[key: string]: unknown;
|
|
9
11
|
/** 只读行(不可编辑、不可拖拽、不可删除) */
|
|
10
12
|
_readonly?: boolean;
|
|
@@ -17,29 +19,41 @@ export interface EntityTableRecord {
|
|
|
17
19
|
}
|
|
18
20
|
/** 单元格变更事件 */
|
|
19
21
|
export interface CellChangeEvent {
|
|
22
|
+
/** 变更所在列索引 */
|
|
20
23
|
col: number;
|
|
24
|
+
/** 变更所在行索引 */
|
|
21
25
|
row: number;
|
|
26
|
+
/** 变更的字段名 */
|
|
22
27
|
field: string;
|
|
28
|
+
/** 变更后的值 */
|
|
23
29
|
value: unknown;
|
|
30
|
+
/** 变更所在行记录 */
|
|
24
31
|
record: EntityTableRecord;
|
|
25
32
|
}
|
|
26
33
|
/** 批量变更项 */
|
|
27
34
|
export interface BatchChangeItem {
|
|
35
|
+
/** 目标记录 ID */
|
|
28
36
|
recordId: string;
|
|
37
|
+
/** 字段名到新值的映射 */
|
|
29
38
|
changes: Record<string, unknown>;
|
|
30
39
|
}
|
|
31
40
|
/** 行删除事件 */
|
|
32
41
|
export interface RowDeleteEvent {
|
|
42
|
+
/** 被删除的行记录 */
|
|
33
43
|
record: EntityTableRecord;
|
|
34
44
|
}
|
|
35
45
|
/** 行重排事件 */
|
|
36
46
|
export interface RowReorderEvent {
|
|
47
|
+
/** 重排后的行 ID 顺序列表 */
|
|
37
48
|
orderedIds: string[];
|
|
38
49
|
}
|
|
39
50
|
/** 剪贴板/批量写入的待提交操作 */
|
|
40
51
|
export interface PendingWrite {
|
|
52
|
+
/** 目标列索引 */
|
|
41
53
|
col: number;
|
|
54
|
+
/** 目标行索引 */
|
|
42
55
|
row: number;
|
|
56
|
+
/** 待写入的值 */
|
|
43
57
|
value: unknown;
|
|
44
58
|
/** 目标列字段名 */
|
|
45
59
|
field: string;
|
|
@@ -51,4 +65,28 @@ export interface EntityTableConfig {
|
|
|
51
65
|
/** 单元格错误 tooltip 延迟(毫秒),默认 800 */
|
|
52
66
|
tooltipDelay?: number;
|
|
53
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* 实体表格的命令面:三端 `EntityTable` 组件对外暴露的同一组命令。
|
|
70
|
+
*
|
|
71
|
+
* @remarks
|
|
72
|
+
* React 经 `ref`(`forwardRef` + `useImperativeHandle`)、Vue 经 `defineExpose`、Angular 即组件实例
|
|
73
|
+
* 本身(`EntityTableComponent implements EntityTableHandle`)。三端各自另有的公开成员(Angular 的
|
|
74
|
+
* input / output、Vue 暴露给内部父组件的状态)不在契约内,按本类型写的调用方与 mock 三端通用。
|
|
75
|
+
*/
|
|
76
|
+
export interface EntityTableHandle {
|
|
77
|
+
/** 当前 VTable 表格实例;未初始化时为 `null`。 */
|
|
78
|
+
readonly tableInstance: ListTable | null;
|
|
79
|
+
/** 从业务层回滚单元格值(校验失败时恢复原值)。 */
|
|
80
|
+
changeCellValue(col: number, row: number, value: unknown): void;
|
|
81
|
+
/** 用当前暗色模式与 CSS 变量重绘主题。 */
|
|
82
|
+
redrawTheme(): void;
|
|
83
|
+
/** 把行恢复成最近一次交给表格的顺序(拖放被拒或落库失败时调用)。 */
|
|
84
|
+
restoreRecords(): void;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 查询表格的命令面:成员与 {@link EntityTableHandle} 相同,全部委托给内部实体表格。
|
|
88
|
+
*
|
|
89
|
+
* @remarks 三端 `QueryTable` 组件的暴露方式同 {@link EntityTableHandle}。
|
|
90
|
+
*/
|
|
91
|
+
export type QueryTableHandle = EntityTableHandle;
|
|
54
92
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -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,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;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;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,6BAA6B;IAC7B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAChE,2BAA2B;IAC3B,WAAW,IAAI,IAAI,CAAC;IACpB,sCAAsC;IACtC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC"}
|
|
@@ -2,10 +2,15 @@ import { PendingWrite } from '../interfaces.js';
|
|
|
2
2
|
import type * as VTable from '@visactor/vtable';
|
|
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
|
-
/**
|
|
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;
|
|
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
1
|
import { ListTableConstructorOptions } from '@visactor/vtable';
|
|
2
2
|
import { EntityTableRecord } from '../interfaces.js';
|
|
3
3
|
import * as VTable from '@visactor/vtable';
|
|
4
|
-
/** 注册 VTable
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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;
|
|
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
|
-
/**
|
|
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;
|
|
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"}
|
|
@@ -4,15 +4,56 @@ import type * as VTable from '@visactor/vtable';
|
|
|
4
4
|
/**
|
|
5
5
|
* HACK: VTable 不提供禁用特定行拖拽的 API,通过 monkey-patch 内部属性实现
|
|
6
6
|
*
|
|
7
|
+
* 只读行、新增行不给手柄;`setRowDragEnabled(table, false)` 之后所有行都不给。
|
|
8
|
+
*
|
|
7
9
|
* TODO(vtable-upstream): 跟踪 VTable 上游 API,一旦提供 per-row dragOrder 配置即可移除此 hack
|
|
8
10
|
* @see https://github.com/AgoraIO/vtable/issues — 搜索 "drag order per row"
|
|
11
|
+
* @param table 目标表格实例
|
|
9
12
|
*/
|
|
10
13
|
export declare function patchDragIconForReadonlyRows(table: VTable.ListTable): void;
|
|
11
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* 列头排序点击时 VTable 交出的状态
|
|
16
|
+
*/
|
|
17
|
+
export interface HeaderSortClick {
|
|
18
|
+
/** 被点击列的字段 */
|
|
19
|
+
readonly field: unknown;
|
|
20
|
+
/** 点击后的排序方向:`asc` → `desc` → `normal` 轮转 */
|
|
21
|
+
readonly order: unknown;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 同步列头排序图标,不执行客户端排序
|
|
25
|
+
*
|
|
26
|
+
* @param table - 目标表格实例
|
|
27
|
+
* @param click - `sort_click` 事件参数
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* 业务层在 `sort_click` 里返回 `false` 阻止 VTable 客户端排序、改由查询重排;
|
|
31
|
+
* 但返回 `false` 也让 VTable 跳过记录排序状态,图标停在 normal,下一次点击又从 asc 起,
|
|
32
|
+
* 永远到不了 desc / normal。这里补记状态(`executeSort = false`),图标与轮转才正常。
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* table.on('sort_click', args => {
|
|
37
|
+
* emitSort(args);
|
|
38
|
+
* syncHeaderSortIcon(table, args);
|
|
39
|
+
* return false;
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function syncHeaderSortIcon(table: VTable.ListTable, click: HeaderSortClick): void;
|
|
44
|
+
/**
|
|
45
|
+
* 收集拖拽排序后的非只读行 ID 列表
|
|
46
|
+
*
|
|
47
|
+
* @param table 目标表格实例
|
|
48
|
+
* @param idField 记录 ID 字段名
|
|
49
|
+
* @returns 按当前行顺序排列的非只读行 ID
|
|
50
|
+
*/
|
|
12
51
|
export declare function collectReorderedIds(table: VTable.ListTable, idField: string): string[];
|
|
13
52
|
/**
|
|
14
53
|
* 更新表格数据并恢复列宽(按 field 名匹配,容忍列增删)
|
|
15
54
|
*
|
|
55
|
+
* @param table 目标表格实例
|
|
56
|
+
* @param records 更新后的行数据
|
|
16
57
|
* @param prevColumns 更新前的列定义,用于读取旧列宽
|
|
17
58
|
* @param newColumns 更新后的列定义
|
|
18
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-operations.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"table-operations.d.ts","sourceRoot":"","sources":["../../../src/entity-table/vtable/table-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1D;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAgB1E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc;IACd,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAIxF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAWtF;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,UAAU,EAAE,2BAA2B,CAAC,SAAS,CAAC,GACjD,IAAI,CAmBN"}
|