@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
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 实体列表共享类型。
|
|
3
|
+
*
|
|
4
|
+
* @module entity-list/types
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* RxDB 实体实例(用于 CRUD 操作)。
|
|
8
|
+
*
|
|
9
|
+
* 三端组件库(Angular / React / Vue)此前各自内联了同形副本,现收敛到核心包
|
|
10
|
+
* 统一透传:Angular / Vue 经包根 `export *` 链、React 经 entity-list 模块显式再导出。
|
|
11
|
+
*/
|
|
12
|
+
export type EntityInstance = {
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
readonly id: string;
|
|
15
|
+
save(): Promise<void>;
|
|
16
|
+
remove(): Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* 筛选查询结构(与用户筛选条件做 AND 合并)。
|
|
20
|
+
*/
|
|
21
|
+
export type FilterQuery = {
|
|
22
|
+
combinator: 'and' | 'or';
|
|
23
|
+
rules: unknown[];
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entity-list/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC"}
|
|
@@ -1,20 +1,38 @@
|
|
|
1
|
-
import { EntityMetadata } from '
|
|
1
|
+
import { EntityMetadata, EntityPropertyMetadata } from '@aiao/rxdb';
|
|
2
2
|
import { ColumnDefine } from '@visactor/vtable/es/ts-types/index.js';
|
|
3
3
|
import { RelatedEntityItem } from '../../entity-form/interfaces.js';
|
|
4
|
+
import { KVSchemaEntry } from './column-utils.js';
|
|
4
5
|
/** 仅展示(不可编辑)的系统字段 */
|
|
5
6
|
export declare const DISPLAY_ONLY_FIELDS: Set<string>;
|
|
6
7
|
/** 跳过(不显示为独立列)的系统字段 */
|
|
7
8
|
export declare const SKIP_FIELDS: Set<string>;
|
|
8
9
|
/** 关联实体候选 provider 工厂:根据外键字段和关联实体名返回 provider 函数 */
|
|
9
10
|
export type RelatedItemsProviderFactory = (fkField: string, relatedEntityName: string) => (() => RelatedEntityItem[]) | undefined;
|
|
11
|
+
/** 构建可编辑列的选项 */
|
|
10
12
|
export interface BuildEditableColumnsOptions {
|
|
13
|
+
/** 关联实体候选 provider 工厂(按外键字段与关联实体名返回 provider) */
|
|
11
14
|
relatedItemsProviderFactory?: RelatedItemsProviderFactory;
|
|
15
|
+
/** 操作列标题(默认「操作」) */
|
|
12
16
|
actionsTitle?: string;
|
|
17
|
+
/** 删除按钮文案(默认「删除」) */
|
|
13
18
|
deleteLabel?: string;
|
|
19
|
+
/** 查看按钮文案(默认「查看」) */
|
|
14
20
|
viewLabel?: string;
|
|
21
|
+
/** 创建时间列标题(默认「创建时间」) */
|
|
15
22
|
createdAtTitle?: string;
|
|
23
|
+
/** 更新时间列标题(默认「更新时间」) */
|
|
16
24
|
updatedAtTitle?: string;
|
|
17
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* 将实体属性类型归一化为 keyValue Schema 值类型
|
|
28
|
+
*
|
|
29
|
+
* 仅 string / enum / uuid / number / integer / boolean / date 可直接映射,
|
|
30
|
+
* 其余类型返回 undefined。
|
|
31
|
+
*
|
|
32
|
+
* @param type 实体属性类型(PropertyType 枚举值)
|
|
33
|
+
* @returns 对应的 KVSchemaEntry 值类型;无法映射时返回 undefined
|
|
34
|
+
*/
|
|
35
|
+
export declare function normalizeKVSchemaEntryType(type: EntityPropertyMetadata['type']): KVSchemaEntry['type'] | undefined;
|
|
18
36
|
/**
|
|
19
37
|
* 根据 EntityMetadata 构建可编辑的 VTable 列定义
|
|
20
38
|
*
|
|
@@ -24,7 +42,11 @@ export interface BuildEditableColumnsOptions {
|
|
|
24
42
|
* 3. 计算属性列
|
|
25
43
|
* 4. 外键关系列
|
|
26
44
|
* 5. createdAt / updatedAt 系统时间列
|
|
27
|
-
* 6. 操作列(查看 +
|
|
45
|
+
* 6. 操作列(查看 + 删除;删除按实体 `permissions.delete` 派生,见 {@link deriveEntityCapabilities})
|
|
46
|
+
*
|
|
47
|
+
* @param metadata 实体元数据
|
|
48
|
+
* @param options 可选构建选项
|
|
49
|
+
* @returns 可编辑的列定义数组
|
|
28
50
|
*/
|
|
29
51
|
export declare function buildEditableColumns(metadata: EntityMetadata, options?: BuildEditableColumnsOptions): ColumnDefine[];
|
|
30
52
|
//# sourceMappingURL=build-editable-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-editable-columns.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/build-editable-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"build-editable-columns.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/build-editable-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EAIvB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAuD,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5G,qBAAqB;AACrB,eAAO,MAAM,mBAAmB,aAAsC,CAAC;AAEvE,uBAAuB;AACvB,eAAO,MAAM,WAAW,aAA4C,CAAC;AAErE,oDAAoD;AACpD,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,KACtB,CAAC,MAAM,iBAAiB,EAAE,CAAC,GAAG,SAAS,CAAC;AAE7C,gBAAgB;AAChB,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAiBlH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,2BAAgC,GACxC,YAAY,EAAE,CAuEhB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FieldFormat, FieldOptions } from '@aiao/rxdb';
|
|
1
2
|
import { ColumnDefine, StylePropertyFunctionArg } from '@visactor/vtable/es/ts-types/index.js';
|
|
2
3
|
import { RelatedEntityItem } from '../../entity-form/interfaces.js';
|
|
3
4
|
import { EnumItem } from '../editors/enum-editor.js';
|
|
@@ -7,7 +8,7 @@ export declare const DELETE_COLOR = "var(--entity-table-delete, #ef4444)";
|
|
|
7
8
|
* 实体属性类型字符串字面量
|
|
8
9
|
* 与 `@aiao/rxdb` 的 `PropertyType` 枚举值一一对应,另扩展关系类型与计算属性
|
|
9
10
|
*/
|
|
10
|
-
export type PropertyTypeString = 'uuid' | 'string' | 'enum' | 'number' | 'integer' | 'boolean' | 'date' | 'stringArray' | 'numberArray' | 'keyValue' | 'json'
|
|
11
|
+
export type PropertyTypeString = 'uuid' | 'string' | 'enum' | 'number' | 'integer' | 'bigint' | 'boolean' | 'date' | 'binary' | 'stringArray' | 'numberArray' | 'keyValue' | 'json'
|
|
11
12
|
/** 一对一关系:存外键 ID,显示关联实体 displayName,可搜索下拉编辑 */
|
|
12
13
|
| 'oneToOne'
|
|
13
14
|
/** 多对一关系:存外键 ID,显示关联实体 displayName,可搜索下拉编辑 */
|
|
@@ -38,6 +39,14 @@ export interface PropertyColumnConfig {
|
|
|
38
39
|
sort?: boolean;
|
|
39
40
|
/** keyValue 属性 Schema—定义允许的键以及对应的值类型 */
|
|
40
41
|
keyValueSchema?: Record<string, KVSchemaEntry>;
|
|
42
|
+
/**
|
|
43
|
+
* 字段语义标注(决定展示形态与编辑器选择,不改变运行时值类型)
|
|
44
|
+
*/
|
|
45
|
+
format?: FieldFormat;
|
|
46
|
+
/**
|
|
47
|
+
* 枚举/多选值的展示元数据(label / color / disabled),键是 `enum` 的子集
|
|
48
|
+
*/
|
|
49
|
+
options?: FieldOptions;
|
|
41
50
|
/**
|
|
42
51
|
* 关联实体候选列表(oneToOne / manyToOne 类型使用)
|
|
43
52
|
*
|
|
@@ -64,12 +73,20 @@ export interface KVSchemaEntry {
|
|
|
64
73
|
/** 是否可以为 null */
|
|
65
74
|
nullable?: boolean;
|
|
66
75
|
}
|
|
67
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* 格式化日期值为本地字符串
|
|
78
|
+
*
|
|
79
|
+
* @param v 待格式化的日期值
|
|
80
|
+
* @returns 本地化日期字符串
|
|
81
|
+
*/
|
|
68
82
|
export declare function formatDateValue(v: unknown): string;
|
|
69
83
|
/**
|
|
70
84
|
* 构建编辑器函数:非只读行使用指定编辑器名称,只读行返回 undefined
|
|
71
85
|
*
|
|
72
86
|
* 用于 ColumnDefine.editor,以便在行级别区分只读/可编辑状态。
|
|
87
|
+
*
|
|
88
|
+
* @param editorName 非只读行使用的编辑器名称
|
|
89
|
+
* @returns 可挂载到 ColumnDefine.editor 的编辑器回调
|
|
73
90
|
*/
|
|
74
91
|
export declare function makeEditorForReadonly(editorName: string): ColumnDefine['editor'];
|
|
75
92
|
/** 各属性类型的默认列宽及最小/最大宽度 */
|
|
@@ -90,34 +107,83 @@ export declare const DEFAULT_COLUMN_SIZES: Record<string, {
|
|
|
90
107
|
* - numberArray → 逗号分隔显示 + number-tags-editor 数字标签输入(非只读时)
|
|
91
108
|
* - keyValue → JSON 字符串显示 + key-value-editor 键值对编辑器(非只读时)
|
|
92
109
|
* - json → JSON 字符串显示 + json-editor 文本区域(非只读时)
|
|
110
|
+
*
|
|
111
|
+
* @param config 属性列配置
|
|
112
|
+
* @returns 构建好的 VTable ColumnDefine
|
|
93
113
|
*/
|
|
94
114
|
export declare function buildPropertyColumn(config: PropertyColumnConfig): ColumnDefine;
|
|
95
115
|
/**
|
|
96
116
|
* 将 input-editor 输入的字符串值解析回属性原始类型
|
|
97
117
|
*
|
|
98
118
|
* 在 cellChanged 事件处理器中调用此函数,将用户输入转成正确的 JS 类型后再保存。
|
|
119
|
+
*
|
|
120
|
+
* @param type 属性类型
|
|
121
|
+
* @param raw 编辑器输入的原始值
|
|
122
|
+
* @returns 解析后的属性值
|
|
99
123
|
*/
|
|
100
124
|
export declare function parsePropertyColumnValue(type: PropertyTypeString | string, raw: unknown): unknown;
|
|
101
125
|
type ColumnRecord = Record<string, unknown> & {
|
|
102
126
|
_readonly?: boolean;
|
|
103
127
|
_isAddRow?: boolean;
|
|
104
128
|
};
|
|
105
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* 通过 VTable 回调参数安全获取当前行记录
|
|
131
|
+
*
|
|
132
|
+
* @param args VTable 回调参数
|
|
133
|
+
* @returns 当前行记录;无法获取时返回 undefined
|
|
134
|
+
*/
|
|
106
135
|
export declare const getCellRecord: (args: StylePropertyFunctionArg) => ColumnRecord | undefined;
|
|
136
|
+
/**
|
|
137
|
+
* switch 禁用状态判断回调
|
|
138
|
+
*
|
|
139
|
+
* @param args VTable 回调参数(用于获取当前行记录)
|
|
140
|
+
* @returns true 表示禁用 switch
|
|
141
|
+
*/
|
|
107
142
|
export type SwitchDisableCallback = (args: StylePropertyFunctionArg) => boolean;
|
|
108
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* 检查记录是否为只读行
|
|
145
|
+
*
|
|
146
|
+
* @param record 待检查的行记录
|
|
147
|
+
* @returns 是否为只读行
|
|
148
|
+
*/
|
|
109
149
|
export declare const isReadonly: (record: unknown) => boolean;
|
|
110
|
-
/**
|
|
150
|
+
/**
|
|
151
|
+
* 检查记录是否为只读行或新增模板行
|
|
152
|
+
*
|
|
153
|
+
* @param record 待检查的行记录
|
|
154
|
+
* @returns 是否为只读行或新增模板行
|
|
155
|
+
*/
|
|
111
156
|
export declare const isReadonlyOrAddRow: (record: unknown) => boolean;
|
|
112
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* 生成查看按钮的图标选项(仅 SVG,避免 text 撑满剩余宽度)
|
|
159
|
+
*
|
|
160
|
+
* @returns 图标选项数组
|
|
161
|
+
*/
|
|
113
162
|
export declare function makeViewIcons(): unknown[];
|
|
114
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* 生成删除按钮的图标选项(SVG 图标 + 文字标签)
|
|
165
|
+
*
|
|
166
|
+
* @param label 删除按钮文字
|
|
167
|
+
* @returns 图标选项数组
|
|
168
|
+
*/
|
|
115
169
|
export declare function makeDeleteIcons(label: string): unknown[];
|
|
116
170
|
/** 不可编辑的行:禁用 editor */
|
|
117
171
|
export declare const disabledEditorForReadonly: ColumnDefine["editor"];
|
|
118
172
|
/** 禁用 switch:只读行不可操作 */
|
|
119
173
|
export declare const switchDisabledForReadonly: SwitchDisableCallback;
|
|
120
|
-
/**
|
|
121
|
-
|
|
174
|
+
/**
|
|
175
|
+
* 判定某一行能否删除;`actionsColumn` 逐行调用
|
|
176
|
+
*/
|
|
177
|
+
export type RecordDeletePredicate = (record: Readonly<Record<string, unknown>>) => boolean;
|
|
178
|
+
/**
|
|
179
|
+
* 操作列:可选包含查看(view)和删除按钮
|
|
180
|
+
*
|
|
181
|
+
* @param title 列标题
|
|
182
|
+
* @param deleteLabel 删除按钮文案
|
|
183
|
+
* @param canDelete 逐行判定是否出删除按钮;与行是否只读无关(`update: 'system'` 的实体行只读仍可删)
|
|
184
|
+
* @param viewLabel 查看按钮文案(可选,不传则只显示删除按钮,不可删的行因此无图标)
|
|
185
|
+
* @returns 操作列定义
|
|
186
|
+
*/
|
|
187
|
+
export declare function actionsColumn(title: string, deleteLabel: string, canDelete: RecordDeletePredicate, viewLabel?: string): ColumnDefine;
|
|
122
188
|
export {};
|
|
123
189
|
//# sourceMappingURL=column-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-utils.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/column-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"column-utils.d.ts","sourceRoot":"","sources":["../../../src/entity-table/columns/column-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EditContext, IEditor, RectProps } from '@visactor/vtable-editors';
|
|
2
|
+
/**
|
|
3
|
+
* 颜色编辑器
|
|
4
|
+
*
|
|
5
|
+
* 在单元格上方弹出原生取色器 + 十六进制文本输入,两者双向同步。
|
|
6
|
+
* Enter / Tab 提交;Escape 恢复原值;点击外部提交,提交失败时恢复原值。
|
|
7
|
+
*/
|
|
8
|
+
export declare class ColorEditor implements IEditor<unknown> {
|
|
9
|
+
#private;
|
|
10
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
11
|
+
readonly editorType = "color-editor";
|
|
12
|
+
/** 创建并显示取色器、文本输入与错误提示浮层 */
|
|
13
|
+
onStart(ctx: EditContext<unknown>): void;
|
|
14
|
+
/** 返回当前颜色值,空值为 null */
|
|
15
|
+
getValue(): string | null;
|
|
16
|
+
/** 移除输入框与提示浮层,解绑全局点击事件 */
|
|
17
|
+
onEnd(): void;
|
|
18
|
+
/** 判断目标元素是否属于本编辑器 */
|
|
19
|
+
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
20
|
+
/** 按新的单元格矩形重新定位取色器、输入框与提示浮层 */
|
|
21
|
+
adjustPosition(rect: RectProps): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=color-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/color-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAehF;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,OAAO,CAAC,OAAO,CAAC;;IAUlD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,kBAAkB;IAErC,2BAA2B;IAC3B,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAyJxC,uBAAuB;IACvB,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IAIb,qBAAqB;IACrB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;IAKvD,+BAA+B;IAC/B,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;CAiCtC"}
|
|
@@ -10,10 +10,15 @@ import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class DateEditor implements IEditor<unknown> {
|
|
12
12
|
#private;
|
|
13
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
13
14
|
readonly editorType = "date-editor";
|
|
15
|
+
/** 打开编辑器:构建浮层面板并初始化原生 datetime-local 输入 */
|
|
14
16
|
onStart(ctx: EditContext<unknown>): void;
|
|
17
|
+
/** 返回当前选择的日期值 */
|
|
15
18
|
getValue(): Date | null;
|
|
19
|
+
/** 结束编辑:清理浮层面板与事件监听 */
|
|
16
20
|
onEnd(): void;
|
|
21
|
+
/** 判断目标元素是否属于编辑器浮层 */
|
|
17
22
|
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
18
23
|
}
|
|
19
24
|
//# sourceMappingURL=date-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/date-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IAOjD,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAuGxC,QAAQ,IAAI,IAAI,GAAG,IAAI;IAIvB,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA6BxD"}
|
|
1
|
+
{"version":3,"file":"date-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/date-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IAOjD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,2CAA2C;IAC3C,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAuGxC,iBAAiB;IACjB,QAAQ,IAAI,IAAI,GAAG,IAAI;IAIvB,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAIb,sBAAsB;IACtB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA6BxD"}
|
|
@@ -10,6 +10,8 @@ export interface EnumItem {
|
|
|
10
10
|
icon?: IconData;
|
|
11
11
|
/** 图标描边颜色(可选,配合 icon 使用) */
|
|
12
12
|
color?: string;
|
|
13
|
+
/** 是否禁用(只影响展示与选择,不改变枚举合法性) */
|
|
14
|
+
disabled?: boolean;
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* 枚举下拉选择编辑器
|
|
@@ -26,9 +28,17 @@ export declare class EnumEditor extends GlobalOverlayEditor {
|
|
|
26
28
|
#private;
|
|
27
29
|
protected get initialFocusIndex(): number;
|
|
28
30
|
protected get itemCount(): number;
|
|
31
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
29
32
|
readonly editorType = "enum-editor";
|
|
33
|
+
/**
|
|
34
|
+
* 创建枚举编辑器
|
|
35
|
+
*
|
|
36
|
+
* @param presetItems 预设选项;不传时在 onStart 中从列定义 menuList 读取
|
|
37
|
+
*/
|
|
30
38
|
constructor(presetItems?: EnumItem[]);
|
|
39
|
+
/** 初始化编辑:解析原始值并加载可选项(预设选项优先,其次列定义 menuList) */
|
|
31
40
|
onStart(ctx: Parameters<GlobalOverlayEditor['onStart']>[0]): void;
|
|
41
|
+
/** 返回当前选中的枚举值 */
|
|
32
42
|
getValue(): string;
|
|
33
43
|
protected onDeleteKey(): void;
|
|
34
44
|
protected buildRows(panel: HTMLDivElement): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/enum-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"enum-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/enum-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,aAAa;AACb,MAAM,WAAW,QAAQ;IACvB,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAOD;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,SAAQ,mBAAmB;;IAKjD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,uCAAuC;IACvC,QAAQ,CAAC,UAAU,iBAAiB;IAEpC;;;;OAIG;gBACS,WAAW,CAAC,EAAE,QAAQ,EAAE;IAKpC,+CAA+C;IACtC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IA4B1E,iBAAiB;IACR,QAAQ,IAAI,MAAM;cAIR,WAAW,IAAI,IAAI;IAQtC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAiDhD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CASzD"}
|
|
@@ -12,11 +12,27 @@ export declare const DAISY_COLORS: {
|
|
|
12
12
|
readonly selectedBg: "color-mix(in srgb, var(--color-primary) 15%, transparent)";
|
|
13
13
|
readonly focusBg: "color-mix(in srgb, var(--color-primary) 30%, var(--color-base-100))";
|
|
14
14
|
};
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* 延迟执行编辑器初始化(注册外部点击监听 + 聚焦),避免 VTable 事件干扰
|
|
17
|
+
*
|
|
18
|
+
* @param fn 延迟执行的初始化回调
|
|
19
|
+
*/
|
|
16
20
|
export declare function scheduleEditorSetup(fn: () => void): void;
|
|
17
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* 编辑结束后将焦点还给 VTable root element(tabindex=0 的 .vtable div = ctx.container = table.getElement()),使方向键导航继续工作
|
|
23
|
+
*
|
|
24
|
+
* @param container VTable 容器元素
|
|
25
|
+
*/
|
|
18
26
|
export declare function refocusTable(container: HTMLElement | null | undefined): void;
|
|
19
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* 将浮层面板定位到单元格下方(空间不足时翻转到上方)
|
|
29
|
+
*
|
|
30
|
+
* @param panel 浮层面板元素
|
|
31
|
+
* @param rect 单元格相对 VTable 容器的位置矩形
|
|
32
|
+
* @param container VTable 容器(用于换算页面绝对坐标)
|
|
33
|
+
* @param estimatedHeight 面板估算高度(用于判断是否翻转到上方)
|
|
34
|
+
* @param options 可选布局选项(maxRight 面板最大右边界、minWidth 面板最小宽度)
|
|
35
|
+
*/
|
|
20
36
|
export declare function positionOverlayPanel(panel: HTMLElement, rect: {
|
|
21
37
|
left: number;
|
|
22
38
|
top: number;
|
|
@@ -55,12 +71,19 @@ export declare abstract class GlobalOverlayEditor implements IEditor<string> {
|
|
|
55
71
|
protected abstract get initialFocusIndex(): number;
|
|
56
72
|
protected abstract get itemCount(): number;
|
|
57
73
|
protected get focusedIndex(): number;
|
|
74
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名,子类赋值) */
|
|
58
75
|
abstract readonly editorType: string;
|
|
76
|
+
/** 构造浮层编辑器基类(子类在 onStart 中构建面板) */
|
|
59
77
|
constructor();
|
|
78
|
+
/** 打开浮层:渲染行、定位面板并注册全局鼠标/键盘监听 */
|
|
60
79
|
onStart(ctx: EditContext<string>): void;
|
|
80
|
+
/** 关闭浮层:移除面板并注销全局鼠标/键盘监听 */
|
|
61
81
|
onEnd(): void;
|
|
82
|
+
/** 返回编辑结果值 */
|
|
62
83
|
abstract getValue(): string;
|
|
84
|
+
/** 判断目标元素是否属于浮层面板 */
|
|
63
85
|
isEditorElement(target: HTMLElement): boolean;
|
|
86
|
+
/** 根据新的单元格矩形重新定位浮层面板 */
|
|
64
87
|
adjustPosition(rect: RectProps): void;
|
|
65
88
|
protected abstract buildRows(panel: HTMLDivElement): void;
|
|
66
89
|
protected abstract onRowClick(idx: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-overlay-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/global-overlay-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEhF,qCAAqC;AACrC,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAKX
|
|
1
|
+
{"version":3,"file":"global-overlay-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/global-overlay-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEhF,qCAAqC;AACrC,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAKX;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAExD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAE5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACpE,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACzC,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,IAAI,CAkBN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,8BAAsB,mBAAoB,YAAW,OAAO,CAAC,MAAM,CAAC;;IAQlE,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC/C,SAAS,CAAC,KAAK,EAAE;QAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAQ;IACzF,SAAS,CAAC,OAAO,SAAK;IACtB,SAAS,CAAC,OAAO,SAAK;IAEtB,SAAS,CAAC,QAAQ,KAAK,iBAAiB,IAAI,MAAM,CAAC;IACnD,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC;IAE3C,SAAS,KAAK,YAAY,IAAI,MAAM,CAEnC;IAED,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAErC,mCAAmC;;IAsCnC,gCAAgC;IAChC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAkCvC,4BAA4B;IAC5B,KAAK,IAAI,IAAI;IAUb,cAAc;IACd,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B,qBAAqB;IACrB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI7C,wBAAwB;IACxB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAIrC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACzD,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAChD,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAEjE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIhD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B,SAAS,CAAC,KAAK,IAAI,IAAI;IAKvB,SAAS,CAAC,YAAY,IAAI,IAAI;CA0C/B"}
|
|
@@ -5,9 +5,13 @@ import { IconData } from './lucide-svg.js';
|
|
|
5
5
|
* @deprecated 请改用 `EnumItem`,`EnumEditor` 已原生支持 icon 和 color 字段。
|
|
6
6
|
*/
|
|
7
7
|
export interface IconLabeledItem {
|
|
8
|
+
/** 显示文本 */
|
|
8
9
|
text: string;
|
|
10
|
+
/** 存储值 */
|
|
9
11
|
value: string;
|
|
12
|
+
/** Lucide 图标数据(可选,配合 color 使用) */
|
|
10
13
|
icon?: IconData;
|
|
14
|
+
/** 图标描边颜色(可选,配合 icon 使用) */
|
|
11
15
|
color?: string;
|
|
12
16
|
}
|
|
13
17
|
/**
|
|
@@ -23,11 +27,19 @@ export declare class IconListEditor extends GlobalOverlayEditor {
|
|
|
23
27
|
#private;
|
|
24
28
|
protected get initialFocusIndex(): number;
|
|
25
29
|
protected get itemCount(): number;
|
|
30
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
26
31
|
readonly editorType = "icon-list";
|
|
32
|
+
/**
|
|
33
|
+
* 创建图标列表编辑器
|
|
34
|
+
*
|
|
35
|
+
* @param config 编辑器配置(values 为条目列表)
|
|
36
|
+
*/
|
|
27
37
|
constructor(config: {
|
|
28
38
|
values: IconLabeledItem[];
|
|
29
39
|
});
|
|
40
|
+
/** 初始化编辑:解析当前值;不在候选列表中时回退到单元格原始值 */
|
|
30
41
|
onStart(ctx: Parameters<GlobalOverlayEditor['onStart']>[0]): void;
|
|
42
|
+
/** 返回当前选中的条目值 */
|
|
31
43
|
getValue(): string;
|
|
32
44
|
protected onDeleteKey(): void;
|
|
33
45
|
protected buildRows(panel: HTMLDivElement): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-list-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/icon-list-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"icon-list-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/icon-list-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,mBAAmB;;IAIrD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAED,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;IAED,uCAAuC;IACvC,QAAQ,CAAC,UAAU,eAAe;IAElC;;;;OAIG;gBACS,MAAM,EAAE;QAAE,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;IAKjD,oCAAoC;IAC3B,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAa1E,iBAAiB;IACR,QAAQ,IAAI,MAAM;cAIR,WAAW,IAAI,IAAI;IAKtC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAqChD,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CASzD"}
|
|
@@ -10,10 +10,15 @@ import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class JsonEditor implements IEditor<unknown> {
|
|
12
12
|
#private;
|
|
13
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
13
14
|
readonly editorType = "json-editor";
|
|
15
|
+
/** 打开编辑器:构建浮层 textarea 面板并初始化原始值 */
|
|
14
16
|
onStart(ctx: EditContext<unknown>): void;
|
|
17
|
+
/** 返回当前编辑值 */
|
|
15
18
|
getValue(): unknown;
|
|
19
|
+
/** 结束编辑:清理浮层面板与事件监听 */
|
|
16
20
|
onEnd(): void;
|
|
21
|
+
/** 判断目标元素是否属于编辑器浮层 */
|
|
17
22
|
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
18
23
|
}
|
|
19
24
|
//# sourceMappingURL=json-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/json-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IASjD,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAiIxC,QAAQ,IAAI,OAAO;IAInB,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA4CxD"}
|
|
1
|
+
{"version":3,"file":"json-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/json-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKrE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,OAAO,CAAC,OAAO,CAAC;;IASjD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,iBAAiB;IAEpC,oCAAoC;IACpC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAiIxC,cAAc;IACd,QAAQ,IAAI,OAAO;IAInB,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAIb,sBAAsB;IACtB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA4CxD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EditContext, IEditor } from '@visactor/vtable-editors';
|
|
2
2
|
import { KVSchemaEntry } from '../columns/column-utils.js';
|
|
3
3
|
/**
|
|
4
|
-
* KeyValue
|
|
4
|
+
* KeyValue(`Record<string, unknown>`)editor — Schema mode only
|
|
5
5
|
*
|
|
6
6
|
* - Key is always a dropdown derived from schema definition
|
|
7
7
|
* - Value input type adapts to the key's schema type
|
|
@@ -11,11 +11,21 @@ import { KVSchemaEntry } from '../columns/column-utils.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class KeyValueEditor implements IEditor<unknown> {
|
|
13
13
|
#private;
|
|
14
|
+
/** VTable 编辑器类型标识(注册到 VTable 的编辑器名) */
|
|
14
15
|
readonly editorType = "key-value-editor";
|
|
16
|
+
/**
|
|
17
|
+
* 创建 KeyValue 编辑器
|
|
18
|
+
*
|
|
19
|
+
* @param schema 可选的键 Schema 定义;不传或为空时进入自由模式
|
|
20
|
+
*/
|
|
15
21
|
constructor(schema?: Record<string, KVSchemaEntry> | null);
|
|
22
|
+
/** 打开编辑器:构建键值对编辑浮层并按初始值 / Schema 填充行 */
|
|
16
23
|
onStart(ctx: EditContext<unknown>): void;
|
|
24
|
+
/** 返回当前编辑的键值对象 */
|
|
17
25
|
getValue(): Record<string, unknown>;
|
|
26
|
+
/** 结束编辑:中止未决监听并清理浮层 */
|
|
18
27
|
onEnd(): void;
|
|
28
|
+
/** 判断目标元素是否属于编辑器浮层 */
|
|
19
29
|
isEditorElement(el: HTMLElement | EventTarget): boolean;
|
|
20
30
|
}
|
|
21
31
|
//# sourceMappingURL=key-value-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/key-value-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAahE;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,OAAO,CAAC,OAAO,CAAC;;IAYrD,QAAQ,CAAC,UAAU,sBAAsB;
|
|
1
|
+
{"version":3,"file":"key-value-editor.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/key-value-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAahE;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,OAAO,CAAC,OAAO,CAAC;;IAYrD,uCAAuC;IACvC,QAAQ,CAAC,UAAU,sBAAsB;IAEzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IAIzD,wCAAwC;IACxC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IA2JxC,kBAAkB;IAClB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAIb,sBAAsB;IACtB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO;CA4XxD"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/** Lucide 图标数据 — [tagName, attributes] 元组数组 */
|
|
2
2
|
export type IconData = readonly (readonly [string, Record<string, unknown>])[];
|
|
3
3
|
/**
|
|
4
|
-
* 将 `LucideIconData` 转为内联 SVG
|
|
4
|
+
* 将 `LucideIconData` 转为内联 SVG 元素(DOM API 构造,免疫标记注入)
|
|
5
5
|
*
|
|
6
6
|
* @param icon - lucide 图标数据
|
|
7
7
|
* @param color - stroke 颜色(不合法时回退 currentColor)
|
|
8
8
|
* @param size - 宽高像素,默认 13
|
|
9
|
+
* @returns 内联 SVG 元素
|
|
9
10
|
*/
|
|
10
|
-
export declare function
|
|
11
|
+
export declare function lucideToSvgElement(icon: IconData, color: string, size?: number): SVGSVGElement;
|
|
11
12
|
//# sourceMappingURL=lucide-svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucide-svg.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/lucide-svg.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"lucide-svg.d.ts","sourceRoot":"","sources":["../../../src/entity-table/editors/lucide-svg.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AA6C/E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,aAAa,CAuB1F"}
|
|
@@ -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
|
-
*
|
|
12
|
-
*
|
|
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
|
-
|
|
19
|
-
|
|
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,
|
|
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
1
|
import { 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
|
-
|
|
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
|
-
|
|
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
|