@visactor/vbi 0.4.16 → 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.
Files changed (38) hide show
  1. package/dist/builder/features/dimensions/dim-builder.d.ts +10 -10
  2. package/dist/builder/features/dimensions/dim-node-builder.d.ts +4 -0
  3. package/dist/builder/features/dimensions/dimension-utils.d.ts +4 -0
  4. package/dist/builder/features/havingFilter/having-builder.d.ts +3 -3
  5. package/dist/builder/features/measures/mea-builder.d.ts +9 -9
  6. package/dist/builder/features/measures/mea-node-builder.d.ts +4 -0
  7. package/dist/builder/features/measures/measure-utils.d.ts +4 -0
  8. package/dist/builder/features/whereFilter/where-builder.d.ts +3 -3
  9. package/dist/builder/index.d.ts +1 -1
  10. package/dist/builder/modules/apply-update.d.ts +2 -0
  11. package/dist/builder/modules/build-vquery.d.ts +4 -0
  12. package/dist/builder/modules/build-vseed.d.ts +8 -0
  13. package/dist/builder/modules/build.d.ts +3 -0
  14. package/dist/builder/modules/create-builder-features.d.ts +14 -0
  15. package/dist/builder/modules/encode-state-as-update.d.ts +2 -0
  16. package/dist/builder/modules/get-schema.d.ts +5 -0
  17. package/dist/builder/modules/index.d.ts +8 -0
  18. package/dist/builder/modules/is-empty.d.ts +2 -0
  19. package/dist/builder/vbi-builder.d.ts +7 -6
  20. package/dist/index.cjs +548 -412
  21. package/dist/index.d.ts +2 -1
  22. package/dist/index.js +546 -410
  23. package/dist/types/builder/VBIInterface.d.ts +1 -0
  24. package/dist/types/dsl/dimensions/dimensions.d.ts +2 -0
  25. package/dist/types/dsl/measures/measures.d.ts +2 -0
  26. package/dist/types/dsl/vbi/vbi.d.ts +2 -0
  27. package/dist/vbi/create-vbi.d.ts +14 -0
  28. package/dist/vbi/from/from-vbi-dsl-input.d.ts +3 -0
  29. package/dist/vbi/from/set-base-dsl-fields.d.ts +3 -0
  30. package/dist/vbi/generate-empty-dsl.d.ts +3 -0
  31. package/dist/vbi/normalize/ensure-having-group.d.ts +2 -0
  32. package/dist/vbi/normalize/ensure-where-group.d.ts +2 -0
  33. package/dist/vbi/normalize/ensure-y-array.d.ts +3 -0
  34. package/dist/vbi/normalize/to-y-map.d.ts +3 -0
  35. package/dist/vbi/normalize/types.d.ts +5 -0
  36. package/dist/vbi.d.ts +14 -0
  37. package/package.json +5 -5
  38. package/dist/builder/vbi.d.ts +0 -16
@@ -6,7 +6,7 @@ import { DimensionNodeBuilder } from './dim-node-builder';
6
6
  */
