@visactor/vbi 0.4.15 → 0.4.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builder/{sub-builders → features}/chart-type/chart-type-builder.d.ts +1 -1
- package/dist/builder/{sub-builders → features}/dimensions/dim-builder.d.ts +11 -11
- package/dist/builder/{sub-builders → features}/dimensions/dim-node-builder.d.ts +5 -1
- package/dist/builder/features/dimensions/dimension-utils.d.ts +4 -0
- package/dist/builder/{sub-builders/havingFilters → features/havingFilter}/having-builder.d.ts +15 -15
- package/dist/builder/{sub-builders/havingFilters → features/havingFilter}/having-group-builder.d.ts +4 -3
- package/dist/builder/{sub-builders/havingFilters → features/havingFilter}/having-node-builder.d.ts +2 -2
- package/dist/builder/features/havingFilter/having-utils.d.ts +9 -0
- package/dist/builder/features/havingFilter/index.d.ts +3 -0
- package/dist/builder/features/index.d.ts +9 -0
- package/dist/builder/features/limit/index.d.ts +1 -0
- package/dist/builder/features/limit/limit-builder.d.ts +31 -0
- package/dist/builder/features/locale/index.d.ts +1 -0
- package/dist/builder/features/locale/locale-builder.d.ts +31 -0
- package/dist/builder/{sub-builders → features}/measures/mea-builder.d.ts +10 -10
- package/dist/builder/{sub-builders → features}/measures/mea-node-builder.d.ts +5 -1
- package/dist/builder/features/measures/measure-utils.d.ts +4 -0
- package/dist/builder/features/theme/index.d.ts +1 -0
- package/dist/builder/features/theme/theme-builder.d.ts +31 -0
- package/dist/builder/features/undo-manager/index.d.ts +1 -0
- package/dist/builder/{sub-builders/whereFilters → features/whereFilter}/index.d.ts +1 -1
- package/dist/builder/{sub-builders/whereFilters → features/whereFilter}/where-builder.d.ts +14 -14
- package/dist/builder/{sub-builders/whereFilters → features/whereFilter}/where-group-builder.d.ts +2 -1
- package/dist/builder/{sub-builders/whereFilters → features/whereFilter}/where-node-builder.d.ts +6 -1
- package/dist/builder/features/whereFilter/where-utils.d.ts +9 -0
- package/dist/builder/index.d.ts +2 -3
- package/dist/builder/modules/apply-update.d.ts +2 -0
- package/dist/builder/modules/build-vquery.d.ts +4 -0
- package/dist/builder/modules/build-vseed.d.ts +8 -0
- package/dist/builder/modules/build.d.ts +3 -0
- package/dist/builder/modules/create-builder-features.d.ts +14 -0
- package/dist/builder/modules/encode-state-as-update.d.ts +2 -0
- package/dist/builder/modules/get-schema.d.ts +5 -0
- package/dist/builder/modules/index.d.ts +8 -0
- package/dist/builder/modules/is-empty.d.ts +2 -0
- package/dist/builder/vbi-builder.d.ts +13 -17
- package/dist/index.cjs +921 -598
- package/dist/index.d.ts +3 -2
- package/dist/index.js +904 -599
- package/dist/types/builder/VBIInterface.d.ts +7 -5
- package/dist/types/dsl/dimensions/dimensions.d.ts +2 -0
- package/dist/types/dsl/{havingFilters → havingFilter}/having.d.ts +10 -6
- package/dist/types/dsl/index.d.ts +4 -5
- package/dist/types/dsl/measures/measures.d.ts +18 -2
- package/dist/types/dsl/vbi/vbi.d.ts +42 -4
- package/dist/types/dsl/{whereFilters → whereFilter}/filters.d.ts +10 -6
- package/dist/utils/filter-guards.d.ts +5 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/vbi/create-vbi.d.ts +14 -0
- package/dist/vbi/from/from-vbi-dsl-input.d.ts +3 -0
- package/dist/vbi/from/set-base-dsl-fields.d.ts +3 -0
- package/dist/vbi/generate-empty-dsl.d.ts +3 -0
- package/dist/vbi/normalize/ensure-having-group.d.ts +2 -0
- package/dist/vbi/normalize/ensure-where-group.d.ts +2 -0
- package/dist/vbi/normalize/ensure-y-array.d.ts +3 -0
- package/dist/vbi/normalize/to-y-map.d.ts +3 -0
- package/dist/vbi/normalize/types.d.ts +5 -0
- package/dist/vbi.d.ts +14 -0
- package/package.json +5 -5
- package/dist/builder/sub-builders/havingFilters/index.d.ts +0 -3
- package/dist/builder/sub-builders/index.d.ts +0 -5
- package/dist/builder/vbi.d.ts +0 -16
- /package/dist/builder/{sub-builders → features}/chart-type/index.d.ts +0 -0
- /package/dist/builder/{sub-builders → features}/dimensions/index.d.ts +0 -0
- /package/dist/builder/{sub-builders → features}/measures/index.d.ts +0 -0
- /package/dist/builder/{undo-manager.d.ts → features/undo-manager/undo-manager.d.ts} +0 -0
|
@@ -6,7 +6,7 @@ import { DimensionNodeBuilder } from './dim-node-builder';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class DimensionsBuilder {
|
|
8
8
|
private dsl;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(doc: Y.Doc, dsl: Y.Map<any>);
|
|
10
10
|
/**
|
|
11
11
|
* @description 添加一个维度
|
|
12
12
|
* @param field - 字段名
|
|
@@ -14,21 +14,21 @@ export declare class DimensionsBuilder {
|
|
|
14
14
|
*/
|
|
15
15
|
add(field: string, callback: (node: DimensionNodeBuilder) => void): DimensionsBuilder;
|
|
16
16
|
/**
|
|
17
|
-
* @description
|
|
18
|
-
* @param
|
|
17
|
+
* @description 删除指定 ID 的维度
|
|
18
|
+
* @param id - 维度 ID
|
|
19
19
|
*/
|
|
20
|
-
remove(
|
|
20
|
+
remove(id: string): DimensionsBuilder;
|
|
21
21
|
/**
|
|
22
|
-
* @description
|
|
23
|
-
* @param
|
|
22
|
+
* @description 更新指定维度 ID 的配置
|
|
23
|
+
* @param id - 维度 ID
|
|
24
24
|
* @param callback - 回调函数
|
|
25
25
|
*/
|
|
26
|
-
update(
|
|
26
|
+
update(id: string, callback: (node: DimensionNodeBuilder) => void): DimensionsBuilder;
|
|
27
27
|
/**
|
|
28
|
-
* @description
|
|
29
|
-
* @param
|
|
28
|
+
* @description 按回调条件查找第一个维度,行为与 Array.find 一致
|
|
29
|
+
* @param predicate - 查找条件
|
|
30
30
|
*/
|
|
31
|
-
find(
|
|
31
|
+
find(predicate: (node: DimensionNodeBuilder, index: number) => boolean): DimensionNodeBuilder | undefined;
|
|
32
32
|
/**
|
|
33
33
|
* @description 获取所有维度
|
|
34
34
|
*/
|
|
@@ -36,7 +36,7 @@ export declare class DimensionsBuilder {
|
|
|
36
36
|
/**
|
|
37
37
|
* @description 导出所有维度为 JSON 数组
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
toJSON(): VBIDimension[];
|
|
40
40
|
/**
|
|
41
41
|
* @description 监听维度变化,返回取消监听的函数
|
|
42
42
|
* @param callback - 回调函数
|
|
@@ -6,6 +6,10 @@ import { VBIDimension } from '../../../types';
|
|
|
6
6
|
export declare class DimensionNodeBuilder {
|
|
7
7
|
private yMap;
|
|
8
8
|
constructor(yMap: Y.Map<any>);
|
|
9
|
+
/**
|
|
10
|
+
* @description 获取节点 ID
|
|
11
|
+
*/
|
|
12
|
+
getId(): string;
|
|
9
13
|
/**
|
|
10
14
|
* @description 获取字段名
|
|
11
15
|
*/
|
|
@@ -18,5 +22,5 @@ export declare class DimensionNodeBuilder {
|
|
|
18
22
|
/**
|
|
19
23
|
* @description 导出为 JSON
|
|
20
24
|
*/
|
|
21
|
-
|
|
25
|
+
toJSON(): VBIDimension;
|
|
22
26
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
export declare const getOrCreateDimensions: (dsl: Y.Map<any>) => Y.Array<any>;
|
|
3
|
+
export declare const normalizeDimensionNodeIds: (dimensions: Y.Array<any>) => void;
|
|
4
|
+
export declare const locateDimensionIndexById: (dimensions: Y.Array<any>, dimensionId: string) => number;
|
package/dist/builder/{sub-builders/havingFilters → features/havingFilter}/having-builder.d.ts
RENAMED
|
@@ -1,56 +1,56 @@
|
|
|
1
1
|
import * as Y from 'yjs';
|
|
2
|
-
import type {
|
|
3
|
-
import {
|
|
2
|
+
import type { VBIHavingGroup, ObserveCallback } from '../../../types';
|
|
3
|
+
import { HavingFilterNodeBuilder } from './having-node-builder';
|
|
4
4
|
import { HavingGroupBuilder } from './having-group-builder';
|
|
5
5
|
/**
|
|
6
6
|
* @description Having 过滤构建器,用于添加、修改、删除分组后过滤条件。Having 过滤在数据聚合后生效,用于筛选分组结果
|
|
7
7
|
*/
|
|
8
|
-
export declare class
|
|
9
|
-
private
|
|
10
|
-
private doc;
|
|
8
|
+
export declare class HavingFilterBuilder {
|
|
9
|
+
private havingFilter;
|
|
11
10
|
constructor(doc: Y.Doc, dsl: Y.Map<any>);
|
|
11
|
+
getConditions(): Y.Array<any>;
|
|
12
12
|
/**
|
|
13
13
|
* @description 添加一个 Having 过滤条件
|
|
14
14
|
* @param field - 字段名
|
|
15
15
|
* @param callback - 回调函数
|
|
16
16
|
*/
|
|
17
|
-
add(field: string, callback: (node:
|
|
17
|
+
add(field: string, callback: (node: HavingFilterNodeBuilder) => void): HavingFilterBuilder;
|
|
18
18
|
/**
|
|
19
19
|
* @description 添加一个 Having 分组
|
|
20
20
|
* @param op - 逻辑操作符
|
|
21
21
|
* @param callback - 回调函数
|
|
22
22
|
*/
|
|
23
|
-
addGroup(op: 'and' | 'or', callback: (group: HavingGroupBuilder) => void):
|
|
23
|
+
addGroup(op: 'and' | 'or', callback: (group: HavingGroupBuilder) => void): HavingFilterBuilder;
|
|
24
24
|
/**
|
|
25
25
|
* @description 更新指定 ID 的过滤条件
|
|
26
26
|
* @param id - 过滤条件 ID
|
|
27
27
|
* @param callback - 回调函数
|
|
28
28
|
*/
|
|
29
|
-
update(id: string, callback: (node:
|
|
29
|
+
update(id: string, callback: (node: HavingFilterNodeBuilder) => void): HavingFilterBuilder;
|
|
30
30
|
/**
|
|
31
31
|
* @description 更新指定 ID 的分组
|
|
32
32
|
* @param id - 分组 ID
|
|
33
33
|
* @param callback - 回调函数
|
|
34
34
|
*/
|
|
35
|
-
updateGroup(id: string, callback: (group: HavingGroupBuilder) => void):
|
|
35
|
+
updateGroup(id: string, callback: (group: HavingGroupBuilder) => void): HavingFilterBuilder;
|
|
36
36
|
/**
|
|
37
37
|
* @description 删除指定 ID 的条件或指定索引的项
|
|
38
38
|
* @param idOrIndex - ID 或索引
|
|
39
39
|
*/
|
|
40
|
-
remove(idOrIndex: string | number):
|
|
40
|
+
remove(idOrIndex: string | number): HavingFilterBuilder;
|
|
41
41
|
/**
|
|
42
|
-
* @description
|
|
43
|
-
* @param
|
|
42
|
+
* @description 按回调条件查找第一个条件(过滤或分组),行为与 Array.find 一致
|
|
43
|
+
* @param predicate - 查找条件
|
|
44
44
|
*/
|
|
45
|
-
find(
|
|
45
|
+
find(predicate: (entry: HavingFilterNodeBuilder | HavingGroupBuilder, index: number) => boolean): HavingFilterNodeBuilder | HavingGroupBuilder | undefined;
|
|
46
46
|
/**
|
|
47
47
|
* @description 清空所有 Having 过滤条件
|
|
48
48
|
*/
|
|
49
49
|
clear(): this;
|
|
50
50
|
/**
|
|
51
|
-
* @description
|
|
51
|
+
* @description 导出完整的 Having 过滤配置
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
toJSON(): VBIHavingGroup;
|
|
54
54
|
/**
|
|
55
55
|
* @description 监听过滤条件变化,返回取消监听的函数
|
|
56
56
|
* @param callback - 回调函数
|
package/dist/builder/{sub-builders/havingFilters → features/havingFilter}/having-group-builder.d.ts
RENAMED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as Y from 'yjs';
|
|
2
2
|
import type { VBIHavingGroup } from '../../../types';
|
|
3
|
-
import {
|
|
3
|
+
import { HavingFilterNodeBuilder } from './having-node-builder';
|
|
4
4
|
/**
|
|
5
5
|
* @description Having 分组构建器,用于配置一组条件的逻辑关系(AND/OR)
|
|
6
6
|
*/
|
|
7
7
|
export declare class HavingGroupBuilder {
|
|
8
8
|
private yMap;
|
|
9
9
|
constructor(yMap: Y.Map<any>);
|
|
10
|
+
getConditions(): Y.Array<any>;
|
|
10
11
|
/**
|
|
11
12
|
* @description 获取分组 ID
|
|
12
13
|
*/
|
|
@@ -25,7 +26,7 @@ export declare class HavingGroupBuilder {
|
|
|
25
26
|
* @param field - 字段名
|
|
26
27
|
* @param callback - 回调函数
|
|
27
28
|
*/
|
|
28
|
-
add(field: string, callback: (node:
|
|
29
|
+
add(field: string, callback: (node: HavingFilterNodeBuilder) => void): this;
|
|
29
30
|
/**
|
|
30
31
|
* @description 添加一个嵌套分组到当前分组
|
|
31
32
|
* @param op - 逻辑操作符
|
|
@@ -44,5 +45,5 @@ export declare class HavingGroupBuilder {
|
|
|
44
45
|
/**
|
|
45
46
|
* @description 导出为 JSON
|
|
46
47
|
*/
|
|
47
|
-
|
|
48
|
+
toJSON(): VBIHavingGroup;
|
|
48
49
|
}
|
package/dist/builder/{sub-builders/havingFilters → features/havingFilter}/having-node-builder.d.ts
RENAMED
|
@@ -3,7 +3,7 @@ import { VBIHavingFilter } from '../../../types';
|
|
|
3
3
|
/**
|
|
4
4
|
* @description Having 过滤节点构建器,用于配置单个 Having 过滤条件
|
|
5
5
|
*/
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class HavingFilterNodeBuilder {
|
|
7
7
|
private yMap;
|
|
8
8
|
constructor(yMap: Y.Map<any>);
|
|
9
9
|
/**
|
|
@@ -31,5 +31,5 @@ export declare class HavingFiltersNodeBuilder {
|
|
|
31
31
|
/**
|
|
32
32
|
* @description 导出为 JSON
|
|
33
33
|
*/
|
|
34
|
-
|
|
34
|
+
toJSON(): VBIHavingFilter;
|
|
35
35
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
export declare function createHavingGroup(op?: 'and' | 'or', groupId?: string): Y.Map<any>;
|
|
3
|
+
export type HavingEntryMatch = {
|
|
4
|
+
collection: Y.Array<any>;
|
|
5
|
+
index: number;
|
|
6
|
+
item: Y.Map<any>;
|
|
7
|
+
};
|
|
8
|
+
export declare function isHavingGroup(yMap: Y.Map<any>): boolean;
|
|
9
|
+
export declare function findEntry(collection: Y.Array<any>, entryId: string): HavingEntryMatch | undefined;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { MeasuresBuilder } from './measures';
|
|
2
|
+
export { DimensionsBuilder } from './dimensions';
|
|
3
|
+
export { ChartTypeBuilder } from './chart-type';
|
|
4
|
+
export { WhereFilterBuilder, WhereGroupBuilder } from './whereFilter';
|
|
5
|
+
export { HavingFilterBuilder } from './havingFilter';
|
|
6
|
+
export { ThemeBuilder } from './theme';
|
|
7
|
+
export { LocaleBuilder } from './locale';
|
|
8
|
+
export { LimitBuilder } from './limit';
|
|
9
|
+
export { UndoManager } from './undo-manager';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LimitBuilder } from './limit-builder';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ObserveCallback } from '../../../types';
|
|
2
|
+
import * as Y from 'yjs';
|
|
3
|
+
/**
|
|
4
|
+
* @description 数据量限制构建器,用于设置和获取当前 limit
|
|
5
|
+
*/
|
|
6
|
+
export declare class LimitBuilder {
|
|
7
|
+
private dsl;
|
|
8
|
+
/**
|
|
9
|
+
* @description 构造函数
|
|
10
|
+
*/
|
|
11
|
+
constructor(_doc: Y.Doc, dsl: Y.Map<any>);
|
|
12
|
+
/**
|
|
13
|
+
* @description 监听 limit 变化,返回取消监听的函数
|
|
14
|
+
* @param callback - 回调函数
|
|
15
|
+
* @returns 取消监听的函数
|
|
16
|
+
*/
|
|
17
|
+
observe(callback: ObserveCallback): () => void;
|
|
18
|
+
/**
|
|
19
|
+
* @description 设置 limit
|
|
20
|
+
* @param limit - 数据量限制
|
|
21
|
+
*/
|
|
22
|
+
setLimit(limit: number): void;
|
|
23
|
+
/**
|
|
24
|
+
* @description 获取当前 limit
|
|
25
|
+
*/
|
|
26
|
+
getLimit(): number | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* @description 导出为 JSON
|
|
29
|
+
*/
|
|
30
|
+
toJSON(): number | undefined;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LocaleBuilder } from './locale-builder';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ObserveCallback } from '../../../types';
|
|
2
|
+
import * as Y from 'yjs';
|
|
3
|
+
/**
|
|
4
|
+
* @description 语言构建器,用于设置和获取当前语言
|
|
5
|
+
*/
|
|
6
|
+
export declare class LocaleBuilder {
|
|
7
|
+
private dsl;
|
|
8
|
+
/**
|
|
9
|
+
* @description 构造函数
|
|
10
|
+
*/
|
|
11
|
+
constructor(_doc: Y.Doc, dsl: Y.Map<any>);
|
|
12
|
+
/**
|
|
13
|
+
* @description 监听语言变化,返回取消监听的函数
|
|
14
|
+
* @param callback - 回调函数
|
|
15
|
+
* @returns 取消监听的函数
|
|
16
|
+
*/
|
|
17
|
+
observe(callback: ObserveCallback): () => void;
|
|
18
|
+
/**
|
|
19
|
+
* @description 设置语言
|
|
20
|
+
* @param locale - 语言名称
|
|
21
|
+
*/
|
|
22
|
+
setLocale(locale: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* @description 获取当前语言
|
|
25
|
+
*/
|
|
26
|
+
getLocale(): string;
|
|
27
|
+
/**
|
|
28
|
+
* @description 导出为 JSON
|
|
29
|
+
*/
|
|
30
|
+
toJSON(): string;
|
|
31
|
+
}
|
|
@@ -6,7 +6,7 @@ import { MeasureNodeBuilder } from './mea-node-builder';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class MeasuresBuilder {
|
|
8
8
|
private dsl;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(doc: Y.Doc, dsl: Y.Map<any>);
|
|
10
10
|
/**
|
|
11
11
|
* @description 添加一个度量
|
|
12
12
|
* @param field - 字段名
|
|
@@ -14,21 +14,21 @@ export declare class MeasuresBuilder {
|
|
|
14
14
|
*/
|
|
15
15
|
add(field: string, callback: (node: MeasureNodeBuilder) => void): MeasuresBuilder;
|
|
16
16
|
/**
|
|
17
|
-
* @description
|
|
18
|
-
* @param
|
|
17
|
+
* @description 删除指定 ID 的度量
|
|
18
|
+
* @param id - 度量 ID
|
|
19
19
|
*/
|
|
20
|
-
remove(
|
|
20
|
+
remove(id: string): MeasuresBuilder;
|
|
21
21
|
/**
|
|
22
22
|
* @description 更新度量配置
|
|
23
|
-
* @param
|
|
23
|
+
* @param id - 度量 ID
|
|
24
24
|
* @param callback - 回调函数
|
|
25
25
|
*/
|
|
26
|
-
update(
|
|
26
|
+
update(id: string, callback: (node: MeasureNodeBuilder) => void): MeasuresBuilder;
|
|
27
27
|
/**
|
|
28
|
-
* @description
|
|
29
|
-
* @param
|
|
28
|
+
* @description 按回调条件查找第一个度量,行为与 Array.find 一致
|
|
29
|
+
* @param predicate - 查找条件
|
|
30
30
|
*/
|
|
31
|
-
find(
|
|
31
|
+
find(predicate: (node: MeasureNodeBuilder, index: number) => boolean): MeasureNodeBuilder | undefined;
|
|
32
32
|
/**
|
|
33
33
|
* @description 获取所有度量
|
|
34
34
|
*/
|
|
@@ -36,7 +36,7 @@ export declare class MeasuresBuilder {
|
|
|
36
36
|
/**
|
|
37
37
|
* @description 导出所有度量为 JSON 数组
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
toJSON(): VBIMeasure[];
|
|
40
40
|
/**
|
|
41
41
|
* @description 监听度量变化
|
|
42
42
|
* @param callback - 回调函数
|
|
@@ -6,6 +6,10 @@ import { VBIMeasure } from '../../../types';
|
|
|
6
6
|
export declare class MeasureNodeBuilder {
|
|
7
7
|
private yMap;
|
|
8
8
|
constructor(yMap: Y.Map<any>);
|
|
9
|
+
/**
|
|
10
|
+
* @description 获取节点 ID
|
|
11
|
+
*/
|
|
12
|
+
getId(): string;
|
|
9
13
|
/**
|
|
10
14
|
* @description 获取字段名
|
|
11
15
|
*/
|
|
@@ -28,5 +32,5 @@ export declare class MeasureNodeBuilder {
|
|
|
28
32
|
/**
|
|
29
33
|
* @description 导出为 JSON
|
|
30
34
|
*/
|
|
31
|
-
|
|
35
|
+
toJSON(): VBIMeasure;
|
|
32
36
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
export declare const getOrCreateMeasures: (dsl: Y.Map<any>) => Y.Array<any>;
|
|
3
|
+
export declare const normalizeMeasureNodeIds: (measures: Y.Array<any>) => void;
|
|
4
|
+
export declare const locateMeasureIndexById: (measures: Y.Array<any>, measureId: string) => number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ThemeBuilder } from './theme-builder';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ObserveCallback } from '../../../types';
|
|
2
|
+
import * as Y from 'yjs';
|
|
3
|
+
/**
|
|
4
|
+
* @description 主题构建器,用于设置和获取当前主题
|
|
5
|
+
*/
|
|
6
|
+
export declare class ThemeBuilder {
|
|
7
|
+
private dsl;
|
|
8
|
+
/**
|
|
9
|
+
* @description 构造函数
|
|
10
|
+
*/
|
|
11
|
+
constructor(_doc: Y.Doc, dsl: Y.Map<any>);
|
|
12
|
+
/**
|
|
13
|
+
* @description 监听主题变化,返回取消监听的函数
|
|
14
|
+
* @param callback - 回调函数
|
|
15
|
+
* @returns 取消监听的函数
|
|
16
|
+
*/
|
|
17
|
+
observe(callback: ObserveCallback): () => void;
|
|
18
|
+
/**
|
|
19
|
+
* @description 设置主题
|
|
20
|
+
* @param theme - 主题名称
|
|
21
|
+
*/
|
|
22
|
+
setTheme(theme: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* @description 获取当前主题
|
|
25
|
+
*/
|
|
26
|
+
getTheme(): string;
|
|
27
|
+
/**
|
|
28
|
+
* @description 导出为 JSON
|
|
29
|
+
*/
|
|
30
|
+
toJSON(): string;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UndoManager } from './undo-manager';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { WhereFilterBuilder } from './where-builder';
|
|
2
2
|
export { WhereGroupBuilder } from './where-group-builder';
|
|
@@ -1,56 +1,56 @@
|
|
|
1
1
|
import * as Y from 'yjs';
|
|
2
|
-
import type {
|
|
2
|
+
import type { VBIWhereGroup, ObserveCallback } from '../../../types';
|
|
3
3
|
import { WhereFilterNodeBuilder } from './where-node-builder';
|
|
4
4
|
import { WhereGroupBuilder } from './where-group-builder';
|
|
5
5
|
/**
|
|
6
6
|
* @description Where 过滤构建器,用于添加、修改、删除行级过滤条件。Where 过滤在数据查询前生效,用于筛选原始数据
|
|
7
7
|
*/
|
|
8
|
-
export declare class
|
|
9
|
-
private
|
|
10
|
-
private doc;
|
|
8
|
+
export declare class WhereFilterBuilder {
|
|
9
|
+
private whereFilter;
|
|
11
10
|
constructor(doc: Y.Doc, dsl: Y.Map<any>);
|
|
11
|
+
getConditions(): Y.Array<any>;
|
|
12
12
|
/**
|
|
13
13
|
* @description 添加一个 Where 过滤条件
|
|
14
14
|
* @param field - 字段名
|
|
15
15
|
* @param callback - 回调函数
|
|
16
16
|
*/
|
|
17
|
-
add(field: string, callback: (node: WhereFilterNodeBuilder) => void):
|
|
17
|
+
add(field: string, callback: (node: WhereFilterNodeBuilder) => void): WhereFilterBuilder;
|
|
18
18
|
/**
|
|
19
19
|
* @description 添加一个 Where 分组
|
|
20
20
|
* @param op - 逻辑操作符
|
|
21
21
|
* @param callback - 回调函数
|
|
22
22
|
*/
|
|
23
|
-
addGroup(op: 'and' | 'or', callback: (group: WhereGroupBuilder) => void):
|
|
23
|
+
addGroup(op: 'and' | 'or', callback: (group: WhereGroupBuilder) => void): WhereFilterBuilder;
|
|
24
24
|
/**
|
|
25
25
|
* @description 更新指定 ID 的过滤条件
|
|
26
26
|
* @param id - 过滤条件 ID
|
|
27
27
|
* @param callback - 回调函数
|
|
28
28
|
*/
|
|
29
|
-
update(id: string, callback: (node: WhereFilterNodeBuilder) => void):
|
|
29
|
+
update(id: string, callback: (node: WhereFilterNodeBuilder) => void): WhereFilterBuilder;
|
|
30
30
|
/**
|
|
31
31
|
* @description 更新指定 ID 的分组
|
|
32
32
|
* @param id - 分组 ID
|
|
33
33
|
* @param callback - 回调函数
|
|
34
34
|
*/
|
|
35
|
-
updateGroup(id: string, callback: (group: WhereGroupBuilder) => void):
|
|
35
|
+
updateGroup(id: string, callback: (group: WhereGroupBuilder) => void): WhereFilterBuilder;
|
|
36
36
|
/**
|
|
37
37
|
* @description 删除指定 ID 的条件或指定索引的项
|
|
38
38
|
* @param idOrIndex - ID 或索引
|
|
39
39
|
*/
|
|
40
|
-
remove(idOrIndex: string | number):
|
|
40
|
+
remove(idOrIndex: string | number): WhereFilterBuilder;
|
|
41
41
|
/**
|
|
42
|
-
* @description
|
|
43
|
-
* @param
|
|
42
|
+
* @description 按回调条件查找第一个条件(过滤或分组),行为与 Array.find 一致
|
|
43
|
+
* @param predicate - 查找条件
|
|
44
44
|
*/
|
|
45
|
-
find(
|
|
45
|
+
find(predicate: (entry: WhereFilterNodeBuilder | WhereGroupBuilder, index: number) => boolean): WhereFilterNodeBuilder | WhereGroupBuilder | undefined;
|
|
46
46
|
/**
|
|
47
47
|
* @description 清空所有 Where 过滤条件
|
|
48
48
|
*/
|
|
49
49
|
clear(): this;
|
|
50
50
|
/**
|
|
51
|
-
* @description
|
|
51
|
+
* @description 导出完整的 Where 过滤配置
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
toJSON(): VBIWhereGroup;
|
|
54
54
|
/**
|
|
55
55
|
* @description 监听过滤条件变化,返回取消监听的函数
|
|
56
56
|
* @param callback - 回调函数
|
package/dist/builder/{sub-builders/whereFilters → features/whereFilter}/where-group-builder.d.ts
RENAMED
|
@@ -7,6 +7,7 @@ import { WhereFilterNodeBuilder } from './where-node-builder';
|
|
|
7
7
|
export declare class WhereGroupBuilder {
|
|
8
8
|
private yMap;
|
|
9
9
|
constructor(yMap: Y.Map<any>);
|
|
10
|
+
getConditions(): Y.Array<any>;
|
|
10
11
|
/**
|
|
11
12
|
* @description 获取分组 ID
|
|
12
13
|
*/
|
|
@@ -44,5 +45,5 @@ export declare class WhereGroupBuilder {
|
|
|
44
45
|
/**
|
|
45
46
|
* @description 导出为 JSON
|
|
46
47
|
*/
|
|
47
|
-
|
|
48
|
+
toJSON(): VBIWhereGroup;
|
|
48
49
|
}
|
package/dist/builder/{sub-builders/whereFilters → features/whereFilter}/where-node-builder.d.ts
RENAMED
|
@@ -14,6 +14,11 @@ export declare class WhereFilterNodeBuilder {
|
|
|
14
14
|
* @description 获取字段名
|
|
15
15
|
*/
|
|
16
16
|
getField(): string;
|
|
17
|
+
/**
|
|
18
|
+
* @description 设置字段名
|
|
19
|
+
* @param field - 字段名
|
|
20
|
+
*/
|
|
21
|
+
setField(field: string): this;
|
|
17
22
|
/**
|
|
18
23
|
* @description 获取过滤操作符
|
|
19
24
|
*/
|
|
@@ -31,5 +36,5 @@ export declare class WhereFilterNodeBuilder {
|
|
|
31
36
|
/**
|
|
32
37
|
* @description 导出为 JSON
|
|
33
38
|
*/
|
|
34
|
-
|
|
39
|
+
toJSON(): VBIFilter;
|
|
35
40
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
export declare function createWhereGroup(op?: 'and' | 'or', groupId?: string): Y.Map<any>;
|
|
3
|
+
export type WhereEntryMatch = {
|
|
4
|
+
collection: Y.Array<any>;
|
|
5
|
+
index: number;
|
|
6
|
+
item: Y.Map<any>;
|
|
7
|
+
};
|
|
8
|
+
export declare function isWhereGroup(yMap: Y.Map<any>): boolean;
|
|
9
|
+
export declare function findEntry(collection: Y.Array<any>, entryId: string): WhereEntryMatch | undefined;
|
package/dist/builder/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { VBIBuilder } from './vbi-builder';
|
|
2
|
-
export { VBI } from '
|
|
3
|
-
export { MeasuresBuilder, DimensionsBuilder, ChartTypeBuilder,
|
|
4
|
-
export { UndoManager } from './undo-manager';
|
|
2
|
+
export { VBI } from '../vbi';
|
|
3
|
+
export { MeasuresBuilder, DimensionsBuilder, ChartTypeBuilder, HavingFilterBuilder, WhereFilterBuilder, ThemeBuilder, LocaleBuilder, LimitBuilder, UndoManager, } from './features';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { VSeedDSL } from '@visactor/vseed';
|
|
2
|
+
import type { VQueryDSL } from '@visactor/vquery';
|
|
3
|
+
import type { VBIDSL } from '../../types';
|
|
4
|
+
export interface BuildVSeedInput {
|
|
5
|
+
vbiDSL: VBIDSL;
|
|
6
|
+
queryDSL: VQueryDSL;
|
|
7
|
+
}
|
|
8
|
+
export declare const buildVSeedDSL: ({ vbiDSL, queryDSL }: BuildVSeedInput) => Promise<VSeedDSL>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
import { DimensionsBuilder, MeasuresBuilder, HavingFilterBuilder, WhereFilterBuilder, ChartTypeBuilder, ThemeBuilder, LocaleBuilder, LimitBuilder, UndoManager } from '../features';
|
|
3
|
+
export interface BuilderFeatureInstances {
|
|
4
|
+
chartType: ChartTypeBuilder;
|
|
5
|
+
measures: MeasuresBuilder;
|
|
6
|
+
dimensions: DimensionsBuilder;
|
|
7
|
+
havingFilter: HavingFilterBuilder;
|
|
8
|
+
whereFilter: WhereFilterBuilder;
|
|
9
|
+
theme: ThemeBuilder;
|
|
10
|
+
locale: LocaleBuilder;
|
|
11
|
+
limit: LimitBuilder;
|
|
12
|
+
undoManager: UndoManager;
|
|
13
|
+
}
|
|
14
|
+
export declare const createBuilderFeatures: (doc: Y.Doc, dsl: Y.Map<any>) => BuilderFeatureInstances;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { applyUpdateToDoc } from './apply-update';
|
|
2
|
+
export { encodeDocStateAsUpdate } from './encode-state-as-update';
|
|
3
|
+
export { buildVBIDSL } from './build';
|
|
4
|
+
export { buildVQueryDSL } from './build-vquery';
|
|
5
|
+
export { buildVSeedDSL } from './build-vseed';
|
|
6
|
+
export { isEmptyVBIDSL } from './is-empty';
|
|
7
|
+
export { getBuilderSchema } from './get-schema';
|
|
8
|
+
export { createBuilderFeatures } from './create-builder-features';
|