@quillsql/react 2.13.41 → 2.13.43

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 (89) hide show
  1. package/dist/cjs/ChartBuilder.d.ts +18 -3
  2. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  3. package/dist/cjs/ChartBuilder.js +186 -89
  4. package/dist/cjs/Context.d.ts.map +1 -1
  5. package/dist/cjs/Context.js +46 -16
  6. package/dist/cjs/Dashboard.d.ts.map +1 -1
  7. package/dist/cjs/Dashboard.js +0 -1
  8. package/dist/cjs/ReportBuilder.d.ts +2 -1
  9. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  10. package/dist/cjs/ReportBuilder.js +74 -4
  11. package/dist/cjs/SQLEditor.d.ts +2 -1
  12. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  13. package/dist/cjs/SQLEditor.js +43 -3
  14. package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -1
  15. package/dist/cjs/components/Chart/GaugeChart.js +70 -12
  16. package/dist/cjs/components/Chart/InternalChart.js +1 -1
  17. package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -1
  18. package/dist/cjs/components/Chart/MapChart.js +65 -7
  19. package/dist/cjs/components/UiComponents.d.ts +2 -2
  20. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  21. package/dist/cjs/components/UiComponents.js +5 -4
  22. package/dist/cjs/index.d.ts +1 -1
  23. package/dist/cjs/index.d.ts.map +1 -1
  24. package/dist/cjs/internals/ReportBuilder/PivotModal.js +1 -1
  25. package/dist/cjs/models/Columns.d.ts +1 -0
  26. package/dist/cjs/models/Columns.d.ts.map +1 -1
  27. package/dist/cjs/utils/dashboard.d.ts +2 -1
  28. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  29. package/dist/cjs/utils/dashboard.js +12 -6
  30. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  31. package/dist/cjs/utils/pivotConstructor.js +4 -1
  32. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  33. package/dist/cjs/utils/queryConstructor.js +12 -6
  34. package/dist/cjs/utils/report.d.ts.map +1 -1
  35. package/dist/cjs/utils/report.js +8 -6
  36. package/dist/cjs/utils/schema.d.ts +4 -2
  37. package/dist/cjs/utils/schema.d.ts.map +1 -1
  38. package/dist/cjs/utils/schema.js +7 -3
  39. package/dist/cjs/utils/tableProcessing.d.ts +2 -0
  40. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  41. package/dist/cjs/utils/tableProcessing.js +33 -3
  42. package/dist/cjs/utils/valueFormatter.d.ts +1 -0
  43. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  44. package/dist/cjs/utils/valueFormatter.js +55 -1
  45. package/dist/esm/ChartBuilder.d.ts +18 -3
  46. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  47. package/dist/esm/ChartBuilder.js +187 -91
  48. package/dist/esm/Context.d.ts.map +1 -1
  49. package/dist/esm/Context.js +46 -16
  50. package/dist/esm/Dashboard.d.ts.map +1 -1
  51. package/dist/esm/Dashboard.js +0 -1
  52. package/dist/esm/ReportBuilder.d.ts +2 -1
  53. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  54. package/dist/esm/ReportBuilder.js +74 -4
  55. package/dist/esm/SQLEditor.d.ts +2 -1
  56. package/dist/esm/SQLEditor.d.ts.map +1 -1
  57. package/dist/esm/SQLEditor.js +43 -3
  58. package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -1
  59. package/dist/esm/components/Chart/GaugeChart.js +33 -8
  60. package/dist/esm/components/Chart/InternalChart.js +1 -1
  61. package/dist/esm/components/Chart/MapChart.d.ts.map +1 -1
  62. package/dist/esm/components/Chart/MapChart.js +30 -5
  63. package/dist/esm/components/UiComponents.d.ts +2 -2
  64. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  65. package/dist/esm/components/UiComponents.js +5 -4
  66. package/dist/esm/index.d.ts +1 -1
  67. package/dist/esm/index.d.ts.map +1 -1
  68. package/dist/esm/internals/ReportBuilder/PivotModal.js +1 -1
  69. package/dist/esm/models/Columns.d.ts +1 -0
  70. package/dist/esm/models/Columns.d.ts.map +1 -1
  71. package/dist/esm/utils/dashboard.d.ts +2 -1
  72. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  73. package/dist/esm/utils/dashboard.js +13 -7
  74. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  75. package/dist/esm/utils/pivotConstructor.js +4 -1
  76. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  77. package/dist/esm/utils/queryConstructor.js +12 -6
  78. package/dist/esm/utils/report.d.ts.map +1 -1
  79. package/dist/esm/utils/report.js +9 -7
  80. package/dist/esm/utils/schema.d.ts +4 -2
  81. package/dist/esm/utils/schema.d.ts.map +1 -1
  82. package/dist/esm/utils/schema.js +7 -3
  83. package/dist/esm/utils/tableProcessing.d.ts +2 -0
  84. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  85. package/dist/esm/utils/tableProcessing.js +33 -3
  86. package/dist/esm/utils/valueFormatter.d.ts +1 -0
  87. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  88. package/dist/esm/utils/valueFormatter.js +53 -0
  89. package/package.json +6 -1
