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