@quillsql/react 2.11.24 → 2.11.26

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 (123) hide show
  1. package/dist/cjs/Chart.d.ts +16 -0
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +20 -17
  4. package/dist/cjs/ChartBuilder.d.ts +7 -20
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +37 -34
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +3 -3
  9. package/dist/cjs/Dashboard.d.ts +2 -1
  10. package/dist/cjs/Dashboard.d.ts.map +1 -1
  11. package/dist/cjs/ReportBuilder.d.ts +6 -4
  12. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  13. package/dist/cjs/ReportBuilder.js +208 -133
  14. package/dist/cjs/SQLEditor.d.ts +4 -11
  15. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  16. package/dist/cjs/SQLEditor.js +31 -97
  17. package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
  18. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  19. package/dist/cjs/components/Chart/LineChart.js +3 -3
  20. package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
  21. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  22. package/dist/cjs/components/Dashboard/MetricComponent.js +9 -12
  23. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  24. package/dist/cjs/components/Dashboard/TableComponent.js +12 -10
  25. package/dist/cjs/components/QuillTable.d.ts +4 -1
  26. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  27. package/dist/cjs/components/QuillTable.js +1 -1
  28. package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -2
  29. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +27 -24
  30. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  31. package/dist/cjs/internals/ReportBuilder/PivotList.js +9 -7
  32. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +9 -2
  33. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  34. package/dist/cjs/internals/ReportBuilder/PivotModal.js +53 -43
  35. package/dist/cjs/models/Columns.d.ts +11 -0
  36. package/dist/cjs/models/Columns.d.ts.map +1 -0
  37. package/dist/cjs/models/Columns.js +2 -0
  38. package/dist/cjs/models/Tables.d.ts +0 -8
  39. package/dist/cjs/models/Tables.d.ts.map +1 -1
  40. package/dist/cjs/utils/astProcessing.d.ts +3 -0
  41. package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
  42. package/dist/cjs/utils/astProcessing.js +20 -0
  43. package/dist/cjs/utils/columnProcessing.d.ts +9 -0
  44. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
  45. package/dist/cjs/utils/columnProcessing.js +207 -0
  46. package/dist/cjs/utils/dashboard.js +9 -9
  47. package/dist/cjs/utils/pivotProcessing.d.ts +2 -1
  48. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  49. package/dist/cjs/utils/pivotProcessing.js +3 -8
  50. package/dist/cjs/utils/tableProcessing.d.ts +2 -2
  51. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  52. package/dist/cjs/utils/tableProcessing.js +1 -3
  53. package/dist/cjs/utils/valueFormatter.d.ts +2 -1
  54. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  55. package/dist/cjs/utils/valueFormatter.js +12 -1
  56. package/dist/esm/Chart.d.ts +16 -0
  57. package/dist/esm/Chart.d.ts.map +1 -1
  58. package/dist/esm/Chart.js +20 -17
  59. package/dist/esm/ChartBuilder.d.ts +7 -20
  60. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  61. package/dist/esm/ChartBuilder.js +37 -34
  62. package/dist/esm/ChartEditor.d.ts.map +1 -1
  63. package/dist/esm/ChartEditor.js +3 -3
  64. package/dist/esm/Dashboard.d.ts +2 -1
  65. package/dist/esm/Dashboard.d.ts.map +1 -1
  66. package/dist/esm/ReportBuilder.d.ts +6 -4
  67. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  68. package/dist/esm/ReportBuilder.js +204 -129
  69. package/dist/esm/SQLEditor.d.ts +4 -11
  70. package/dist/esm/SQLEditor.d.ts.map +1 -1
  71. package/dist/esm/SQLEditor.js +30 -95
  72. package/dist/esm/components/Chart/LineChart.d.ts +5 -1
  73. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  74. package/dist/esm/components/Chart/LineChart.js +3 -3
  75. package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
  76. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  77. package/dist/esm/components/Dashboard/MetricComponent.js +9 -12
  78. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  79. package/dist/esm/components/Dashboard/TableComponent.js +12 -10
  80. package/dist/esm/components/QuillTable.d.ts +4 -1
  81. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  82. package/dist/esm/components/QuillTable.js +1 -1
  83. package/dist/esm/components/ReportBuilder/convert.d.ts +2 -2
  84. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +27 -24
  85. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  86. package/dist/esm/internals/ReportBuilder/PivotList.js +9 -7
  87. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +9 -2
  88. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  89. package/dist/esm/internals/ReportBuilder/PivotModal.js +55 -45
  90. package/dist/esm/models/Columns.d.ts +11 -0
  91. package/dist/esm/models/Columns.d.ts.map +1 -0
  92. package/dist/esm/models/Columns.js +1 -0
  93. package/dist/esm/models/Tables.d.ts +0 -8
  94. package/dist/esm/models/Tables.d.ts.map +1 -1
  95. package/dist/esm/utils/astProcessing.d.ts +3 -0
  96. package/dist/esm/utils/astProcessing.d.ts.map +1 -0
  97. package/dist/esm/utils/astProcessing.js +16 -0
  98. package/dist/esm/utils/columnProcessing.d.ts +9 -0
  99. package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
  100. package/dist/esm/utils/columnProcessing.js +201 -0
  101. package/dist/esm/utils/dashboard.js +9 -9
  102. package/dist/esm/utils/pivotProcessing.d.ts +2 -1
  103. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  104. package/dist/esm/utils/pivotProcessing.js +3 -8
  105. package/dist/esm/utils/tableProcessing.d.ts +2 -2
  106. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  107. package/dist/esm/utils/tableProcessing.js +1 -3
  108. package/dist/esm/utils/valueFormatter.d.ts +2 -1
  109. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  110. package/dist/esm/utils/valueFormatter.js +11 -0
  111. package/package.json +1 -1
  112. package/dist/cjs/utils/types.d.ts +0 -4
  113. package/dist/cjs/utils/types.d.ts.map +0 -1
  114. package/dist/cjs/utils/types.js +0 -52
  115. package/dist/cjs/utils/valueFormatterCSV.d.ts +0 -17
  116. package/dist/cjs/utils/valueFormatterCSV.d.ts.map +0 -1
  117. package/dist/cjs/utils/valueFormatterCSV.js +0 -99
  118. package/dist/esm/utils/types.d.ts +0 -4
  119. package/dist/esm/utils/types.d.ts.map +0 -1
  120. package/dist/esm/utils/types.js +0 -48
  121. package/dist/esm/utils/valueFormatterCSV.d.ts +0 -17
  122. package/dist/esm/utils/valueFormatterCSV.d.ts.map +0 -1
  123. package/dist/esm/utils/valueFormatterCSV.js +0 -95