7
7
  export declare class DimensionsBuilder {
8
8
  private dsl;
9
- constructor(_doc: Y.Doc, dsl: Y.Map<any>);
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 field - 字段名
17
+ * @description 删除指定 ID 的维度
18
+ * @param id - 维度 ID
19
19
  */
20
- remove(field: VBIDimension['field']): DimensionsBuilder;
20
+ remove(id: string): DimensionsBuilder;
21
21
  /**
22
- * @description 更新指定维度字段的配置
23
- * @param field - 字段名
22
+ * @description 更新指定维度 ID 的配置
23
+ * @param id - 维度 ID
24
24
  * @param callback - 回调函数
25
25
  */
26
- update(field: string, callback: (node: DimensionNodeBuilder) => void): DimensionsBuilder;
26
+ update(id: string, callback: (node: DimensionNodeBuilder) => void): DimensionsBuilder;
27
27
  /**
28
- * @description 根据字段名查找维度
29
- * @param field - 字段名
28
+ * @description 按回调条件查找第一个维度,行为与 Array.find 一致
29
+ * @param predicate - 查找条件
30
30
  */
31
- find(field: VBIDimension['field']): DimensionNodeBuilder | undefined;
31
+ find(predicate: (node: DimensionNodeBuilder, index: number) => boolean): DimensionNodeBuilder | undefined;
32
32
  /**
33
33
  * @description 获取所有维度
34
34
  */
@@ -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
  */
@@ -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;
@@ -39,10 +39,10 @@ export declare class HavingFilterBuilder {
39
39
  */
40
40
  remove(idOrIndex: string | number): HavingFilterBuilder;
41
41
  /**
42
- * @description 根据 ID 查找条件(过滤或分组)
43
- * @param id - ID
42
+ * @description 按回调条件查找第一个条件(过滤或分组),行为与 Array.find 一致
43
+ * @param predicate - 查找条件
44
44
  */
45
- find(id: string): HavingFilterNodeBuilder | HavingGroupBuilder | undefined;
45
+ find(predicate: (entry: HavingFilterNodeBuilder | HavingGroupBuilder, index: number) => boolean): HavingFilterNodeBuilder | HavingGroupBuilder | undefined;
46
46
  /**
47
47
  * @description 清空所有 Having 过滤条件
48
48
  */
@@ -6,7 +6,7 @@ import { MeasureNodeBuilder } from './mea-node-builder';
6
6
  */
7
7
  export declare class MeasuresBuilder {
8
8
  private dsl;
9
- constructor(_doc: Y.Doc, dsl: Y.Map<any>);
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 field - 字段名
17
+ * @description 删除指定 ID 的度量
18
+ * @param id - 度量 ID
19
19
  */
20
- remove(field: VBIMeasure['field']): MeasuresBuilder;
20
+ remove(id: string): MeasuresBuilder;
21
21
  /**
22
22
  * @description 更新度量配置
23
- * @param field - 字段名
23
+ * @param id - 度量 ID
24
24
  * @param callback - 回调函数
25
25
  */
26
- update(field: string, callback: (node: MeasureNodeBuilder) => void): MeasuresBuilder;
26
+ update(id: string, callback: (node: MeasureNodeBuilder) => void): MeasuresBuilder;
27
27
  /**
28
- * @description 根据字段名查找度量
29
- * @param field - 字段名
28
+ * @description 按回调条件查找第一个度量,行为与 Array.find 一致
29
+ * @param predicate - 查找条件
30
30
  */
31
- find(field: VBIMeasure['field']): MeasureNodeBuilder | undefined;
31
+ find(predicate: (node: MeasureNodeBuilder, index: number) => boolean): MeasureNodeBuilder | undefined;
32
32
  /**
33
33
  * @description 获取所有度量
34
34
  */
@@ -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
  */
@@ -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;
@@ -39,10 +39,10 @@ export declare class WhereFilterBuilder {
39
39
  */
40
40
  remove(idOrIndex: string | number): WhereFilterBuilder;
41
41
  /**
42
- * @description 根据 ID 查找条件(过滤或分组)
43
- * @param id - ID
42
+ * @description 按回调条件查找第一个条件(过滤或分组),行为与 Array.find 一致
43
+ * @param predicate - 查找条件
44
44
  */
45
- find(id: string): WhereFilterNodeBuilder | WhereGroupBuilder | undefined;
45
+ find(predicate: (entry: WhereFilterNodeBuilder | WhereGroupBuilder, index: number) => boolean): WhereFilterNodeBuilder | WhereGroupBuilder | undefined;
46
46
  /**
47
47
  * @description 清空所有 Where 过滤条件
48
48
  */
@@ -1,3 +1,3 @@
1
1
  export { VBIBuilder } from './vbi-builder';
2
- export { VBI } from './vbi';
2
+ export { VBI } from '../vbi';
3
3
  export { MeasuresBuilder, DimensionsBuilder, ChartTypeBuilder, HavingFilterBuilder, WhereFilterBuilder, ThemeBuilder, LocaleBuilder, LimitBuilder, UndoManager, } from './features';
@@ -0,0 +1,2 @@
1
+ import * as Y from 'yjs';
2
+ export declare const applyUpdateToDoc: (doc: Y.Doc, update: Uint8Array, transactionOrigin?: any) => void;
@@ -0,0 +1,4 @@
1
+ import * as Y from 'yjs';
2
+ import type { VQueryDSL } from '@visactor/vquery';
3
+ import type { VBIBuilder } from '../vbi-builder';
4
+ export declare const buildVQueryDSL: (dsl: Y.Map<any>, builder: VBIBuilder) => VQueryDSL;
@@ -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,3 @@
1
+ import * as Y from 'yjs';
2
+ import type { VBIDSL } from '../../types';
3
+ export declare const buildVBIDSL: (dsl: Y.Map<any>) => VBIDSL;
@@ -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,2 @@
1
+ import * as Y from 'yjs';
2
+ export declare const encodeDocStateAsUpdate: (doc: Y.Doc, targetStateVector?: Uint8Array) => Uint8Array<ArrayBufferLike>;
@@ -0,0 +1,5 @@
1
+ import * as Y from 'yjs';
2
+ export declare const getBuilderSchema: (dsl: Y.Map<any>) => Promise<{
3
+ name: string;
4
+ type: string;
5
+ }[]>;
@@ -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';
@@ -0,0 +1,2 @@
1
+ import * as Y from 'yjs';
2
+ export declare const isEmptyVBIDSL: (dsl: Y.Map<any>) => boolean;
@@ -1,12 +1,11 @@
1
1
  import * as Y from 'yjs';
2
- import { VSeedDSL } from '@visactor/vseed';
3
- import { VQueryDSL } from '@visactor/vquery';
2
+ import type { VSeedDSL } from '@visactor/vseed';
3
+ import type { VQueryDSL } from '@visactor/vquery';
4
4
  import { DimensionsBuilder, MeasuresBuilder, HavingFilterBuilder, WhereFilterBuilder, ChartTypeBuilder, ThemeBuilder, LocaleBuilder, LimitBuilder, UndoManager } from './features';
5
- import { VBIDSL, VBIBuilderInterface } from '../types';
5
+ import type { VBIDSL, VBIBuilderInterface } from '../types';
6
6
  export declare class VBIBuilder implements VBIBuilderInterface {
7
7
  doc: Y.Doc;
8
8
  dsl: Y.Map<any>;
9
- undoManager: UndoManager;
10
9
  chartType: ChartTypeBuilder;
11
10
  measures: MeasuresBuilder;
12
11
  dimensions: DimensionsBuilder;
@@ -15,12 +14,14 @@ export declare class VBIBuilder implements VBIBuilderInterface {
15
14
  theme: ThemeBuilder;
16
15
  locale: LocaleBuilder;
17
16
  limit: LimitBuilder;
17
+ undoManager: UndoManager;
18
18
  constructor(doc: Y.Doc);
19
- applyUpdate(update: Uint8Array): void;
20
- encodeStateAsUpdate(targetStateVector?: Uint8Array): Uint8Array<ArrayBufferLike>;
19
+ applyUpdate: (update: Uint8Array, transactionOrigin?: any) => void;
20
+ encodeStateAsUpdate: (targetStateVector?: Uint8Array) => Uint8Array<ArrayBufferLike>;
21
21
  buildVSeed: () => Promise<VSeedDSL>;
22
22
  buildVQuery: () => VQueryDSL;
23
23
  build: () => VBIDSL;
24
+ isEmpty: () => boolean;
24
25
  getSchema: () => Promise<{
25
26
  name: string;
26
27
  type: string;