@thoughtspot/ts-chart-sdk 0.0.2-alpha.8 → 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 (144) hide show
  1. package/README.md +126 -50
  2. package/dist/ts-chart-sdk.d.ts +337 -31
  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 -3
  8. package/lib/main/custom-chart-context.d.ts.map +1 -1
  9. package/lib/main/custom-chart-context.js +45 -16
  10. package/lib/main/custom-chart-context.js.map +1 -1
  11. package/lib/main/custom-chart-context.spec.js +302 -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 +15 -5
  38. package/lib/types/answer-column.types.d.ts.map +1 -1
  39. package/lib/types/answer-column.types.js +10 -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 -5
  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 +3 -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/conditional-formatting/conditional-formatting.spec.js +2 -1
  66. package/lib/utils/conditional-formatting/conditional-formatting.spec.js.map +1 -1
  67. package/lib/utils/date-formatting.d.ts +85 -1
  68. package/lib/utils/date-formatting.d.ts.map +1 -1
  69. package/lib/utils/date-formatting.js +344 -9
  70. package/lib/utils/date-formatting.js.map +1 -1
  71. package/lib/utils/date-formatting.spec.js +303 -32
  72. package/lib/utils/date-formatting.spec.js.map +1 -1
  73. package/lib/utils/date-utils.d.ts +6 -0
  74. package/lib/utils/date-utils.d.ts.map +1 -0
  75. package/lib/utils/date-utils.js +20 -0
  76. package/lib/utils/date-utils.js.map +1 -0
  77. package/lib/utils/date-utils.spec.d.ts +2 -0
  78. package/lib/utils/date-utils.spec.d.ts.map +1 -0
  79. package/lib/utils/date-utils.spec.js +63 -0
  80. package/lib/utils/date-utils.spec.js.map +1 -0
  81. package/lib/utils/formatting-util.d.ts +10 -0
  82. package/lib/utils/formatting-util.d.ts.map +1 -0
  83. package/lib/utils/formatting-util.js +78 -0
  84. package/lib/utils/formatting-util.js.map +1 -0
  85. package/lib/utils/formatting-util.spec.d.ts +2 -0
  86. package/lib/utils/formatting-util.spec.d.ts.map +1 -0
  87. package/lib/utils/formatting-util.spec.js +247 -0
  88. package/lib/utils/formatting-util.spec.js.map +1 -0
  89. package/lib/utils/globalize-Initializer/globalize-utils.d.ts +16 -0
  90. package/lib/utils/globalize-Initializer/globalize-utils.d.ts.map +1 -0
  91. package/lib/utils/globalize-Initializer/globalize-utils.js +101 -0
  92. package/lib/utils/globalize-Initializer/globalize-utils.js.map +1 -0
  93. package/lib/utils/globalize-Initializer/globalize-utils.spec.d.ts +2 -0
  94. package/lib/utils/globalize-Initializer/globalize-utils.spec.d.ts.map +1 -0
  95. package/lib/utils/globalize-Initializer/globalize-utils.spec.js +149 -0
  96. package/lib/utils/globalize-Initializer/globalize-utils.spec.js.map +1 -0
  97. package/lib/utils/number-formatting/number-formatting-utils.d.ts +20 -0
  98. package/lib/utils/number-formatting/number-formatting-utils.d.ts.map +1 -0
  99. package/lib/utils/number-formatting/number-formatting-utils.js +159 -0
  100. package/lib/utils/number-formatting/number-formatting-utils.js.map +1 -0
  101. package/lib/utils/number-formatting/number-formatting-utils.spec.d.ts +2 -0
  102. package/lib/utils/number-formatting/number-formatting-utils.spec.d.ts.map +1 -0
  103. package/lib/utils/number-formatting/number-formatting-utils.spec.js +221 -0
  104. package/lib/utils/number-formatting/number-formatting-utils.spec.js.map +1 -0
  105. package/lib/utils/number-formatting/number-formatting.d.ts +5 -0
  106. package/lib/utils/number-formatting/number-formatting.d.ts.map +1 -0
  107. package/lib/utils/number-formatting/number-formatting.js +128 -0
  108. package/lib/utils/number-formatting/number-formatting.js.map +1 -0
  109. package/lib/utils/number-formatting/number-formatting.spec.d.ts +2 -0
  110. package/lib/utils/number-formatting/number-formatting.spec.d.ts.map +1 -0
  111. package/lib/utils/number-formatting/number-formatting.spec.js +159 -0
  112. package/lib/utils/number-formatting/number-formatting.spec.js.map +1 -0
  113. package/package.json +5 -2
  114. package/src/index.ts +3 -0
  115. package/src/main/custom-chart-context.spec.ts +356 -6
  116. package/src/main/custom-chart-context.ts +182 -15
  117. package/src/main/logger.spec.ts +114 -0
  118. package/src/main/logger.ts +97 -0
  119. package/src/main/util.spec.ts +94 -0
  120. package/src/main/util.ts +20 -0
  121. package/src/react/use-custom-chart-context.spec.tsx +0 -1
  122. package/src/react/use-custom-chart-context.tsx +4 -1
  123. package/src/react/use-custom-chart-context.util.ts +6 -3
  124. package/src/types/answer-column.types.ts +29 -6
  125. package/src/types/chart-to-ts-event.types.ts +7 -0
  126. package/src/types/common.types.ts +103 -8
  127. package/src/types/conditional-formatting.types.ts +2 -17
  128. package/src/types/configurator.types.ts +15 -1
  129. package/src/types/number-formatting.types.ts +80 -0
  130. package/src/types/ts-to-chart-event.types.ts +54 -5
  131. package/src/types/visual-prop.types.ts +197 -3
  132. package/src/utils/conditional-formatting/conditional-formatting.spec.ts +2 -0
  133. package/src/utils/date-formatting.spec.ts +377 -32
  134. package/src/utils/date-formatting.ts +587 -14
  135. package/src/utils/date-utils.spec.ts +93 -0
  136. package/src/utils/date-utils.ts +69 -0
  137. package/src/utils/formatting-util.spec.ts +312 -0
  138. package/src/utils/formatting-util.ts +234 -0
  139. package/src/utils/globalize-Initializer/globalize-utils.spec.ts +192 -0
  140. package/src/utils/globalize-Initializer/globalize-utils.ts +216 -0
  141. package/src/utils/number-formatting/number-formatting-utils.spec.ts +296 -0
  142. package/src/utils/number-formatting/number-formatting-utils.ts +260 -0
  143. package/src/utils/number-formatting/number-formatting.spec.ts +243 -0
  144. 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,6 +12,17 @@ const DEFAULT_CHART_CONTEXT_PROPS = {
9
12
  allowedConfigurations: {
10
13
  allowColumnNumberFormatting: false,
11
14
  allowColumnConditionalFormatting: false,
15
+ allowGradientColoring: false,
16
+ allowMeasureNamesAndValues: false,
17
+ },
18
+ chartConfigParameters: {
19
+ measureNameValueColumns: {
20
+ enableMeasureNameColumn: false,
21
+ enableMeasureValueColumn: false,
22
+ measureNameColumnAlias: 'Measure Name',
23
+ measureValueColumnAlias: 'Measure Values',
24
+ },
25
+ batchSizeLimit: 20000,
12
26
  },
13
27
  };
