@thoughtspot/ts-chart-sdk 0.0.1-alpha.7 → 0.0.1-alpha.8

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 (70) hide show
  1. package/cjs/main/custom-chart-context.d.ts +1 -1
  2. package/cjs/main/custom-chart-context.d.ts.map +1 -1
  3. package/cjs/main/custom-chart-context.js +1 -2
  4. package/cjs/main/custom-chart-context.js.map +1 -1
  5. package/cjs/main/custom-chart-context.spec.js +0 -8
  6. package/cjs/main/custom-chart-context.spec.js.map +1 -1
  7. package/cjs/react/custom-chart-context-service.d.ts +16 -5
  8. package/cjs/react/custom-chart-context-service.d.ts.map +1 -1
  9. package/cjs/react/custom-chart-context-service.js +35 -34
  10. package/cjs/react/custom-chart-context-service.js.map +1 -1
  11. package/cjs/react/custom-chart.spec.js +53 -282
  12. package/cjs/react/custom-chart.spec.js.map +1 -1
  13. package/cjs/react/mocks/custom-chart-context-mock.d.ts.map +1 -1
  14. package/cjs/react/mocks/custom-chart-context-mock.js +30 -32
  15. package/cjs/react/mocks/custom-chart-context-mock.js.map +1 -1
  16. package/cjs/types/chart-to-ts-event.types.d.ts +21 -0
  17. package/cjs/types/chart-to-ts-event.types.d.ts.map +1 -1
  18. package/cjs/types/chart-to-ts-event.types.js +9 -1
  19. package/cjs/types/chart-to-ts-event.types.js.map +1 -1
  20. package/cjs/types/visual-prop.types.d.ts +23 -9
  21. package/cjs/types/visual-prop.types.d.ts.map +1 -1
  22. package/dist/ts-chart-sdk.d.ts +312 -0
  23. package/lib/dist/ts-chart-sdk.d.ts +312 -0
  24. package/lib/main/custom-chart-context.d.ts +1 -1
  25. package/lib/main/custom-chart-context.d.ts.map +1 -1
  26. package/lib/main/custom-chart-context.js +1 -1
  27. package/lib/main/custom-chart-context.js.map +1 -1
  28. package/lib/main/custom-chart-context.spec.js +0 -8
  29. package/lib/main/custom-chart-context.spec.js.map +1 -1
  30. package/lib/react/custom-chart-context-service.d.ts +16 -5
  31. package/lib/react/custom-chart-context-service.d.ts.map +1 -1
  32. package/lib/react/custom-chart-context-service.js +35 -34
  33. package/lib/react/custom-chart-context-service.js.map +1 -1
  34. package/lib/react/custom-chart.spec.js +54 -260
  35. package/lib/react/custom-chart.spec.js.map +1 -1
  36. package/lib/react/mocks/custom-chart-context-mock.d.ts.map +1 -1
  37. package/lib/react/mocks/custom-chart-context-mock.js +30 -32
  38. package/lib/react/mocks/custom-chart-context-mock.js.map +1 -1
  39. package/lib/types/chart-to-ts-event.types.d.ts +21 -0
  40. package/lib/types/chart-to-ts-event.types.d.ts.map +1 -1
  41. package/lib/types/chart-to-ts-event.types.js +8 -0
  42. package/lib/types/chart-to-ts-event.types.js.map +1 -1
  43. package/lib/types/visual-prop.types.d.ts +23 -9
  44. package/lib/types/visual-prop.types.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/types/chart-to-ts-event.types.ts +104 -5
  47. package/cjs/react/custom-chart-context-hook.d.ts +0 -22
  48. package/cjs/react/custom-chart-context-hook.d.ts.map +0 -1
  49. package/cjs/react/custom-chart-context-hook.js +0 -116
  50. package/cjs/react/custom-chart-context-hook.js.map +0 -1
  51. package/cjs/react/custom-chart-context-hook.spec.d.ts +0 -2
  52. package/cjs/react/custom-chart-context-hook.spec.d.ts.map +0 -1
  53. package/cjs/react/custom-chart-context-hook.spec.js +0 -343
  54. package/cjs/react/custom-chart-context-hook.spec.js.map +0 -1
  55. package/cjs/react/mocks/custom-chart-context-hook.d.ts +0 -3
  56. package/cjs/react/mocks/custom-chart-context-hook.d.ts.map +0 -1
  57. package/cjs/react/mocks/custom-chart-context-hook.js +0 -100
  58. package/cjs/react/mocks/custom-chart-context-hook.js.map +0 -1
  59. package/lib/react/custom-chart-context-hook.d.ts +0 -22
  60. package/lib/react/custom-chart-context-hook.d.ts.map +0 -1
  61. package/lib/react/custom-chart-context-hook.js +0 -86
  62. package/lib/react/custom-chart-context-hook.js.map +0 -1
  63. package/lib/react/custom-chart-context-hook.spec.d.ts +0 -2
  64. package/lib/react/custom-chart-context-hook.spec.d.ts.map +0 -1
  65. package/lib/react/custom-chart-context-hook.spec.js +0 -315
  66. package/lib/react/custom-chart-context-hook.spec.js.map +0 -1
  67. package/lib/react/mocks/custom-chart-context-hook.d.ts +0 -3
  68. package/lib/react/mocks/custom-chart-context-hook.d.ts.map +0 -1
  69. package/lib/react/mocks/custom-chart-context-hook.js +0 -94
  70. package/lib/react/mocks/custom-chart-context-hook.js.map +0 -1
