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

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 (141) hide show
  1. package/README.md +126 -50
  2. package/dist/ts-chart-sdk.d.ts +327 -32
  3. package/lib/index.d.ts +3 -0
  4. package/lib/index.d.ts.map +1 -1
  5. package/lib/index.js +3 -0
  6. package/lib/index.js.map +1 -1
  7. package/lib/main/custom-chart-context.d.ts +15 -4
  8. package/lib/main/custom-chart-context.d.ts.map +1 -1
  9. package/lib/main/custom-chart-context.js +44 -16
  10. package/lib/main/custom-chart-context.js.map +1 -1
  11. package/lib/main/custom-chart-context.spec.js +301 -4
  12. package/lib/main/custom-chart-context.spec.js.map +1 -1
  13. package/lib/main/logger.d.ts +13 -0
  14. package/lib/main/logger.d.ts.map +1 -0
  15. package/lib/main/logger.js +64 -0
  16. package/lib/main/logger.js.map +1 -0
  17. package/lib/main/logger.spec.d.ts +2 -0
  18. package/lib/main/logger.spec.d.ts.map +1 -0
  19. package/lib/main/logger.spec.js +88 -0
  20. package/lib/main/logger.spec.js.map +1 -0
  21. package/lib/main/util.d.ts +2 -0
  22. package/lib/main/util.d.ts.map +1 -1
  23. package/lib/main/util.js +11 -0
  24. package/lib/main/util.js.map +1 -1
  25. package/lib/main/util.spec.d.ts +2 -0
  26. package/lib/main/util.spec.d.ts.map +1 -0
  27. package/lib/main/util.spec.js +73 -0
  28. package/lib/main/util.spec.js.map +1 -0
  29. package/lib/react/use-custom-chart-context.d.ts.map +1 -1
  30. package/lib/react/use-custom-chart-context.js +3 -1
  31. package/lib/react/use-custom-chart-context.js.map +1 -1
  32. package/lib/react/use-custom-chart-context.spec.js +0 -1
  33. package/lib/react/use-custom-chart-context.spec.js.map +1 -1
  34. package/lib/react/use-custom-chart-context.util.d.ts.map +1 -1
  35. package/lib/react/use-custom-chart-context.util.js +5 -3
  36. package/lib/react/use-custom-chart-context.util.js.map +1 -1
  37. package/lib/types/answer-column.types.d.ts +7 -4
  38. package/lib/types/answer-column.types.d.ts.map +1 -1
  39. package/lib/types/answer-column.types.js +3 -3
  40. package/lib/types/answer-column.types.js.map +1 -1
  41. package/lib/types/chart-to-ts-event.types.d.ts +2 -0
  42. package/lib/types/chart-to-ts-event.types.d.ts.map +1 -1
  43. package/lib/types/chart-to-ts-event.types.js +1 -0
  44. package/lib/types/chart-to-ts-event.types.js.map +1 -1
  45. package/lib/types/common.types.d.ts +65 -6
  46. package/lib/types/common.types.d.ts.map +1 -1
  47. package/lib/types/common.types.js.map +1 -1
  48. package/lib/types/conditional-formatting.types.d.ts +1 -16
  49. package/lib/types/conditional-formatting.types.d.ts.map +1 -1
  50. package/lib/types/conditional-formatting.types.js.map +1 -1
  51. package/lib/types/configurator.types.d.ts +1 -1
  52. package/lib/types/configurator.types.d.ts.map +1 -1
  53. package/lib/types/number-formatting.types.d.ts +55 -0
  54. package/lib/types/number-formatting.types.d.ts.map +1 -0
  55. package/lib/types/number-formatting.types.js +23 -0
  56. package/lib/types/number-formatting.types.js.map +1 -0
  57. package/lib/types/ts-to-chart-event.types.d.ts +19 -6
  58. package/lib/types/ts-to-chart-event.types.d.ts.map +1 -1
  59. package/lib/types/ts-to-chart-event.types.js +1 -0
  60. package/lib/types/ts-to-chart-event.types.js.map +1 -1
  61. package/lib/types/visual-prop.types.d.ts +71 -3
  62. package/lib/types/visual-prop.types.d.ts.map +1 -1
  63. package/lib/types/visual-prop.types.js +32 -1
  64. package/lib/types/visual-prop.types.js.map +1 -1
  65. package/lib/utils/date-formatting.d.ts +85 -1
  66. package/lib/utils/date-formatting.d.ts.map +1 -1
  67. package/lib/utils/date-formatting.js +344 -9
  68. package/lib/utils/date-formatting.js.map +1 -1
  69. package/lib/utils/date-formatting.spec.js +301 -31
  70. package/lib/utils/date-formatting.spec.js.map +1 -1
  71. package/lib/utils/date-utils.d.ts +6 -0
  72. package/lib/utils/date-utils.d.ts.map +1 -0
  73. package/lib/utils/date-utils.js +20 -0
  74. package/lib/utils/date-utils.js.map +1 -0
  75. package/lib/utils/date-utils.spec.d.ts +2 -0
  76. package/lib/utils/date-utils.spec.d.ts.map +1 -0
  77. package/lib/utils/date-utils.spec.js +63 -0
  78. package/lib/utils/date-utils.spec.js.map +1 -0
  79. package/lib/utils/formatting-util.d.ts +10 -0
  80. package/lib/utils/formatting-util.d.ts.map +1 -0
  81. package/lib/utils/formatting-util.js +78 -0
  82. package/lib/utils/formatting-util.js.map +1 -0
  83. package/lib/utils/formatting-util.spec.d.ts +2 -0
  84. package/lib/utils/formatting-util.spec.d.ts.map +1 -0
  85. package/lib/utils/formatting-util.spec.js +247 -0
  86. package/lib/utils/formatting-util.spec.js.map +1 -0
  87. package/lib/utils/globalize-Initializer/globalize-utils.d.ts +16 -0
  88. package/lib/utils/globalize-Initializer/globalize-utils.d.ts.map +1 -0
  89. package/lib/utils/globalize-Initializer/globalize-utils.js +101 -0
  90. package/lib/utils/globalize-Initializer/globalize-utils.js.map +1 -0
  91. package/lib/utils/globalize-Initializer/globalize-utils.spec.d.ts +2 -0
  92. package/lib/utils/globalize-Initializer/globalize-utils.spec.d.ts.map +1 -0
  93. package/lib/utils/globalize-Initializer/globalize-utils.spec.js +149 -0
  94. package/lib/utils/globalize-Initializer/globalize-utils.spec.js.map +1 -0
  95. package/lib/utils/number-formatting/number-formatting-utils.d.ts +20 -0
  96. package/lib/utils/number-formatting/number-formatting-utils.d.ts.map +1 -0
  97. package/lib/utils/number-formatting/number-formatting-utils.js +159 -0
  98. package/lib/utils/number-formatting/number-formatting-utils.js.map +1 -0
  99. package/lib/utils/number-formatting/number-formatting-utils.spec.d.ts +2 -0
  100. package/lib/utils/number-formatting/number-formatting-utils.spec.d.ts.map +1 -0
  101. package/lib/utils/number-formatting/number-formatting-utils.spec.js +221 -0
  102. package/lib/utils/number-formatting/number-formatting-utils.spec.js.map +1 -0
  103. package/lib/utils/number-formatting/number-formatting.d.ts +5 -0
  104. package/lib/utils/number-formatting/number-formatting.d.ts.map +1 -0
  105. package/lib/utils/number-formatting/number-formatting.js +128 -0
  106. package/lib/utils/number-formatting/number-formatting.js.map +1 -0
  107. package/lib/utils/number-formatting/number-formatting.spec.d.ts +2 -0
  108. package/lib/utils/number-formatting/number-formatting.spec.d.ts.map +1 -0
  109. package/lib/utils/number-formatting/number-formatting.spec.js +159 -0
  110. package/lib/utils/number-formatting/number-formatting.spec.js.map +1 -0
  111. package/package.json +4 -1
  112. package/src/index.ts +3 -0
  113. package/src/main/custom-chart-context.spec.ts +355 -6
  114. package/src/main/custom-chart-context.ts +181 -16
  115. package/src/main/logger.spec.ts +114 -0
  116. package/src/main/logger.ts +97 -0
  117. package/src/main/util.spec.ts +94 -0
  118. package/src/main/util.ts +20 -0
  119. package/src/react/use-custom-chart-context.spec.tsx +0 -1
  120. package/src/react/use-custom-chart-context.tsx +4 -1
  121. package/src/react/use-custom-chart-context.util.ts +6 -3
  122. package/src/types/answer-column.types.ts +9 -6
  123. package/src/types/chart-to-ts-event.types.ts +7 -0
  124. package/src/types/common.types.ts +100 -10
  125. package/src/types/conditional-formatting.types.ts +2 -17
  126. package/src/types/configurator.types.ts +1 -1
  127. package/src/types/number-formatting.types.ts +80 -0
  128. package/src/types/ts-to-chart-event.types.ts +54 -5
  129. package/src/types/visual-prop.types.ts +197 -3
  130. package/src/utils/date-formatting.spec.ts +375 -32
  131. package/src/utils/date-formatting.ts +587 -14
  132. package/src/utils/date-utils.spec.ts +93 -0
  133. package/src/utils/date-utils.ts +69 -0
  134. package/src/utils/formatting-util.spec.ts +312 -0
  135. package/src/utils/formatting-util.ts +234 -0
  136. package/src/utils/globalize-Initializer/globalize-utils.spec.ts +192 -0
  137. package/src/utils/globalize-Initializer/globalize-utils.ts +216 -0
  138. package/src/utils/number-formatting/number-formatting-utils.spec.ts +296 -0
  139. package/src/utils/number-formatting/number-formatting-utils.ts +260 -0
  140. package/src/utils/number-formatting/number-formatting.spec.ts +243 -0
  141. package/src/utils/number-formatting/number-formatting.ts +264 -0