14
28
  export class CustomChartContext {
@@ -25,7 +39,7 @@ export class CustomChartContext {
25
39
  this.axisMenuActionHandler = {};
26
40
  this.containerEl = null;
27
41
  this.initialize = () => {
28
- console.log('Chart Context: initialization start');
42
+ logger.log('Chart Context: initialization start');
29
43
  return this.hasInitializedPromise;
30
44
  };
31
45
  this.getChartModel = () => this.chartModel;
@@ -39,39 +53,40 @@ export class CustomChartContext {
39
53
  }
40
54
  return this.chartContextProps.chartConfigEditorDefinition;
41
55
  };
42
- this.getVisualPropEditorDefinition = (currentState = {}) => {
56
+ this.getVisualPropEditorDefinition = (activeColumnId, currentState = {}) => {
43
57
  if (_.isFunction(this.chartContextProps.visualPropEditorDefinition)) {
44
58
  return this.chartContextProps.visualPropEditorDefinition({
45
59
  ...this.chartModel,
46
60
  ...currentState,
47
- }, this);
61
+ }, this, activeColumnId);
48
62
  }
49
63
  return this.chartContextProps.visualPropEditorDefinition;
50
64
  };
51
65
  this.registerEventProcessor = () => {
52
66
  if (globalThis.isInitialized) {
53
- 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');
54
68
  throw new Error(ErrorType.MultipleContextsNotSupported);
55
69
  }
56
70
  this.removeListener = initMessageListener(this.eventProcessor);
57
71
  this.registerEvents();
58
72
  };