@@ -1,315 +0,0 @@
1
- import { render, waitFor } from '@testing-library/react';
2
- import { renderHook } from '@testing-library/react-hooks';
3
- import React from 'react';
4
- import { resetInitialized } from '../main/custom-chart-context';
5
- import * as PostMessageEventBridge from '../main/post-message-event-bridge';
6
- import { mockInitializeContextPayload } from '../test/test-utils';
7
- import { ChartToTSEvent } from '../types/chart-to-ts-event.types';
8
- import { TSToChartEvent } from '../types/ts-to-chart-event.types';
9
- import { useChartContext } from './custom-chart-context-hook';
10
- import { contextChartProps } from './mocks/custom-chart-context-mock';
11
- jest.mock('../main/post-message-event-bridge');
12
- describe('useChartContext initialization', () => {
13
- let eventProcessor;
14
- let mockInitMessage;
15
- let mockPostMessageToHost;
16
- const mockedChartModel = { columns: [], config: {} };
17
- beforeEach(() => {
18
- mockInitMessage = jest.spyOn(PostMessageEventBridge, 'initMessageListener');
19
- mockPostMessageToHost = jest.spyOn(PostMessageEventBridge, 'postMessageToHostApp');
20
- mockInitMessage.mockImplementation((fn) => {
21
- eventProcessor = fn;
22
- });
23
- mockPostMessageToHost.mockImplementation(() => {
24
- return global.Promise.resolve();
25
- });
26
- });
27
- afterEach(() => {
28
- jest.clearAllMocks();
29
- resetInitialized();
30
- });
31
- test('should initialize the context only after intialize completes', async () => {
32
- const { result, waitFor } = renderHook(() => useChartContext(contextChartProps));
33
- expect(result.current.hasInitialized).toBe(false);
34
- expect(result.current.chartModel).toBeUndefined();
35
- const mockPostMessage = jest.fn();
36
- eventProcessor({
37
- data: {
38
- payload: {
39
- componentId: 'COMPONENT_ID',
40
- hostUrl: 'https://some.chart.app',
41
- chartModel: mockedChartModel,
42
- },
43
- eventType: TSToChartEvent.Initialize,
44
- source: 'ts-host-app',
45
- },
46
- ports: [{ postMessage: mockPostMessage }],
47
- });
48
- eventProcessor({
49
- data: {
50
- payload: {},
51
- eventType: TSToChartEvent.InitializeComplete,
52
- source: 'ts-host-app',
53
- },
54
- ports: [{ postMessage: mockPostMessage }],
55
- });
56
- await waitFor(() => {
57
- expect(result.current.hasInitialized).toBe(true);
58
- expect(result.current.chartModel).toEqual(mockedChartModel);
59
- });
60
- });
61
- test('should make sure hasInitialized to remain false when context initialization failed', async () => {
62
- jest.mock('../main/custom-chart-context', () => ({
63
- CustomChartContext: jest.fn().mockImplementation(() => ({
64
- initialize: jest
65
- .fn()
66
- .mockRejectedValue(new Error('Initialization failed')),
67
- emitEvent: jest.fn(),
68
- on: jest.fn(),
69
- getChartModel: jest.fn(),
70
- renderChart: jest.fn(),
71
- })),
72
- }));
73
- const { result, waitFor } = renderHook(() => useChartContext({
74
- ...contextChartProps,
75
- }));
76
- await waitFor(() => {
77
- expect(result.current.hasInitialized).toBe(false);
78
- expect(result.current.chartModel).toBeUndefined();
79
- });
80
- });
81
- });
82
- describe('useChartContext emit', () => {
83
- let eventProcessor;
84
- let mockInitMessage;
85
- let mockPostMessageToHost;
86
- beforeEach(() => {
87
- mockInitMessage = jest.spyOn(PostMessageEventBridge, 'initMessageListener');
88
- mockPostMessageToHost = jest.spyOn(PostMessageEventBridge, 'postMessageToHostApp');
89
- mockInitMessage.mockImplementation((fn) => {
90
- eventProcessor = fn;
91
- });
92
- mockPostMessageToHost.mockImplementation(() => {
93
- return global.Promise.resolve();
94
- });
95
- });
96
- afterEach(() => {
97
- jest.clearAllMocks();
98
- resetInitialized();
99
- });
100
- test('should trigger the emitter correctly when context is initialized', async () => {
101
- const { result, waitFor } = renderHook(() => useChartContext(contextChartProps));
102
- const mockPostMessage = jest.fn();
103
- eventProcessor({
104
- data: {
105
- payload: mockInitializeContextPayload,
106
- eventType: TSToChartEvent.Initialize,
107
- source: 'ts-host-app',
108
- },
109
- ports: [{ postMessage: mockPostMessage }],
110
- });
111
- eventProcessor({
112
- data: {
113
- payload: {},
114
- eventType: TSToChartEvent.InitializeComplete,
115
- source: 'ts-host-app',
116
- },
117
- ports: [{ postMessage: mockPostMessage }],
118
- });
119
- await waitFor(() => {
120
- expect(result.current.hasInitialized).toBe(true);
121
- });
122
- const contextPayload = {
123
- clickedPoint: { tuple: [{ columnId: '123', value: 12 }] },
124
- event: {},
125
- };
126
- result.current.emitOpenContextMenu([contextPayload]);
127
- expect(mockPostMessageToHost).toHaveBeenCalledWith(mockInitializeContextPayload.componentId, mockInitializeContextPayload.hostUrl, contextPayload, ChartToTSEvent.OpenContextMenu);
128
- });
129
- test('should not defined emitter when context is not initialized', async () => {
130
- const { result, waitFor } = renderHook(() => useChartContext(contextChartProps));
131
- const mockPostMessage = jest.fn();
132
- eventProcessor({
133
- data: {
134
- payload: mockInitializeContextPayload,
135
- eventType: TSToChartEvent.Initialize,
136
- source: 'ts-host-app',
137
- },
138
- ports: [{ postMessage: mockPostMessage }],
139
- });
140
- await waitFor(() => {
141
- expect(result.current.hasInitialized).toBe(false);
142
- });
143
- result.current.emitRenderStart([]);
144
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
145
- });
146
- });
147
- describe('useChartContext on listeners', () => {
148
- let eventProcessor;
149
- let mockInitMessage;
150
- let mockPostMessageToHost;
151
- const mockedChartModel = { columns: [], config: {} };
152
- beforeEach(() => {
153
- mockInitMessage = jest.spyOn(PostMessageEventBridge, 'initMessageListener');
154
- mockPostMessageToHost = jest.spyOn(PostMessageEventBridge, 'postMessageToHostApp');
155
- mockInitMessage.mockImplementation((fn) => {
156
- eventProcessor = fn;
157
- });
158
- mockPostMessageToHost.mockImplementation(() => {
159
- return global.Promise.resolve();
160
- });
161
- });
162
- afterEach(() => {
163
- jest.clearAllMocks();
164
- resetInitialized();
165
- });
166
- test('should trigger the onEvent correctly when context is initialized', async () => {
167
- const { result, waitFor } = renderHook(() => useChartContext(contextChartProps));
168
- expect(result.current.hasInitialized).toBe(false);
169
- expect(result.current.chartModel).toBeUndefined();
170
- const mockPostMessage = jest.fn();
171
- eventProcessor({
172
- data: {
173
- payload: {
174
- componentId: 'COMPONENT_ID',
175
- hostUrl: 'https://some.chart.app',
176
- chartModel: mockedChartModel,
177
- },
178
- eventType: TSToChartEvent.Initialize,
179
- source: 'ts-host-app',
180
- },
181
- ports: [{ postMessage: mockPostMessage }],
182
- });
183
- eventProcessor({
184
- data: {
185
- payload: {},
186
- eventType: TSToChartEvent.InitializeComplete,
187
- source: 'ts-host-app',
188
- },
189
- ports: [{ postMessage: mockPostMessage }],
190
- });
191
- await waitFor(() => {
192
- expect(result.current.hasInitialized).toBe(true);
193
- expect(result.current.chartModel).toEqual(mockedChartModel);
194
- });
195
- eventProcessor({
196
- data: {
197
- payload: { chartModel: {} },
198
- eventType: TSToChartEvent.ChartModelUpdate,
199
- source: 'ts-host-app',
200
- },
201
- ports: [{ postMessage: mockPostMessage }],
202
- });
203
- await waitFor(() => {
204
- expect(mockPostMessage).toHaveBeenCalledWith({
205
- triggerRenderChart: true,
206
- });
207
- expect(result.current.chartModel).toEqual({});
208
- });
209
- eventProcessor({
210
- data: {
211
- payload: { visualProps: { color: 'red' } },
212
- eventType: TSToChartEvent.VisualPropsUpdate,
213
- source: 'ts-host-app',
214
- },
215
- ports: [{ postMessage: mockPostMessage }],
216
- });
217
- expect(mockPostMessage).toHaveBeenCalledWith({
218
- triggerRenderChart: true,
219
- });
220
- await waitFor(() => {
221
- var _a;
222
- expect(mockPostMessage).toHaveBeenCalledWith({
223
- triggerRenderChart: true,
224
- });
225
- expect((_a = result.current.chartModel) === null || _a === void 0 ? void 0 : _a.visualProps).toEqual({
226
- color: 'red',
227
- });
228
- });
229
- });
230
- });
231
- describe('useChartContext on React Wrapper component', () => {
232
- let eventProcessor;
233
- let mockInitMessage;
234
- let mockPostMessageToHost;
235
- beforeEach(() => {
236
- mockInitMessage = jest.spyOn(PostMessageEventBridge, 'initMessageListener');
237
- mockPostMessageToHost = jest.spyOn(PostMessageEventBridge, 'postMessageToHostApp');
238
- mockInitMessage.mockImplementation((fn) => {
239
- eventProcessor = fn;
240
- });
241
- mockPostMessageToHost.mockImplementation(() => {
242
- return global.Promise.resolve();
243
- });
244
- });
245
- afterEach(() => {
246
- jest.clearAllMocks();
247
- resetInitialized();
248
- });
249
- test('WrapperComponent renders children and should not increase counter for useEffect on chartModel if visualProps is updated', async () => {
250
- const CustomChartComponent = () => {
251
- var _a, _b;
252
- const [counter, setCounter] = React.useState(0);
253
- const { WrapperComponent, chartModel } = useChartContext(contextChartProps);
254
- React.useEffect(() => {
255
- setCounter((prevCount) => prevCount + 1);
256
- }, [chartModel]);
257
- return (React.createElement(WrapperComponent, null,
258
- React.createElement("div", { "data-testid": "child-element" },
259
- "Child Element counter: ",
260
- counter, (_b = (_a = chartModel === null || chartModel === void 0 ? void 0 : chartModel.visualProps) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : '')));
261
- };
262
- const { getByTestId } = render(React.createElement(CustomChartComponent, null));
263
- const childElement = getByTestId('child-element');
264
- await waitFor(() => {
265
- expect(childElement.textContent).toBe('Child Element counter: 1');
266
- });
267
- const mockPostMessage = jest.fn();
268
- eventProcessor({
269
- data: {
270
- payload: { visualProps: { color: 'red' } },
271
- eventType: TSToChartEvent.VisualPropsUpdate,
272
- source: 'ts-host-app',
273
- },
274
- ports: [{ postMessage: mockPostMessage }],
275
- });
276
- const updatedChildElement = getByTestId('child-element');
277
- await waitFor(() => {
278
- expect(updatedChildElement.textContent).toBe('Child Element counter: 1red');
279
- });
280
- });
281
- test('WrapperComponent renders children should increase counter for useEffect on chartModel.visualProps if visualProps is updated', async () => {
282
- const CustomChartComponent = () => {
283
- var _a, _b;
284
- const [counter, setCounter] = React.useState(0);
285
- const { WrapperComponent, chartModel } = useChartContext(contextChartProps);
286
- React.useEffect(() => {
287
- setCounter((prevCount) => prevCount + 1);
288
- }, [chartModel === null || chartModel === void 0 ? void 0 : chartModel.visualProps]);
289
- return (React.createElement(WrapperComponent, null,
290
- React.createElement("div", { "data-testid": "child-element" },
291
- "Child Element counter: ",
292
- counter, (_b = (_a = chartModel === null || chartModel === void 0 ? void 0 : chartModel.visualProps) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : '')));
293
- };
294
- const { getByTestId, rerender } = render(React.createElement(CustomChartComponent, null));
295
- const childElement = getByTestId('child-element');
296
- await waitFor(() => {
297
- expect(childElement.textContent).toBe('Child Element counter: 1');
298
- });
299
- const mockPostMessage = jest.fn();
300
- eventProcessor({
301
- data: {
302
- payload: { visualProps: { color: 'red' } },
303
- eventType: TSToChartEvent.VisualPropsUpdate,
304
- source: 'ts-host-app',
305
- },
306
- ports: [{ postMessage: mockPostMessage }],
307
- });
308
- rerender(React.createElement(CustomChartComponent, null));
309
- const updatedChildElement = getByTestId('child-element');
310
- await waitFor(() => {
311
- expect(updatedChildElement.textContent).toBe('Child Element counter: 2red');
312
- });
313
- });
314
- });
315
- //# sourceMappingURL=custom-chart-context-hook.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart-context-hook.spec.js","sourceRoot":"","sources":["../../src/react/custom-chart-context-hook.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { CustomChartContextProps } from '../../main/custom-chart-context';
2
- export declare const contextChartProps: CustomChartContextProps;
3
- //# sourceMappingURL=custom-chart-context-hook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart-context-hook.d.ts","sourceRoot":"","sources":["../../../src/react/mocks/custom-chart-context-hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAK1E,eAAO,MAAM,iBAAiB,EAAE,uBA2G/B,CAAC"}
@@ -1,94 +0,0 @@
1
- import _ from 'lodash';
2
- import { ColumnType } from '../../types/answer-column.types';
3
- export const contextChartProps = {
4
- getDefaultChartConfig: (chartModel) => {
5
- const cols = chartModel.columns;
6
- const measureColumns = _.filter(cols, (col) => col.type === ColumnType.MEASURE);
7
- const attributeColumns = _.filter(cols, (col) => col.type === ColumnType.ATTRIBUTE);
8
- const axisConfig = {
9
- key: 'column',
10
- dimensions: [
11
- {
12
- key: 'x',
13
- columns: [attributeColumns[0]],
14
- },
15
- {
16
- key: 'y',
17
- columns: measureColumns.slice(0, 2),
18
- },
19
- ],
20
- };
21
- return [axisConfig];
22
- },
23
- getQueriesFromChartConfig: (chartConfig) => {
24
- const queries = chartConfig.map((config) => _.reduce(config.dimensions, (acc, dimension) => ({
25
- queryColumns: [
26
- ...acc.queryColumns,
27
- ...dimension.columns,
28
- ],
29
- }), {
30
- queryColumns: [],
31
- }));
32
- return queries;
33
- },
34
- chartConfigEditorDefinition: [
35
- {
36
- key: 'column',
37
- label: 'Custom Column',
38
- descriptionText: 'X Axis can only have attributes, Y Axis can only have measures, Color can only have attributes. ' +
39
- 'Should have just 1 column in Y axis with colors columns.',
40
- columnSections: [
41
- {
42
- key: 'x',
43
- label: 'Custom X Axis',
44
- allowAttributeColumns: true,
45
- allowMeasureColumns: false,
46
- allowTimeSeriesColumns: true,
47
- maxColumnCount: 1,
48
- },
49
- {
50
- key: 'y',
51
- label: 'Custom Y Axis',
52
- allowAttributeColumns: false,
53
- allowMeasureColumns: true,
54
- allowTimeSeriesColumns: false,
55
- },
56
- ],
57
- },
58
- ],
59
- visualPropEditorDefinition: {
60
- elements: [
61
- {
62
- key: 'color',
63
- type: 'radio',
64
- defaultValue: 'red',
65
- values: ['red', 'green', 'yellow'],
66
- label: 'Colors',
67
- },
68
- {
69
- type: 'section',
70
- key: 'accordion',
71
- label: 'Accordion',
72
- children: [
73
- {
74
- key: 'Color2',
75
- type: 'radio',
76
- defaultValue: 'blue',
77
- values: ['blue', 'white', 'red'],
78
- label: 'Color2',
79
- },
80
- {
81
- key: 'datalabels',
82
- type: 'toggle',
83
- defaultValue: false,
84
- label: 'Data Labels',
85
- },
86
- ],
87
- },
88
- ],
89
- },
90
- renderChart: (cx) => {
91
- return Promise.resolve();
92
- },
93
- };
94
- //# sourceMappingURL=custom-chart-context-hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart-context-hook.js","sourceRoot":"","sources":["../../../src/react/mocks/custom-chart-context-hook.ts"],"names":[],"mappings":"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"}