@@ -1,7 +1,10 @@
1
1
  import _ from 'lodash';
2
2
  import { ChartToTSEvent, ErrorType, } from '../types/chart-to-ts-event.types';
3
3
  import { TSToChartEvent, } from '../types/ts-to-chart-event.types';
4
+ import { setLocaleBasedStringFormats } from '../utils/number-formatting/number-formatting-utils';
5
+ import { create } from './logger';
4
6
  import { globalThis, initMessageListener, postMessageToHostApp, } from './post-message-event-bridge';
7
+ const logger = create('TsChartSDKContext');
5
8
  const DEFAULT_CHART_CONTEXT_PROPS = {
6
9
  validateConfig: () => ({ isValid: true }),
7
10
  validateVisualProps: () => ({ isValid: true }),
@@ -9,8 +12,18 @@ const DEFAULT_CHART_CONTEXT_PROPS = {
9
12
  allowedConfigurations: {
10
13
  allowColumnNumberFormatting: false,
11
14
  allowColumnConditionalFormatting: false,
15
+ allowGradientColoring: false,
12
16
  allowMeasureNamesAndValues: false,
13
17
  },
18
+ chartConfigParameters: {
19
+ measureNameValueColumns: {
20
+ enableMeasureNameColumn: false,
21
+ enableMeasureValueColumn: false,
22
+ measureNameColumnAlias: 'Measure Name',
23
+ measureValueColumnAlias: 'Measure Values',
24
+ },
25
+ batchSizeLimit: 20000,
26
+ },
14
27
  };
15
28
  export class CustomChartContext {
16
29
  constructor(chartContextProps) {
@@ -26,7 +39,7 @@ export class CustomChartContext {
26
39
  this.axisMenuActionHandler = {};
27
40
  this.containerEl = null;
28
41
  this.initialize = () => {
29
- console.log('Chart Context: initialization start');
42
+ logger.log('Chart Context: initialization start');
30
43
  return this.hasInitializedPromise;
31
44
  };
32
45
  this.getChartModel = () => this.chartModel;
@@ -40,39 +53,40 @@ export class CustomChartContext {
40
53
  }
41
54
  return this.chartContextProps.chartConfigEditorDefinition;
42
55
  };
43
- this.getVisualPropEditorDefinition = (currentState = {}) => {
56
+ this.getVisualPropEditorDefinition = (activeColumnId, currentState = {}) => {
44
57
  if (_.isFunction(this.chartContextProps.visualPropEditorDefinition)) {
45
58
  return this.chartContextProps.visualPropEditorDefinition({
46
59
  ...this.chartModel,
47
60
  ...currentState,
48
- }, this);
61
+ }, this, activeColumnId);
49
62
  }
50
63
  return this.chartContextProps.visualPropEditorDefinition;
51
64
  };
52
65
  this.registerEventProcessor = () => {
53
66
  if (globalThis.isInitialized) {
54
- console.error('The context is already initialized. you cannot have multiple contexts');
67
+ logger.error('The context is already initialized. you cannot have multiple contexts');
55
68
  throw new Error(ErrorType.MultipleContextsNotSupported);
56
69
  }
57
70
  this.removeListener = initMessageListener(this.eventProcessor);
58
71
  this.registerEvents();
59
72
  };
60
73
  this.eventProcessor = (data) => {
61
- console.log('Chart Context: message received:', data.eventType, data);
74
+ logger.log('Chart Context: message received:', data.eventType, data);
62
75
  const messageResponse = this.executeEventListenerCBs(data);
63
- return messageResponse;
76
+ return messageResponse || {};
64
77
  };
65
78
  this.registerEvents = () => {
66
79
  this.onInternal(TSToChartEvent.Initialize, (payload) => this.initializeContext(payload));
67
80
  this.onInternal(TSToChartEvent.InitializeComplete, () => this.initializationComplete());
68
81
  this.onInternal(TSToChartEvent.VisualPropsValidate, (payload) => {
69
82
  if (this.chartContextProps.validateVisualProps) {
70
- const validationResponse = this.chartContextProps.validateVisualProps(payload.visualProps, this.chartModel);
83
+ const validationResponse = this.chartContextProps.validateVisualProps(payload.visualProps, this.chartModel, payload === null || payload === void 0 ? void 0 : payload.activeColumnId);
71
84
  if (validationResponse.isValid) {
72
85
  const currentVisualState = {
73
86
  visualProps: payload.visualProps,
74
87
  };
75
- return this.validationsResponseProcessor(currentVisualState, validationResponse);
88
+ const activeColumnId = payload === null || payload === void 0 ? void 0 : payload.activeColumnId;
89
+ return this.validationsResponseProcessor(currentVisualState, validationResponse, activeColumnId);
76
90
  }
77
91
  return validationResponse;
78
92
  }
@@ -100,6 +114,17 @@ export class CustomChartContext {
100
114
  queries,
101
115
  };
102
116
  });
117
+ this.onInternal(TSToChartEvent.GetColumnData, (payload) => {
118
+ var _a;
119
+ const parsedData = (_a = this.chartModel.data) === null || _a === void 0 ? void 0 : _a[0].data;
120
+ const dataIdx = parsedData === null || parsedData === void 0 ? void 0 : parsedData.columns.findIndex((columnId) => columnId === payload.columnId);
121
+ const dataArray = !_.isNil(dataIdx) && dataIdx > -1
122
+ ? parsedData === null || parsedData === void 0 ? void 0 : parsedData.dataValue.map((it) => it[dataIdx])
123
+ : [];
124
+ return {
125
+ data: dataArray,
126
+ };
127
+ });
103
128
  this.onInternal(TSToChartEvent.TriggerRenderChart, () => {
104
129
  this.chartContextProps.renderChart(this);
105
130
  });
@@ -118,7 +143,7 @@ export class CustomChartContext {
118
143
  };
119
144
  }
120
145
  catch (error) {
121
- console.log('ContextMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
146
+ logger.log('ContextMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
122
147
  return {
123
148
  isValid: false,
124
149
  error,
@@ -139,7 +164,7 @@ export class CustomChartContext {
139
164
  };
140
165
  }
141
166
  catch (error) {
142
- console.log('AxisMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
167
+ logger.log('AxisMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
143
168
  return {
144
169
  isValid: false,
145
170
  error,
@@ -166,7 +191,7 @@ export class CustomChartContext {
166
191
  });
167
192
  };
168
193
  this.initializeContext = (payload) => {
169
- var _a;
194
+ var _a, _b;
170
195
  this.componentId = payload.componentId;
171
196
  this.hostUrl = payload.hostUrl;
172
197
  this.chartModel = payload.chartModel;
@@ -174,6 +199,7 @@ export class CustomChartContext {
174
199
  this.containerEl = payload.containerElSelector
175
200
  ? document.querySelector(payload.containerElSelector)
176
201
  : null;
202
+ setLocaleBasedStringFormats((_b = this.appConfig.dateFormatsConfig) === null || _b === void 0 ? void 0 : _b.tsLocaleBasedStringsFormats);
177
203
  return this.publishChartContextPropsToHost();
178
204
  };
179
205
  this.initializationComplete = () => {
@@ -197,6 +223,7 @@ export class CustomChartContext {
197
223
  chartConfigEditorDefinition: this.getChartConfigEditorDefinition(),
198
224
  visualPropEditorDefinition: this.getVisualPropEditorDefinition(),
199
225
  allowedConfigurations: this.chartContextProps.allowedConfigurations,
226
+ chartConfigParameters: this.chartContextProps.chartConfigParameters,
200
227
  };
201
228
  };
202
229
  this.executeEventListenerCBs = (data) => {
@@ -214,7 +241,7 @@ export class CustomChartContext {
214
241
  error: `Event type not recognised or processed: ${data.eventType}`,
215
242
  };
216
243
  }
217
- console.log('ChartContext: Response:', data.eventType, response, (_a = this.eventListeners[data.eventType]) === null || _a === void 0 ? void 0 : _a.length);
244
+ logger.log('ChartContext: Response:', data.eventType, response, (_a = this.eventListeners[data.eventType]) === null || _a === void 0 ? void 0 : _a.length);
218
245
  return response;
219
246
  };
220
247
  this.chartContextProps = {
@@ -225,6 +252,7 @@ export class CustomChartContext {
225
252
  this.hasInitializedPromise = new Promise((resolve, reject) => {
226
253
  this.triggerInitResolve = resolve;
227
254
  });
255
+ postMessageToHostApp('', '*', null, ChartToTSEvent.InitStart);
228
256
  }
229
257
  on(eventType, callbackFn) {
230
258
  if (_.isNil(this.eventListeners[eventType])) {
@@ -234,7 +262,7 @@ export class CustomChartContext {
234
262
  }
235
263
  off(eventType) {
236
264
  if (_.isNil(this.eventListeners[eventType])) {
237
- console.log('No event listener found to remove');
265
+ logger.log('No event listener found to remove');
238
266
  this.eventListeners[eventType] = [];
239
267
  return;
240
268
  }
@@ -308,8 +336,8 @@ export class CustomChartContext {
308
336
  return eventPayload;
309
337
  }
310
338
  }
311
- validationsResponseProcessor(currentValidationState, validationResponse) {
312
- const visualPropEditorDefinition = this.getVisualPropEditorDefinition(currentValidationState);
339
+ validationsResponseProcessor(currentValidationState, validationResponse, activeColumnId) {
340
+ const visualPropEditorDefinition = this.getVisualPropEditorDefinition(activeColumnId, currentValidationState);
313
341
  const chartConfigEditorDefinition = this.getChartConfigEditorDefinition(currentValidationState);
314
342
  return {
315
343
  ...validationResponse,
@@ -320,7 +348,7 @@ export class CustomChartContext {
320
348
  emitEvent(eventType, ...eventPayload) {
321
349
  var _a;
322
350
  if (!globalThis.isInitialized) {
323
- console.log('Chart Context: not initialized the context, something went wrong');
351
+ logger.log('Chart Context: not initialized the context, something went wrong');
324
352
  return Promise.reject(new Error('Context not initialized'));
325
353
  }
326
354
  const processedPayload = this.eventPayloadPreProcessor(eventType, eventPayload);
@@ -1 +1 @@
1
- {"version":3,"file":"custom-chart-context.js","sourceRoot":"","sources":["../../src/main/custom-chart-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-chart-context.js","sourceRoot":"","sources":["../../src/main/custom-chart-context.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  import _ from 'lodash';
2
2
  import { mockInitializeContextPayload } from '../test/test-utils';
3
+ import { ColumnType } from '../types/answer-column.types';
3
4
  import { ChartToTSEvent, ErrorType } from '../types/chart-to-ts-event.types';
4
5
  import { TSToChartEvent } from '../types/ts-to-chart-event.types';
5
6
  import { CustomChartContext, getChartContext } from './custom-chart-context';
6
7
  import * as PostMessageEventBridge from './post-message-event-bridge';
7
8
  jest.spyOn(console, 'log').mockImplementation(() => {
8
9
  });
10
+ const mockFormElements = {
11
+ key: 'color',
12
+ type: 'radio',
13
+ defaultValue: 'red',
14
+ values: ['red', 'green', 'yellow'],
15
+ label: 'Colors',
16
+ };
9
17
  describe('CustomChartContext', () => {
10
18
  let eventProcessor;
11
19
  let getDefaultChartConfig = jest.fn();
@@ -71,10 +79,27 @@ describe('CustomChartContext', () => {
71
79
  allowedConfigurations: {
72
80
  allowColumnNumberFormatting: false,
73
81
  allowColumnConditionalFormatting: false,
82
+ allowGradientColoring: false,
74
83
  allowMeasureNamesAndValues: false,
75
84
  },
85
+ chartConfigParameters: {
86
+ measureNameValueColumns: {
87
+ enableMeasureNameColumn: false,
88
+ enableMeasureValueColumn: false,
89
+ measureNameColumnAlias: 'Measure Name',
90
+ measureValueColumnAlias: 'Measure Values',
91
+ },
92
+ batchSizeLimit: 20000,
93
+ },
76
94
  });
77
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
95
+ });
96
+ test('should return responseMessage as empty instead of undefine', async () => {
97
+ expect(mockInitMessage).toHaveBeenCalled();
98
+ const initResp = await eventProcessor({
99
+ payload: {},
100
+ eventType: TSToChartEvent.InitializeComplete,
101
+ });
102
+ expect(initResp).toEqual({});
78
103
  });
79
104
  test('type check string for visualProps on initialize payload should not throw an error.', async () => {
80
105
  expect(mockInitMessage).toHaveBeenCalled();
@@ -98,7 +123,6 @@ describe('CustomChartContext', () => {
98
123
  const chartModel = customChartContext.getChartModel();
99
124
  expect(typeof chartModel.visualProps).toEqual('string');
100
125
  expect(chartModel.visualProps).toEqual('visualPropStringPayload');
101
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
102
126
  });
103
127
  test('type check object for visualProps on initialize payload should not throw an error.', async () => {
104
128
  expect(mockInitMessage).toHaveBeenCalled();
@@ -126,7 +150,6 @@ describe('CustomChartContext', () => {
126
150
  expect(chartModel.visualProps).toEqual({
127
151
  data: 'sample data',
128
152
  });
129
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
130
153
  });
131
154
  test('multiple intializations should throw an error', async () => {
132
155
  getChartContext({
@@ -162,6 +185,39 @@ describe('CustomChartContext', () => {
162
185
  }
163
186
  expect(error).toBe(ErrorType.MultipleContextsNotSupported);
164
187
  });
188
+ test('correct app options config should be set on initialize', async () => {
189
+ const mockAppConfigOptions = {
190
+ appOptions: {
191
+ isMobile: false,
192
+ isPrintMode: false,
193
+ isLiveboardContext: false,
194
+ isDebugMode: true,
195
+ },
196
+ };
197
+ expect(mockInitMessage).toHaveBeenCalled();
198
+ const promise = customChartContext.initialize();
199
+ const mockInitializeContextPayloadWithVisualProps = {
200
+ ...mockInitializeContextPayload,
201
+ appConfig: mockAppConfigOptions,
202
+ chartModel: {
203
+ ...mockInitializeContextPayload.chartModel,
204
+ visualProps: {
205
+ data: 'sample data',
206
+ },
207
+ },
208
+ };
209
+ await eventProcessor({
210
+ payload: mockInitializeContextPayloadWithVisualProps,
211
+ eventType: TSToChartEvent.Initialize,
212
+ });
213
+ eventProcessor({
214
+ payload: {},
215
+ eventType: TSToChartEvent.InitializeComplete,
216
+ });
217
+ await expect(promise).resolves.toBeUndefined();
218
+ const appConfig = customChartContext.getAppConfig();
219
+ expect(appConfig).toStrictEqual(mockAppConfigOptions);
220
+ });
165
221
  });
166
222
  describe('on', () => {
167
223
  let customChartContext;
@@ -227,6 +283,45 @@ describe('CustomChartContext', () => {
227
283
  ],
228
284
  });
229
285
  });
286
+ test('TSToChartEvent.ChartConfigValidate validation response for invalid config', async () => {
287
+ const mockChartConfigValidate = jest
288
+ .fn()
289
+ .mockReturnValue({ isValid: false });
290
+ customChartContext = new CustomChartContext({
291
+ getDefaultChartConfig,
292
+ getQueriesFromChartConfig,
293
+ renderChart,
294
+ visualPropEditorDefinition: { elements: [] },
295
+ chartConfigEditorDefinition: [],
296
+ validateConfig: mockChartConfigValidate,
297
+ });
298
+ const responseWithInitialContext = await eventProcessor({
299
+ payload: mockInitializeContextPayload,
300
+ eventType: TSToChartEvent.ChartConfigValidate,
301
+ source: 'ts-host-app',
302
+ });
303
+ expect(responseWithInitialContext).toStrictEqual({
304
+ isValid: false,
305
+ });
306
+ });
307
+ test('TSToChartEvent.ChartConfigValidate validation response return invalid without validate function', async () => {
308
+ customChartContext = new CustomChartContext({
309
+ getDefaultChartConfig,
310
+ getQueriesFromChartConfig,
311
+ renderChart,
312
+ visualPropEditorDefinition: { elements: [] },
313
+ chartConfigEditorDefinition: [],
314
+ validateConfig: undefined,
315
+ });
316
+ const responseWithInitialContext = await eventProcessor({
317
+ payload: mockInitializeContextPayload,
318
+ eventType: TSToChartEvent.ChartConfigValidate,
319
+ source: 'ts-host-app',
320
+ });
321
+ expect(responseWithInitialContext).toStrictEqual({
322
+ isValid: false,
323
+ });
324
+ });
230
325
  test('TSToChartEvent.validateVisualProps validation response testing', () => {
231
326
  customChartContext = new CustomChartContext({
232
327
  getDefaultChartConfig,
@@ -277,6 +372,209 @@ describe('CustomChartContext', () => {
277
372
  ],
278
373
  });
279
374
  });
375
+ test('TSToChartEvent.validateVisualProps should work with activeColumnId', () => {
376
+ customChartContext = new CustomChartContext({
377
+ getDefaultChartConfig,
378
+ getQueriesFromChartConfig,
379
+ renderChart,
380
+ visualPropEditorDefinition: {
381
+ elements: [mockFormElements],
382
+ columnsVizPropDefinition: [
383
+ {
384
+ type: ColumnType.MEASURE,
385
+ columnSettingsDefinition: {
386
+ 'column-id': { elements: [mockFormElements] },
387
+ },
388
+ },
389
+ ],
390
+ },
391
+ chartConfigEditorDefinition: [],
392
+ });
393
+ const responseWithInitialContext = eventProcessor({
394
+ payload: {
395
+ ...mockInitializeContextPayload,
396
+ activeColumnId: 'column-id',
397
+ },
398
+ eventType: TSToChartEvent.VisualPropsValidate,
399
+ source: 'ts-host-app',
400
+ });
401
+ expect(responseWithInitialContext).toStrictEqual({
402
+ isValid: true,
403
+ visualPropEditorDefinition: {
404
+ elements: [mockFormElements],
405
+ columnsVizPropDefinition: [
406
+ {
407
+ type: ColumnType.MEASURE,
408
+ columnSettingsDefinition: {
409
+ 'column-id': { elements: [mockFormElements] },
410
+ },
411
+ },
412
+ ],
413
+ },
414
+ chartConfigEditorDefinition: [],
415
+ });
416
+ });
417
+ test('should handle GetColumnData event with valid columnId', async () => {
418
+ const mockData = {
419
+ data: [
420
+ {
421
+ data: {
422
+ columns: ['col1', 'col2', 'col3'],
423
+ dataValue: [
424
+ [1, 2, 3],
425
+ [4, 5, 6],
426
+ [7, 8, 9],
427
+ ],
428
+ },
429
+ },
430
+ ],
431
+ };
432
+ customChartContext.chartModel = mockData;
433
+ const response = await eventProcessor({
434
+ payload: {
435
+ columnId: 'col2',
436
+ },
437
+ eventType: TSToChartEvent.GetColumnData,
438
+ });
439
+ expect(response).toEqual({
440
+ data: [2, 5, 8],
441
+ });
442
+ });
443
+ test('should return empty array for non-existent columnId', async () => {
444
+ const mockData = {
445
+ data: [
446
+ {
447
+ data: {
448
+ columns: ['col1', 'col2', 'col3'],
449
+ dataValue: [
450
+ [1, 2, 3],
451
+ [4, 5, 6],
452
+ ],
453
+ },
454
+ },
455
+ ],
456
+ };
457
+ customChartContext.chartModel = mockData;
458
+ const response = await eventProcessor({
459
+ payload: {
460
+ columnId: 'non-existent-column',
461
+ },
462
+ eventType: TSToChartEvent.GetColumnData,
463
+ });
464
+ expect(response).toEqual({
465
+ data: [],
466
+ });
467
+ });
468
+ test('TSToChartEvent.validateVisualProps should be called with correct activeColumnId', () => {
469
+ const mockValidateVisualProps = jest
470
+ .fn()
471
+ .mockImplementation((_visualProps, _chartModel, activeColumnId) => {
472
+ if (activeColumnId === 'column-id')
473
+ return { isValid: true };
474
+ return { isValid: false };
475
+ });
476
+ customChartContext = new CustomChartContext({
477
+ getDefaultChartConfig,
478
+ getQueriesFromChartConfig,
479
+ renderChart,
480
+ visualPropEditorDefinition: {
481
+ elements: [mockFormElements],
482
+ columnsVizPropDefinition: [
483
+ {
484
+ type: ColumnType.MEASURE,
485
+ columnSettingsDefinition: {
486
+ 'column-id': { elements: [mockFormElements] },
487
+ },
488
+ },
489
+ ],
490
+ },
491
+ chartConfigEditorDefinition: [],
492
+ validateVisualProps: mockValidateVisualProps,
493
+ });
494
+ const responseWithInitialContext = eventProcessor({
495
+ payload: {
496
+ ...mockInitializeContextPayload,
497
+ activeColumnId: 'column-id',
498
+ },
499
+ eventType: TSToChartEvent.VisualPropsValidate,
500
+ source: 'ts-host-app',
501
+ });
502
+ expect(mockValidateVisualProps).toHaveBeenCalledWith(undefined, {}, 'column-id');
503
+ const validationResponse = eventProcessor({
504
+ payload: {
505
+ ...mockInitializeContextPayload,
506
+ activeColumnId: 'column-id-1',
507
+ },
508
+ eventType: TSToChartEvent.VisualPropsValidate,
509
+ source: 'ts-host-app',
510
+ });
511
+ expect(validationResponse).toStrictEqual({ isValid: false });
512
+ });
513
+ test('TSToChartEvent.validateVisualProps returns invalid if no function is provided.', () => {
514
+ customChartContext = new CustomChartContext({
515
+ getDefaultChartConfig,
516
+ getQueriesFromChartConfig,
517
+ renderChart,
518
+ visualPropEditorDefinition: {
519
+ elements: [mockFormElements],
520
+ columnsVizPropDefinition: [
521
+ {
522
+ type: ColumnType.MEASURE,
523
+ columnSettingsDefinition: {
524
+ 'column-id': { elements: [mockFormElements] },
525
+ },
526
+ },
527
+ ],
528
+ },
529
+ chartConfigEditorDefinition: [],
530
+ validateVisualProps: undefined,
531
+ });
532
+ const validationResponse = eventProcessor({
533
+ payload: {
534
+ ...mockInitializeContextPayload,
535
+ },
536
+ eventType: TSToChartEvent.VisualPropsValidate,
537
+ source: 'ts-host-app',
538
+ });
539
+ expect(validationResponse).toStrictEqual({ isValid: false });
540
+ });
541
+ test('VisualPropEditorDefintion function should recieve columnId', () => {
542
+ const mockValidateVisualProps = jest
543
+ .fn()
544
+ .mockImplementation((_visualProps, _chartModel, activeColumnId) => {
545
+ if (activeColumnId === 'column-id')
546
+ return { isValid: true };
547
+ return { isValid: false };
548
+ });
549
+ const mockVisualPropEditorDefintion = jest.fn().mockReturnValue({
550
+ elements: [mockFormElements],
551
+ columnsVizPropDefinition: [
552
+ {
553
+ type: ColumnType.MEASURE,
554
+ columnSettingsDefinition: {
555
+ 'column-id': { elements: [mockFormElements] },
556
+ },
557
+ },
558
+ ],
559
+ });
560
+ customChartContext = new CustomChartContext({
561
+ getDefaultChartConfig,
562
+ getQueriesFromChartConfig,
563
+ renderChart,
564
+ visualPropEditorDefinition: mockVisualPropEditorDefintion,
565
+ chartConfigEditorDefinition: [],
566
+ validateVisualProps: mockValidateVisualProps,
567
+ });
568
+ const responseWithInitialContext = eventProcessor({
569
+ payload: {
570
+ ...mockInitializeContextPayload,
571
+ activeColumnId: 'column-id',
572
+ },
573
+ eventType: TSToChartEvent.VisualPropsValidate,
574
+ source: 'ts-host-app',
575
+ });
576
+ expect(mockVisualPropEditorDefintion.mock.calls[0][2]).toBe('column-id');
577
+ });
280
578
  test('should not trigger post message if host is not accurate', async () => {
281
579
  expect(mockInitMessage).toHaveBeenCalled();
282
580
  const validateChartConfigResp = await eventProcessor({
@@ -486,7 +784,6 @@ describe('CustomChartContext', () => {
486
784
  const TEST_EVENT_TYPE = 'testEventType';
487
785
  const testPayload = { value: 'testPayload' };
488
786
  const result = customChartContext.emitEvent(TEST_EVENT_TYPE, testPayload);
489
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
490
787
  await expect(result).rejects.toBeDefined();
491
788
  });
492
789
  test('should resolve the promise if the chart context is initialized', async () => {