@thoughtspot/ts-chart-sdk 2.5.7 → 2.6.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 (51) hide show
  1. package/dist/ts-chart-sdk.d.ts +71 -1
  2. package/lib/index.d.ts +1 -0
  3. package/lib/index.d.ts.map +1 -1
  4. package/lib/index.js +1 -0
  5. package/lib/index.js.map +1 -1
  6. package/lib/main/custom-chart-context.d.ts +3 -1
  7. package/lib/main/custom-chart-context.d.ts.map +1 -1
  8. package/lib/main/custom-chart-context.js +46 -1
  9. package/lib/main/custom-chart-context.js.map +1 -1
  10. package/lib/main/custom-chart-context.spec.js +64 -1
  11. package/lib/main/custom-chart-context.spec.js.map +1 -1
  12. package/lib/react/mocks/custom-chart-context-mock.d.ts.map +1 -1
  13. package/lib/react/mocks/custom-chart-context-mock.js +3 -7
  14. package/lib/react/mocks/custom-chart-context-mock.js.map +1 -1
  15. package/lib/react/use-custom-chart-context.spec.js +67 -1
  16. package/lib/react/use-custom-chart-context.spec.js.map +1 -1
  17. package/lib/types/chart-to-ts-event.types.d.ts +27 -0
  18. package/lib/types/chart-to-ts-event.types.d.ts.map +1 -1
  19. package/lib/types/chart-to-ts-event.types.js +7 -0
  20. package/lib/types/chart-to-ts-event.types.js.map +1 -1
  21. package/lib/types/common.types.d.ts +31 -1
  22. package/lib/types/common.types.d.ts.map +1 -1
  23. package/lib/types/common.types.js +11 -0
  24. package/lib/types/common.types.js.map +1 -1
  25. package/lib/types/conditional-formatting.types.d.ts +1 -0
  26. package/lib/types/conditional-formatting.types.d.ts.map +1 -1
  27. package/lib/types/conditional-formatting.types.js.map +1 -1
  28. package/lib/types/ts-to-chart-event.types.d.ts +6 -1
  29. package/lib/types/ts-to-chart-event.types.d.ts.map +1 -1
  30. package/lib/types/ts-to-chart-event.types.js +1 -0
  31. package/lib/types/ts-to-chart-event.types.js.map +1 -1
  32. package/lib/utils/chart-config.d.ts +8 -0
  33. package/lib/utils/chart-config.d.ts.map +1 -0
  34. package/lib/utils/chart-config.js +56 -0
  35. package/lib/utils/chart-config.js.map +1 -0
  36. package/lib/utils/chart-config.spec.d.ts +2 -0
  37. package/lib/utils/chart-config.spec.d.ts.map +1 -0
  38. package/lib/utils/chart-config.spec.js +574 -0
  39. package/lib/utils/chart-config.spec.js.map +1 -0
  40. package/package.json +2 -1
  41. package/src/index.ts +1 -0
  42. package/src/main/custom-chart-context.spec.ts +106 -1
  43. package/src/main/custom-chart-context.ts +69 -1
  44. package/src/react/mocks/custom-chart-context-mock.ts +4 -13
  45. package/src/react/use-custom-chart-context.spec.tsx +81 -1
  46. package/src/types/chart-to-ts-event.types.ts +86 -2
  47. package/src/types/common.types.ts +116 -7
  48. package/src/types/conditional-formatting.types.ts +1 -0
  49. package/src/types/ts-to-chart-event.types.ts +16 -1
  50. package/src/utils/chart-config.spec.ts +680 -0
  51. package/src/utils/chart-config.ts +100 -0
