@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
@@ -0,0 +1,247 @@
1
+ import { ChartSpecificColumnType, ColumnTimeBucket, ColumnType, DataType, } from '../types/answer-column.types';
2
+ import * as DateFormatting from './date-formatting';
3
+ import { getFormatPatternForBucket, showDateFinancialYearFormat, } from './date-utils';
4
+ import { generateMapOptions, getBaseTypeFormatterInstance, getDataFormatter, getFormatPattern, } from './formatting-util';
5
+ jest.mock('./date-utils', () => ({
6
+ getFormatPatternForBucket: jest.fn(),
7
+ showDateFinancialYearFormat: jest.fn(),
8
+ getCustomCalendarGuid: jest
9
+ .fn()
10
+ .mockReturnValue('7573c08b-753b-478b-84fd-6e702d481ff6'),
11
+ }));
12
+ describe('formatting utils', () => {
13
+ const mockOptions = {
14
+ quarterStartMonth: 1,
15
+ tsLocaleBasedStringsFormats: {
16
+ null_value_placeholder_label: '{Null}',
17
+ empty_value_placeholder_label: '{Empty}',
18
+ other_value_placeholder_label: '{Other}',
19
+ unavailabe_column_sample_value: '{Unavailable}',
20
+ weekOfDay: {
21
+ Friday: 'Friday',
22
+ Monday: 'Monday',
23
+ Saturday: 'Saturday',
24
+ Sunday: 'Sunday',
25
+ Thursday: 'Thursday',
26
+ Tuesday: 'Tuesday',
27
+ Wednesday: 'Wednesday',
28
+ },
29
+ monthOfYear: {
30
+ April: 'April',
31
+ August: 'August',
32
+ December: 'December',
33
+ February: 'February',
34
+ January: 'January',
35
+ July: 'July',
36
+ June: 'June',
37
+ March: 'March',
38
+ May: 'May',
39
+ November: 'November',
40
+ October: 'October',
41
+ September: 'September',
42
+ },
43
+ quarter_of_year: 'Q{1}',
44
+ },
45
+ tsDateConstants: {
46
+ day_in_month_format: 'e',
47
+ day_in_quarter_format: 'e',
48
+ day_in_year_format: 'j',
49
+ day_of_week_format: 'e',
50
+ month_in_quarter_format: 'm',
51
+ month_in_year_format: 'm',
52
+ special_value_unavailable: 'N/A',
53
+ week_in_year_format: 'V',
54
+ },
55
+ tsLocaleBasedDateFormats: {
56
+ DATE_SHORT: 'y',
57
+ },
58
+ quarter_of_year: 'Q{1}',
59
+ tsDefinedCustomCalenders: {
60
+ '43121d86-347a-4dbb-bea8-5e5bb899e427': {
61
+ calendar: '7573c08b-753b-478b-84fd-6e702d481ff6',
62
+ fiscal: 'bfa39848-ba4f-46d8-80fd-b695064e61b7',
63
+ french: 'a7316e8d-d4dd-4eaf-9294-396db951b422',
64
+ },
65
+ },
66
+ displayToCustomCalendarValueMap: {
67
+ '1234567891': {
68
+ v: {
69
+ s: 'start',
70
+ e: 'end',
71
+ },
72
+ d: 'custom Date',
73
+ },
74
+ '1234567892': {
75
+ v: {
76
+ s: '1234567890',
77
+ e: 'end',
78
+ },
79
+ },
80
+ },
81
+ };
82
+ test('getFormatPattern should call getFormatPatternForBucket with bucket and return pattern', () => {
83
+ const column = {
84
+ id: 'testId',
85
+ name: 'test',
86
+ type: ColumnType.MEASURE,
87
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
88
+ timeBucket: ColumnTimeBucket.YEARLY,
89
+ dataType: DataType.DATE,
90
+ calenderGuid: '12345',
91
+ };
92
+ expect(getFormatPattern(column)).toBe(undefined);
93
+ expect(getFormatPatternForBucket).toHaveBeenCalledWith(column.timeBucket);
94
+ });
95
+ test('should return date formatter if column is date', () => {
96
+ const column = {
97
+ id: 'testId',
98
+ name: 'test',
99
+ type: ColumnType.MEASURE,
100
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
101
+ timeBucket: ColumnTimeBucket.YEARLY,
102
+ dataType: DataType.DATE,
103
+ calenderGuid: '12345',
104
+ };
105
+ const options = { isMillisIncluded: true };
106
+ const formatter = getBaseTypeFormatterInstance(column, options);
107
+ expect(typeof formatter).toBe('function');
108
+ const formattedDate = formatter(1234567890, mockOptions);
109
+ expect(formattedDate).toBe('2009');
110
+ const customFormattedDate = formatter(1234567891, mockOptions);
111
+ const customFormattedDateWithoutDisplayValue = formatter(1234567892, mockOptions);
112
+ expect(customFormattedDateWithoutDisplayValue).toBe('2009');
113
+ expect(customFormattedDate).toBe('custom Date');
114
+ expect(showDateFinancialYearFormat).toHaveBeenCalledWith(column);
115
+ });
116
+ test('should return dateNum formatter if column is dateNum', () => {
117
+ const column = {
118
+ id: 'testId',
119
+ name: 'test',
120
+ type: ColumnType.ATTRIBUTE,
121
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
122
+ timeBucket: ColumnTimeBucket.HOUR_OF_DAY,
123
+ dataType: DataType.INT64,
124
+ calenderGuid: '12345',
125
+ };
126
+ const options = { isMillisIncluded: true };
127
+ const formatter = getBaseTypeFormatterInstance(column, options);
128
+ expect(typeof formatter).toBe('function');
129
+ const formattedDate = formatter(1234567890, mockOptions);
130
+ expect(formattedDate).toBe(1234567890);
131
+ const customFormattedDate = formatter(1234567891, mockOptions);
132
+ const customFormattedDateWithoutDisplayValue = formatter(1234567892, mockOptions);
133
+ expect(customFormattedDateWithoutDisplayValue).toBe(1234567892);
134
+ expect(customFormattedDate).toBe('custom Date');
135
+ });
136
+ test('should return a default formatter for non-date types', () => {
137
+ const column = {
138
+ id: 'testId',
139
+ name: 'test',
140
+ type: ColumnType.MEASURE,
141
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
142
+ timeBucket: ColumnTimeBucket.HOUR_OF_DAY,
143
+ dataType: DataType.INT64,
144
+ calenderGuid: '12345',
145
+ };
146
+ const options = { isMillisIncluded: true };
147
+ const formatter = getBaseTypeFormatterInstance(column, options);
148
+ expect(formatter('test')).toBe('test');
149
+ });
150
+ test('getDataFormatter should return appropriate formatter based on column type', () => {
151
+ const column = {
152
+ id: 'testId',
153
+ name: 'test',
154
+ type: ColumnType.ATTRIBUTE,
155
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
156
+ timeBucket: ColumnTimeBucket.YEARLY,
157
+ dataType: DataType.DATE,
158
+ calenderGuid: '12345',
159
+ };
160
+ const options = { isMillisIncluded: true };
161
+ const formatter = getDataFormatter(column, options);
162
+ expect(typeof formatter).toBe('function');
163
+ const formattedDate = formatter(1234567890, mockOptions);
164
+ expect(formattedDate).toBe('2009');
165
+ const customFormattedDate = formatter(1234567891, mockOptions);
166
+ const customFormattedDateWithoutDisplayValue = formatter(1234567892, mockOptions);
167
+ expect(customFormattedDateWithoutDisplayValue).toBe('2009');
168
+ expect(customFormattedDate).toBe('custom Date');
169
+ expect(showDateFinancialYearFormat).toHaveBeenCalledWith(column);
170
+ });
171
+ test('generateMapOptions should return map options based on appConfig and column', () => {
172
+ const column = {
173
+ id: 'testId',
174
+ name: 'test',
175
+ type: ColumnType.ATTRIBUTE,
176
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
177
+ timeBucket: ColumnTimeBucket.YEARLY,
178
+ dataType: DataType.DATE,
179
+ calenderGuid: '12345',
180
+ };
181
+ const appConfig = {
182
+ localeOptions: { locale: 'en-US', quarterStartMonth: 1 },
183
+ dateFormatsConfig: {
184
+ tsLocaleBasedDateFormats: 'MM-DD-YYYY',
185
+ tsLocaleBasedStringsFormats: 'YYYY/MM/DD',
186
+ tsDateConstants: {},
187
+ tsDefinedCustomCalenders: {},
188
+ DEFAULT_DATASOURCE_ID: 'source1',
189
+ },
190
+ };
191
+ const data = [{ v: { s: 'key1' } }, { v: { s: 'key2' } }];
192
+ const mapOptions = generateMapOptions(appConfig, column, data);
193
+ expect(mapOptions.locale).toBe('en-US');
194
+ expect(mapOptions.quarterStartMonth).toBe(1);
195
+ expect(mapOptions.displayToCustomCalendarValueMap).toEqual({
196
+ key1: data[0],
197
+ key2: data[1],
198
+ });
199
+ });
200
+ test('should have format pattern as DATETIME_SHORT_WITH_MILLIS when format pattern is null', () => {
201
+ const column = {
202
+ id: 'testId',
203
+ name: 'test',
204
+ type: ColumnType.VIRTUAL,
205
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
206
+ timeBucket: ColumnTimeBucket.MONTHLY,
207
+ dataType: DataType.DATE_TIME,
208
+ calenderGuid: '12345',
209
+ };
210
+ const options = { isMillisIncluded: true };
211
+ const formatter = getBaseTypeFormatterInstance(column, options);
212
+ expect(typeof formatter).toBe('function');
213
+ });
214
+ test('should correctly set format pattern for date-time column with and without milliseconds', () => {
215
+ jest.spyOn(DateFormatting, 'formatDate').mockImplementation(jest.fn());
216
+ const column = {
217
+ id: 'testId',
218
+ name: 'test',
219
+ type: ColumnType.MEASURE,
220
+ chartSpecificColumnType: ChartSpecificColumnType.UNKNOWN,
221
+ timeBucket: ColumnTimeBucket.MONTHLY,
222
+ dataType: DataType.DATE_TIME,
223
+ calenderGuid: '12345',
224
+ };
225
+ const optionsWithMillis = { isMillisIncluded: true };
226
+ const optionsWithoutMillis = { isMillisIncluded: false };
227
+ const formatterWithMillis = getBaseTypeFormatterInstance(column, optionsWithMillis);
228
+ const formatterWithoutMillis = getBaseTypeFormatterInstance(column, optionsWithoutMillis);
229
+ expect(typeof formatterWithMillis).toBe('function');
230
+ expect(typeof formatterWithoutMillis).toBe('function');
231
+ const dateFormatPresetsMock = {
232
+ DATETIME_SHORT_WITH_MILLIS: 'DATETIME_SHORT_WITH_MILLIS',
233
+ DATETIME_SHORT_WITH_SECONDS: 'DATETIME_SHORT_WITH_SECONDS',
234
+ };
235
+ const formattedDateWithMillis = formatterWithMillis(1234567890, mockOptions);
236
+ expect(DateFormatting.formatDate).toHaveBeenCalledWith(1234567890, dateFormatPresetsMock.DATETIME_SHORT_WITH_MILLIS, true, {
237
+ ...mockOptions,
238
+ customCalendarOverridesFiscalOffset: true,
239
+ });
240
+ const formattedDateWithoutMillis = formatterWithoutMillis(1234567890, mockOptions);
241
+ expect(DateFormatting.formatDate).toHaveBeenCalledWith(1234567890, dateFormatPresetsMock.DATETIME_SHORT_WITH_SECONDS, true, {
242
+ ...mockOptions,
243
+ customCalendarOverridesFiscalOffset: true,
244
+ });
245
+ });
246
+ });
247
+ //# sourceMappingURL=formatting-util.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting-util.spec.js","sourceRoot":"","sources":["../../src/utils/formatting-util.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import Globalize from 'globalize';
2
+ export declare const getCountryCode: (locale: string) => string;
3
+ export declare const getDefaultCurrencyCode: () => string;
4
+ export declare const setGlobalizeLocale: (locale: string) => void;
5
+ export declare const getGlobalizeLocale: () => string;
6
+ export declare const setCurrentCurrencyFormat: (currencyFormat: any) => void;
7
+ export declare const getCurrentCurrencyFormat: () => any;
8
+ export declare const loadCurrencyData: (data: any) => void;
9
+ export declare const loadGlobalizeData: (data: any) => void;
10
+ export declare const initGlobalize: (locale?: string) => void;
11
+ export declare function globalizeNumberFormatter(format: Globalize.NumberFormatterOptions): (num: number) => string;
12
+ export declare function globalizeCurrencyFormatter(currencyCode: string, format: Globalize.CurrencyFormatterOptions): (num: number) => string;
13
+ export declare function formatNumberSafely<FormatOptions extends Globalize.NumberFormatterOptions>(format: FormatOptions, num: number): string;
14
+ export declare const sanitizeFormat: (format: string) => string;
15
+ export declare const validateNumberFormat: (format: string) => boolean;
16
+ //# sourceMappingURL=globalize-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalize-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/globalize-Initializer/globalize-utils.ts"],"names":[],"mappings":"AAeA,OAAO,SAAS,MAAM,WAAW,CAAC;AAgBlC,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,MAU/C,CAAC;AAOF,eAAO,MAAM,sBAAsB,QAAO,MAezC,CAAC;AAOF,eAAO,MAAM,kBAAkB,WAAY,MAAM,KAAG,IAGnD,CAAC;AAOF,eAAO,MAAM,kBAAkB,cAAsB,CAAC;AAOtD,eAAO,MAAM,wBAAwB,mBAAoB,GAAG,KAAG,IAE9D,CAAC;AAOF,eAAO,MAAM,wBAAwB,WAA8B,CAAC;AAOpE,eAAO,MAAM,gBAAgB,SAAU,GAAG,SAEzC,CAAC;AAOF,eAAO,MAAM,iBAAiB,SAAU,GAAG,SAE1C,CAAC;AAOF,eAAO,MAAM,aAAa,2BAWzB,CAAC;AAQF,wBAAgB,wBAAwB,CACpC,MAAM,EAAE,SAAS,CAAC,sBAAsB,GACzC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAEzB;AASD,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,SAAS,CAAC,wBAAwB,GAC3C,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAEzB;AASD,wBAAgB,kBAAkB,CAC9B,aAAa,SAAS,SAAS,CAAC,sBAAsB,EACxD,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAY5C;AAQD,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,MAQ/C,CAAC;AAQF,eAAO,MAAM,oBAAoB,WAAY,MAAM,KAAG,OAUrD,CAAC"}
@@ -0,0 +1,101 @@
1
+ import enCaGregorian from 'cldr-data/main/en/ca-gregorian.json';
2
+ import enCurrencies from 'cldr-data/main/en/currencies.json';
3
+ import enNumbers from 'cldr-data/main/en/numbers.json';
4
+ import currencyData from 'cldr-data/supplemental/currencyData.json';
5
+ import supplemental from 'cldr-data/supplemental/likelySubtags.json';
6
+ import enpluralJson from 'cldr-data/supplemental/plurals.json';
7
+ import Globalize from 'globalize';
8
+ import { create } from '../../main/logger';
9
+ const logger = create('globalize-initializer');
10
+ let currentLocale;
11
+ let currentCurrencyFormat;
12
+ let supplementalCurrencyDataJson;
13
+ export const getCountryCode = (locale) => {
14
+ let parts = locale.split('_');
15
+ if (parts.length === 2) {
16
+ return parts[1].toUpperCase();
17
+ }
18
+ parts = locale.split('-');
19
+ if (parts.length === 2) {
20
+ return parts[1].toUpperCase();
21
+ }
22
+ return locale;
23
+ };
24
+ export const getDefaultCurrencyCode = () => {
25
+ var _a, _b;
26
+ if (currentCurrencyFormat) {
27
+ return currentCurrencyFormat;
28
+ }
29
+ const countryCode = getCountryCode(currentLocale);
30
+ const regionData = (_b = (_a = supplementalCurrencyDataJson === null || supplementalCurrencyDataJson === void 0 ? void 0 : supplementalCurrencyDataJson.supplemental) === null || _a === void 0 ? void 0 : _a.currencyData) === null || _b === void 0 ? void 0 : _b.region[countryCode.toUpperCase()];
31
+ if (!regionData || regionData.length === 0) {
32
+ logger.warn('No currency data found for country:', countryCode);
33
+ return 'GBP';
34
+ }
35
+ return Object.keys(regionData[regionData.length - 1])[0];
36
+ };
37
+ export const setGlobalizeLocale = (locale) => {
38
+ Globalize.locale(locale);
39
+ currentLocale = locale;
40
+ };
41
+ export const getGlobalizeLocale = () => currentLocale;
42
+ export const setCurrentCurrencyFormat = (currencyFormat) => {
43
+ currentCurrencyFormat = currencyFormat;
44
+ };
45
+ export const getCurrentCurrencyFormat = () => currentCurrencyFormat;
46
+ export const loadCurrencyData = (data) => {
47
+ supplementalCurrencyDataJson = data;
48
+ };
49
+ export const loadGlobalizeData = (data) => {
50
+ Globalize.load(data);
51
+ };
52
+ export const initGlobalize = (locale = 'en-GB') => {
53
+ loadGlobalizeData(enNumbers);
54
+ loadGlobalizeData(enCaGregorian);
55
+ loadGlobalizeData(supplemental);
56
+ loadGlobalizeData(currencyData);
57
+ loadGlobalizeData(enpluralJson);
58
+ loadGlobalizeData(enCurrencies);
59
+ loadCurrencyData(currencyData);
60
+ setGlobalizeLocale(locale);
61
+ };
62
+ export function globalizeNumberFormatter(format) {
63
+ return Globalize.numberFormatter(format);
64
+ }
65
+ export function globalizeCurrencyFormatter(currencyCode, format) {
66
+ return Globalize.currencyFormatter(currencyCode, format);
67
+ }
68
+ export function formatNumberSafely(format, num) {
69
+ try {
70
+ const formatter = globalizeNumberFormatter(format);
71
+ const formattedNumber = formatter(num);
72
+ return formattedNumber;
73
+ }
74
+ catch (e) {
75
+ logger.error('Error formatting pattern: ', format, num, e);
76
+ if (Math.abs(num) < 1e-7) {
77
+ return '0';
78
+ }
79
+ return String(num);
80
+ }
81
+ }
82
+ export const sanitizeFormat = (format) => {
83
+ let sanitizedFormat = format.replace(/#\./, '0.');
84
+ if (!sanitizedFormat.includes('.')) {
85
+ sanitizedFormat = sanitizedFormat.replace(/#(%?)$/, '0$1');
86
+ }
87
+ return sanitizedFormat;
88
+ };
89
+ export const validateNumberFormat = (format) => {
90
+ try {
91
+ Globalize.numberFormatter({
92
+ ...{ raw: sanitizeFormat(format) },
93
+ })(123);
94
+ }
95
+ catch (e) {
96
+ logger.error('Invalid number format:', format, e);
97
+ return false;
98
+ }
99
+ return true;
100
+ };
101
+ //# sourceMappingURL=globalize-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalize-utils.js","sourceRoot":"","sources":["../../../src/utils/globalize-Initializer/globalize-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=globalize-utils.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalize-utils.spec.d.ts","sourceRoot":"","sources":["../../../src/utils/globalize-Initializer/globalize-utils.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ import Globalize from 'globalize';
2
+ import { formatNumberSafely, getCountryCode, getCurrentCurrencyFormat, getDefaultCurrencyCode, getGlobalizeLocale, globalizeCurrencyFormatter, globalizeNumberFormatter, initGlobalize, loadCurrencyData, loadGlobalizeData, sanitizeFormat, setCurrentCurrencyFormat, setGlobalizeLocale, validateNumberFormat, } from './globalize-utils';
3
+ describe('Initialize Globalize', () => {
4
+ beforeEach(() => {
5
+ jest.clearAllMocks();
6
+ initGlobalize('en-US');
7
+ });
8
+ describe('getCountryCode', () => {
9
+ it('should extract country code from locale with underscore', () => {
10
+ expect(getCountryCode('en_US')).toBe('US');
11
+ });
12
+ it('should extract country code from locale with hyphen', () => {
13
+ expect(getCountryCode('en-US')).toBe('US');
14
+ });
15
+ it('should return the input locale if no delimiter is found', () => {
16
+ expect(getCountryCode('en')).toBe('en');
17
+ });
18
+ });
19
+ describe('getDefaultCurrencyCode', () => {
20
+ it('should return the current currency format if set', () => {
21
+ setCurrentCurrencyFormat('EUR');
22
+ expect(getDefaultCurrencyCode()).toBe('EUR');
23
+ });
24
+ it('should return GBP if no currency data is found', () => {
25
+ setCurrentCurrencyFormat(null);
26
+ loadCurrencyData({});
27
+ expect(getDefaultCurrencyCode()).toBe('GBP');
28
+ });
29
+ it('should retrieve the default currency code from supplemental data', () => {
30
+ loadCurrencyData({
31
+ supplemental: {
32
+ currencyData: {
33
+ region: {
34
+ US: [{ USD: {} }],
35
+ },
36
+ },
37
+ },
38
+ });
39
+ setGlobalizeLocale('en-US');
40
+ expect(getDefaultCurrencyCode()).toBe('USD');
41
+ });
42
+ });
43
+ describe('setGlobalizeLocale', () => {
44
+ it('should set the Globalize locale', () => {
45
+ setGlobalizeLocale('fr-FR');
46
+ expect(getGlobalizeLocale()).toBe('fr-FR');
47
+ });
48
+ });
49
+ describe('getGlobalizeLocale', () => {
50
+ it('should return the current locale', () => {
51
+ expect(getGlobalizeLocale()).toBe('en-US');
52
+ });
53
+ });
54
+ describe('setCurrentCurrencyFormat', () => {
55
+ it('should set the current currency format', () => {
56
+ setCurrentCurrencyFormat('JPY');
57
+ expect(getCurrentCurrencyFormat()).toBe('JPY');
58
+ });
59
+ });
60
+ describe('loadCurrencyData', () => {
61
+ it('should load supplemental currency data', () => {
62
+ const data = {
63
+ supplemental: {
64
+ currencyData: {
65
+ region: {
66
+ US: [{ USD: {} }],
67
+ },
68
+ },
69
+ },
70
+ };
71
+ setCurrentCurrencyFormat(null);
72
+ loadCurrencyData(data);
73
+ expect(getDefaultCurrencyCode()).toBe('USD');
74
+ });
75
+ });
76
+ describe('loadGlobalizeData', () => {
77
+ it('should load CLDR data', () => {
78
+ jest.spyOn(Globalize, 'load').mockImplementationOnce((data) => {
79
+ return data;
80
+ });
81
+ const data = { key: 'value' };
82
+ loadGlobalizeData(data);
83
+ expect(Globalize.load).toHaveBeenCalledWith(data);
84
+ jest.clearAllMocks();
85
+ });
86
+ });
87
+ describe('globalizeNumberFormatter', () => {
88
+ it('should create a number formatter', () => {
89
+ const formatter = globalizeNumberFormatter({
90
+ minimumFractionDigits: 2,
91
+ });
92
+ expect(typeof formatter).toBe('function');
93
+ });
94
+ });
95
+ describe('globalizeCurrencyFormatter', () => {
96
+ it('should create a currency formatter', () => {
97
+ const formatter = globalizeCurrencyFormatter('USD', {
98
+ style: 'symbol',
99
+ });
100
+ expect(typeof formatter).toBe('function');
101
+ });
102
+ });
103
+ describe('formatNumberSafely', () => {
104
+ it('should format numbers safely', () => {
105
+ const formattedNumber = formatNumberSafely({ maximumFractionDigits: 2, minimumFractionDigits: 2 }, 123.456);
106
+ expect(formattedNumber).toBe('123.46');
107
+ });
108
+ it('should return 0 for very small numbers', () => {
109
+ jest.spyOn(Globalize, 'numberFormatter').mockImplementationOnce(() => {
110
+ throw new Error('Test Error');
111
+ });
112
+ const formattedNumber = formatNumberSafely({}, 1e-8);
113
+ expect(formattedNumber).toBe('0');
114
+ jest.clearAllMocks();
115
+ });
116
+ it('should return the string representation for errors', () => {
117
+ jest.spyOn(Globalize, 'numberFormatter').mockImplementationOnce(() => {
118
+ throw new Error('Test Error');
119
+ });
120
+ const formattedNumber = formatNumberSafely({}, 123);
121
+ expect(formattedNumber).toBe('123');
122
+ jest.clearAllMocks();
123
+ });
124
+ });
125
+ describe('sanitizeFormat', () => {
126
+ it('should add zero before decimal point', () => {
127
+ expect(sanitizeFormat('#.##')).toBe('0.##');
128
+ });
129
+ it('should add zero at the end if no decimal point', () => {
130
+ expect(sanitizeFormat('#%')).toBe('0%');
131
+ });
132
+ it('should return the same format if no changes are needed', () => {
133
+ expect(sanitizeFormat('0.##')).toBe('0.##');
134
+ });
135
+ });
136
+ describe('validateNumberFormat', () => {
137
+ it('should return true for valid number formats', () => {
138
+ expect(validateNumberFormat('#.##')).toBe(true);
139
+ });
140
+ it('should return false for invalid number formats', () => {
141
+ jest.spyOn(Globalize, 'numberFormatter').mockImplementation(() => {
142
+ throw new Error('Test Error');
143
+ });
144
+ expect(validateNumberFormat('#.#')).toBe(false);
145
+ jest.clearAllMocks();
146
+ });
147
+ });
148
+ });
149
+ //# sourceMappingURL=globalize-utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalize-utils.spec.js","sourceRoot":"","sources":["../../../src/utils/globalize-Initializer/globalize-utils.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ColumnFormat, CurrencyFormat } from '../../types/answer-column.types';
2
+ import { Maybe } from '../../types/common.types';
3
+ import { CurrencyFormatConfig, FormatConfig, NegativeValueFormat, NumberFormatConfig, Unit } from '../../types/number-formatting.types';
4
+ interface FormatterConfig {
5
+ unitDetails: Unit;
6
+ decimalDetails: number;
7
+ shouldRemoveTrailingZeros: boolean;
8
+ }
9
+ export declare const UNITS_TO_DIVIDING_FACTOR: Record<Unit, number>;
10
+ export declare const setLocaleBasedStringFormats: (tsLocaleBasedStringsFormats?: Record<string, string>) => void;
11
+ export declare const getLocaleBasedStringFormats: () => Record<string, string>;
12
+ export declare const UNITS_TO_SUFFIX: Record<Unit, string>;
13
+ export declare const formatNegativeValue: (formattedValue: string, negativeFormat?: Maybe<NegativeValueFormat> | number) => string;
14
+ export declare const getAutoUnit: (value: number) => Unit;
15
+ export declare const getLocaleName: (currencyFormat: CurrencyFormat) => string;
16
+ export declare const defaultFormatConfig: (columnFormatConfig?: ColumnFormat) => FormatConfig;
17
+ export declare const mapFormatterConfig: (absFloatValue: number, configDetails: NumberFormatConfig | CurrencyFormatConfig) => FormatterConfig;
18
+ export declare function formatSpecialDataValue(value: any): any;
19
+ export {};
20
+ //# sourceMappingURL=number-formatting-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-formatting-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/number-formatting/number-formatting-utils.ts"],"names":[],"mappings":"AASA,OAAO,EACH,YAAY,EACZ,cAAc,EAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAEH,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,IAAI,EACP,MAAM,qCAAqC,CAAC;AAG7C,UAAU,eAAe;IACrB,WAAW,EAAE,IAAI,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;CACtC;AAID,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAOzD,CAAC;AAUF,eAAO,MAAM,2BAA2B,iCACN,OAAO,MAAM,EAAE,MAAM,CAAC,SAKvD,CAAC;AAEF,eAAO,MAAM,2BAA2B,8BAAgB,CAAC;AAEzD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAOhD,CAAC;AAWF,eAAO,MAAM,mBAAmB,mBACZ,MAAM,mBACL,MAAM,mBAAmB,CAAC,GAAG,MAAM,KACrD,MAWF,CAAC;AAQF,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,IAc3C,CAAC;AAQF,eAAO,MAAM,aAAa,mBAAoB,cAAc,KAAG,MAO9D,CAAC;AAQF,eAAO,MAAM,mBAAmB,wBACP,YAAY,KAClC,YA8CF,CAAC;AASF,eAAO,MAAM,kBAAkB,kBACZ,MAAM,iBACN,kBAAkB,GAAG,oBAAoB,KACzD,eAkBF,CAAC;AAQF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,OAoChD"}