@@ -1,5 +1,5 @@
1
1
  import { type AxisFormat } from '../Dashboard';
2
- type Field = {
2
+ export type Field = {
3
3
  _id: string;
4
4
  label: string;
5
5
  field: string;
@@ -11,6 +11,7 @@ type Props = {
11
11
  fields: Field[];
12
12
  };
13
13
  export declare const DATE_FORMAT_TYPES: string[];
14
+ export declare const NUMBER_FORMAT_TYPES: string[];
14
15
  /**
15
16
  * Pretty-prints the given values to their nice-looking string form.
16
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,6BAA8B,KAAK,KAAG,MAwChE,CAAC;AAEF,eAAO,MAAM,WAAW;WAIf,GAAG;YACF,MAAM;MACZ,MAoCH,CAAC;AAoMF,eAAO,MAAM,aAAa;;;;WAGhB,MAAM,KACb,MA6CF,CAAC"}
1
+ {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAM/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,6BAA8B,KAAK,KAAG,MAwChE,CAAC;AAEF,eAAO,MAAM,WAAW;WAIf,GAAG;YACF,MAAM;MACZ,MAwCH,CAAC;AAoMF,eAAO,MAAM,aAAa;;;;WAGhB,MAAM,KACb,MA6CF,CAAC"}
@@ -9,6 +9,13 @@ export const DATE_FORMAT_TYPES = [
9
9
  'MMM_dd_hh:mm_ap_pm',
10
10
  'wo, yyyy',
11
11
  ];
12
+ export const NUMBER_FORMAT_TYPES = [
13
+ 'whole_number',
14
+ 'one_decimal_place',
15
+ 'two_decimal_places',
16
+ 'dollar_amount',
17
+ 'dollar_cents',
18
+ ];
12
19
  /**
13
20
  * Pretty-prints the given values to their nice-looking string form.
14
21
  */
@@ -50,6 +57,10 @@ export const valueFormatter = ({ value, field, fields }) => {
50
57
  return formatString(value); // by default make this value a string
51
58
  };
52
59
  export const quillFormat = ({ value, format, }) => {
60
+ // Handle special case, if value is null and format is numeric display '-'
61
+ if (value === null && NUMBER_FORMAT_TYPES.includes(format)) {
62
+ return '-';
63
+ }
53
64
  const HANDLERS = {
54
65
  percent: formatPercent,
55
66
  dollar_amount: formatDollarAmount,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.11.24",
3
+ "version": "2.11.26",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",
@@ -1,4 +0,0 @@
1
- import { Field } from '../hooks/useQuill';
2
- import { Column } from '../models/Tables';
3
- export declare function getPostgresBasicType(field: Field | Column): string;
4
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAgDlE"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPostgresBasicType = void 0;
4
- function getPostgresBasicType(field) {
5
- let format;
6
- // first check if column.dataTypeID exists
7
- if ('dataTypeID' in field) {
8
- switch (field.dataTypeID) {
9
- case 20: // int8
10
- case 21: // int2
11
- case 23: // int4
12
- case 700: // float4
13
- case 701: // float8
14
- case 1700: // numeric
15
- format = 'number';
16
- break;
17
- case 1082: // date
18
- case 1083: // time
19
- case 1184: // timestamptz
20
- case 1114: // timestamp
21
- format = 'date';
22
- break;
23
- case 1043: // varchar
24
- default:
25
- format = 'string';
26
- }
27
- }
28
- else if (field.fieldType) {
29
- // if column.dataTypeID doesn't exist, check column.fieldType
30
- switch (field.fieldType) {
31
- case 'int8':
32
- case 'int2':
33
- case 'int4':
34
- case 'float4':
35
- case 'float8':
36
- case 'numeric':
37
- format = 'number';
38
- break;
39
- case 'date':
40
- case 'time':
41
- case 'timestamptz':
42
- case 'timestamp':
43
- format = 'date';
44
- break;
45
- case 'varchar':
46
- default:
47
- format = 'string';
48
- }
49
- }
50
- return format || 'string';
51
- }
52
- exports.getPostgresBasicType = getPostgresBasicType;
@@ -1,17 +0,0 @@
1
- export type Field = {
2
- _id: string;
3
- label: string;
4
- field: string;
5
- format: 'percent';
6
- };
7
- type Props = {
8
- value: string | number | boolean | undefined | null;
9
- field: string | undefined | null;
10
- fields: Field[];
11
- };
12
- /**
13
- * Formats a value to CSV-format.
14
- */
15
- export declare const valueFormatterCSV: ({ value, field, fields, }: Props) => string | number | boolean;
16
- export {};
17
- //# sourceMappingURL=valueFormatterCSV.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valueFormatterCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatterCSV.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,8BAI3B,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OA+B5B,CAAC"}
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.valueFormatterCSV = void 0;
4
- const date_fns_1 = require("date-fns");
5
- const date_fns_tz_1 = require("date-fns-tz");
6
- /**
7
- * Formats a value to CSV-format.
8
- */
9
- const valueFormatterCSV = ({ value, field, fields, }) => {
10
- if (field === undefined || field === null)
11
- return '';
12
- if (value === undefined || value === null)
13
- return '';
14
- const fieldInfo = fields.find((f) => f.field === field);
15
- if (!fieldInfo)
16
- return '';
17
- const HANDLERS = {
18
- percent: formatPercent,
19
- dollar_amount: formatDollarAmount,
20
- dollar_cents: formatDollarCents,
21
- whole_number: formatWholeNumber,
22
- one_decimal_place: formatOneDecimalPlace,
23
- two_decimal_places: formatTwoDecimalPlaces,
24
- string: formatString,
25
- yyyy: format_YYYY,
26
- MMM_yyyy: format_MMM_yyyy,
27
- MMM_dd_yyyy: format_MMM_dd_yyyy,
28
- hh_ap_pm: format_hh_ap_pm,
29
- 'MMM_dd-MMM_dd': format_MMM_dd_MMM_dd,
30
- 'MMM_dd_hh:mm_ap_pm': format_MMM_dd_hh_mm_ap_pm,
31
- 'wo, yyyy': format_wo_yyyy,
32
- };
33
- // try to handle this value using the associated formatType handler
34
- const formatType = fieldInfo.format;
35
- if (Object.keys(HANDLERS).includes(formatType)) {
36
- return HANDLERS[formatType](value);
37
- }
38
- return formatString(value); // by default make this value a string
39
- };
40
- exports.valueFormatterCSV = valueFormatterCSV;
41
- /**
42
- * HELPER FUNCTION DEFINITIONS
43
- */
44
- const formatString = (value) => {
45
- if (typeof value === 'object') {
46
- return JSON.stringify(value);
47
- }
48
- return value.toString();
49
- };
50
- const formatDollarAmount = (value) => Number(value ?? 0);
51
- const formatDollarCents = (value) => Number(value ?? 0);
52
- const formatWholeNumber = (value) => Math.round(Number(value));
53
- const formatOneDecimalPlace = (value) => Number(value).toFixed(1);
54
- const formatTwoDecimalPlaces = (value) => Number(value).toFixed(2);
55
- const formatPercent = (value) => {
56
- const absoluteValue = isNaN(Number(value)) ? 0 : Math.abs(Number(value));
57
- if (absoluteValue < 1.0) {
58
- return Number(value);
59
- }
60
- return Number(value) / 100.0;
61
- };
62
- const _getUTCDateHelper = (value, fmt) => {
63
- const utcDate = (0, date_fns_tz_1.utcToZonedTime)(new Date(value), 'UTC');
64
- if (!(0, date_fns_1.isValid)(utcDate))
65
- return 'Invalid date';
66
- return (0, date_fns_1.format)(utcDate, fmt);
67
- };
68
- const format_YYYY = (value) => _getUTCDateHelper(value, 'yyyy');
69
- const format_MMM_yyyy = (value) => _getUTCDateHelper(value, 'MMM yyyy');
70
- const format_hh_ap_pm = (value) => _getUTCDateHelper(value, 'hh:mm aa');
71
- const format_MMM_dd_yyyy = (value) => _getUTCDateHelper(value, 'dd MMM yyyy');
72
- const format_MMM_dd_MMM_dd = (value) => {
73
- const utcDate = (0, date_fns_tz_1.utcToZonedTime)(new Date(value), 'UTC');
74
- if (!(0, date_fns_1.isValid)(utcDate))
75
- return 'Invalid date';
76
- const monday = (0, date_fns_1.startOfWeek)(utcDate, { weekStartsOn: 1 });
77
- const sunday = (0, date_fns_1.endOfWeek)(utcDate, { weekStartsOn: 1 });
78
- // Check if start and end are in the same month
79
- if ((0, date_fns_1.format)(monday, 'MMM') === (0, date_fns_1.format)(sunday, 'MMM')) {
80
- return `${(0, date_fns_1.format)(monday, 'MMM dd')} - ${(0, date_fns_1.format)(sunday, 'dd')}`;
81
- }
82
- else {
83
- return `${(0, date_fns_1.format)(monday, 'MMM dd')} - ${(0, date_fns_1.format)(sunday, 'MMM dd')}`;
84
- }
85
- };
86
- const format_MMM_dd_hh_mm_ap_pm = (value) => {
87
- const utcDate = (0, date_fns_tz_1.utcToZonedTime)(new Date(value), 'UTC');
88
- if (!(0, date_fns_1.isValid)(utcDate))
89
- return 'Invalid date';
90
- const formatStr = utcDate.getMinutes() === 0 ? 'MMM do h a' : 'MMM do h:mm a';
91
- const res = (0, date_fns_1.format)(utcDate, formatStr);
92
- return res.slice(0, -2) + res.slice(-2).toLowerCase();
93
- };
94
- const format_wo_yyyy = (value) => {
95
- const utcDate = (0, date_fns_tz_1.utcToZonedTime)(new Date(value), 'UTC');
96
- if (!(0, date_fns_1.isValid)(utcDate))
97
- return 'Invalid date';
98
- return `${(0, date_fns_1.getWeek)(utcDate)},${utcDate.getFullYear()}`;
99
- };
@@ -1,4 +0,0 @@
1
- import { Field } from '../hooks/useQuill';
2
- import { Column } from '../models/Tables';
3
- export declare function getPostgresBasicType(field: Field | Column): string;
4
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAgDlE"}
@@ -1,48 +0,0 @@
1
- export function getPostgresBasicType(field) {
2
- let format;
3
- // first check if column.dataTypeID exists
4
- if ('dataTypeID' in field) {
5
- switch (field.dataTypeID) {
6
- case 20: // int8
7
- case 21: // int2
8
- case 23: // int4
9
- case 700: // float4
10
- case 701: // float8
11
- case 1700: // numeric
12
- format = 'number';
13
- break;
14
- case 1082: // date
15
- case 1083: // time
16
- case 1184: // timestamptz
17
- case 1114: // timestamp
18
- format = 'date';
19
- break;
20
- case 1043: // varchar
21
- default:
22
- format = 'string';
23
- }
24
- }
25
- else if (field.fieldType) {
26
- // if column.dataTypeID doesn't exist, check column.fieldType
27
- switch (field.fieldType) {
28
- case 'int8':
29
- case 'int2':
30
- case 'int4':
31
- case 'float4':
32
- case 'float8':
33
- case 'numeric':
34
- format = 'number';
35
- break;
36
- case 'date':
37
- case 'time':
38
- case 'timestamptz':
39
- case 'timestamp':
40
- format = 'date';
41
- break;
42
- case 'varchar':
43
- default:
44
- format = 'string';
45
- }
46
- }
47
- return format || 'string';
48
- }
@@ -1,17 +0,0 @@
1
- export type Field = {
2
- _id: string;
3
- label: string;
4
- field: string;
5
- format: 'percent';
6
- };
7
- type Props = {
8
- value: string | number | boolean | undefined | null;
9
- field: string | undefined | null;
10
- fields: Field[];
11
- };
12
- /**
13
- * Formats a value to CSV-format.
14
- */
15
- export declare const valueFormatterCSV: ({ value, field, fields, }: Props) => string | number | boolean;
16
- export {};
17
- //# sourceMappingURL=valueFormatterCSV.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valueFormatterCSV.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatterCSV.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,8BAI3B,KAAK,KAAG,MAAM,GAAG,MAAM,GAAG,OA+B5B,CAAC"}
@@ -1,95 +0,0 @@
1
- import { endOfWeek, format, getWeek, isValid, startOfWeek } from 'date-fns';
2
- import { utcToZonedTime } from 'date-fns-tz';
3
- /**
4
- * Formats a value to CSV-format.
5
- */
6
- export const valueFormatterCSV = ({ value, field, fields, }) => {
7
- if (field === undefined || field === null)
8
- return '';
9
- if (value === undefined || value === null)
10
- return '';
11
- const fieldInfo = fields.find((f) => f.field === field);
12
- if (!fieldInfo)
13
- return '';
14
- const HANDLERS = {
15
- percent: formatPercent,
16
- dollar_amount: formatDollarAmount,
17
- dollar_cents: formatDollarCents,
18
- whole_number: formatWholeNumber,
19
- one_decimal_place: formatOneDecimalPlace,
20
- two_decimal_places: formatTwoDecimalPlaces,
21
- string: formatString,
22
- yyyy: format_YYYY,
23
- MMM_yyyy: format_MMM_yyyy,
24
- MMM_dd_yyyy: format_MMM_dd_yyyy,
25
- hh_ap_pm: format_hh_ap_pm,
26
- 'MMM_dd-MMM_dd': format_MMM_dd_MMM_dd,
27
- 'MMM_dd_hh:mm_ap_pm': format_MMM_dd_hh_mm_ap_pm,
28
- 'wo, yyyy': format_wo_yyyy,
29
- };
30
- // try to handle this value using the associated formatType handler
31
- const formatType = fieldInfo.format;
32
- if (Object.keys(HANDLERS).includes(formatType)) {
33
- return HANDLERS[formatType](value);
34
- }
35
- return formatString(value); // by default make this value a string
36
- };
37
- /**
38
- * HELPER FUNCTION DEFINITIONS
39
- */
40
- const formatString = (value) => {
41
- if (typeof value === 'object') {
42
- return JSON.stringify(value);
43
- }
44
- return value.toString();
45
- };
46
- const formatDollarAmount = (value) => Number(value ?? 0);
47
- const formatDollarCents = (value) => Number(value ?? 0);
48
- const formatWholeNumber = (value) => Math.round(Number(value));
49
- const formatOneDecimalPlace = (value) => Number(value).toFixed(1);
50
- const formatTwoDecimalPlaces = (value) => Number(value).toFixed(2);
51
- const formatPercent = (value) => {
52
- const absoluteValue = isNaN(Number(value)) ? 0 : Math.abs(Number(value));
53
- if (absoluteValue < 1.0) {
54
- return Number(value);
55
- }
56
- return Number(value) / 100.0;
57
- };
58
- const _getUTCDateHelper = (value, fmt) => {
59
- const utcDate = utcToZonedTime(new Date(value), 'UTC');
60
- if (!isValid(utcDate))
61
- return 'Invalid date';
62
- return format(utcDate, fmt);
63
- };
64
- const format_YYYY = (value) => _getUTCDateHelper(value, 'yyyy');
65
- const format_MMM_yyyy = (value) => _getUTCDateHelper(value, 'MMM yyyy');
66
- const format_hh_ap_pm = (value) => _getUTCDateHelper(value, 'hh:mm aa');
67
- const format_MMM_dd_yyyy = (value) => _getUTCDateHelper(value, 'dd MMM yyyy');
68
- const format_MMM_dd_MMM_dd = (value) => {
69
- const utcDate = utcToZonedTime(new Date(value), 'UTC');
70
- if (!isValid(utcDate))
71
- return 'Invalid date';
72
- const monday = startOfWeek(utcDate, { weekStartsOn: 1 });
73
- const sunday = endOfWeek(utcDate, { weekStartsOn: 1 });
74
- // Check if start and end are in the same month
75
- if (format(monday, 'MMM') === format(sunday, 'MMM')) {
76
- return `${format(monday, 'MMM dd')} - ${format(sunday, 'dd')}`;
77
- }
78
- else {
79
- return `${format(monday, 'MMM dd')} - ${format(sunday, 'MMM dd')}`;
80
- }
81
- };
82
- const format_MMM_dd_hh_mm_ap_pm = (value) => {
83
- const utcDate = utcToZonedTime(new Date(value), 'UTC');
84
- if (!isValid(utcDate))
85
- return 'Invalid date';
86
- const formatStr = utcDate.getMinutes() === 0 ? 'MMM do h a' : 'MMM do h:mm a';
87
- const res = format(utcDate, formatStr);
88
- return res.slice(0, -2) + res.slice(-2).toLowerCase();
89
- };
90
- const format_wo_yyyy = (value) => {
91
- const utcDate = utcToZonedTime(new Date(value), 'UTC');
92
- if (!isValid(utcDate))
93
- return 'Invalid date';
94
- return `${getWeek(utcDate)},${utcDate.getFullYear()}`;
95
- };