@@ -0,0 +1,574 @@
1
+ import { AxisType, ChartConfigMode, } from '../types/common.types';
2
+ import { fetchQueryColumns, fetchQueryColumnsFromDimension, fetchQueryColumnsFromDimensionConfig, } from './chart-config';
3
+ describe('fetchQueryColumnsFromDimensionConfig', () => {
4
+ const mockColumn1 = {
5
+ id: 'col1',
6
+ name: 'Column 1',
7
+ };
8
+ const mockColumn2 = {
9
+ id: 'col2',
10
+ name: 'Column 2',
11
+ };
12
+ const mockColumn3 = {
13
+ id: 'col3',
14
+ name: 'Column 3',
15
+ };
16
+ const mockColumn4 = {
17
+ id: 'col4',
18
+ name: 'Column 4',
19
+ };
20
+ describe('FLAT dimension type', () => {
21
+ it('should return single column in an array for FLAT dimension', () => {
22
+ const flatConfig = {
23
+ type: AxisType.FLAT,
24
+ column: mockColumn1,
25
+ };
26
+ const result = fetchQueryColumnsFromDimensionConfig(flatConfig);
27
+ expect(result).toEqual([mockColumn1]);
28
+ expect(result).toHaveLength(1);
29
+ });
30
+ });
31
+ describe('MERGED dimension type', () => {
32
+ it('should return all columns for MERGED dimension', () => {
33
+ const mergedConfig = {
34
+ type: AxisType.MERGED,
35
+ columns: [mockColumn1, mockColumn2],
36
+ };
37
+ const result = fetchQueryColumnsFromDimensionConfig(mergedConfig);
38
+ expect(result).toEqual([mockColumn1, mockColumn2]);
39
+ expect(result).toHaveLength(2);
40
+ });
41
+ it('should return empty array for MERGED dimension with no columns', () => {
42
+ const mergedConfig = {
43
+ type: AxisType.MERGED,
44
+ columns: [],
45
+ };
46
+ const result = fetchQueryColumnsFromDimensionConfig(mergedConfig);
47
+ expect(result).toEqual([]);
48
+ expect(result).toHaveLength(0);
49
+ });
50
+ it('should return multiple columns for MERGED dimension', () => {
51
+ const mergedConfig = {
52
+ type: AxisType.MERGED,
53
+ columns: [mockColumn1, mockColumn2, mockColumn3, mockColumn4],
54
+ };
55
+ const result = fetchQueryColumnsFromDimensionConfig(mergedConfig);
56
+ expect(result).toEqual([
57
+ mockColumn1,
58
+ mockColumn2,
59
+ mockColumn3,
60
+ mockColumn4,
61
+ ]);
62
+ expect(result).toHaveLength(4);
63
+ });
64
+ });
65
+ describe('DUAL dimension type', () => {
66
+ it('should return columns from both primary and secondary FLAT dimensions', () => {
67
+ const dualConfig = {
68
+ type: AxisType.DUAL,
69
+ primary: {
70
+ type: AxisType.FLAT,
71
+ column: mockColumn1,
72
+ },
73
+ secondary: {
74
+ type: AxisType.FLAT,
75
+ column: mockColumn2,
76
+ },
77
+ };
78
+ const result = fetchQueryColumnsFromDimensionConfig(dualConfig);
79
+ expect(result).toEqual([mockColumn1, mockColumn2]);
80
+ expect(result).toHaveLength(2);
81
+ });
82
+ it('should return columns from FLAT primary and MERGED secondary', () => {
83
+ const dualConfig = {
84
+ type: AxisType.DUAL,
85
+ primary: {
86
+ type: AxisType.FLAT,
87
+ column: mockColumn1,
88
+ },
89
+ secondary: {
90
+ type: AxisType.MERGED,
91
+ columns: [mockColumn2, mockColumn3],
92
+ },
93
+ };
94
+ const result = fetchQueryColumnsFromDimensionConfig(dualConfig);
95
+ expect(result).toEqual([mockColumn1, mockColumn2, mockColumn3]);
96
+ expect(result).toHaveLength(3);
97
+ });
98
+ it('should return columns from MERGED primary and FLAT secondary', () => {
99
+ const dualConfig = {
100
+ type: AxisType.DUAL,
101
+ primary: {
102
+ type: AxisType.MERGED,
103
+ columns: [mockColumn1, mockColumn2],
104
+ },
105
+ secondary: {
106
+ type: AxisType.FLAT,
107
+ column: mockColumn3,
108
+ },
109
+ };
110
+ const result = fetchQueryColumnsFromDimensionConfig(dualConfig);
111
+ expect(result).toEqual([mockColumn1, mockColumn2, mockColumn3]);
112
+ expect(result).toHaveLength(3);
113
+ });
114
+ it('should return columns from both MERGED primary and MERGED secondary', () => {
115
+ const dualConfig = {
116
+ type: AxisType.DUAL,
117
+ primary: {
118
+ type: AxisType.MERGED,
119
+ columns: [mockColumn1, mockColumn2],
120
+ },
121
+ secondary: {
122
+ type: AxisType.MERGED,
123
+ columns: [mockColumn3, mockColumn4],
124
+ },
125
+ };
126
+ const result = fetchQueryColumnsFromDimensionConfig(dualConfig);
127
+ expect(result).toEqual([
128
+ mockColumn1,
129
+ mockColumn2,
130
+ mockColumn3,
131
+ mockColumn4,
132
+ ]);
133
+ expect(result).toHaveLength(4);
134
+ });
135
+ it('should handle empty MERGED dimensions in DUAL config', () => {
136
+ const dualConfig = {
137
+ type: AxisType.DUAL,
138
+ primary: {
139
+ type: AxisType.MERGED,
140
+ columns: [],
141
+ },
142
+ secondary: {
143
+ type: AxisType.MERGED,
144
+ columns: [],
145
+ },
146
+ };
147
+ const result = fetchQueryColumnsFromDimensionConfig(dualConfig);
148
+ expect(result).toEqual([]);
149
+ expect(result).toHaveLength(0);
150
+ });
151
+ });
152
+ });
153
+ describe('fetchQueryColumnsFromDimension', () => {
154
+ const mockColumn1 = {
155
+ id: 'col1',
156
+ name: 'Column 1',
157
+ };
158
+ const mockColumn2 = {
159
+ id: 'col2',
160
+ name: 'Column 2',
161
+ };
162
+ const mockColumn3 = {
163
+ id: 'col3',
164
+ name: 'Column 3',
165
+ };
166
+ const mockColumn4 = {
167
+ id: 'col4',
168
+ name: 'Column 4',
169
+ };
170
+ describe('COLUMN_DRIVEN mode', () => {
171
+ it('should return columns directly for COLUMN_DRIVEN dimension', () => {
172
+ const dimension = {
173
+ key: 'xAxis',
174
+ mode: ChartConfigMode.COLUMN_DRIVEN,
175
+ columns: [mockColumn1, mockColumn2],
176
+ };
177
+ const result = fetchQueryColumnsFromDimension(dimension);
178
+ expect(result).toEqual([mockColumn1, mockColumn2]);
179
+ expect(result).toHaveLength(2);
180
+ });
181
+ it('should return empty array for COLUMN_DRIVEN dimension with no columns', () => {
182
+ const dimension = {
183
+ key: 'xAxis',
184
+ mode: ChartConfigMode.COLUMN_DRIVEN,
185
+ columns: [],
186
+ };
187
+ const result = fetchQueryColumnsFromDimension(dimension);
188
+ expect(result).toEqual([]);
189
+ expect(result).toHaveLength(0);
190
+ });
191
+ it('should return single column for COLUMN_DRIVEN dimension', () => {
192
+ const dimension = {
193
+ key: 'xAxis',
194
+ mode: ChartConfigMode.COLUMN_DRIVEN,
195
+ columns: [mockColumn1],
196
+ };
197
+ const result = fetchQueryColumnsFromDimension(dimension);
198
+ expect(result).toEqual([mockColumn1]);
199
+ expect(result).toHaveLength(1);
200
+ });
201
+ });
202
+ describe('AXIS_DRIVEN mode', () => {
203
+ it('should extract columns from single FLAT config', () => {
204
+ const dimension = {
205
+ key: 'xAxis',
206
+ mode: ChartConfigMode.AXIS_DRIVEN,
207
+ axes: [
208
+ {
209
+ type: AxisType.FLAT,
210
+ column: mockColumn1,
211
+ },
212
+ ],
213
+ };
214
+ const result = fetchQueryColumnsFromDimension(dimension);
215
+ expect(result).toEqual([mockColumn1]);
216
+ expect(result).toHaveLength(1);
217
+ });
218
+ it('should extract columns from single MERGED config', () => {
219
+ const dimension = {
220
+ key: 'yAxis',
221
+ mode: ChartConfigMode.AXIS_DRIVEN,
222
+ axes: [
223
+ {
224
+ type: AxisType.MERGED,
225
+ columns: [mockColumn1, mockColumn2],
226
+ },
227
+ ],
228
+ };
229
+ const result = fetchQueryColumnsFromDimension(dimension);
230
+ expect(result).toEqual([mockColumn1, mockColumn2]);
231
+ expect(result).toHaveLength(2);
232
+ });
233
+ it('should extract columns from multiple FLAT configs', () => {
234
+ const dimension = {
235
+ key: 'yAxis',
236
+ mode: ChartConfigMode.AXIS_DRIVEN,
237
+ axes: [
238
+ {
239
+ type: AxisType.FLAT,
240
+ column: mockColumn1,
241
+ },
242
+ {
243
+ type: AxisType.FLAT,
244
+ column: mockColumn2,
245
+ },
246
+ ],
247
+ };
248
+ const result = fetchQueryColumnsFromDimension(dimension);
249
+ expect(result).toEqual([mockColumn1, mockColumn2]);
250
+ expect(result).toHaveLength(2);
251
+ });
252
+ it('should extract columns from mixed FLAT and MERGED configs', () => {
253
+ const dimension = {
254
+ key: 'yAxis',
255
+ mode: ChartConfigMode.AXIS_DRIVEN,
256
+ axes: [
257
+ {
258
+ type: AxisType.FLAT,
259
+ column: mockColumn1,
260
+ },
261
+ {
262
+ type: AxisType.MERGED,
263
+ columns: [mockColumn2, mockColumn3],
264
+ },
265
+ ],
266
+ };
267
+ const result = fetchQueryColumnsFromDimension(dimension);
268
+ expect(result).toEqual([mockColumn1, mockColumn2, mockColumn3]);
269
+ expect(result).toHaveLength(3);
270
+ });
271
+ it('should extract columns from DUAL config', () => {
272
+ const dimension = {
273
+ key: 'yAxis',
274
+ mode: ChartConfigMode.AXIS_DRIVEN,
275
+ axes: [
276
+ {
277
+ type: AxisType.DUAL,
278
+ primary: {
279
+ type: AxisType.FLAT,
280
+ column: mockColumn1,
281
+ },
282
+ secondary: {
283
+ type: AxisType.FLAT,
284
+ column: mockColumn2,
285
+ },
286
+ },
287
+ ],
288
+ };
289
+ const result = fetchQueryColumnsFromDimension(dimension);
290
+ expect(result).toEqual([mockColumn1, mockColumn2]);
291
+ expect(result).toHaveLength(2);
292
+ });
293
+ it('should extract columns from complex nested config', () => {
294
+ const dimension = {
295
+ key: 'yAxis',
296
+ mode: ChartConfigMode.AXIS_DRIVEN,
297
+ axes: [
298
+ {
299
+ type: AxisType.FLAT,
300
+ column: mockColumn1,
301
+ },
302
+ {
303
+ type: AxisType.DUAL,
304
+ primary: {
305
+ type: AxisType.MERGED,
306
+ columns: [mockColumn2, mockColumn3],
307
+ },
308
+ secondary: {
309
+ type: AxisType.FLAT,
310
+ column: mockColumn4,
311
+ },
312
+ },
313
+ ],
314
+ };
315
+ const result = fetchQueryColumnsFromDimension(dimension);
316
+ expect(result).toEqual([
317
+ mockColumn1,
318
+ mockColumn2,
319
+ mockColumn3,
320
+ mockColumn4,
321
+ ]);
322
+ expect(result).toHaveLength(4);
323
+ });
324
+ it('should return empty array for AXIS_DRIVEN dimension with no configs', () => {
325
+ const dimension = {
326
+ key: 'yAxis',
327
+ mode: ChartConfigMode.AXIS_DRIVEN,
328
+ axes: [],
329
+ };
330
+ const result = fetchQueryColumnsFromDimension(dimension);
331
+ expect(result).toEqual([]);
332
+ expect(result).toHaveLength(0);
333
+ });
334
+ it('should handle multiple MERGED configs correctly', () => {
335
+ const dimension = {
336
+ key: 'yAxis',
337
+ mode: ChartConfigMode.AXIS_DRIVEN,
338
+ axes: [
339
+ {
340
+ type: AxisType.MERGED,
341
+ columns: [mockColumn1, mockColumn2],
342
+ },
343
+ {
344
+ type: AxisType.MERGED,
345
+ columns: [mockColumn3, mockColumn4],
346
+ },
347
+ ],
348
+ };
349
+ const result = fetchQueryColumnsFromDimension(dimension);
350
+ expect(result).toEqual([
351
+ mockColumn1,
352
+ mockColumn2,
353
+ mockColumn3,
354
+ mockColumn4,
355
+ ]);
356
+ expect(result).toHaveLength(4);
357
+ });
358
+ });
359
+ });
360
+ describe('fetchQueryColumns', () => {
361
+ const mockColumn1 = {
362
+ id: 'col1',
363
+ name: 'Column 1',
364
+ };
365
+ const mockColumn2 = {
366
+ id: 'col2',
367
+ name: 'Column 2',
368
+ };
369
+ const mockColumn3 = {
370
+ id: 'col3',
371
+ name: 'Column 3',
372
+ };
373
+ const mockColumn4 = {
374
+ id: 'col4',
375
+ name: 'Column 4',
376
+ };
377
+ describe('ColumnDrivenChartConfig', () => {
378
+ it('should return columns from single dimension', () => {
379
+ const chartConfig = {
380
+ key: 'chart1',
381
+ dimensions: [
382
+ {
383
+ key: 'xAxis',
384
+ mode: ChartConfigMode.COLUMN_DRIVEN,
385
+ columns: [mockColumn1, mockColumn2],
386
+ },
387
+ ],
388
+ };
389
+ const result = fetchQueryColumns(chartConfig);
390
+ expect(result).toEqual([mockColumn1, mockColumn2]);
391
+ expect(result).toHaveLength(2);
392
+ });
393
+ it('should return columns from multiple dimensions', () => {
394
+ const chartConfig = {
395
+ key: 'chart1',
396
+ dimensions: [
397
+ {
398
+ key: 'xAxis',
399
+ mode: ChartConfigMode.COLUMN_DRIVEN,
400
+ columns: [mockColumn1],
401
+ },
402
+ {
403
+ key: 'yAxis',
404
+ mode: ChartConfigMode.COLUMN_DRIVEN,
405
+ columns: [mockColumn2, mockColumn3],
406
+ },
407
+ ],
408
+ };
409
+ const result = fetchQueryColumns(chartConfig);
410
+ expect(result).toEqual([mockColumn1, mockColumn2, mockColumn3]);
411
+ expect(result).toHaveLength(3);
412
+ });
413
+ it('should return empty array for chart config with no dimensions', () => {
414
+ const chartConfig = {
415
+ key: 'chart1',
416
+ dimensions: [],
417
+ };
418
+ const result = fetchQueryColumns(chartConfig);
419
+ expect(result).toEqual([]);
420
+ expect(result).toHaveLength(0);
421
+ });
422
+ });
423
+ describe('ConfigDrivenChartConfig', () => {
424
+ it('should return columns from single dimension with FLAT config', () => {
425
+ const chartConfig = {
426
+ key: 'chart1',
427
+ dimensions: [
428
+ {
429
+ key: 'xAxis',
430
+ mode: ChartConfigMode.AXIS_DRIVEN,
431
+ axes: [
432
+ {
433
+ type: AxisType.FLAT,
434
+ column: mockColumn1,
435
+ },
436
+ ],
437
+ },
438
+ ],
439
+ };
440
+ const result = fetchQueryColumns(chartConfig);
441
+ expect(result).toEqual([mockColumn1]);
442
+ expect(result).toHaveLength(1);
443
+ });
444
+ it('should return columns from multiple dimensions with mixed configs', () => {
445
+ const chartConfig = {
446
+ key: 'chart1',
447
+ dimensions: [
448
+ {
449
+ key: 'xAxis',
450
+ mode: ChartConfigMode.AXIS_DRIVEN,
451
+ axes: [
452
+ {
453
+ type: AxisType.FLAT,
454
+ column: mockColumn1,
455
+ },
456
+ ],
457
+ },
458
+ {
459
+ key: 'yAxis',
460
+ mode: ChartConfigMode.AXIS_DRIVEN,
461
+ axes: [
462
+ {
463
+ type: AxisType.MERGED,
464
+ columns: [mockColumn2, mockColumn3],
465
+ },
466
+ ],
467
+ },
468
+ ],
469
+ };
470
+ const result = fetchQueryColumns(chartConfig);
471
+ expect(result).toEqual([mockColumn1, mockColumn2, mockColumn3]);
472
+ expect(result).toHaveLength(3);
473
+ });
474
+ it('should return columns from DUAL dimension config', () => {
475
+ const chartConfig = {
476
+ key: 'chart1',
477
+ dimensions: [
478
+ {
479
+ key: 'yAxis',
480
+ mode: ChartConfigMode.AXIS_DRIVEN,
481
+ axes: [
482
+ {
483
+ type: AxisType.DUAL,
484
+ primary: {
485
+ type: AxisType.FLAT,
486
+ column: mockColumn1,
487
+ },
488
+ secondary: {
489
+ type: AxisType.MERGED,
490
+ columns: [mockColumn2, mockColumn3],
491
+ },
492
+ },
493
+ ],
494
+ },
495
+ ],
496
+ };
497
+ const result = fetchQueryColumns(chartConfig);
498
+ expect(result).toEqual([mockColumn1, mockColumn2, mockColumn3]);
499
+ expect(result).toHaveLength(3);
500
+ });
501
+ });
502
+ describe('Complex ChartConfig', () => {
503
+ it('should handle multiple ConfigDriven dimensions with complex nested structures', () => {
504
+ const chartConfig = {
505
+ key: 'chart1',
506
+ dimensions: [
507
+ {
508
+ key: 'xAxis',
509
+ mode: ChartConfigMode.AXIS_DRIVEN,
510
+ axes: [
511
+ {
512
+ type: AxisType.FLAT,
513
+ column: mockColumn1,
514
+ },
515
+ ],
516
+ },
517
+ {
518
+ key: 'yAxis',
519
+ mode: ChartConfigMode.AXIS_DRIVEN,
520
+ axes: [
521
+ {
522
+ type: AxisType.MERGED,
523
+ columns: [
524
+ mockColumn2,
525
+ mockColumn3,
526
+ mockColumn4,
527
+ ],
528
+ },
529
+ ],
530
+ },
531
+ ],
532
+ };
533
+ const result = fetchQueryColumns(chartConfig);
534
+ expect(result).toEqual([
535
+ mockColumn1,
536
+ mockColumn2,
537
+ mockColumn3,
538
+ mockColumn4,
539
+ ]);
540
+ expect(result).toHaveLength(4);
541
+ });
542
+ it('should handle multiple ColumnDriven dimensions', () => {
543
+ const chartConfig = {
544
+ key: 'chart1',
545
+ dimensions: [
546
+ {
547
+ key: 'xAxis',
548
+ mode: ChartConfigMode.COLUMN_DRIVEN,
549
+ columns: [mockColumn1],
550
+ },
551
+ {
552
+ key: 'yAxis',
553
+ mode: ChartConfigMode.COLUMN_DRIVEN,
554
+ columns: [mockColumn2, mockColumn3],
555
+ },
556
+ {
557
+ key: 'color',
558
+ mode: ChartConfigMode.COLUMN_DRIVEN,
559
+ columns: [mockColumn4],
560
+ },
561
+ ],
562
+ };
563
+ const result = fetchQueryColumns(chartConfig);
564
+ expect(result).toEqual([
565
+ mockColumn1,
566
+ mockColumn2,
567
+ mockColumn3,
568
+ mockColumn4,
569
+ ]);
570
+ expect(result).toHaveLength(4);
571
+ });
572
+ });
573
+ });
574
+ //# sourceMappingURL=chart-config.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-config.spec.js","sourceRoot":"","sources":["../../src/utils/chart-config.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@thoughtspot/ts-chart-sdk",
3
3
  "private": false,
4
- "version": "2.5.7",
4
+ "version": "2.6.0",
5
5
  "module": "lib/index",
6
6
  "main": "lib/index",
7
7
  "types": "lib/index",
@@ -76,6 +76,7 @@
76
76
  },
77
77
  "dependencies": {
78
78
  "cldr-data": "^36.0.4",
79
+ "cldr-data-downloader": "^1.1.0",
79
80
  "globalize": "^1.7.0",
80
81
  "lodash": "^4.17.21",
81
82
  "luxon": "^3.4.4",
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ export * from './main/custom-chart-context';
8
8
  export * from './react/use-custom-chart-context';
9
9
  export * from './types/conditional-formatting.types';
10
10
  export * from './types/number-formatting.types';
11
+ export * from './utils/chart-config';
11
12
  export * from './utils/date-formatting';
12
13
  export * from './utils/conditional-formatting/conditional-formatting';
13
14
  export * from './utils/number-formatting/number-formatting';