@@ -196,7 +196,7 @@ const fetchDistinctStrings = async (query, client, tenants, customFields, filter
196
196
  // @ts-ignore
197
197
  dateField: filters?.find((filter) => filter.filterType === 'date_range')?.dateField,
198
198
  dashboardName,
199
- tenants
199
+ tenants,
200
200
  },
201
201
  };
202
202
  const cloudBody = { query };
@@ -308,6 +308,7 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
308
308
  let error = undefined;
309
309
  let rowCount = undefined;
310
310
  let itemQuery = undefined;
311
+ let referencedTables = undefined;
311
312
  try {
312
313
  if (pivot) {
313
314
  const pivotData = await generatePivotWithSQL({
@@ -398,6 +399,20 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
398
399
  columns = resp.fields.map((elem) => convertPostgresColumn(elem));
399
400
  rows = resp.rows;
400
401
  itemQuery = resp.itemQuery;
402
+ referencedTables = resp.referencedTables;
403
+ if (customFields) {
404
+ const tables = referencedTables ?? [];
405
+ tables.forEach((table) => {
406
+ const _customFields = customFields?.[table] ?? [];
407
+ columns.forEach((col) => {
408
+ if (_customFields.some((field) => {
409
+ return field.field === col.field;
410
+ })) {
411
+ col.inferFormat = true;
412
+ }
413
+ });
414
+ });
415
+ }
401
416
  }
402
417
  }
403
418
  catch (e) {
@@ -408,7 +423,7 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
408
423
  if (client.databaseType && client.databaseType.toLowerCase() === 'bigquery') {
409
424
  parseValueFromBigQueryDates(rows, columns);
410
425
  }
411
- return { rows, columns, rowCount, error, itemQuery };
426
+ return { rows, columns, rowCount, error, itemQuery, referencedTables };
412
427
  };
413
428
  export const fetchResultsByReport = async ({ reportId, client, tenants, processing, filters, customFields, rowsOnly, rowCountOnly, abortSignal, pivot, pivotQuery, comparisonPivotQuery, getPivotRowCount = true, }) => {
414
429
  if (pivot && pivotQuery) {
@@ -502,6 +517,7 @@ export const fetchTableByAST = async (ast, client, tenants, processing, customFi
502
517
  let rowCount;
503
518
  let error;
504
519
  let itemQuery;
520
+ let referencedTables;
505
521
  try {
506
522
  const hostedBody = {
507
523
  metadata: {
@@ -532,6 +548,20 @@ export const fetchTableByAST = async (ast, client, tenants, processing, customFi
532
548
  columns = resp.fields.map((elem) => convertPostgresColumn(elem));
533
549
  rows = gatheredRows;
534
550
  itemQuery = resp.itemQuery;
551
+ referencedTables = resp.referencedTables;
552
+ if (customFields) {
553
+ const tables = referencedTables ?? [];
554
+ tables.forEach((table) => {
555
+ const _customFields = customFields?.[table] ?? [];
556
+ columns.forEach((col) => {
557
+ if (_customFields.some((field) => {
558
+ return field.field === col.field;
559
+ })) {
560
+ col.inferFormat = true;
561
+ }
562
+ });
563
+ });
564
+ }
535
565
  }
536
566
  catch (e) {
537
567
  rows = [];
@@ -542,7 +572,7 @@ export const fetchTableByAST = async (ast, client, tenants, processing, customFi
542
572
  if (client.databaseType && client.databaseType.toLowerCase() === 'bigquery') {
543
573
  parseValueFromBigQueryDates(rows, columns);
544
574
  }
545
- return { rows, columns, rowCount, error, itemQuery };
575
+ return { rows, columns, rowCount, error, itemQuery, referencedTables };
546
576
  };
547
577
  export const convertUniqueValuesByColumnToUniqueValueStrings = (uniqueValuesByColumns) => {
548
578
  return Object.keys(uniqueValuesByColumns).reduce((acc, column) => {
@@ -23,6 +23,7 @@ export declare const quillFormat: ({ value, format, }: {
23
23
  value: any;
24
24
  format: string;
25
25
  }) => string;
26
+ export declare const quillAutoFormat: (value: any) => string;
26
27
  export declare function getValidDate(dateString: string): Date | undefined;
27
28
  export declare const compareValues: (a: {
28
29
  [key: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,KAAK,GAAG;IAClB,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;IAChB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAO/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,uDAMxB,KAAK,KAAG,MA8CV,CAAC;AAEF,eAAO,MAAM,WAAW,uBAGrB;IACD,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,KAAG,MAkDH,CAAC;AAgPF,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,oBAG9C;AAED,eAAO,MAAM,aAAa,MACrB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,KACtB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,UACjB,MAAM,KACb,MAkDF,CAAC"}
1
+ {"version":3,"file":"valueFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/valueFormatter.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,KAAK,GAAG;IAClB,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;IAChB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAO/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,uDAMxB,KAAK,KAAG,MA8CV,CAAC;AAEF,eAAO,MAAM,WAAW,uBAGrB;IACD,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,KAAG,MAkDH,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,GAAG,KAAG,MA+D5C,CAAC;AAgPF,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,oBAG9C;AAED,eAAO,MAAM,aAAa,MACrB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,KACtB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,UACjB,MAAM,KACb,MAkDF,CAAC"}
@@ -115,6 +115,59 @@ export const quillFormat = ({ value, format, }) => {
115
115
  return formatString(value);
116
116
  }
117
117
  };
118
+ export const quillAutoFormat = (value) => {
119
+ // Handle null/undefined cases
120
+ if (value === null || value === undefined) {
121
+ return '-';
122
+ }
123
+ // Handle boolean values
124
+ if (typeof value === 'boolean') {
125
+ return value.toString();
126
+ }
127
+ // Handle date strings
128
+ if (typeof value === 'string') {
129
+ // Check if it's a date string
130
+ const dateValue = new Date(value);
131
+ if (isValid(dateValue)) {
132
+ // Standard date
133
+ return quillFormat({ value, format: 'MMM_dd_yyyy' });
134
+ }
135
+ }
136
+ // Handle numbers
137
+ if (typeof value === 'number' || !isNaN(parseFloat(value))) {
138
+ const num = parseFloat(value);
139
+ // Percentage detection (if number is between 0 and 1)
140
+ if (num >= 0 && num <= 1) {
141
+ return quillFormat({ value: num, format: 'percent' });
142
+ }
143
+ // Currency detection (look for common patterns)
144
+ if (typeof value === 'string' &&
145
+ (value.includes('$') || value.toLowerCase().includes('usd'))) {
146
+ // Check if it has cents
147
+ return value.includes('.')
148
+ ? quillFormat({ value: num, format: 'dollar_cents' })
149
+ : quillFormat({ value: num, format: 'dollar_amount' });
150
+ }
151
+ // General number formatting
152
+ if (Number.isInteger(num)) {
153
+ return quillFormat({ value: num, format: 'whole_number' });
154
+ }
155
+ // Check decimal places
156
+ const decimalPlaces = num.toString().split('.')[1]?.length || 0;
157
+ if (decimalPlaces === 1) {
158
+ return quillFormat({ value: num, format: 'one_decimal_place' });
159
+ }
160
+ if (decimalPlaces >= 2) {
161
+ return quillFormat({ value: num, format: 'two_decimal_places' });
162
+ }
163
+ }
164
+ // Handle arrays and objects
165
+ if (typeof value === 'object') {
166
+ return JSON.stringify(value);
167
+ }
168
+ // Default to string formatting
169
+ return quillFormat({ value, format: 'string' });
170
+ };
118
171
  /**
119
172
  * HELPER FUNCTION DEFINITIONS
120
173
  **/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.13.41",
3
+ "version": "2.13.43",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",
@@ -28,6 +28,11 @@
28
28
  "@dnd-kit/utilities": "^3.2.2",
29
29
  "@monaco-editor/react": "^4.5.1",
30
30
  "big.js": "^6.2.1",
31
+ "d3-geo": "2.0.2",
32
+ "d3-interpolate": "3.0.1",
33
+ "d3-scale": "4.0.2",
34
+ "d3-selection": "2.0.0",
35
+ "d3-shape": "3.2.0",
31
36
  "date-fns": "^2.29.3",
32
37
  "date-fns-tz": "^2.0.0",
33
38
  "fast-deep-equal": "^3.1.3",