@thoughtspot/ts-chart-sdk 0.0.1-alpha.9 → 0.0.2-alpha.1

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 (126) hide show
  1. package/lib/main/custom-chart-context.d.ts +8 -1
  2. package/lib/main/custom-chart-context.d.ts.map +1 -1
  3. package/lib/main/custom-chart-context.js +29 -32
  4. package/lib/main/custom-chart-context.js.map +1 -1
  5. package/lib/main/custom-chart-context.spec.js +107 -260
  6. package/lib/main/custom-chart-context.spec.js.map +1 -1
  7. package/lib/main/post-message-event-bridge.d.ts +3 -3
  8. package/lib/main/post-message-event-bridge.d.ts.map +1 -1
  9. package/lib/main/post-message-event-bridge.js +24 -36
  10. package/lib/main/post-message-event-bridge.js.map +1 -1
  11. package/lib/main/post-message-event-bridge.spec.js +0 -2
  12. package/lib/main/post-message-event-bridge.spec.js.map +1 -1
  13. package/lib/main/util.d.ts +2 -0
  14. package/lib/main/util.d.ts.map +1 -0
  15. package/lib/main/util.js +9 -0
  16. package/lib/main/util.js.map +1 -0
  17. package/lib/react/use-custom-chart-context.spec.js +74 -119
  18. package/lib/react/use-custom-chart-context.spec.js.map +1 -1
  19. package/lib/types/common.types.d.ts +1 -0
  20. package/lib/types/common.types.d.ts.map +1 -1
  21. package/lib/types/ts-to-chart-event.types.d.ts +3 -0
  22. package/lib/types/ts-to-chart-event.types.d.ts.map +1 -1
  23. package/lib/types/ts-to-chart-event.types.js.map +1 -1
  24. package/package.json +5 -4
  25. package/src/main/custom-chart-context.spec.ts +116 -269
  26. package/src/main/custom-chart-context.ts +49 -38
  27. package/src/main/post-message-event-bridge.spec.ts +0 -3
  28. package/src/main/post-message-event-bridge.ts +36 -62
  29. package/src/main/util.ts +11 -0
  30. package/src/react/use-custom-chart-context.spec.tsx +84 -120
  31. package/src/types/common.types.ts +1 -1
  32. package/src/types/ts-to-chart-event.types.ts +14 -0
  33. package/cjs/index.d.ts +0 -9
  34. package/cjs/index.d.ts.map +0 -1
  35. package/cjs/index.js +0 -25
  36. package/cjs/index.js.map +0 -1
  37. package/cjs/main/custom-chart-context.d.ts +0 -47
  38. package/cjs/main/custom-chart-context.d.ts.map +0 -1
  39. package/cjs/main/custom-chart-context.js +0 -326
  40. package/cjs/main/custom-chart-context.js.map +0 -1
  41. package/cjs/main/custom-chart-context.spec.d.ts +0 -2
  42. package/cjs/main/custom-chart-context.spec.d.ts.map +0 -1
  43. package/cjs/main/custom-chart-context.spec.js +0 -699
  44. package/cjs/main/custom-chart-context.spec.js.map +0 -1
  45. package/cjs/main/post-message-event-bridge.d.ts +0 -6
  46. package/cjs/main/post-message-event-bridge.d.ts.map +0 -1
  47. package/cjs/main/post-message-event-bridge.js +0 -46
  48. package/cjs/main/post-message-event-bridge.js.map +0 -1
  49. package/cjs/main/post-message-event-bridge.spec.d.ts +0 -2
  50. package/cjs/main/post-message-event-bridge.spec.d.ts.map +0 -1
  51. package/cjs/main/post-message-event-bridge.spec.js +0 -124
  52. package/cjs/main/post-message-event-bridge.spec.js.map +0 -1
  53. package/cjs/react/custom-chart-context-service.d.ts +0 -33
  54. package/cjs/react/custom-chart-context-service.d.ts.map +0 -1
  55. package/cjs/react/custom-chart-context-service.js +0 -118
  56. package/cjs/react/custom-chart-context-service.js.map +0 -1
  57. package/cjs/react/custom-chart.context.d.ts +0 -26
  58. package/cjs/react/custom-chart.context.d.ts.map +0 -1
  59. package/cjs/react/custom-chart.context.js +0 -105
  60. package/cjs/react/custom-chart.context.js.map +0 -1
  61. package/cjs/react/custom-chart.spec.d.ts +0 -2
  62. package/cjs/react/custom-chart.spec.d.ts.map +0 -1
  63. package/cjs/react/custom-chart.spec.js +0 -72
  64. package/cjs/react/custom-chart.spec.js.map +0 -1
  65. package/cjs/react/mocks/custom-chart-context-mock.d.ts +0 -3
  66. package/cjs/react/mocks/custom-chart-context-mock.d.ts.map +0 -1
  67. package/cjs/react/mocks/custom-chart-context-mock.js +0 -100
  68. package/cjs/react/mocks/custom-chart-context-mock.js.map +0 -1
  69. package/cjs/react/use-custom-chart-context.d.ts +0 -4
  70. package/cjs/react/use-custom-chart-context.d.ts.map +0 -1
  71. package/cjs/react/use-custom-chart-context.js +0 -95
  72. package/cjs/react/use-custom-chart-context.js.map +0 -1
  73. package/cjs/react/use-custom-chart-context.spec.d.ts +0 -2
  74. package/cjs/react/use-custom-chart-context.spec.d.ts.map +0 -1
  75. package/cjs/react/use-custom-chart-context.spec.js +0 -391
  76. package/cjs/react/use-custom-chart-context.spec.js.map +0 -1
  77. package/cjs/react/use-custom-chart-context.util.d.ts +0 -6
  78. package/cjs/react/use-custom-chart-context.util.d.ts.map +0 -1
  79. package/cjs/react/use-custom-chart-context.util.js +0 -60
  80. package/cjs/react/use-custom-chart-context.util.js.map +0 -1
  81. package/cjs/react/use-custom-chart-types.d.ts +0 -23
  82. package/cjs/react/use-custom-chart-types.d.ts.map +0 -1
  83. package/cjs/react/use-custom-chart-types.js +0 -3
  84. package/cjs/react/use-custom-chart-types.js.map +0 -1
  85. package/cjs/test/test-utils.d.ts +0 -7
  86. package/cjs/test/test-utils.d.ts.map +0 -1
  87. package/cjs/test/test-utils.js +0 -14
  88. package/cjs/test/test-utils.js.map +0 -1
  89. package/cjs/types/answer-column.types.d.ts +0 -69
  90. package/cjs/types/answer-column.types.d.ts.map +0 -1
  91. package/cjs/types/answer-column.types.js +0 -59
  92. package/cjs/types/answer-column.types.js.map +0 -1
  93. package/cjs/types/chart-to-ts-event.types.d.ts +0 -98
  94. package/cjs/types/chart-to-ts-event.types.d.ts.map +0 -1
  95. package/cjs/types/chart-to-ts-event.types.js +0 -32
  96. package/cjs/types/chart-to-ts-event.types.js.map +0 -1
  97. package/cjs/types/common.types.d.ts +0 -51
  98. package/cjs/types/common.types.d.ts.map +0 -1
  99. package/cjs/types/common.types.js +0 -3
  100. package/cjs/types/common.types.js.map +0 -1
  101. package/cjs/types/configurator.types.d.ts +0 -15
  102. package/cjs/types/configurator.types.d.ts.map +0 -1
  103. package/cjs/types/configurator.types.js +0 -3
  104. package/cjs/types/configurator.types.js.map +0 -1
  105. package/cjs/types/ts-to-chart-event.types.d.ts +0 -91
  106. package/cjs/types/ts-to-chart-event.types.d.ts.map +0 -1
  107. package/cjs/types/ts-to-chart-event.types.js +0 -18
  108. package/cjs/types/ts-to-chart-event.types.js.map +0 -1
  109. package/cjs/types/visual-prop.types.d.ts +0 -73
  110. package/cjs/types/visual-prop.types.d.ts.map +0 -1
  111. package/cjs/types/visual-prop.types.js +0 -3
  112. package/cjs/types/visual-prop.types.js.map +0 -1
  113. package/dist/ts-chart-sdk.d.ts +0 -312
  114. package/lib/dist/ts-chart-sdk.d.ts +0 -312
  115. package/lib/react/custom-chart-context-service.d.ts +0 -33
  116. package/lib/react/custom-chart-context-service.d.ts.map +0 -1
  117. package/lib/react/custom-chart-context-service.js +0 -91
  118. package/lib/react/custom-chart-context-service.js.map +0 -1
  119. package/lib/react/custom-chart.context.d.ts +0 -26
  120. package/lib/react/custom-chart.context.d.ts.map +0 -1
  121. package/lib/react/custom-chart.context.js +0 -78
  122. package/lib/react/custom-chart.context.js.map +0 -1
  123. package/lib/react/custom-chart.spec.d.ts +0 -2
  124. package/lib/react/custom-chart.spec.d.ts.map +0 -1
  125. package/lib/react/custom-chart.spec.js +0 -67
  126. package/lib/react/custom-chart.spec.js.map +0 -1
