@thoughtspot/ts-chart-sdk 0.0.2-alpha.20 → 0.0.2-alpha.21

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 (33) hide show
  1. package/dist/ts-chart-sdk.d.ts +121 -1
  2. package/lib/types/common.types.d.ts +36 -0
  3. package/lib/types/common.types.d.ts.map +1 -1
  4. package/lib/utils/date-formatting.d.ts +85 -1
  5. package/lib/utils/date-formatting.d.ts.map +1 -1
  6. package/lib/utils/date-formatting.js +342 -9
  7. package/lib/utils/date-formatting.js.map +1 -1
  8. package/lib/utils/date-formatting.spec.js +301 -31
  9. package/lib/utils/date-formatting.spec.js.map +1 -1
  10. package/lib/utils/date-utils.d.ts +6 -0
  11. package/lib/utils/date-utils.d.ts.map +1 -0
  12. package/lib/utils/date-utils.js +20 -0
  13. package/lib/utils/date-utils.js.map +1 -0
  14. package/lib/utils/date-utils.spec.d.ts +2 -0
  15. package/lib/utils/date-utils.spec.d.ts.map +1 -0
  16. package/lib/utils/date-utils.spec.js +63 -0
  17. package/lib/utils/date-utils.spec.js.map +1 -0
  18. package/lib/utils/formatting-util.d.ts +10 -0
  19. package/lib/utils/formatting-util.d.ts.map +1 -0
  20. package/lib/utils/formatting-util.js +78 -0
  21. package/lib/utils/formatting-util.js.map +1 -0
  22. package/lib/utils/formatting-util.spec.d.ts +2 -0
  23. package/lib/utils/formatting-util.spec.d.ts.map +1 -0
  24. package/lib/utils/formatting-util.spec.js +247 -0
  25. package/lib/utils/formatting-util.spec.js.map +1 -0
  26. package/package.json +1 -1
  27. package/src/types/common.types.ts +62 -1
  28. package/src/utils/date-formatting.spec.ts +375 -32
  29. package/src/utils/date-formatting.ts +584 -14
  30. package/src/utils/date-utils.spec.ts +93 -0
  31. package/src/utils/date-utils.ts +69 -0
  32. package/src/utils/formatting-util.spec.ts +312 -0
  33. package/src/utils/formatting-util.ts +234 -0
@@ -1,8 +1,125 @@
1
1
  import _ from 'lodash';
2
2
  import { DateTime } from 'luxon';
3
3
  import { ColumnTimeBucket, ColumnType, DataType, } from '../types/answer-column.types';
