@thoughtspot/ts-chart-sdk 0.0.1-alpha.0 → 0.0.1-alpha.2
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/README.md +782 -0
- package/cjs/index.d.ts +8 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +24 -0
- package/cjs/index.js.map +1 -0
- package/cjs/main/custom-chart-context.d.ts +39 -0
- package/cjs/main/custom-chart-context.d.ts.map +1 -0
- package/cjs/main/custom-chart-context.js +211 -0
- package/cjs/main/custom-chart-context.js.map +1 -0
- package/cjs/main/custom-chart-context.spec.d.ts +2 -0
- package/cjs/main/custom-chart-context.spec.d.ts.map +1 -0
- package/cjs/main/custom-chart-context.spec.js +379 -0
- package/cjs/main/custom-chart-context.spec.js.map +1 -0
- package/cjs/main/post-message-event-bridge.d.ts +6 -0
- package/cjs/main/post-message-event-bridge.d.ts.map +1 -0
- package/cjs/main/post-message-event-bridge.js +46 -0
- package/cjs/main/post-message-event-bridge.js.map +1 -0
- package/cjs/main/post-message-event-bridge.spec.d.ts +2 -0
- package/cjs/main/post-message-event-bridge.spec.d.ts.map +1 -0
- package/cjs/main/post-message-event-bridge.spec.js +124 -0
- package/cjs/main/post-message-event-bridge.spec.js.map +1 -0
- package/cjs/react/custom-chart-context-service.d.ts +33 -0
- package/cjs/react/custom-chart-context-service.d.ts.map +1 -0
- package/cjs/react/custom-chart-context-service.js +118 -0
- package/cjs/react/custom-chart-context-service.js.map +1 -0
- package/cjs/react/custom-chart.context.d.ts +26 -0
- package/cjs/react/custom-chart.context.d.ts.map +1 -0
- package/cjs/react/custom-chart.context.js +105 -0
- package/cjs/react/custom-chart.context.js.map +1 -0
- package/cjs/react/custom-chart.spec.d.ts +2 -0
- package/cjs/react/custom-chart.spec.d.ts.map +1 -0
- package/cjs/react/custom-chart.spec.js +72 -0
- package/cjs/react/custom-chart.spec.js.map +1 -0
- package/cjs/test/test-utils.d.ts +7 -0
- package/cjs/test/test-utils.d.ts.map +1 -0
- package/cjs/test/test-utils.js +14 -0
- package/cjs/test/test-utils.js.map +1 -0
- package/cjs/types/answer-column.types.d.ts +69 -0
- package/cjs/types/answer-column.types.d.ts.map +1 -0
- package/cjs/types/answer-column.types.js +59 -0
- package/cjs/types/answer-column.types.js.map +1 -0
- package/cjs/types/chart-to-ts-event.types.d.ts +63 -0
- package/cjs/types/chart-to-ts-event.types.d.ts.map +1 -0
- package/cjs/types/chart-to-ts-event.types.js +22 -0
- package/cjs/types/chart-to-ts-event.types.js.map +1 -0
- package/cjs/types/common.types.d.ts +50 -0
- package/cjs/types/common.types.d.ts.map +1 -0
- package/cjs/types/common.types.js +3 -0
- package/cjs/types/common.types.js.map +1 -0
- package/cjs/types/configurator.types.d.ts +15 -0
- package/cjs/types/configurator.types.d.ts.map +1 -0
- package/cjs/types/configurator.types.js +3 -0
- package/cjs/types/configurator.types.js.map +1 -0
- package/cjs/types/ts-to-chart-event.types.d.ts +69 -0
- package/cjs/types/ts-to-chart-event.types.d.ts.map +1 -0
- package/cjs/types/ts-to-chart-event.types.js +16 -0
- package/cjs/types/ts-to-chart-event.types.js.map +1 -0
- package/cjs/types/visual-prop.types.d.ts +47 -0
- package/cjs/types/visual-prop.types.d.ts.map +1 -0
- package/cjs/types/visual-prop.types.js +3 -0
- package/cjs/types/visual-prop.types.js.map +1 -0
- package/lib/main/custom-chart-context.d.ts +2 -1
- package/lib/main/custom-chart-context.d.ts.map +1 -1
- package/lib/main/custom-chart-context.js +11 -7
- package/lib/main/custom-chart-context.js.map +1 -1
- package/lib/main/custom-chart-context.spec.js +64 -25
- package/lib/main/custom-chart-context.spec.js.map +1 -1
- package/lib/main/post-message-event-bridge.js +1 -1
- package/lib/main/post-message-event-bridge.js.map +1 -1
- package/lib/main/post-message-event-bridge.spec.js +5 -3
- package/lib/main/post-message-event-bridge.spec.js.map +1 -1
- package/lib/react/custom-chart-context-service.d.ts +33 -0
- package/lib/react/custom-chart-context-service.d.ts.map +1 -0
- package/lib/react/custom-chart-context-service.js +91 -0
- package/lib/react/custom-chart-context-service.js.map +1 -0
- package/lib/react/custom-chart.context.d.ts +26 -0
- package/lib/react/custom-chart.context.d.ts.map +1 -0
- package/lib/react/custom-chart.context.js +78 -0
- package/lib/react/custom-chart.context.js.map +1 -0
- package/lib/react/custom-chart.spec.d.ts +2 -0
- package/lib/react/custom-chart.spec.d.ts.map +1 -0
- package/lib/react/custom-chart.spec.js +67 -0
- package/lib/react/custom-chart.spec.js.map +1 -0
- package/lib/types/chart-to-ts-event.types.d.ts +26 -11
- package/lib/types/chart-to-ts-event.types.d.ts.map +1 -1
- package/lib/types/chart-to-ts-event.types.js +3 -0
- package/lib/types/chart-to-ts-event.types.js.map +1 -1
- package/lib/types/common.types.d.ts +7 -8
- package/lib/types/common.types.d.ts.map +1 -1
- package/lib/types/ts-to-chart-event.types.d.ts +2 -0
- package/lib/types/ts-to-chart-event.types.d.ts.map +1 -1
- package/lib/types/ts-to-chart-event.types.js +1 -0
- package/lib/types/ts-to-chart-event.types.js.map +1 -1
- package/package.json +2 -2
- package/src/main/custom-chart-context.spec.ts +87 -26
- package/src/main/custom-chart-context.ts +26 -16
- package/src/main/post-message-event-bridge.spec.ts +5 -3
- package/src/main/post-message-event-bridge.ts +3 -3
- package/src/types/answer-column.types.ts +5 -5
- package/src/types/chart-to-ts-event.types.ts +68 -30
- package/src/types/common.types.ts +22 -25
- package/src/types/configurator.types.ts +8 -8
- package/src/types/ts-to-chart-event.types.ts +10 -4
- package/src/types/visual-prop.types.ts +11 -11
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ChartColumn } from './answer-column.types';
|
|
2
|
+
export interface ChartConfigDimension {
|
|
3
|
+
key: string;
|
|
4
|
+
columns: ChartColumn[];
|
|
5
|
+
}
|
|
6
|
+
export interface ChartConfig {
|
|
7
|
+
key: string;
|
|
8
|
+
dimensions: ChartConfigDimension[];
|
|
9
|
+
}
|
|
10
|
+
export type DataPointsArray = {
|
|
11
|
+
columns: string[];
|
|
12
|
+
dataValue: any[][];
|
|
13
|
+
};
|
|
14
|
+
export type QueryData = {
|
|
15
|
+
data: DataPointsArray;
|
|
16
|
+
completionRatio?: number;
|
|
17
|
+
samplingRatio?: number;
|
|
18
|
+
totalRowCount: number;
|
|
19
|
+
};
|
|
20
|
+
export interface ChartModel {
|
|
21
|
+
columns: ChartColumn[];
|
|
22
|
+
data?: QueryData[];
|
|
23
|
+
sortInfo?: any;
|
|
24
|
+
visualProps?: VisualProps;
|
|
25
|
+
config: {
|
|
26
|
+
chartConfig?: ChartConfig[];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export type ValidationResponse = {
|
|
30
|
+
isValid: boolean;
|
|
31
|
+
validationErrorMessage?: string[];
|
|
32
|
+
};
|
|
33
|
+
export type VisualProps = JSON;
|
|
34
|
+
type CustomStylingConfig = any;
|
|
35
|
+
export interface AppConfig {
|
|
36
|
+
styleConfig?: CustomStylingConfig;
|
|
37
|
+
appOptions?: {
|
|
38
|
+
isMobile?: boolean;
|
|
39
|
+
isPrintMode?: boolean;
|
|
40
|
+
isDebugMode?: boolean;
|
|
41
|
+
};
|
|
42
|
+
localeOptions?: {
|
|
43
|
+
locale: string;
|
|
44
|
+
quarterStartMonth: string;
|
|
45
|
+
sessionTimezone: string;
|
|
46
|
+
};
|
|
47
|
+
customCalendarConfig?: any;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=common.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../src/types/common.types.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUpD,MAAM,WAAW,oBAAoB;IAMjC,GAAG,EAAE,MAAM,CAAC;IAMZ,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B;AASD,MAAM,WAAW,WAAW;IAQxB,GAAG,EAAE,MAAM,CAAC;IAMZ,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAUD,MAAM,MAAM,eAAe,GAAG;IAM1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAOlB,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;CACtB,CAAC;AASF,MAAM,MAAM,SAAS,GAAG;IAMpB,IAAI,EAAE,eAAe,CAAC;IAMtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAOvB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAOF,MAAM,WAAW,UAAU;IAOvB,OAAO,EAAE,WAAW,EAAE,CAAC;IAMvB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE;QAEJ,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;KAC/B,CAAC;CACL;AAGD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC,CAAC;AAUF,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC;AAG/B,KAAK,mBAAmB,GAAG,GAAG,CAAC;AAE/B,MAAM,WAAW,SAAS;IACtB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,UAAU,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,CAAC;QAGtB,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IAGF,aAAa,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;IAKF,oBAAoB,CAAC,EAAE,GAAG,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.types.js","sourceRoot":"","sources":["../../src/types/common.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ChartConfigSection {
|
|
2
|
+
key: string;
|
|
3
|
+
label: string;
|
|
4
|
+
maxColumnCount?: number;
|
|
5
|
+
allowMeasureColumns?: boolean;
|
|
6
|
+
allowAttributeColumns?: boolean;
|
|
7
|
+
allowTimeSeriesColumns?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ChartConfigEditorDefinition {
|
|
10
|
+
key: string;
|
|
11
|
+
label?: string;
|
|
12
|
+
descriptionText?: string;
|
|
13
|
+
columnSections: ChartConfigSection[];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=configurator.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configurator.types.d.ts","sourceRoot":"","sources":["../../src/types/configurator.types.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,kBAAkB;IAM/B,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,EAAE,MAAM,CAAC;IAcd,cAAc,CAAC,EAAE,MAAM,CAAC;IAOxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAQ9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAQhC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAMD,MAAM,WAAW,2BAA2B;IAMxC,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,eAAe,CAAC,EAAE,MAAM,CAAC;IAMzB,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configurator.types.js","sourceRoot":"","sources":["../../src/types/configurator.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ChartColumn } from './answer-column.types';
|
|
2
|
+
import { AppConfig, ChartConfig, ChartModel, QueryData, ValidationResponse, VisualProps } from './common.types';
|
|
3
|
+
import { ChartConfigEditorDefinition } from './configurator.types';
|
|
4
|
+
import { VisualPropEditorDefinition } from './visual-prop.types';
|
|
5
|
+
export declare enum TSToChartEvent {
|
|
6
|
+
Initialize = "Initialize",
|
|
7
|
+
InitializeComplete = "InitializeComplete",
|
|
8
|
+
GetDataQuery = "GetDataQuery",
|
|
9
|
+
ChartConfigValidate = "ChartConfigValidate",
|
|
10
|
+
ChartModelUpdate = "ChartModelUpdate",
|
|
11
|
+
DataUpdate = "DataUpdate",
|
|
12
|
+
TriggerRenderChart = "TriggerRenderChart",
|
|
13
|
+
VisualPropsValidate = "VisualPropsValidate",
|
|
14
|
+
VisualPropsUpdate = "VisualPropsUpdate"
|
|
15
|
+
}
|
|
16
|
+
export interface TSToChartEventsPayloadMap {
|
|
17
|
+
[TSToChartEvent.ChartModelUpdate]: (payload: ChartModelUpdateEventPayload) => void;
|
|
18
|
+
[TSToChartEvent.DataUpdate]: (payload: DataUpdateEventPayload) => void;
|
|
19
|
+
[TSToChartEvent.VisualPropsUpdate]: (payload: VisualPropsUpdateEventPayload) => void;
|
|
20
|
+
}
|
|
21
|
+
export interface TSToChartInternalEventsPayloadMap {
|
|
22
|
+
[TSToChartEvent.Initialize]: (payload: InitializeEventPayload) => InitializeEventResponsePayload;
|
|
23
|
+
[TSToChartEvent.InitializeComplete]: () => void;
|
|
24
|
+
[TSToChartEvent.GetDataQuery]: (payload: GetDataQueryPayload) => GetDataQueryResponsePayload;
|
|
25
|
+
[TSToChartEvent.ChartConfigValidate]: (payload: ChartConfigValidateEventPayload) => ValidationResponse;
|
|
26
|
+
[TSToChartEvent.VisualPropsValidate]: (payload: VisualPropsValidateEventPayload) => ValidationResponse;
|
|
27
|
+
[TSToChartEvent.TriggerRenderChart]: () => void;
|
|
28
|
+
}
|
|
29
|
+
export interface InitializeEventPayload {
|
|
30
|
+
chartModel: ChartModel;
|
|
31
|
+
appConfig?: AppConfig;
|
|
32
|
+
componentId: string;
|
|
33
|
+
hostUrl: string;
|
|
34
|
+
}
|
|
35
|
+
export interface InitializeEventResponsePayload {
|
|
36
|
+
isConfigValid: boolean;
|
|
37
|
+
defaultChartConfig: ChartConfig[];
|
|
38
|
+
chartConfigEditorDefinition?: ChartConfigEditorDefinition[];
|
|
39
|
+
visualPropEditorDefinition?: VisualPropEditorDefinition;
|
|
40
|
+
}
|
|
41
|
+
export interface GetDataQueryPayload {
|
|
42
|
+
config: ChartConfig[];
|
|
43
|
+
}
|
|
44
|
+
export interface Query {
|
|
45
|
+
queryColumns: ChartColumn[];
|
|
46
|
+
queryParams?: {
|
|
47
|
+
offset?: number;
|
|
48
|
+
size?: number;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export interface GetDataQueryResponsePayload {
|
|
52
|
+
queries: Query[];
|
|
53
|
+
}
|
|
54
|
+
export interface ChartModelUpdateEventPayload {
|
|
55
|
+
chartModel: ChartModel;
|
|
56
|
+
}
|
|
57
|
+
export interface DataUpdateEventPayload {
|
|
58
|
+
data: QueryData[];
|
|
59
|
+
}
|
|
60
|
+
export interface VisualPropsUpdateEventPayload {
|
|
61
|
+
visualProps: VisualProps;
|
|
62
|
+
}
|
|
63
|
+
export interface VisualPropsValidateEventPayload {
|
|
64
|
+
visualProps: VisualProps;
|
|
65
|
+
}
|
|
66
|
+
export interface ChartConfigValidateEventPayload {
|
|
67
|
+
chartConfig: ChartConfig[];
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=ts-to-chart-event.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-to-chart-event.types.d.ts","sourceRoot":"","sources":["../../src/types/ts-to-chart-event.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACH,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,WAAW,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAQjE,oBAAY,cAAc;IAItB,UAAU,eAAe;IAIzB,kBAAkB,uBAAuB;IAKzC,YAAY,iBAAiB;IAK7B,mBAAmB,wBAAwB;IAI3C,gBAAgB,qBAAqB;IAIrC,UAAU,eAAe;IAKzB,kBAAkB,uBAAuB;IAKzC,mBAAmB,wBAAwB;IAI3C,iBAAiB,sBAAsB;CAC1C;AAQD,MAAM,WAAW,yBAAyB;IACtC,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAC/B,OAAO,EAAE,4BAA4B,KACpC,IAAI,CAAC;IACV,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvE,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAChC,OAAO,EAAE,6BAA6B,KACrC,IAAI,CAAC;CACb;AAWD,MAAM,WAAW,iCAAiC;IAC9C,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CACzB,OAAO,EAAE,sBAAsB,KAC9B,8BAA8B,CAAC;IAEpC,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEhD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAC3B,OAAO,EAAE,mBAAmB,KAC3B,2BAA2B,CAAC;IAEjC,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAClC,OAAO,EAAE,+BAA+B,KACvC,kBAAkB,CAAC;IAExB,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAClC,OAAO,EAAE,+BAA+B,KACvC,kBAAkB,CAAC;IAExB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnD;AAMD,MAAM,WAAW,sBAAsB;IAMnC,UAAU,EAAE,UAAU,CAAC;IAOvB,SAAS,CAAC,EAAE,SAAS,CAAC;IAQtB,WAAW,EAAE,MAAM,CAAC;IAQpB,OAAO,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,8BAA8B;IAO3C,aAAa,EAAE,OAAO,CAAC;IAMvB,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAMlC,2BAA2B,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAM5D,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;CAC3D;AAMD,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,WAAW,EAAE,CAAC;CACzB;AAMD,MAAM,WAAW,KAAK;IAClB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAMD,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,KAAK,EAAE,CAAC;CACpB;AAMD,MAAM,WAAW,4BAA4B;IAMzC,UAAU,EAAE,UAAU,CAAC;CAC1B;AAMD,MAAM,WAAW,sBAAsB;IAMnC,IAAI,EAAE,SAAS,EAAE,CAAC;CACrB;AACD,MAAM,WAAW,6BAA6B;IAM1C,WAAW,EAAE,WAAW,CAAC;CAC5B;AAMD,MAAM,WAAW,+BAA+B;IAM5C,WAAW,EAAE,WAAW,CAAC;CAC5B;AAMD,MAAM,WAAW,+BAA+B;IAM5C,WAAW,EAAE,WAAW,EAAE,CAAC;CAC9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TSToChartEvent = void 0;
|
|
4
|
+
var TSToChartEvent;
|
|
5
|
+
(function (TSToChartEvent) {
|
|
6
|
+
TSToChartEvent["Initialize"] = "Initialize";
|
|
7
|
+
TSToChartEvent["InitializeComplete"] = "InitializeComplete";
|
|
8
|
+
TSToChartEvent["GetDataQuery"] = "GetDataQuery";
|
|
9
|
+
TSToChartEvent["ChartConfigValidate"] = "ChartConfigValidate";
|
|
10
|
+
TSToChartEvent["ChartModelUpdate"] = "ChartModelUpdate";
|
|
11
|
+
TSToChartEvent["DataUpdate"] = "DataUpdate";
|
|
12
|
+
TSToChartEvent["TriggerRenderChart"] = "TriggerRenderChart";
|
|
13
|
+
TSToChartEvent["VisualPropsValidate"] = "VisualPropsValidate";
|
|
14
|
+
TSToChartEvent["VisualPropsUpdate"] = "VisualPropsUpdate";
|
|
15
|
+
})(TSToChartEvent = exports.TSToChartEvent || (exports.TSToChartEvent = {}));
|
|
16
|
+
//# sourceMappingURL=ts-to-chart-event.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-to-chart-event.types.js","sourceRoot":"","sources":["../../src/types/ts-to-chart-event.types.ts"],"names":[],"mappings":";;;AAkBA,IAAY,cAyCX;AAzCD,WAAY,cAAc;IAItB,2CAAyB,CAAA;IAIzB,2DAAyC,CAAA;IAKzC,+CAA6B,CAAA;IAK7B,6DAA2C,CAAA;IAI3C,uDAAqC,CAAA;IAIrC,2CAAyB,CAAA;IAKzB,2DAAyC,CAAA;IAKzC,6DAA2C,CAAA;IAI3C,yDAAuC,CAAA;AAC3C,CAAC,EAzCW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAyCzB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface TextInputFormDetail {
|
|
2
|
+
type: 'text';
|
|
3
|
+
key: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
password?: boolean;
|
|
6
|
+
multiline?: boolean;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
defaultValue?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ToggleFormDetail {
|
|
11
|
+
type: 'toggle';
|
|
12
|
+
key: string;
|
|
13
|
+
label?: string;
|
|
14
|
+
defaultValue?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface CheckboxFormDetail {
|
|
17
|
+
type: 'checkbox';
|
|
18
|
+
key: string;
|
|
19
|
+
label?: string;
|
|
20
|
+
defaultValue?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface RadioButtonFormDetail {
|
|
23
|
+
type: 'radio';
|
|
24
|
+
key: string;
|
|
25
|
+
label?: string;
|
|
26
|
+
defaultValue?: string;
|
|
27
|
+
values: string[];
|
|
28
|
+
}
|
|
29
|
+
export interface DropDownFormDetail {
|
|
30
|
+
type: 'dropdown';
|
|
31
|
+
key: string;
|
|
32
|
+
label?: string;
|
|
33
|
+
defaultValue?: string;
|
|
34
|
+
values: string[];
|
|
35
|
+
}
|
|
36
|
+
export interface Section {
|
|
37
|
+
type: 'section';
|
|
38
|
+
key: string;
|
|
39
|
+
label?: string;
|
|
40
|
+
children?: PropElement[];
|
|
41
|
+
alignment?: 'row' | 'column';
|
|
42
|
+
}
|
|
43
|
+
export type PropElement = Section | TextInputFormDetail | ToggleFormDetail | CheckboxFormDetail | RadioButtonFormDetail | DropDownFormDetail;
|
|
44
|
+
export interface VisualPropEditorDefinition {
|
|
45
|
+
elements: PropElement[];
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=visual-prop.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-prop.types.d.ts","sourceRoot":"","sources":["../../src/types/visual-prop.types.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IAMb,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAOf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAOnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAMpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAOD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,QAAQ,CAAC;IAMf,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAOD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,UAAU,CAAC;IAMjB,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAOD,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,OAAO,CAAC;IAMd,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAOD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,UAAU,CAAC;IAMjB,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAOD,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,SAAS,CAAC;IAMhB,GAAG,EAAE,MAAM,CAAC;IAMZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAMzB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAChC;AAOD,MAAM,MAAM,WAAW,GACjB,OAAO,GACP,mBAAmB,GACnB,gBAAgB,GAChB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,CAAC;AAOzB,MAAM,WAAW,0BAA0B;IAOvC,QAAQ,EAAE,WAAW,EAAE,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-prop.types.js","sourceRoot":"","sources":["../../src/types/visual-prop.types.ts"],"names":[],"mappings":""}
|
|
@@ -26,11 +26,12 @@ export declare class CustomChartContext {
|
|
|
26
26
|
private onInternal;
|
|
27
27
|
destroy(): void;
|
|
28
28
|
getChartModel: () => ChartModel;
|
|
29
|
-
emitEvent<T extends keyof ChartToTSEventsPayloadMap>(eventType: T, eventPayload: ChartToTSEventsPayloadMap[T]): Promise<any>;
|
|
29
|
+
emitEvent<T extends keyof ChartToTSEventsPayloadMap>(eventType: T, ...eventPayload: ChartToTSEventsPayloadMap[T]): Promise<any>;
|
|
30
30
|
private registerEventProcessor;
|
|
31
31
|
private eventProcessor;
|
|
32
32
|
private registerEvents;
|
|
33
33
|
private initializeContext;
|
|
34
|
+
private initializationComplete;
|
|
34
35
|
private publishChartContextPropsToHost;
|
|
35
36
|
private executeEventListenerCBs;
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-chart-context.d.ts","sourceRoot":"","sources":["../../src/main/custom-chart-context.ts"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"custom-chart-context.d.ts","sourceRoot":"","sources":["../../src/main/custom-chart-context.ts"],"names":[],"mappings":"AAQA,OAAO,EAEH,yBAAyB,EAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACH,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAQH,KAAK,EAEL,yBAAyB,EAI5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAKxE,MAAM,MAAM,uBAAuB,GAAG;IAQlC,qBAAqB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,WAAW,EAAE,CAAC;IAQjE,yBAAyB,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;IAQnE,WAAW,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAUxD,cAAc,CAAC,EAAE,CACb,aAAa,EAAE,WAAW,EAAE,EAC5B,UAAU,EAAE,UAAU,KACrB,kBAAkB,CAAC;IAWxB,mBAAmB,CAAC,EAAE,CAClB,kBAAkB,EAAE,WAAW,EAC/B,UAAU,EAAE,UAAU,KACrB,kBAAkB,CAAC;IAQxB,2BAA2B,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAS5D,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;CAC3D,CAAC;AAYF,qBAAa,kBAAkB;IAU3B,OAAO,CAAC,WAAW,CAAM;IASzB,OAAO,CAAC,OAAO,CAAM;IAQrB,OAAO,CAAC,UAAU,CAAyB;IAO3C,OAAO,CAAC,iBAAiB,CACkC;IAQ3D,OAAO,CAAC,cAAc,CAAoD;IAW1E,OAAO,CAAC,qBAAqB,CAAgB;IAS7C,OAAO,CAAC,kBAAkB,CAAsB;gBAOpC,iBAAiB,EAAE,uBAAuB;IAkB/C,UAAU,QAAO,QAAQ,IAAI,CAAC,CAGnC;IAUK,EAAE,CAAC,CAAC,SAAS,MAAM,yBAAyB,EAC/C,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACzC,IAAI;IAiBP,OAAO,CAAC,UAAU;IAgBX,OAAO;IAUP,aAAa,QAAO,UAAU,CAAoB;IAUlD,SAAS,CAAC,CAAC,SAAS,MAAM,yBAAyB,EACtD,SAAS,EAAE,CAAC,EACZ,GAAG,YAAY,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAC9C,OAAO,CAAC,GAAG,CAAC;IAmBf,OAAO,CAAC,sBAAsB,CAU5B;IAOF,OAAO,CAAC,cAAc,CAuBpB;IAOF,OAAO,CAAC,cAAc,CA6IpB;IASF,OAAO,CAAC,iBAAiB,CAQvB;IAEF,OAAO,CAAC,sBAAsB,CAM5B;IAEF,OAAO,CAAC,8BAA8B,CA8BhC;IAQN,OAAO,CAAC,uBAAuB,CAyB7B;CACL;AAQD,eAAO,MAAM,eAAe,sBACL,uBAAuB,KAC3C,QAAQ,kBAAkB,CAO5B,CAAC"}
|
|
@@ -49,6 +49,7 @@ export class CustomChartContext {
|
|
|
49
49
|
};
|
|
50
50
|
this.registerEvents = () => {
|
|
51
51
|
this.onInternal(TSToChartEvent.Initialize, (payload) => this.initializeContext(payload));
|
|
52
|
+
this.onInternal(TSToChartEvent.InitializeComplete, () => this.initializationComplete());
|
|
52
53
|
this.onInternal(TSToChartEvent.VisualPropsValidate, (payload) => {
|
|
53
54
|
if (this.chartContextProps.validateVisualProps) {
|
|
54
55
|
const validationResponse = this.chartContextProps.validateVisualProps(payload.visualProps, this.chartModel);
|
|
@@ -69,8 +70,8 @@ export class CustomChartContext {
|
|
|
69
70
|
queries,
|
|
70
71
|
};
|
|
71
72
|
});
|
|
72
|
-
this.onInternal(TSToChartEvent.TriggerRenderChart,
|
|
73
|
-
|
|
73
|
+
this.onInternal(TSToChartEvent.TriggerRenderChart, () => {
|
|
74
|
+
this.chartContextProps.renderChart(this);
|
|
74
75
|
});
|
|
75
76
|
this.on(TSToChartEvent.ChartModelUpdate, (payload) => {
|
|
76
77
|
this.chartModel = payload.chartModel;
|
|
@@ -95,9 +96,11 @@ export class CustomChartContext {
|
|
|
95
96
|
this.componentId = payload.componentId;
|
|
96
97
|
this.hostUrl = payload.hostUrl;
|
|
97
98
|
this.chartModel = payload.chartModel;
|
|
99
|
+
return this.publishChartContextPropsToHost();
|
|
100
|
+
};
|
|
101
|
+
this.initializationComplete = () => {
|
|
98
102
|
isInitialized = true;
|
|
99
103
|
this.triggerInitResolve();
|
|
100
|
-
return this.publishChartContextPropsToHost();
|
|
101
104
|
};
|
|
102
105
|
this.publishChartContextPropsToHost = () => {
|
|
103
106
|
var _a;
|
|
@@ -140,7 +143,7 @@ export class CustomChartContext {
|
|
|
140
143
|
...chartContextProps,
|
|
141
144
|
};
|
|
142
145
|
this.registerEventProcessor();
|
|
143
|
-
this.hasInitializedPromise = new Promise((resolve) => {
|
|
146
|
+
this.hasInitializedPromise = new Promise((resolve, reject) => {
|
|
144
147
|
this.triggerInitResolve = resolve;
|
|
145
148
|
});
|
|
146
149
|
}
|
|
@@ -160,12 +163,13 @@ export class CustomChartContext {
|
|
|
160
163
|
PostMessageEventBridge.destroyMessageListener(this.eventProcessor);
|
|
161
164
|
isInitialized = false;
|
|
162
165
|
}
|
|
163
|
-
emitEvent(eventType, eventPayload) {
|
|
166
|
+
emitEvent(eventType, ...eventPayload) {
|
|
167
|
+
var _a;
|
|
164
168
|
if (!isInitialized) {
|
|
165
169
|
console.log('Chart Context: not initialized the context, something went wrong');
|
|
166
|
-
return Promise.reject();
|
|
170
|
+
return Promise.reject(new Error('Context not initialized'));
|
|
167
171
|
}
|
|
168
|
-
return PostMessageEventBridge.postMessageToHostApp(this.componentId, this.hostUrl, eventPayload, eventType);
|
|
172
|
+
return PostMessageEventBridge.postMessageToHostApp(this.componentId, this.hostUrl, (_a = eventPayload === null || eventPayload === void 0 ? void 0 : eventPayload[0]) !== null && _a !== void 0 ? _a : null, eventType);
|
|
169
173
|
}
|
|
170
174
|
}
|
|
171
175
|
export const getChartContext = async (customChartConfig) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-chart-context.js","sourceRoot":"","sources":["../../src/main/custom-chart-context.ts"],"names":[],"mappings":"AAOA,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"custom-chart-context.js","sourceRoot":"","sources":["../../src/main/custom-chart-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mockInitializeContextPayload } from '../test/test-utils';
|
|
2
|
-
import { ErrorType } from '../types/chart-to-ts-event.types';
|
|
2
|
+
import { ChartToTSEvent, ErrorType } from '../types/chart-to-ts-event.types';
|
|
3
3
|
import { TSToChartEvent } from '../types/ts-to-chart-event.types';
|
|
4
4
|
import { CustomChartContext, getChartContext } from './custom-chart-context';
|
|
5
5
|
import * as PostMessageEventBridge from './post-message-event-bridge';
|
|
@@ -7,7 +7,7 @@ jest.mock('./post-message-event-bridge');
|
|
|
7
7
|
jest.spyOn(console, 'log').mockImplementation(() => {
|
|
8
8
|
});
|
|
9
9
|
describe('CustomChartContext', () => {
|
|
10
|
-
let
|
|
10
|
+
let eventProcessor;
|
|
11
11
|
let getDefaultChartConfig = jest.fn();
|
|
12
12
|
let getQueriesFromChartConfig = jest.fn();
|
|
13
13
|
let renderChart = jest.fn();
|
|
@@ -18,7 +18,10 @@ describe('CustomChartContext', () => {
|
|
|
18
18
|
getQueriesFromChartConfig = jest.fn();
|
|
19
19
|
renderChart = jest.fn();
|
|
20
20
|
mockInitMessage.mockImplementation((fn) => {
|
|
21
|
-
|
|
21
|
+
eventProcessor = fn;
|
|
22
|
+
});
|
|
23
|
+
mockPostMessageToHost.mockImplementation(() => {
|
|
24
|
+
return global.Promise.resolve();
|
|
22
25
|
});
|
|
23
26
|
});
|
|
24
27
|
describe('initialize', () => {
|
|
@@ -31,9 +34,9 @@ describe('CustomChartContext', () => {
|
|
|
31
34
|
});
|
|
32
35
|
});
|
|
33
36
|
afterEach(() => {
|
|
34
|
-
customChartContext.destroy();
|
|
35
37
|
jest.resetAllMocks();
|
|
36
|
-
|
|
38
|
+
customChartContext.destroy();
|
|
39
|
+
eventProcessor = null;
|
|
37
40
|
});
|
|
38
41
|
test('should wait till the parent calls initialize', async () => {
|
|
39
42
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
@@ -51,7 +54,7 @@ describe('CustomChartContext', () => {
|
|
|
51
54
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
52
55
|
const promise = customChartContext.initialize();
|
|
53
56
|
const mockPostMessage = jest.fn();
|
|
54
|
-
|
|
57
|
+
eventProcessor({
|
|
55
58
|
data: {
|
|
56
59
|
payload: mockInitializeContextPayload,
|
|
57
60
|
eventType: TSToChartEvent.Initialize,
|
|
@@ -59,8 +62,17 @@ describe('CustomChartContext', () => {
|
|
|
59
62
|
},
|
|
60
63
|
ports: [{ postMessage: mockPostMessage }],
|
|
61
64
|
});
|
|
65
|
+
eventProcessor({
|
|
66
|
+
data: {
|
|
67
|
+
payload: {},
|
|
68
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
69
|
+
source: 'ts-host-app',
|
|
70
|
+
},
|
|
71
|
+
ports: [{ postMessage: mockPostMessage }],
|
|
72
|
+
});
|
|
62
73
|
await expect(promise).resolves.toBeUndefined();
|
|
63
|
-
expect(mockPostMessage).
|
|
74
|
+
expect(mockPostMessage).toHaveBeenCalledTimes(2);
|
|
75
|
+
expect(mockPostMessage.mock.calls[0][0]).toEqual({
|
|
64
76
|
isConfigValid: false,
|
|
65
77
|
defaultChartConfig: undefined,
|
|
66
78
|
chartConfigEditorDefinition: undefined,
|
|
@@ -72,7 +84,7 @@ describe('CustomChartContext', () => {
|
|
|
72
84
|
test('multiple intializations should throw an error', async () => {
|
|
73
85
|
const promise = customChartContext.initialize();
|
|
74
86
|
const mockPostMessage = jest.fn();
|
|
75
|
-
|
|
87
|
+
eventProcessor({
|
|
76
88
|
data: {
|
|
77
89
|
payload: mockInitializeContextPayload,
|
|
78
90
|
eventType: TSToChartEvent.Initialize,
|
|
@@ -80,6 +92,14 @@ describe('CustomChartContext', () => {
|
|
|
80
92
|
},
|
|
81
93
|
ports: [{ postMessage: mockPostMessage }],
|
|
82
94
|
});
|
|
95
|
+
eventProcessor({
|
|
96
|
+
data: {
|
|
97
|
+
payload: {},
|
|
98
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
99
|
+
source: 'ts-host-app',
|
|
100
|
+
},
|
|
101
|
+
ports: [{ postMessage: mockPostMessage }],
|
|
102
|
+
});
|
|
83
103
|
await expect(promise).resolves.toBeUndefined();
|
|
84
104
|
let error;
|
|
85
105
|
try {
|
|
@@ -118,12 +138,12 @@ describe('CustomChartContext', () => {
|
|
|
118
138
|
afterEach(() => {
|
|
119
139
|
jest.resetAllMocks();
|
|
120
140
|
customChartContext.destroy();
|
|
121
|
-
|
|
141
|
+
eventProcessor = null;
|
|
122
142
|
});
|
|
123
143
|
test('should not trigger post message if host is not accurate', () => {
|
|
124
144
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
125
145
|
const mockPostMessage = jest.fn();
|
|
126
|
-
|
|
146
|
+
eventProcessor({
|
|
127
147
|
data: {
|
|
128
148
|
payload: mockInitializeContextPayload,
|
|
129
149
|
eventType: TSToChartEvent.ChartConfigValidate,
|
|
@@ -136,7 +156,7 @@ describe('CustomChartContext', () => {
|
|
|
136
156
|
test('default internal function testing', () => {
|
|
137
157
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
138
158
|
const mockPostMessage = jest.fn();
|
|
139
|
-
|
|
159
|
+
eventProcessor({
|
|
140
160
|
data: {
|
|
141
161
|
payload: mockInitializeContextPayload,
|
|
142
162
|
eventType: TSToChartEvent.ChartConfigValidate,
|
|
@@ -148,7 +168,7 @@ describe('CustomChartContext', () => {
|
|
|
148
168
|
isValid: true,
|
|
149
169
|
});
|
|
150
170
|
mockPostMessage.mockReset();
|
|
151
|
-
|
|
171
|
+
eventProcessor({
|
|
152
172
|
data: {
|
|
153
173
|
payload: mockInitializeContextPayload,
|
|
154
174
|
eventType: TSToChartEvent.VisualPropsValidate,
|
|
@@ -160,7 +180,7 @@ describe('CustomChartContext', () => {
|
|
|
160
180
|
isValid: true,
|
|
161
181
|
});
|
|
162
182
|
mockPostMessage.mockReset();
|
|
163
|
-
|
|
183
|
+
eventProcessor({
|
|
164
184
|
data: {
|
|
165
185
|
payload: mockInitializeContextPayload,
|
|
166
186
|
eventType: TSToChartEvent.TriggerRenderChart,
|
|
@@ -171,7 +191,7 @@ describe('CustomChartContext', () => {
|
|
|
171
191
|
expect(mockPostMessage).toHaveBeenCalledWith({});
|
|
172
192
|
expect(renderChart).toHaveBeenCalled();
|
|
173
193
|
mockPostMessage.mockReset();
|
|
174
|
-
|
|
194
|
+
eventProcessor({
|
|
175
195
|
data: {
|
|
176
196
|
payload: mockInitializeContextPayload,
|
|
177
197
|
eventType: TSToChartEvent.GetDataQuery,
|
|
@@ -185,7 +205,7 @@ describe('CustomChartContext', () => {
|
|
|
185
205
|
test('default external function testing', () => {
|
|
186
206
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
187
207
|
const mockPostMessage = jest.fn();
|
|
188
|
-
|
|
208
|
+
eventProcessor({
|
|
189
209
|
data: {
|
|
190
210
|
payload: {
|
|
191
211
|
data: 'random data',
|
|
@@ -200,7 +220,7 @@ describe('CustomChartContext', () => {
|
|
|
200
220
|
});
|
|
201
221
|
expect(customChartContext.getChartModel().data).toBe('random data');
|
|
202
222
|
mockPostMessage.mockReset();
|
|
203
|
-
|
|
223
|
+
eventProcessor({
|
|
204
224
|
data: {
|
|
205
225
|
payload: {
|
|
206
226
|
chartModel: {
|
|
@@ -219,7 +239,7 @@ describe('CustomChartContext', () => {
|
|
|
219
239
|
expect(customChartContext.getChartModel().data).toBe('random data2');
|
|
220
240
|
expect(customChartContext.getChartModel().visualProps).toBe(null);
|
|
221
241
|
mockPostMessage.mockReset();
|
|
222
|
-
|
|
242
|
+
eventProcessor({
|
|
223
243
|
data: {
|
|
224
244
|
payload: {
|
|
225
245
|
visualProps: 'random data',
|
|
@@ -240,7 +260,7 @@ describe('CustomChartContext', () => {
|
|
|
240
260
|
const testCallbackFn = jest.fn();
|
|
241
261
|
customChartContext.on(TEST_EVENT_TYPE, testCallbackFn);
|
|
242
262
|
const mockPostMessage = jest.fn();
|
|
243
|
-
|
|
263
|
+
eventProcessor({
|
|
244
264
|
data: {
|
|
245
265
|
payload: mockInitializeContextPayload,
|
|
246
266
|
eventType: TEST_EVENT_TYPE,
|
|
@@ -254,7 +274,7 @@ describe('CustomChartContext', () => {
|
|
|
254
274
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
255
275
|
const TEST_EVENT_TYPE = 'testEventType';
|
|
256
276
|
const mockPostMessage = jest.fn();
|
|
257
|
-
|
|
277
|
+
eventProcessor({
|
|
258
278
|
data: {
|
|
259
279
|
payload: mockInitializeContextPayload,
|
|
260
280
|
eventType: TEST_EVENT_TYPE,
|
|
@@ -278,20 +298,20 @@ describe('CustomChartContext', () => {
|
|
|
278
298
|
});
|
|
279
299
|
});
|
|
280
300
|
afterEach(() => {
|
|
281
|
-
jest.resetAllMocks();
|
|
282
301
|
customChartContext.destroy();
|
|
283
|
-
|
|
302
|
+
eventProcessor = null;
|
|
303
|
+
jest.resetAllMocks();
|
|
284
304
|
});
|
|
285
305
|
test('should reject the promise if the chart context is not initialized', async () => {
|
|
286
306
|
const TEST_EVENT_TYPE = 'testEventType';
|
|
287
307
|
const testPayload = { value: 'testPayload' };
|
|
288
308
|
const result = customChartContext.emitEvent(TEST_EVENT_TYPE, testPayload);
|
|
289
309
|
expect(mockPostMessageToHost).not.toHaveBeenCalled();
|
|
290
|
-
await expect(result).rejects.
|
|
310
|
+
await expect(result).rejects.toBeDefined();
|
|
291
311
|
});
|
|
292
312
|
test('should resolve the promise if the chart context is initialized', async () => {
|
|
293
313
|
const mockPostMessage = jest.fn();
|
|
294
|
-
|
|
314
|
+
eventProcessor({
|
|
295
315
|
data: {
|
|
296
316
|
payload: mockInitializeContextPayload,
|
|
297
317
|
eventType: TSToChartEvent.Initialize,
|
|
@@ -299,6 +319,17 @@ describe('CustomChartContext', () => {
|
|
|
299
319
|
},
|
|
300
320
|
ports: [{ postMessage: mockPostMessage }],
|
|
301
321
|
});
|
|
322
|
+
eventProcessor({
|
|
323
|
+
data: {
|
|
324
|
+
payload: {},
|
|
325
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
326
|
+
source: 'ts-host-app',
|
|
327
|
+
},
|
|
328
|
+
ports: [{ postMessage: mockPostMessage }],
|
|
329
|
+
});
|
|
330
|
+
const promise = customChartContext.initialize();
|
|
331
|
+
await expect(promise).resolves.toBeUndefined();
|
|
332
|
+
expect(mockPostMessage).toHaveBeenCalledTimes(2);
|
|
302
333
|
let resolve;
|
|
303
334
|
mockPostMessageToHost.mockImplementation(() => new global.Promise((res) => {
|
|
304
335
|
resolve = res;
|
|
@@ -306,9 +337,17 @@ describe('CustomChartContext', () => {
|
|
|
306
337
|
const TEST_EVENT_TYPE = 'testEventType';
|
|
307
338
|
const testPayload = { value: 'testPayload' };
|
|
308
339
|
const result = customChartContext.emitEvent(TEST_EVENT_TYPE, testPayload);
|
|
309
|
-
global.setTimeout(() => resolve('helloworld'),
|
|
340
|
+
global.setTimeout(() => resolve('helloworld'), 1000);
|
|
341
|
+
await expect(result).resolves.toEqual('helloworld');
|
|
310
342
|
expect(mockPostMessageToHost).toHaveBeenCalledWith(mockInitializeContextPayload.componentId, mockInitializeContextPayload.hostUrl, testPayload, TEST_EVENT_TYPE);
|
|
311
|
-
|
|
343
|
+
mockPostMessageToHost.mockReset();
|
|
344
|
+
mockPostMessageToHost.mockImplementation(() => new global.Promise((res) => {
|
|
345
|
+
resolve = res;
|
|
346
|
+
}));
|
|
347
|
+
const result2 = customChartContext.emitEvent(ChartToTSEvent.RenderStart);
|
|
348
|
+
global.setTimeout(() => resolve('helloworld'), 1000);
|
|
349
|
+
await expect(result2).resolves.toEqual('helloworld');
|
|
350
|
+
expect(mockPostMessageToHost).toHaveBeenCalledWith(mockInitializeContextPayload.componentId, mockInitializeContextPayload.hostUrl, null, ChartToTSEvent.RenderStart);
|
|
312
351
|
});
|
|
313
352
|
});
|
|
314
353
|
});
|