59
73
  this.eventProcessor = (data) => {
60
- console.log('Chart Context: message received:', data.eventType, data);
74
+ logger.log('Chart Context: message received:', data.eventType, data);
61
75
  const messageResponse = this.executeEventListenerCBs(data);
62
- return messageResponse;
76
+ return messageResponse || {};
63
77
  };
64
78
  this.registerEvents = () => {
65
79
  this.onInternal(TSToChartEvent.Initialize, (payload) => this.initializeContext(payload));
66
80
  this.onInternal(TSToChartEvent.InitializeComplete, () => this.initializationComplete());
67
81
  this.onInternal(TSToChartEvent.VisualPropsValidate, (payload) => {
68
82
  if (this.chartContextProps.validateVisualProps) {
69
- 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);
70
84
  if (validationResponse.isValid) {
71
85
  const currentVisualState = {
72
86
  visualProps: payload.visualProps,
73
87
  };
74
- return this.validationsResponseProcessor(currentVisualState, validationResponse);
88
+ const activeColumnId = payload === null || payload === void 0 ? void 0 : payload.activeColumnId;
89
+ return this.validationsResponseProcessor(currentVisualState, validationResponse, activeColumnId);
75
90
  }
76
91
  return validationResponse;
77
92
  }
@@ -99,6 +114,17 @@ export class CustomChartContext {
99
114
  queries,
100
115
  };
101
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
+ });
102
128
  this.onInternal(TSToChartEvent.TriggerRenderChart, () => {
103
129
  this.chartContextProps.renderChart(this);
104
130
  });
@@ -117,7 +143,7 @@ export class CustomChartContext {
117
143
  };
118
144
  }