4
+ export const dateFormatPresets = {
5
+ DATE_SHORT: 'DATE_SHORT',
6
+ DATE_SHORT_WITH_HOUR: 'DATE_SHORT_WITH_HOUR',
7
+ DATE_SHORT_WITH_HOUR_WITHOUT_YEAR: 'DATE_SHORT_WITH_HOUR_WITHOUT_YEAR',
8
+ DATETIME_SHORT: 'DATETIME_SHORT',
9
+ DATETIME_SHORT_WITHOUT_YEAR: 'DATETIME_SHORT_WITHOUT_YEAR',
10
+ DATETIME_SHORT_WITH_SECONDS: 'DATETIME_SHORT_WITH_SECONDS',
11
+ DATETIME_SHORT_WITH_MILLIS: 'DATETIME_SHORT_WITH_MILLIS',
12
+ MONTH_WITH_YEAR: 'MONTH_WITH_YEAR',
13
+ QUARTER_WITH_YEAR: 'QUARTER_WITH_YEAR',
14
+ QUARTER_WITH_2_DIGIT_YEAR: 'QUARTER_WITH_2_DIGIT_YEAR',
15
+ DEFAULT_TIME_FORMAT: 'DEFAULT_TIME_FORMAT',
16
+ TIME_24_WITH_SECONDS: 'TIME_24_WITH_SECONDS',
17
+ DATE_SHORT_2_DIGIT_YEAR: 'DATE_SHORT_2_DIGIT_YEAR',
18
+ DATETIME_24_SHORT_WITHOUT_YEAR: 'DATETIME_24_SHORT_WITHOUT_YEAR',
19
+ DATETIME_24_SHORT: 'DATETIME_24_SHORT',
20
+ DATETIME_SHORT_WITH_SECONDS_WITHOUT_YEAR: 'DATETIME_SHORT_WITH_SECONDS_WITHOUT_YEAR',
21
+ DATETIME_SHORT_WITH_MILLIS_WITHOUT_YEAR: 'DATETIME_SHORT_WITH_MILLIS_WITHOUT_YEAR',
22
+ DATETIME_24_SHORT_WITH_MILLIS_WITHOUT_YEAR: 'DATETIME_24_SHORT_WITH_MILLIS_WITHOUT_YEAR',
23
+ DATETIME_24_SHORT_WITH_MILLIS: 'DATETIME_24_SHORT_WITH_MILLIS',
24
+ MONTH_WITH_DAY_AND_YEAR: 'MONTH_WITH_DAY_AND_YEAR',
25
+ MONTH_WITH_2_DIGIT_YEAR: 'MONTH_WITH_2_DIGIT_YEAR',
26
+ DAY_WITH_MONTH_NUM: 'DAY_WITH_MONTH_NUM',
27
+ DATE_SHORT_WITH_HOUR_24_WITHOUT_YEAR: 'DATE_SHORT_WITH_HOUR_24_WITHOUT_YEAR',
28
+ DATE_SHORT_WITH_HOUR_24: 'DATE_SHORT_WITH_HOUR_24',
29
+ QUARTER: 'QUARTER',
30
+ MONTH_ONLY: 'MONTH_ONLY',
31
+ DATETIME_WITH_SHORT_OFFSET: 'DATETIME_WITH_SHORT_OFFSET',
32
+ };
33
+ const yearlessFormats = {
34
+ DATE_SHORT: 'DAY_WITH_MONTH',
35
+ DATE_SHORT_WITH_HOUR: 'DATE_SHORT_WITH_HOUR_WITHOUT_YEAR',
36
+ DATETIME_SHORT: 'DATETIME_SHORT_WITHOUT_YEAR',
37
+ DATETIME_SHORT_WITH_SECONDS: 'DATETIME_SHORT_WITH_SECONDS_WITHOUT_YEAR',
38
+ DATETIME_SHORT_WITH_MILLIS: 'DATETIME_SHORT_WITH_MILLIS_WITHOUT_YEAR',
39
+ MONTH_WITH_YEAR: 'MONTH_ONLY',
40
+ QUARTER_WITH_YEAR: 'QUARTER',
41
+ QUARTER_WITH_2_DIGIT_YEAR: 'QUARTER',
42
+ DATE_SHORT_2_DIGIT_YEAR: 'DAY_WITH_MONTH',
43
+ DATETIME_24_SHORT: 'DATETIME_24_SHORT_WITHOUT_YEAR',
44
+ DATETIME_24_SHORT_WITH_MILLIS: 'DATETIME_24_SHORT_WITH_MILLIS_WITHOUT_YEAR',
45
+ MONTH_WITH_DAY_AND_YEAR: 'DAY_WITH_MONTH',
46
+ MONTH_WITH_2_DIGIT_YEAR: 'DAY_WITH_MONTH',
47
+ DATE_SHORT_WITH_HOUR_24: 'DATE_SHORT_WITH_HOUR_24_WITHOUT_YEAR',
48
+ };
49
+ export const dateNumTypes = {
50
+ DATE_NUM_ABS_DAY: 'DATE_NUM_ABS_DAY',
51
+ DATE_NUM_ABS_MONTH: 'DATE_NUM_ABS_MONTH',
52
+ DATE_NUM_ABS_QUARTER: 'DATE_NUM_ABS_QUARTER',
53
+ DATE_NUM_ABS_YEAR: 'DATE_NUM_ABS_YEAR',
54
+ DATE_NUM_DAY_IN_MONTH: 'DATE_NUM_DAY_IN_MONTH',
55
+ DATE_NUM_DAY_IN_QUARTER: 'DATE_NUM_DAY_IN_QUARTER',
56
+ DATE_NUM_DAY_IN_YEAR: 'DATE_NUM_DAY_IN_YEAR',
57
+ DATE_NUM_DAY_OF_WEEK: 'DATE_NUM_DAY_OF_WEEK',
58
+ DATE_NUM_MONTH_IN_QUARTER: 'DATE_NUM_MONTH_IN_QUARTER',
59
+ DATE_NUM_MONTH_IN_YEAR: 'DATE_NUM_MONTH_IN_YEAR',
60
+ DATE_NUM_QUARTER_IN_YEAR: 'DATE_NUM_QUARTER_IN_YEAR',
61
+ DATE_NUM_WEEK_IN_YEAR: 'DATE_NUM_WEEK_IN_YEAR',
62
+ DATE_NUM_WEEK_IN_QUARTER: 'DATE_NUM_WEEK_IN_QUARTER',
63
+ DATE_NUM_WEEK_IN_MONTH: 'DATE_NUM_WEEK_IN_MONTH',
64
+ DATE_NUM_HOUR_IN_DAY: 'DATE_NUM_HOUR_IN_DAY',
65
+ };
66
+ const weekdays = [
67
+ 'Sunday',
68
+ 'Monday',
69
+ 'Tuesday',
70
+ 'Wednesday',
71
+ 'Thursday',
72
+ 'Friday',
73
+ 'Saturday',
74
+ ];
75
+ const months = [
76
+ 'January',
77
+ 'February',
78
+ 'March',
79
+ 'April',
80
+ 'May',
81
+ 'June',
82
+ 'July',
83
+ 'August',
84
+ 'September',
85
+ 'October',
86
+ 'November',
87
+ 'December',
88
+ ];
89
+ export const bucketizationToDatePreset = {
90
+ HOURLY: dateFormatPresets.DATE_SHORT_WITH_HOUR,
91
+ DAILY: dateFormatPresets.DATE_SHORT,
92
+ WEEKLY: dateFormatPresets.DATE_SHORT,
93
+ MONTHLY: dateFormatPresets.MONTH_WITH_YEAR,
94
+ QUARTERLY: dateFormatPresets.QUARTER_WITH_YEAR,
95
+ YEARLY: 'yyyy',
96
+ };
97
+ const dateFormatPresetsToLuxonPresets = {
98
+ [dateFormatPresets.TIME_24_WITH_SECONDS]: DateTime.TIME_24_WITH_SECONDS,
99
+ };
100
+ export const timeBuckets = {
101
+ NO_BUCKET: 'ms',
102
+ HOURLY: 'h',
103
+ DAILY: 'd',
104
+ WEEKLY: 'w',
105
+ MONTHLY: 'M',
106
+ QUARTERLY: 'Q',
107
+ YEARLY: 'y',
108
+ DAY_OF_WEEK: 'dow',
109
+ DAY_OF_MONTH: 'dom',
110
+ DAY_OF_QUARTER: 'doq',
111
+ DAY_OF_YEAR: 'doy',
112
+ WEEK_OF_MONTH: 'wom',
113
+ WEEK_OF_QUARTER: 'woq',
114
+ WEEK_OF_YEAR: 'woy',
115
+ MONTH_OF_QUARTER: 'moq',
116
+ MONTH_OF_YEAR: 'moy',
117
+ QUARTER_OF_YEAR: 'qoy',
118
+ };
119
+ const DEFAULT_QUARTER_START_MONTH = 1;
4
120
  export const isDateColumn = (col) => DataType[col.dataType] === 'DATE' || DataType[col.dataType] === 'DATE_TIME';