@@ -1,91 +0,0 @@
1
- import React, { useCallback, useEffect, useState } from 'react';
2
- import { CustomChartContext, } from '../main/custom-chart-context';
3
- import { ChartToTSEvent, } from '../types/chart-to-ts-event.types';
4
- import { TSToChartEvent, } from '../types/ts-to-chart-event.types';
5
- const emitter = (ctx) => {
6
- function reducerFn(acc, eventKey) {
7
- if (eventKey in ChartToTSEvent) {
8
- const eventName = eventKey;
9
- const emitterKey = `emit${eventKey}`;
10
- acc[emitterKey] = (args) => {
11
- return ctx.emitEvent(eventName, ...args);
12
- };
13
- }
14
- return acc;
15
- }
16
- return Object.keys(ChartToTSEvent).reduce(reducerFn, {});
17
- };
18
- const eventListener = (ctx) => {
19
- function reducerFn(acc, eventKey) {
20
- if (eventKey in TSToChartEvent) {
21
- const eventName = eventKey;
22
- const emitterKey = `on${eventKey}`;
23
- acc[emitterKey] = (callbackFn) => {
24
- ctx.on(eventName, callbackFn);
25
- return Promise.resolve();
26
- };
27
- }
28
- return acc;
29
- }
30
- return Object.keys(TSToChartEvent).reduce(reducerFn, {});
31
- };
32
- export const useChartContext = (props) => {
33
- const [hasInitialized, setHasInitialized] = useState(false);
34
- const [key, setKey] = useState(0);
35
- const [ctx, setContextState] = useState({});
36
- const [chartModel, setChartModel] = useState();
37
- const [emitters, setEmitters] = useState(emitter({
38
- emitEvent: () => {
39
- },
40
- }));
41
- const [listeners, setListeners] = useState(eventListener({
42
- on: () => {
43
- },
44
- }));
45
- const initializeProvider = async (context) => {
46
- return context.initialize().then(() => {
47
- setHasInitialized(true);
48
- setContextState(context);
49
- setChartModel(context.getChartModel());
50
- setEmitters(emitter(context));
51
- setListeners(eventListener(context));
52
- listeners.onChartModelUpdate((payload) => {
53
- setChartModel(context.getChartModel());
54
- });
55
- listeners.onVisualPropsUpdate((payload) => {
56
- setChartModel(context.getChartModel());
57
- return {
58
- triggerRenderChart: true,
59
- };
60
- });
61
- listeners.onDataUpdate((payload) => {
62
- setChartModel(context.getChartModel());
63
- });
64
- return true;
65
- });
66
- };
67
- const renderChart = useCallback((ctx) => {
68
- console.log('Here', key);
69
- setKey(key + 1);
70
- return Promise.resolve();
71
- }, [key]);
72
- const WrapperComponent = useCallback(({ children }) => {
73
- console.log(key);
74
- return React.createElement("div", { key: key }, children);
75
- }, [key]);
76
- useEffect(() => {
77
- const context = new CustomChartContext({
78
- ...props,
79
- renderChart,
80
- });
81
- initializeProvider(context);
82
- }, []);
83
- return {
84
- hasInitialized,
85
- chartModel,
86
- ...emitters,
87
- ...listeners,
88
- WrapperComponent,
89
- };
90
- };
91
- //# sourceMappingURL=custom-chart-context-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart-context-service.js","sourceRoot":"","sources":["../../src/react/custom-chart-context-service.tsx"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import React from 'react';
2
- import { CustomChartContextProps } from '../main/custom-chart-context';
3
- import { ChartToTSEventsPayloadMap } from '../types/chart-to-ts-event.types';
4
- import { ChartModel } from '../types/common.types';
5
- import { TSToChartEventsPayloadMap } from '../types/ts-to-chart-event.types';
6
- export type ChartToTSEventEmitters = {
7
- [key in keyof ChartToTSEventsPayloadMap as `emit${Capitalize<key>}`]: (args: ChartToTSEventsPayloadMap[key]) => Promise<void>;
8
- };
9
- export type TSToChartEventListener = {
10
- [key in keyof TSToChartEventsPayloadMap as `on${Capitalize<key>}`]: (args: TSToChartEventsPayloadMap[key]) => Promise<void>;
11
- };
12
- interface ChartContextProps extends ChartToTSEventEmitters, TSToChartEventListener {
13
- hasInitialized: boolean;
14
- chartModel: ChartModel | undefined;
15
- }
16
- interface ChartProviderProps {
17
- contextProps: CustomChartContextProps;
18
- children: React.ReactElement;
19
- }
20
- export interface AppChartRef {
21
- render: () => void;
22
- }
23
- declare const ChartContext: React.Context<ChartContextProps>;
24
- declare const ChartProvider: React.FC<ChartProviderProps>;
25
- export { ChartContext, ChartProvider };
26
- //# sourceMappingURL=custom-chart.context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart.context.d.ts","sourceRoot":"","sources":["../../src/react/custom-chart.context.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,EAEH,uBAAuB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEH,yBAAyB,EAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAIH,yBAAyB,EAE5B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG;KAChC,GAAG,IAAI,MAAM,yBAAyB,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAClE,IAAI,EAAE,yBAAyB,CAAC,GAAG,CAAC,KACnC,OAAO,CAAC,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;KAChC,GAAG,IAAI,MAAM,yBAAyB,IAAI,KAAK,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAChE,IAAI,EAAE,yBAAyB,CAAC,GAAG,CAAC,KACnC,OAAO,CAAC,IAAI,CAAC;CACrB,CAAC;AAEF,UAAU,iBACN,SAAQ,sBAAsB,EAC1B,sBAAsB;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;CACtC;AAED,UAAU,kBAAkB;IACxB,YAAY,EAAE,uBAAuB,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAqDD,QAAA,MAAM,YAAY,kCAA4D,CAAC;AAE/E,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAmE/C,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,78 +0,0 @@
1
- import React, { createContext, useCallback, useState } from 'react';
2
- import { CustomChartContext, } from '../main/custom-chart-context';
3
- import { ChartToTSEvent, } from '../types/chart-to-ts-event.types';
4
- import { TSToChartEvent, } from '../types/ts-to-chart-event.types';
5
- const emitter = (ctx) => {
6
- function reducerFn(acc, eventKey) {
7
- if (eventKey in ChartToTSEvent) {
8
- const eventName = eventKey;
9
- const emitterKey = `emit${eventKey}`;
10
- acc[emitterKey] = (args) => {
11
- console.log("sds");
12
- return ctx.emitEvent(eventName, ...args);
13
- };
14
- }
15
- return acc;
16
- }
17
- return Object.keys(ChartToTSEvent).reduce(reducerFn, {});
18
- };
19
- const eventListener = (ctx) => {
20
- function reducerFn(acc, eventKey) {
21
- if (eventKey in TSToChartEvent) {
22
- const eventName = eventKey;
23
- const emitterKey = `on${eventKey}`;
24
- acc[emitterKey] = (callbackFn) => {
25
- ctx.on(eventName, callbackFn);
26
- return Promise.resolve();
27
- };
28
- }
29
- return acc;
30
- }
31
- return Object.keys(TSToChartEvent).reduce(reducerFn, {});
32
- };
33
- const ChartContext = createContext({});
34
- const ChartProvider = ({ contextProps, children, }) => {
35
- const [hasInitialized, setHasInitialized] = useState(false);
36
- const [ctx, setContextState] = useState({});
37
- const [chartModel, setChartModel] = useState();
38
- const initializeProvider = async (context) => {
39
- return context.initialize().then(() => {
40
- setHasInitialized(true);
41
- setContextState(context);
42
- return true;
43
- });
44
- };
45
- const getChartContextValues = useCallback((ctx) => ({
46
- hasInitialized,
47
- chartModel,
48
- ...emitter(ctx),
49
- ...eventListener(ctx),
50
- }), [ctx, chartModel]);
51
- React.useEffect(() => {
52
- const context = new CustomChartContext({
53
- ...contextProps,
54
- });
55
- initializeProvider(context);
56
- getChartContextValues(context).onChartModelUpdate((payload) => {
57
- setChartModel(payload.chartModel);
58
- });
59
- getChartContextValues(context).onVisualPropsUpdate((payload) => {
60
- setChartModel({
61
- ...context.getChartModel(),
62
- visualProps: payload.visualProps,
63
- });
64
- return {
65
- triggerRenderChart: true,
66
- };
67
- });
68
- getChartContextValues(context).onDataUpdate((payload) => {
69
- setChartModel({
70
- ...context.getChartModel(),
71
- data: payload.data,
72
- });
73
- });
74
- }, []);
75
- return (React.createElement(ChartContext.Provider, { value: getChartContextValues(ctx) }, children));
76
- };
77
- export { ChartContext, ChartProvider };
78
- //# sourceMappingURL=custom-chart.context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart.context.js","sourceRoot":"","sources":["../../src/react/custom-chart.context.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=custom-chart.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart.spec.d.ts","sourceRoot":"","sources":["../../src/react/custom-chart.spec.tsx"],"names":[],"mappings":""}
@@ -1,67 +0,0 @@
1
- import { fireEvent, render, waitFor } from '@testing-library/react';
2
- import React from 'react';
3
- import { ChartToTSEvent } from '../types/chart-to-ts-event.types';
4
- import { TSToChartEvent } from '../types/ts-to-chart-event.types';
5
- import { ChartContext, ChartProvider } from './custom-chart.context';
6
- describe('ChartProvider', () => {
7
- afterEach(() => {
8
- jest.clearAllMocks();
9
- });
10
- test('renders children correctly for empty data', () => {
11
- const { getByTestId } = render(React.createElement(ChartProvider, { contextProps: {
12
- getDefaultChartConfig: (chartModel) => [],
13
- getQueriesFromChartConfig: (chartConfig) => [],
14
- renderChart: () => Promise.resolve(),
15
- } },
16
- React.createElement("div", { "data-testid": "child-component" }, "Test Child")));
17
- const childContent = getByTestId('child-component').textContent;
18
- expect(childContent).toBe('Test Child');
19
- });
20
- test.only('emitters and event listeners work as expected', async () => {
21
- const emitEvent = jest.fn().mockResolvedValue(true);
22
- const on = jest.fn();
23
- jest.mock('../main/custom-chart-context', () => {
24
- return {
25
- CustomChartContext: jest.fn().mockImplementation(() => ({
26
- initialize: jest.fn().mockImplementation(async () => {
27
- return Promise.resolve();
28
- }),
29
- emitEvent,
30
- on,
31
- getChartModel: jest.fn().mockReturnValue({}),
32
- })),
33
- };
34
- });
35
- const TestComponent = () => {
36
- const chartContext = React.useContext(ChartContext);
37
- const emitRenderChart = async () => {
38
- await chartContext.emitRenderStart([]);
39
- };
40
- if (!chartContext.hasInitialized) {
41
- return React.createElement("div", null, "Loading...");
42
- }
43
- return (React.createElement("div", null,
44
- React.createElement("button", { onClick: emitRenderChart }, "Emit Event")));
45
- };
46
- const { getByRole } = render(React.createElement(ChartProvider, { contextProps: {
47
- getDefaultChartConfig: (chartModel) => [],
48
- getQueriesFromChartConfig: (chartModel) => [],
49
- renderChart: (ctx) => Promise.resolve(),
50
- } },
51
- React.createElement(TestComponent, null)));
52
- await waitFor(() => {
53
- expect(getByRole('button')).toBeDefined();
54
- });
55
- const button = getByRole('button');
56
- fireEvent.click(button);
57
- expect(emitEvent).toHaveBeenCalledWith(ChartToTSEvent.RenderStart);
58
- const chartModelUpdateCallback = jest.fn();
59
- on.mockImplementation((event, callback) => {
60
- if (event === TSToChartEvent.ChartModelUpdate) {
61
- chartModelUpdateCallback();
62
- }
63
- });
64
- expect(chartModelUpdateCallback).toHaveBeenCalled();
65
- });
66
- });
67
- //# sourceMappingURL=custom-chart.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-chart.spec.js","sourceRoot":"","sources":["../../src/react/custom-chart.spec.tsx"],"names":[],"mappings":"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"}