119
145
  catch (error) {
120
- console.log('ContextMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
146
+ logger.log('ContextMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
121
147
  return {
122
148
  isValid: false,
123
149
  error,
@@ -138,7 +164,7 @@ export class CustomChartContext {
138
164
  };
139
165
  }
140
166
  catch (error) {
141
- console.log('AxisMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
167
+ logger.log('AxisMenuCustomAction: payload recieved:', payload, 'CustomActionCallbackStore:', this.axisMenuActionHandler);
142
168
  return {
143
169
  isValid: false,
144
170
  error,
@@ -165,7 +191,7 @@ export class CustomChartContext {
165
191
  });
166
192
  };
167
193
  this.initializeContext = (payload) => {
168
- var _a;
194
+ var _a, _b;
169
195
  this.componentId = payload.componentId;
170
196
  this.hostUrl = payload.hostUrl;
171
197
  this.chartModel = payload.chartModel;
@@ -173,6 +199,7 @@ export class CustomChartContext {
173
199
  this.containerEl = payload.containerElSelector
174
200
  ? document.querySelector(payload.containerElSelector)
175
201
  : null;
202
+ setLocaleBasedStringFormats((_b = this.appConfig.dateFormatsConfig) === null || _b === void 0 ? void 0 : _b.tsLocaleBasedStringsFormats);
176
203
  return this.publishChartContextPropsToHost();
177
204
  };
178
205
  this.initializationComplete = () => {
@@ -196,6 +223,7 @@ export class CustomChartContext {
196
223
  chartConfigEditorDefinition: this.getChartConfigEditorDefinition(),
197
224
  visualPropEditorDefinition: this.getVisualPropEditorDefinition(),
198
225
  allowedConfigurations: this.chartContextProps.allowedConfigurations,
226
+ chartConfigParameters: this.chartContextProps.chartConfigParameters,
199
227
  };
200
228
  };
201
229
  this.executeEventListenerCBs = (data) => {
@@ -213,7 +241,7 @@ export class CustomChartContext {
213
241
  error: `Event type not recognised or processed: ${data.eventType}`,
214
242
  };
215
243
  }
216
- 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);
217
245
  return response;
218
246
  };
219
247
  this.chartContextProps = {
@@ -224,6 +252,7 @@ export class CustomChartContext {
224
252
  this.hasInitializedPromise = new Promise((resolve, reject) => {
225
253
  this.triggerInitResolve = resolve;
226
254
  });
255
+ postMessageToHostApp('', '*', null, ChartToTSEvent.InitStart);
227
256
  }
228
257
  on(eventType, callbackFn) {
229
258
  if (_.isNil(this.eventListeners[eventType])) {
@@ -233,7 +262,7 @@ export class CustomChartContext {
233
262
  }
234
263
  off(eventType) {
235
264
  if (_.isNil(this.eventListeners[eventType])) {
236
- console.log('No event listener found to remove');
265
+ logger.log('No event listener found to remove');
237
266
  this.eventListeners[eventType] = [];
238
267
  return;
239
268
  }
@@ -307,8 +336,8 @@ export class CustomChartContext {
307
336
  return eventPayload;
308
337
  }
309
338
  }
310
- validationsResponseProcessor(currentValidationState, validationResponse) {
311
- const visualPropEditorDefinition = this.getVisualPropEditorDefinition(currentValidationState);
339
+ validationsResponseProcessor(currentValidationState, validationResponse, activeColumnId) {
340
+ const visualPropEditorDefinition = this.getVisualPropEditorDefinition(activeColumnId, currentValidationState);
312
341
  const chartConfigEditorDefinition = this.getChartConfigEditorDefinition(currentValidationState);
313
342
  return {
314
343
  ...validationResponse,
@@ -319,7 +348,7 @@ export class CustomChartContext {
319
348
  emitEvent(eventType, ...eventPayload) {
320
349
  var _a;
321
350
  if (!globalThis.isInitialized) {
322
- console.log('Chart Context: not initialized the context, something went wrong');
351
+ logger.log('Chart Context: not initialized the context, something went wrong');
323
352
  return Promise.reject(new Error('Context not initialized'));
324
353
  }
325
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,9 +79,27 @@ describe('CustomChartContext', () => {
71
79
  allowedConfigurations: {
72
80
  allowColumnNumberFormatting: false,
73
81
  allowColumnConditionalFormatting: false,
82
+ allowGradientColoring: false,
83
+ allowMeasureNamesAndValues: false,
84
+ },
85
+ chartConfigParameters: {
86
+ measureNameValueColumns: {
87
+ enableMeasureNameColumn: false,
88
+ enableMeasureValueColumn: false,
89
+ measureNameColumnAlias: 'Measure Name',
90
+ measureValueColumnAlias: 'Measure Values',
91
+ },
92
+ batchSizeLimit: 20000,
74
93
  },
75
94
  });
76
- 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({});
77
103
  });
78
104
  test('type check string for visualProps on initialize payload should not throw an error.', async () => {
79
105
  expect(mockInitMessage).toHaveBeenCalled();
@@ -97,7 +123,6 @@ describe('CustomChartContext', () => {
97
123
  const chartModel = customChartContext.getChartModel();
98
124
  expect(typeof chartModel.visualProps).toEqual('string');
99
125
  expect(chartModel.visualProps).toEqual('visualPropStringPayload');
100
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
101
126
  });
102
127
  test('type check object for visualProps on initialize payload should not throw an error.', async () => {
103
128
  expect(mockInitMessage).toHaveBeenCalled();
@@ -125,7 +150,6 @@ describe('CustomChartContext', () => {
125
150
  expect(chartModel.visualProps).toEqual({
126
151
  data: 'sample data',
127
152
  });
128
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
129
153
  });
130
154
  test('multiple intializations should throw an error', async () => {
131
155
  getChartContext({
@@ -161,6 +185,39 @@ describe('CustomChartContext', () => {
161
185
  }
162
186
  expect(error).toBe(ErrorType.MultipleContextsNotSupported);
163
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
+ });
164
221
  });
165
222
  describe('on', () => {
166
223
  let customChartContext;
@@ -226,6 +283,45 @@ describe('CustomChartContext', () => {
226
283
  ],
227
284
  });
228
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
+ });
229
325
  test('TSToChartEvent.validateVisualProps validation response testing', () => {
230
326
  customChartContext = new CustomChartContext({
231
327
  getDefaultChartConfig,
@@ -276,6 +372,209 @@ describe('CustomChartContext', () => {
276
372
  ],
277
373
  });
278
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
+ });
279
578
  test('should not trigger post message if host is not accurate', async () => {
280
579
  expect(mockInitMessage).toHaveBeenCalled();
281
580
  const validateChartConfigResp = await eventProcessor({
@@ -485,7 +784,6 @@ describe('CustomChartContext', () => {
485
784
  const TEST_EVENT_TYPE = 'testEventType';
486
785
  const testPayload = { value: 'testPayload' };
487
786
  const result = customChartContext.emitEvent(TEST_EVENT_TYPE, testPayload);
488
- expect(mockPostMessageToHost).not.toHaveBeenCalled();
489
787
  await expect(result).rejects.toBeDefined();
490
788
  });
491
789
  test('should resolve the promise if the chart context is initialized', async () => {