5
121
  export const isAttribute = (col) => col.type === ColumnType.ATTRIBUTE;
122
+ export const isDateTimeColumn = (col) => DataType[col.dataType] === 'DATE_TIME';
6
123
  export const getCustomCalendarGuidFromColumn = (col) => col.calenderGuid;
7
124
  const isDateNumTimeBucket = (col) => {
8
125
  return [
@@ -28,6 +145,32 @@ export const isDateFamilyColumn = (col) => {
28
145
  export const isTimeColumn = (col) => {
29
146
  return DataType[col.dataType] === 'TIME';
30
147
  };
148
+ export const getEffectiveDateNumDataType = (col) => {
149
+ switch (col.timeBucket) {
150
+ case ColumnTimeBucket.DAY_OF_WEEK:
151
+ return dateNumTypes.DATE_NUM_DAY_OF_WEEK;
152
+ case ColumnTimeBucket.DAY_OF_MONTH:
153
+ return dateNumTypes.DATE_NUM_DAY_IN_MONTH;
154
+ case ColumnTimeBucket.DAY_OF_QUARTER:
155
+ return dateNumTypes.DATE_NUM_DAY_IN_QUARTER;
156
+ case ColumnTimeBucket.DAY_OF_YEAR:
157
+ return dateNumTypes.DATE_NUM_DAY_IN_YEAR;
158
+ case ColumnTimeBucket.WEEK_OF_MONTH:
159
+ return dateNumTypes.DATE_NUM_WEEK_IN_MONTH;
160
+ case ColumnTimeBucket.WEEK_OF_QUARTER:
161
+ return dateNumTypes.DATE_NUM_WEEK_IN_QUARTER;
162
+ case ColumnTimeBucket.WEEK_OF_YEAR:
163
+ return dateNumTypes.DATE_NUM_WEEK_IN_YEAR;
164
+ case ColumnTimeBucket.MONTH_OF_QUARTER:
165
+ return dateNumTypes.DATE_NUM_MONTH_IN_QUARTER;
166
+ case ColumnTimeBucket.MONTH_OF_YEAR:
167
+ return dateNumTypes.DATE_NUM_MONTH_IN_YEAR;
168
+ case ColumnTimeBucket.QUARTER_OF_YEAR:
169
+ return dateNumTypes.DATE_NUM_QUARTER_IN_YEAR;
170
+ default:
171
+ return undefined;
172
+ }
173
+ };
31
174
  export const hasCustomCalendar = (col) => isDateFamilyColumn(col) && !!getCustomCalendarGuidFromColumn(col);
32
175
  export function getStartEpoch(date) {
33
176
  if (_.has(date, 'v') && _.has(date.v, 's')) {
@@ -35,22 +178,212 @@ export function getStartEpoch(date) {
35
178
  }
36
179
  return null;
37
180
  }
181
+ export const assignQuarterValueToString = (quarter_of_year, value) => {
182
+ return quarter_of_year.replace(/\{.*?\}/, value);
183
+ };
184
+ export function getMonthOfYear(num, quarterStartMonth, monthOfYear) {
185
+ let monthNum = num + quarterStartMonth - 1;
186
+ monthNum = monthNum > 12 ? monthNum - 12 : monthNum;
187
+ return monthOfYear[months[monthNum - 1]];
188
+ }
38
189
  export function getDisplayString(date) {
39
190
  if (_.has(date, 'd')) {
40
191
  return date.d;
41
192
  }
42
193
  return null;
43
194
  }
44
- export function dateFormatter(dataValue, col) {
45
- if (hasCustomCalendar(col)) {
46
- if (getDisplayString(dataValue)) {
47
- return getDisplayString(dataValue);
195
+ export const useQuarterStart = (luxonDate, quarterStartMonth) => {
196
+ const newLuxonDate = luxonDate;
197
+ newLuxonDate.quarterStartMonth = quarterStartMonth;
198
+ return newLuxonDate;
199
+ };
200
+ export const getCustomCalendarValueFromEpoch = (col, dateEpoch, displayToCustomCalendarValueMap) => {
201
+ if (hasCustomCalendar(col) &&
202
+ _.has(displayToCustomCalendarValueMap, dateEpoch)) {
203
+ return displayToCustomCalendarValueMap[dateEpoch];
204
+ }
205
+ return null;
206
+ };
207
+ const parseDate = (dateString, format, options) => {
208
+ return DateTime.fromFormat(dateString, options.tsLocaleBasedDateFormats[format] || format).toJSDate();
209
+ };
210
+ export function getSpecialFormatData(value, options) {
211
+ if (value ===
212
+ options.tsLocaleBasedStringsFormats.null_value_placeholder_label ||
213
+ value ===
214
+ options.tsLocaleBasedStringsFormats.empty_value_placeholder_label) {
215
+ return value;
216
+ }
217
+ if (value === options.tsDateConstants.special_value_unavailable) {
218
+ return options.tsLocaleBasedStringsFormats
219
+ .unavailabe_column_sample_value;
220
+ }
221
+ if (value === null || value === undefined) {
222
+ return options.tsLocaleBasedStringsFormats.null_value_placeholder_label;
223
+ }
224
+ if (value === '') {
225
+ return options.tsLocaleBasedStringsFormats
226
+ .empty_value_placeholder_label;
227
+ }
228
+ return null;
229
+ }
230
+ export function sanitizeDate(inputDate, format, options) {
231
+ const specialVal = getSpecialFormatData(inputDate, options);
232
+ if (specialVal) {
233
+ return specialVal;
234
+ }
235
+ if (typeof inputDate === 'string') {
236
+ if (!_.isNaN(Number(inputDate))) {
237
+ return parseInt(inputDate, 10);
238
+ }
239
+ return parseDate(inputDate, format, options);
240
+ }
241
+ return inputDate;
242
+ }
243
+ export const formatDateTime = (epochMillis, format, useSystemCalendar, options) => {
244
+ let newFormat = format;
245
+ let luxonDate;
246
+ try {
247
+ luxonDate = DateTime.fromMillis(epochMillis * 1000);
248
+ }
249
+ catch (e) {
250
+ return 'Invalid Date';
251
+ }
252
+ if (options.tsLocaleBasedDateFormats[newFormat]) {
253
+ if (_.get(options, 'omitYear')) {
254
+ if (yearlessFormats[newFormat]) {
255
+ newFormat =
256
+ yearlessFormats[newFormat];
257
+ }
48
258
  }
49
- const startEpoch = getStartEpoch(dataValue);
50
- return startEpoch !== null
51
- ? DateTime.fromMillis(startEpoch * 1000).toFormat('dd-MM-yyyy')
52
- : null;
259
+ newFormat = options.tsLocaleBasedDateFormats[newFormat];
260
+ }
261
+ const customCalendarOverridesFiscalOffset = _.get(options, 'customCalendarOverridesFiscalOffset');
262
+ if (!newFormat || dateFormatPresetsToLuxonPresets[newFormat]) {
263
+ return luxonDate.toLocaleString(dateFormatPresetsToLuxonPresets[newFormat]);
264
+ }
265
+ newFormat = newFormat.replace(/qqq/, "'Q'q");
266
+ newFormat = newFormat.replace(/(YYYY|YY)/, _.lowerCase);
267
+ const quarterStartMonth = options.quarterStartMonth;
268
+ if (quarterStartMonth > 1 &&
269
+ !useSystemCalendar &&
270
+ !customCalendarOverridesFiscalOffset) {
271
+ newFormat = newFormat.replace(/[yyyy||yy]/, "'FY' $&");
272
+ }
273
+ return useQuarterStart(luxonDate, useSystemCalendar ? DEFAULT_QUARTER_START_MONTH : quarterStartMonth).toFormat(newFormat);
274
+ };
275
+ function getDayOfWeek(num, weekOfDay) {
276
+ const new_num = num % 7;
277
+ return weekOfDay[weekdays[new_num]];
278
+ }
279
+ export function getOrdinalSuffixedValue(i) {
280
+ let ni = i;
281
+ ni = parseInt(ni.toString());
282
+ const j = ni % 10;
283
+ const k = ni % 100;
284
+ if (j == 1 && k != 11) {
285
+ return `${ni}st`;
286
+ }
287
+ if (j == 2 && k != 12) {
288
+ return `${ni}nd`;
289
+ }
290
+ if (j == 3 && k != 13) {
291
+ return `${ni}rd`;
292
+ }
293
+ return `${ni}th`;
294
+ }
295
+ export function formatDateNum(effectiveDataType, value, formatPattern, options) {
296
+ let newValue = value;
297
+ if (_.isString(newValue)) {
298
+ newValue = parseInt(value.toString());
299
+ }
300
+ if (!value && value !== 0) {
301
+ return options.tsLocaleBasedStringsFormats.null_value_placeholder_label;
302
+ }
303
+ const specialVal = getSpecialFormatData(value, options);
304
+ if (specialVal) {
305
+ return specialVal;
306
+ }
307
+ switch (effectiveDataType) {
308
+ case dateNumTypes.DATE_NUM_ABS_DAY:
309
+ case dateNumTypes.DATE_NUM_ABS_MONTH:
310
+ case dateNumTypes.DATE_NUM_ABS_QUARTER:
311
+ case dateNumTypes.DATE_NUM_ABS_YEAR:
312
+ return `${value}`;
313
+ case dateNumTypes.DATE_NUM_DAY_IN_MONTH:
314
+ return formatPattern === options.tsDateConstants.day_in_month_format
315
+ ? `${value}`
316
+ : `${getOrdinalSuffixedValue(value)} day of month`;
317
+ case dateNumTypes.DATE_NUM_DAY_IN_QUARTER:
318
+ return formatPattern ===
319
+ options.tsDateConstants.day_in_quarter_format
320
+ ? `${value}`
321
+ : `${getOrdinalSuffixedValue(value)} day of quarter`;
322
+ case dateNumTypes.DATE_NUM_DAY_IN_YEAR:
323
+ return formatPattern === options.tsDateConstants.day_in_year_format
324
+ ? `${value}`
325
+ : `${getOrdinalSuffixedValue(value)} day of year`;
326
+ case dateNumTypes.DATE_NUM_DAY_OF_WEEK:
327
+ return formatPattern === options.tsDateConstants.day_of_week_format
328
+ ?
329
+ getDayOfWeek(value, options.tsLocaleBasedStringsFormats.weekOfDay)
330
+ : `${value}`;
331
+ case dateNumTypes.DATE_NUM_MONTH_IN_QUARTER:
332
+ return formatPattern ===
333
+ options.tsDateConstants.month_in_quarter_format
334
+ ? `${value}`
335
+ : `${getOrdinalSuffixedValue(value)} month of quarter`;
336
+ case dateNumTypes.DATE_NUM_MONTH_IN_YEAR:
337
+ return formatPattern ===
338
+ options.tsDateConstants.month_in_year_format
339
+ ?
340
+ getMonthOfYear(value, options.quarterStartMonth, options.tsLocaleBasedStringsFormats.monthOfYear)
341
+ : `${value}`;
342
+ case dateNumTypes.DATE_NUM_QUARTER_IN_YEAR:
343
+ return assignQuarterValueToString(options.tsLocaleBasedStringsFormats.quarter_of_year, value);
344
+ case dateNumTypes.DATE_NUM_WEEK_IN_YEAR:
345
+ return formatPattern === options.tsDateConstants.week_in_year_format
346
+ ? `${value}`
347
+ : `${getOrdinalSuffixedValue(value)} week of year`;
348
+ case dateNumTypes.DATE_NUM_WEEK_IN_QUARTER:
349
+ case dateNumTypes.DATE_NUM_WEEK_IN_MONTH:
350
+ return `${value}`;
351
+ case dateNumTypes.DATE_NUM_HOUR_IN_DAY:
352
+ return `${value}`;
353
+ default:
354
+ console.log('unknown effectiveDataType for date num', effectiveDataType);
355
+ return value;
356
+ }
357
+ }
358
+ export function formatDate(inputDate, format, useSystemCalendar, options) {
359
+ let formatPattern = format;
360
+ let newInputDate = inputDate;
361
+ if (newInputDate === undefined || newInputDate === null) {
362
+ return options.tsLocaleBasedStringsFormats.null_value_placeholder_label;
363
+ }
364
+ if (!formatPattern) {
365
+ formatPattern = dateFormatPresets.DATE_SHORT;
366
+ }
367
+ if (newInputDate ===
368
+ options.tsLocaleBasedStringsFormats.null_value_placeholder_label ||
369
+ newInputDate ===
370
+ options.tsLocaleBasedStringsFormats.empty_value_placeholder_label ||
371
+ newInputDate ===
372
+ options.tsLocaleBasedStringsFormats.other_value_placeholder_label) {
373
+ return newInputDate;
374
+ }
375
+ newInputDate = sanitizeDate(newInputDate, formatPattern, options);
376
+ if (_.isNaN(newInputDate)) {
377
+ return options.tsLocaleBasedStringsFormats.null_value_placeholder_label;
378
+ }
379
+ let epochMillis = newInputDate;
380
+ if (_.isDate(epochMillis)) {
381
+ epochMillis = newInputDate.getTime();
382
+ }
383
+ if (!_.isNumber(epochMillis)) {
384
+ console.log('formatDate could not convert input date to a timestamp', inputDate);
385
+ return `${inputDate}`;
53
386
  }
54
- return DateTime.fromMillis(dataValue * 1000).toFormat('dd-MM-yyyy');
387
+ return formatDateTime(epochMillis, formatPattern, useSystemCalendar, options);
55
388
  }
56
389
  //# sourceMappingURL=date-formatting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-formatting.js","sourceRoot":"","sources":["../../src/utils/date-formatting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-formatting.js","sourceRoot":"","sources":["../../src/utils/date-formatting.ts"],"names":[],"mappings":"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"}