@quillsql/react 2.13.40 → 2.13.42
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.
- package/dist/cjs/Chart.d.ts +5 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +51 -28
- package/dist/cjs/ChartBuilder.d.ts +30 -3
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +483 -182
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +11 -1
- package/dist/cjs/Context.d.ts +16 -4
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +95 -46
- package/dist/cjs/Dashboard.d.ts +6 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +69 -28
- package/dist/cjs/QuillProvider.d.ts +4 -8
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.d.ts +2 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +190 -48
- package/dist/cjs/SQLEditor.d.ts +8 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +94 -10
- package/dist/cjs/Table.d.ts +21 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +30 -192
- package/dist/cjs/components/Chart/BarChart.d.ts +5 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +4 -3
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.js +26 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/GaugeChart.js +198 -0
- package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/InternalChart.js +14 -11
- package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +4 -3
- package/dist/cjs/components/Chart/MapChart.d.ts +36 -0
- package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/MapChart.js +548 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +114 -42
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +57 -54
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +12 -11
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +13 -13
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +28 -7
- package/dist/cjs/components/ReportBuilder/util.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +15 -2
- package/dist/cjs/components/UiComponents.d.ts +5 -2
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +34 -7
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +11 -9
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +18 -4
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +16 -3
- package/dist/cjs/hooks/useReport.d.ts.map +1 -1
- package/dist/cjs/hooks/useReport.js +1 -7
- package/dist/cjs/hooks/useVirtualTables.d.ts +6 -2
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +5 -2
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +7 -8
- package/dist/cjs/models/Columns.d.ts +1 -0
- package/dist/cjs/models/Columns.d.ts.map +1 -1
- package/dist/cjs/models/Filter.d.ts +20 -13
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +161 -87
- package/dist/cjs/models/Report.d.ts +12 -1
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Schema.d.ts +12 -1
- package/dist/cjs/models/Schema.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +22 -22
- package/dist/cjs/utils/astProcessing.d.ts +2 -2
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +25 -6
- package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/axisFormatter.js +25 -0
- package/dist/cjs/utils/color.d.ts +159 -0
- package/dist/cjs/utils/color.d.ts.map +1 -1
- package/dist/cjs/utils/color.js +14 -5
- package/dist/cjs/utils/columnProcessing.js +3 -3
- package/dist/cjs/utils/constants.d.ts +1 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -1
- package/dist/cjs/utils/constants.js +2 -1
- package/dist/cjs/utils/dashboard.d.ts +14 -3
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +79 -16
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +3 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +9 -9
- package/dist/cjs/utils/getDomain.d.ts +4 -1
- package/dist/cjs/utils/getDomain.d.ts.map +1 -1
- package/dist/cjs/utils/getDomain.js +11 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +9 -6
- package/dist/cjs/utils/queryConstructor.d.ts +1 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +83 -49
- package/dist/cjs/utils/report.d.ts +23 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +36 -14
- package/dist/cjs/utils/schema.d.ts +28 -3
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +79 -43
- package/dist/cjs/utils/tableProcessing.d.ts +12 -3
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +36 -8
- package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/textProcessing.js +0 -1
- package/dist/cjs/utils/valueFormatter.d.ts +1 -0
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +55 -1
- package/dist/esm/Chart.d.ts +5 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +52 -29
- package/dist/esm/ChartBuilder.d.ts +30 -3
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +487 -187
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +11 -1
- package/dist/esm/Context.d.ts +16 -4
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +97 -48
- package/dist/esm/Dashboard.d.ts +6 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +70 -29
- package/dist/esm/QuillProvider.d.ts +4 -8
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.d.ts +2 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +192 -50
- package/dist/esm/SQLEditor.d.ts +8 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +95 -11
- package/dist/esm/Table.d.ts +21 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +34 -196
- package/dist/esm/components/Chart/BarChart.d.ts +5 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +5 -4
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/esm/components/Chart/CustomReferenceLine.js +23 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/GaugeChart.js +195 -0
- package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/InternalChart.js +14 -11
- package/dist/esm/components/Chart/LineChart.d.ts +5 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +5 -4
- package/dist/esm/components/Chart/MapChart.d.ts +36 -0
- package/dist/esm/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/MapChart.js +541 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +114 -42
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +57 -54
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +5 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +12 -11
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +14 -14
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +26 -7
- package/dist/esm/components/ReportBuilder/util.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +15 -2
- package/dist/esm/components/UiComponents.d.ts +5 -2
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +32 -6
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +11 -9
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +19 -5
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +16 -3
- package/dist/esm/hooks/useReport.d.ts.map +1 -1
- package/dist/esm/hooks/useReport.js +1 -7
- package/dist/esm/hooks/useVirtualTables.d.ts +6 -2
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +6 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +7 -8
- package/dist/esm/models/Columns.d.ts +1 -0
- package/dist/esm/models/Columns.d.ts.map +1 -1
- package/dist/esm/models/Filter.d.ts +20 -13
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +160 -86
- package/dist/esm/models/Report.d.ts +12 -1
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Schema.d.ts +12 -1
- package/dist/esm/models/Schema.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +23 -23
- package/dist/esm/utils/astProcessing.d.ts +2 -2
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +25 -6
- package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
- package/dist/esm/utils/axisFormatter.js +25 -0
- package/dist/esm/utils/color.d.ts +159 -0
- package/dist/esm/utils/color.d.ts.map +1 -1
- package/dist/esm/utils/color.js +8 -2
- package/dist/esm/utils/columnProcessing.js +3 -3
- package/dist/esm/utils/constants.d.ts +1 -0
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/dashboard.d.ts +14 -3
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +80 -17
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +3 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +10 -10
- package/dist/esm/utils/getDomain.d.ts +4 -1
- package/dist/esm/utils/getDomain.d.ts.map +1 -1
- package/dist/esm/utils/getDomain.js +11 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +9 -6
- package/dist/esm/utils/queryConstructor.d.ts +1 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +83 -49
- package/dist/esm/utils/report.d.ts +23 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +38 -16
- package/dist/esm/utils/schema.d.ts +28 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +78 -43
- package/dist/esm/utils/tableProcessing.d.ts +12 -3
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +36 -8
- package/dist/esm/utils/textProcessing.d.ts.map +1 -1
- package/dist/esm/utils/textProcessing.js +0 -1
- package/dist/esm/utils/valueFormatter.d.ts +1 -0
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +53 -0
- package/package.json +10 -3
|
@@ -15,6 +15,7 @@ exports.getTablesHelper = getTablesHelper;
|
|
|
15
15
|
const ast_1 = require("../components/ReportBuilder/ast");
|
|
16
16
|
const convert_1 = require("../components/ReportBuilder/convert");
|
|
17
17
|
const util_1 = require("../components/ReportBuilder/util");
|
|
18
|
+
const astFilterProcessing_1 = require("./astFilterProcessing");
|
|
18
19
|
const constants_1 = require("./constants");
|
|
19
20
|
const tableProcessing_1 = require("./tableProcessing");
|
|
20
21
|
function getSelectFromAST(ast) {
|
|
@@ -183,9 +184,10 @@ function getColumnAndTableInfo(tableAliasMap, column, schemaInfo) {
|
|
|
183
184
|
}
|
|
184
185
|
return { tableName, columnName };
|
|
185
186
|
}
|
|
186
|
-
function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
|
|
187
|
+
function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap, skipStar = false) {
|
|
187
188
|
const referencedColumns = {};
|
|
188
|
-
if (
|
|
189
|
+
if (!skipStar &&
|
|
190
|
+
(ast?.columns === '*' || ast?.columns?.[0]?.expr?.column === '*')) {
|
|
189
191
|
// Be sure to select everything from stars
|
|
190
192
|
const tableList = ast.from.map((table) => recursiveSearchByKey(table, 'table'));
|
|
191
193
|
tableList.forEach((table) => {
|
|
@@ -265,6 +267,23 @@ function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
|
|
|
265
267
|
}
|
|
266
268
|
});
|
|
267
269
|
}
|
|
270
|
+
// Look through the orderby's
|
|
271
|
+
if (ast.orderby) {
|
|
272
|
+
const allColumnReferencesInOrderBy = ast.orderby.map((orderby) => ({
|
|
273
|
+
field: (0, astFilterProcessing_1.getFieldFromExpression)(orderby.expr ?? orderby),
|
|
274
|
+
table: orderby.expr?.table,
|
|
275
|
+
}));
|
|
276
|
+
allColumnReferencesInOrderBy.forEach((column) => {
|
|
277
|
+
const table = column.table || ast.from?.length === 1 ? ast.from[0].table : '';
|
|
278
|
+
if (!table) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
if (!referencedColumns[table]) {
|
|
282
|
+
referencedColumns[table] = [];
|
|
283
|
+
}
|
|
284
|
+
referencedColumns[table].push(column.field);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
268
287
|
for (const table in referencedColumns) {
|
|
269
288
|
referencedColumns[table] = Array.from(new Set(referencedColumns[table]));
|
|
270
289
|
}
|
|
@@ -394,7 +413,7 @@ const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot,
|
|
|
394
413
|
}
|
|
395
414
|
ast = ast.length ? ast[0] : ast;
|
|
396
415
|
newAst = (0, convert_1.convertBigQuery)(ast);
|
|
397
|
-
newAst = (0, util_1.removeTableNameAlias)(newAst);
|
|
416
|
+
newAst = (0, util_1.removeTableNameAlias)(newAst, schema);
|
|
398
417
|
newAst = (0, convert_1.convertWildcardColumns)(newAst, schema); // must go before groupby
|
|
399
418
|
({ ast: newAst, pivot } = (0, convert_1.convertGroupBy)(newAst, schema, prevPivot, prevTable));
|
|
400
419
|
newAst = (0, convert_1.convertOrderBy)(newAst, schema);
|
|
@@ -490,7 +509,7 @@ const POSTGRES_DATE_TYPES = [
|
|
|
490
509
|
'time',
|
|
491
510
|
'timetz',
|
|
492
511
|
];
|
|
493
|
-
function getTablesHelper(ast, allTables) {
|
|
512
|
+
function getTablesHelper(ast, allTables, skipStar) {
|
|
494
513
|
const tableAliasMap = createTableNameToTableAliasMap(ast);
|
|
495
514
|
const tablesInQuery = Object.values(tableAliasMap);
|
|
496
515
|
// Remove all aliased tables (with statements and subqueries)
|
|
@@ -498,7 +517,7 @@ function getTablesHelper(ast, allTables) {
|
|
|
498
517
|
.filter((table) => tablesInQuery.includes(table.displayName))
|
|
499
518
|
.map((table) => table.displayName);
|
|
500
519
|
// Get non with statement column references
|
|
501
|
-
let referencedColumns = getColumnsByTableFromASTAndSchema(ast, allTables, tableAliasMap);
|
|
520
|
+
let referencedColumns = getColumnsByTableFromASTAndSchema(ast, allTables, tableAliasMap, skipStar);
|
|
502
521
|
referencedColumns = Object.keys(referencedColumns)
|
|
503
522
|
.filter((table) => onlyReferenceTables.includes(table))
|
|
504
523
|
.reduce((obj, key) => {
|
|
@@ -510,7 +529,7 @@ function getTablesHelper(ast, allTables) {
|
|
|
510
529
|
for (const withStmt of ast.with) {
|
|
511
530
|
const astFrom = withStmt.stmt.from ?? withStmt.stmt.ast.from;
|
|
512
531
|
if (astFrom) {
|
|
513
|
-
const withReferencedColumns = getColumnsByTableFromASTAndSchema(withStmt.stmt.ast ?? withStmt.stmt, allTables, tableAliasMap);
|
|
532
|
+
const withReferencedColumns = getColumnsByTableFromASTAndSchema(withStmt.stmt.ast ?? withStmt.stmt, allTables, tableAliasMap, skipStar);
|
|
514
533
|
// @ts-ignore
|
|
515
534
|
Object.keys(withReferencedColumns).forEach((tableName) => {
|
|
516
535
|
if (referencedColumns[tableName]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axisFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/axisFormatter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,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;;;;;GAKG;AACH,eAAO,MAAM,aAAa,6BAA8B,KAAK,KAAG,
|
|
1
|
+
{"version":3,"file":"axisFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/axisFormatter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,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;;;;;GAKG;AACH,eAAO,MAAM,aAAa,6BAA8B,KAAK,KAAG,MA4C/D,CAAC"}
|
|
@@ -26,6 +26,10 @@ const axisFormatter = ({ value, field, fields }) => {
|
|
|
26
26
|
return formatDollarAmount(value);
|
|
27
27
|
case 'whole_number':
|
|
28
28
|
return formatWholeNumber(value);
|
|
29
|
+
case 'two_decimal_places':
|
|
30
|
+
return formatDecimal2(value);
|
|
31
|
+
case 'one_decimal_place':
|
|
32
|
+
return formatDecimal1(value);
|
|
29
33
|
case 'string':
|
|
30
34
|
return formatString(value);
|
|
31
35
|
case 'yyyy':
|
|
@@ -64,6 +68,26 @@ const formatString = (value) => {
|
|
|
64
68
|
}
|
|
65
69
|
return value.toString();
|
|
66
70
|
};
|
|
71
|
+
const formatterDecimal2 = new Intl.NumberFormat('en-US', {
|
|
72
|
+
style: 'decimal',
|
|
73
|
+
maximumFractionDigits: 2,
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* Formats the value as a number with two decimal places.
|
|
77
|
+
*/
|
|
78
|
+
const formatDecimal2 = (value) => {
|
|
79
|
+
return formatterDecimal2.format(Number(value));
|
|
80
|
+
};
|
|
81
|
+
const formatterDecimal1 = new Intl.NumberFormat('en-US', {
|
|
82
|
+
style: 'decimal',
|
|
83
|
+
maximumFractionDigits: 1,
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* Formats the value as a number with one decimal place.
|
|
87
|
+
*/
|
|
88
|
+
const formatDecimal1 = (value) => {
|
|
89
|
+
return formatterDecimal1.format(Number(value));
|
|
90
|
+
};
|
|
67
91
|
// Formats large numbers like 12345.67 -> $12K
|
|
68
92
|
const formatterBigDollars = new Intl.NumberFormat('en-US', {
|
|
69
93
|
style: 'currency',
|
|
@@ -103,6 +127,7 @@ const formatDollarAmount = (value) => {
|
|
|
103
127
|
const formatterBigWholeNumber = new Intl.NumberFormat('en-US', {
|
|
104
128
|
minimumSignificantDigits: 1,
|
|
105
129
|
maximumSignificantDigits: 2,
|
|
130
|
+
maximumFractionDigits: 0,
|
|
106
131
|
notation: 'compact',
|
|
107
132
|
compactDisplay: 'short',
|
|
108
133
|
});
|
|
@@ -15,7 +15,166 @@ export type Color = (typeof colorValues)[number];
|
|
|
15
15
|
* @param index the index of this element in colors
|
|
16
16
|
*/
|
|
17
17
|
export declare function selectColor(element: any, colors: string[], index: number): string;
|
|
18
|
+
/**
|
|
19
|
+
* Transform a hex string to an RGB array.
|
|
20
|
+
*
|
|
21
|
+
* Examples:
|
|
22
|
+
* - #8661f2 -> [134, 97, 242]
|
|
23
|
+
* - #1661ea2e -> [22, 97, 234, 46]
|
|
24
|
+
*
|
|
25
|
+
* TODO: Add support for triplet-style hex codes like this:
|
|
26
|
+
* - #123 -> #112233 -> [17, 34, 51]
|
|
27
|
+
*/
|
|
28
|
+
export declare function hexToRGB(hex: string): number[];
|
|
29
|
+
export declare function RGBToHex(rgb: number[]): string;
|
|
18
30
|
export declare function namedColorToHex(color: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* A comprehensive map of all the CSS named-colors that modern browsers will
|
|
33
|
+
* recognize, and converts them into their hex values.
|
|
34
|
+
*/
|
|
35
|
+
export declare const COLOR_TO_HEX: {
|
|
36
|
+
aliceblue: string;
|
|
37
|
+
antiquewhite: string;
|
|
38
|
+
aqua: string;
|
|
39
|
+
aquamarine: string;
|
|
40
|
+
azure: string;
|
|
41
|
+
beige: string;
|
|
42
|
+
bisque: string;
|
|
43
|
+
black: string;
|
|
44
|
+
blanchedalmond: string;
|
|
45
|
+
blue: string;
|
|
46
|
+
blueviolet: string;
|
|
47
|
+
brown: string;
|
|
48
|
+
burlywood: string;
|
|
49
|
+
cadetblue: string;
|
|
50
|
+
chartreuse: string;
|
|
51
|
+
chocolate: string;
|
|
52
|
+
coral: string;
|
|
53
|
+
cornflowerblue: string;
|
|
54
|
+
cornsilk: string;
|
|
55
|
+
crimson: string;
|
|
56
|
+
cyan: string;
|
|
57
|
+
darkblue: string;
|
|
58
|
+
darkcyan: string;
|
|
59
|
+
darkgoldenrod: string;
|
|
60
|
+
darkgray: string;
|
|
61
|
+
darkgreen: string;
|
|
62
|
+
darkkhaki: string;
|
|
63
|
+
darkmagenta: string;
|
|
64
|
+
darkolivegreen: string;
|
|
65
|
+
darkorange: string;
|
|
66
|
+
darkorchid: string;
|
|
67
|
+
darkred: string;
|
|
68
|
+
darksalmon: string;
|
|
69
|
+
darkseagreen: string;
|
|
70
|
+
darkslateblue: string;
|
|
71
|
+
darkslategray: string;
|
|
72
|
+
darkturquoise: string;
|
|
73
|
+
darkviolet: string;
|
|
74
|
+
deeppink: string;
|
|
75
|
+
deepskyblue: string;
|
|
76
|
+
dimgray: string;
|
|
77
|
+
dodgerblue: string;
|
|
78
|
+
firebrick: string;
|
|
79
|
+
floralwhite: string;
|
|
80
|
+
forestgreen: string;
|
|
81
|
+
fuchsia: string;
|
|
82
|
+
gainsboro: string;
|
|
83
|
+
ghostwhite: string;
|
|
84
|
+
gold: string;
|
|
85
|
+
goldenrod: string;
|
|
86
|
+
gray: string;
|
|
87
|
+
green: string;
|
|
88
|
+
greenyellow: string;
|
|
89
|
+
honeydew: string;
|
|
90
|
+
hotpink: string;
|
|
91
|
+
indianred: string;
|
|
92
|
+
indigo: string;
|
|
93
|
+
ivory: string;
|
|
94
|
+
khaki: string;
|
|
95
|
+
lavender: string;
|
|
96
|
+
lavenderblush: string;
|
|
97
|
+
lawngreen: string;
|
|
98
|
+
lemonchiffon: string;
|
|
99
|
+
lightblue: string;
|
|
100
|
+
lightcoral: string;
|
|
101
|
+
lightcyan: string;
|
|
102
|
+
lightgoldenrodyellow: string;
|
|
103
|
+
lightgrey: string;
|
|
104
|
+
lightgreen: string;
|
|
105
|
+
lightpink: string;
|
|
106
|
+
lightsalmon: string;
|
|
107
|
+
lightseagreen: string;
|
|
108
|
+
lightskyblue: string;
|
|
109
|
+
lightslategray: string;
|
|
110
|
+
lightsteelblue: string;
|
|
111
|
+
lightyellow: string;
|
|
112
|
+
lime: string;
|
|
113
|
+
limegreen: string;
|
|
114
|
+
linen: string;
|
|
115
|
+
magenta: string;
|
|
116
|
+
maroon: string;
|
|
117
|
+
mediumaquamarine: string;
|
|
118
|
+
mediumblue: string;
|
|
119
|
+
mediumorchid: string;
|
|
120
|
+
mediumpurple: string;
|
|
121
|
+
mediumseagreen: string;
|
|
122
|
+
mediumslateblue: string;
|
|
123
|
+
mediumspringgreen: string;
|
|
124
|
+
mediumturquoise: string;
|
|
125
|
+
mediumvioletred: string;
|
|
126
|
+
midnightblue: string;
|
|
127
|
+
mintcream: string;
|
|
128
|
+
mistyrose: string;
|
|
129
|
+
moccasin: string;
|
|
130
|
+
navajowhite: string;
|
|
131
|
+
navy: string;
|
|
132
|
+
oldlace: string;
|
|
133
|
+
olive: string;
|
|
134
|
+
olivedrab: string;
|
|
135
|
+
orange: string;
|
|
136
|
+
orangered: string;
|
|
137
|
+
orchid: string;
|
|
138
|
+
palegoldenrod: string;
|
|
139
|
+
palegreen: string;
|
|
140
|
+
paleturquoise: string;
|
|
141
|
+
palevioletred: string;
|
|
142
|
+
papayawhip: string;
|
|
143
|
+
peachpuff: string;
|
|
144
|
+
peru: string;
|
|
145
|
+
pink: string;
|
|
146
|
+
plum: string;
|
|
147
|
+
powderblue: string;
|
|
148
|
+
purple: string;
|
|
149
|
+
rebeccapurple: string;
|
|
150
|
+
red: string;
|
|
151
|
+
rosybrown: string;
|
|
152
|
+
royalblue: string;
|
|
153
|
+
saddlebrown: string;
|
|
154
|
+
salmon: string;
|
|
155
|
+
sandybrown: string;
|
|
156
|
+
seagreen: string;
|
|
157
|
+
seashell: string;
|
|
158
|
+
sienna: string;
|
|
159
|
+
silver: string;
|
|
160
|
+
skyblue: string;
|
|
161
|
+
slateblue: string;
|
|
162
|
+
slategray: string;
|
|
163
|
+
snow: string;
|
|
164
|
+
springgreen: string;
|
|
165
|
+
steelblue: string;
|
|
166
|
+
tan: string;
|
|
167
|
+
teal: string;
|
|
168
|
+
thistle: string;
|
|
169
|
+
tomato: string;
|
|
170
|
+
turquoise: string;
|
|
171
|
+
violet: string;
|
|
172
|
+
wheat: string;
|
|
173
|
+
white: string;
|
|
174
|
+
whitesmoke: string;
|
|
175
|
+
yellow: string;
|
|
176
|
+
yellowgreen: string;
|
|
177
|
+
};
|
|
19
178
|
/**
|
|
20
179
|
* Converts an RGB color value to HSL. Conversion formula
|
|
21
180
|
* adapted from http://en.wikipedia.org/wiki/HSL_color_space.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/utils/color.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,MAAM,EAAE,MAAM,GACb,MAAM,EAAE,CAwBV;AA6ED,QAAA,MAAM,WAAW,mKAkBP,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,UAuBxE;
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/utils/color.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,MAAM,EAAE,MAAM,GACb,MAAM,EAAE,CAwBV;AA6ED,QAAA,MAAM,WAAW,mKAkBP,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,UAuBxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB9C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAK9C;AAoBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,UAK5C;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IxB,CAAC;AAIF;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,YA4B9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,YAuB9C"}
|
package/dist/cjs/utils/color.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.COLOR_TO_HEX = void 0;
|
|
3
4
|
exports.generateArrayFromColor = generateArrayFromColor;
|
|
4
5
|
exports.selectColor = selectColor;
|
|
6
|
+
exports.hexToRGB = hexToRGB;
|
|
7
|
+
exports.RGBToHex = RGBToHex;
|
|
5
8
|
exports.namedColorToHex = namedColorToHex;
|
|
6
9
|
exports.rgbToHsl = rgbToHsl;
|
|
7
10
|
exports.HSLtoRGB = HSLtoRGB;
|
|
@@ -137,8 +140,8 @@ function selectColor(element, colors, index) {
|
|
|
137
140
|
return color;
|
|
138
141
|
}
|
|
139
142
|
// If the element is a comparison, make the color grayscale.
|
|
140
|
-
if (Object.keys(COLOR_TO_HEX).includes(color)) {
|
|
141
|
-
const colorHex = COLOR_TO_HEX[color];
|
|
143
|
+
if (Object.keys(exports.COLOR_TO_HEX).includes(color)) {
|
|
144
|
+
const colorHex = exports.COLOR_TO_HEX[color];
|
|
142
145
|
const rgbArray = hexToRGB(colorHex);
|
|
143
146
|
return toGrayscale(rgbArray);
|
|
144
147
|
}
|
|
@@ -183,6 +186,12 @@ function hexToRGB(hex) {
|
|
|
183
186
|
}
|
|
184
187
|
return [128, 128, 128]; // unknown color, return 'gray'
|
|
185
188
|
}
|
|
189
|
+
function RGBToHex(rgb) {
|
|
190
|
+
return `#${rgb
|
|
191
|
+
.map((c) => Math.round(c).toString(16).padStart(2, '0'))
|
|
192
|
+
.join('')
|
|
193
|
+
.toUpperCase()}`;
|
|
194
|
+
}
|
|
186
195
|
/**
|
|
187
196
|
* Converts an RGB object to grayscale.
|
|
188
197
|
*
|
|
@@ -202,8 +211,8 @@ function toGrayscale(rgba) {
|
|
|
202
211
|
return `rgb(${avg}, ${avg}, ${avg})`;
|
|
203
212
|
}
|
|
204
213
|
function namedColorToHex(color) {
|
|
205
|
-
if (Object.keys(COLOR_TO_HEX).includes(color)) {
|
|
206
|
-
return COLOR_TO_HEX[color];
|
|
214
|
+
if (Object.keys(exports.COLOR_TO_HEX).includes(color)) {
|
|
215
|
+
return exports.COLOR_TO_HEX[color];
|
|
207
216
|
}
|
|
208
217
|
return color;
|
|
209
218
|
}
|
|
@@ -211,7 +220,7 @@ function namedColorToHex(color) {
|
|
|
211
220
|
* A comprehensive map of all the CSS named-colors that modern browsers will
|
|
212
221
|
* recognize, and converts them into their hex values.
|
|
213
222
|
*/
|
|
214
|
-
|
|
223
|
+
exports.COLOR_TO_HEX = {
|
|
215
224
|
aliceblue: '#f0f8ff',
|
|
216
225
|
antiquewhite: '#faebd7',
|
|
217
226
|
aqua: '#00ffff',
|
|
@@ -307,7 +307,7 @@ function processColumnName(columnName) {
|
|
|
307
307
|
return removeBigQuerySpecialChars(columnName);
|
|
308
308
|
}
|
|
309
309
|
function isStringType(fieldType) {
|
|
310
|
-
return ['string', 'varchar', 'text', 'char', 'bpchar', 'citext'].includes(fieldType);
|
|
310
|
+
return ['string', 'varchar', 'text', 'char', 'bpchar', 'citext'].includes(fieldType?.toLowerCase());
|
|
311
311
|
}
|
|
312
312
|
function isDateType(fieldType) {
|
|
313
313
|
return [
|
|
@@ -317,7 +317,7 @@ function isDateType(fieldType) {
|
|
|
317
317
|
'timestamptz',
|
|
318
318
|
'timestamp',
|
|
319
319
|
'interval',
|
|
320
|
-
].includes(fieldType);
|
|
320
|
+
].includes(fieldType?.toLowerCase());
|
|
321
321
|
}
|
|
322
322
|
function isNumberType(fieldType) {
|
|
323
323
|
return [
|
|
@@ -331,7 +331,7 @@ function isNumberType(fieldType) {
|
|
|
331
331
|
'smallint',
|
|
332
332
|
'float2',
|
|
333
333
|
'float16',
|
|
334
|
-
].includes(fieldType);
|
|
334
|
+
].includes(fieldType?.toLowerCase());
|
|
335
335
|
}
|
|
336
336
|
function isBoolType(fieldType) {
|
|
337
337
|
return ['bool', 'boolean'].includes(fieldType);
|
|
@@ -4,4 +4,5 @@ export declare const QUILL_SERVER: string;
|
|
|
4
4
|
export declare const QUILL_QUERY_ENDPOINT: string;
|
|
5
5
|
export declare const ALL_TENANTS = "QUILL_ALL_TENANTS";
|
|
6
6
|
export declare const SINGLE_TENANT = "QUILL_SINGLE_TENANT";
|
|
7
|
+
export declare const REFERENCE_LINE = "QUILL_REFERENCE_LINE";
|
|
7
8
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,YAAY,QAGoB,CAAC;AAC9C,eAAO,MAAM,oBAAoB,QAGnB,CAAC;AACf,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,aAAa,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,YAAY,QAGoB,CAAC;AAC9C,eAAO,MAAM,oBAAoB,QAGnB,CAAC;AACf,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,eAAO,MAAM,cAAc,yBAAyB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SINGLE_TENANT = exports.ALL_TENANTS = exports.QUILL_QUERY_ENDPOINT = exports.QUILL_SERVER = exports.MAX_PIVOT_UNIQUE_VALUES = exports.MAX_COLUMN_ROWS_LIMIT = void 0;
|
|
3
|
+
exports.REFERENCE_LINE = exports.SINGLE_TENANT = exports.ALL_TENANTS = exports.QUILL_QUERY_ENDPOINT = exports.QUILL_SERVER = exports.MAX_PIVOT_UNIQUE_VALUES = exports.MAX_COLUMN_ROWS_LIMIT = void 0;
|
|
4
4
|
exports.MAX_COLUMN_ROWS_LIMIT = 500;
|
|
5
5
|
exports.MAX_PIVOT_UNIQUE_VALUES = 250;
|
|
6
6
|
exports.QUILL_SERVER = typeof process !== 'undefined' && process.env
|
|
@@ -11,3 +11,4 @@ exports.QUILL_QUERY_ENDPOINT = typeof process !== 'undefined' && process.env
|
|
|
11
11
|
: '/cloud';
|
|
12
12
|
exports.ALL_TENANTS = 'QUILL_ALL_TENANTS';
|
|
13
13
|
exports.SINGLE_TENANT = 'QUILL_SINGLE_TENANT';
|
|
14
|
+
exports.REFERENCE_LINE = 'QUILL_REFERENCE_LINE';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { QuillReportInternal } from '../models/Report';
|
|
2
2
|
import { QuillProviderClient } from '../models/Client';
|
|
3
3
|
import { AdditionalProcessing } from './tableProcessing';
|
|
4
|
+
import { CustomField } from '../models/Schema';
|
|
4
5
|
/**
|
|
5
6
|
* Returns a cleaned version of the dashboard item we store in state. We clean
|
|
6
7
|
* the dashboard item so that we aren't exposing unnecessary details to the
|
|
@@ -8,9 +9,19 @@ import { AdditionalProcessing } from './tableProcessing';
|
|
|
8
9
|
* interface to build amazing dashboards on top of.
|
|
9
10
|
* @param item
|
|
10
11
|
*/
|
|
11
|
-
export declare function cleanDashboardItem(item: {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
export declare function cleanDashboardItem({ item, dashboardFilters, client, dateBucket, additionalProcessing, customFields, skipPivotFetch, }: {
|
|
13
|
+
item: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
} | undefined;
|
|
16
|
+
dashboardFilters: any;
|
|
17
|
+
client: QuillProviderClient;
|
|
18
|
+
dateBucket?: string;
|
|
19
|
+
additionalProcessing?: AdditionalProcessing;
|
|
20
|
+
customFields?: {
|
|
21
|
+
[tableName: string]: CustomField[];
|
|
22
|
+
} | null;
|
|
23
|
+
skipPivotFetch?: boolean;
|
|
24
|
+
}): Promise<QuillReportInternal>;
|
|
14
25
|
export declare function getDashboard(dashboardName: string, client: QuillProviderClient, tenants?: {
|
|
15
26
|
tenantField: string;
|
|
16
27
|
tenantIds: (string | number)[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAcvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAcvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAOzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAsB/C;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,EAAE;IACD,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IACzC,gBAAgB,EAAE,GAAG,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,YAAY,CAAC,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqK/B;AA2ID,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACvB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,GAAG,CAAC,CA6Bd"}
|
|
@@ -34,7 +34,7 @@ const defaultDashboardItem = {
|
|
|
34
34
|
* interface to build amazing dashboards on top of.
|
|
35
35
|
* @param item
|
|
36
36
|
*/
|
|
37
|
-
async function cleanDashboardItem(item, dashboardFilters, client, dateBucket, additionalProcessing) {
|
|
37
|
+
async function cleanDashboardItem({ item, dashboardFilters, client, dateBucket, additionalProcessing, customFields, skipPivotFetch, }) {
|
|
38
38
|
if (!item)
|
|
39
39
|
return defaultDashboardItem;
|
|
40
40
|
if (!item.rows) {
|
|
@@ -44,24 +44,56 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket, ad
|
|
|
44
44
|
name: item.name,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
+
const fields = item.fields || [];
|
|
48
|
+
const columnsWithCustomFields = [...(item.columns ?? [])];
|
|
49
|
+
if (item.includeCustomFields && item.rows?.length > 0) {
|
|
50
|
+
const tables = item.referencedTables ?? [];
|
|
51
|
+
tables.forEach((table) => {
|
|
52
|
+
const _customFields = customFields?.[table] ?? [];
|
|
53
|
+
_customFields.forEach((field) => {
|
|
54
|
+
const isJsonCustomField = !!field.refColumn;
|
|
55
|
+
if (item.rows[0][field.field] !== undefined &&
|
|
56
|
+
!item.columns.some((col) => col.field === field.field)) {
|
|
57
|
+
const result_field = fields.find((f) => f.name === field.field);
|
|
58
|
+
const converted_field = (0, columnProcessing_1.convertPostgresColumn)(result_field ?? {});
|
|
59
|
+
columnsWithCustomFields.push({
|
|
60
|
+
field: field.field,
|
|
61
|
+
format: converted_field.format,
|
|
62
|
+
label: (0, textProcessing_1.snakeAndCamelCaseToTitleCase)(field.field),
|
|
63
|
+
fieldType: converted_field.fieldType,
|
|
64
|
+
dataTypeID: converted_field.dataTypeID,
|
|
65
|
+
jsType: converted_field.jsType,
|
|
66
|
+
inferFormat: isJsonCustomField,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
47
72
|
const processedColumns = item.columns.map((col) => {
|
|
48
73
|
return { ...col, label: (0, textProcessing_1.snakeAndCamelCaseToTitleCase)(col.label) };
|
|
49
74
|
});
|
|
75
|
+
const columnInternal = (item.includeCustomFields ? columnsWithCustomFields : item.columns).map((col) => {
|
|
76
|
+
return { ...col, label: (0, textProcessing_1.snakeAndCamelCaseToTitleCase)(col.label) };
|
|
77
|
+
});
|
|
50
78
|
let pivotTable;
|
|
51
79
|
let pivotError;
|
|
52
80
|
try {
|
|
53
81
|
pivotTable = await getPivotTable({
|
|
54
82
|
...item,
|
|
55
|
-
pivot: item.pivot
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
83
|
+
pivot: item.pivot && !skipPivotFetch
|
|
84
|
+
? {
|
|
85
|
+
...item.pivot,
|
|
86
|
+
aggregations: item.pivot.aggregations ?? [
|
|
87
|
+
{
|
|
88
|
+
valueField: item.pivot.valueField,
|
|
89
|
+
valueFieldType: item.pivot.valueFieldType,
|
|
90
|
+
valueField2: item.pivot.valueField2,
|
|
91
|
+
valueField2Type: item.pivot.valueField2Type,
|
|
92
|
+
aggregationType: item.pivot.aggregationType,
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
}
|
|
96
|
+
: undefined,
|
|
65
97
|
}, dashboardFilters, client, dateBucket, additionalProcessing, item.dashboardName);
|
|
66
98
|
}
|
|
67
99
|
catch (e) {
|
|
@@ -69,6 +101,29 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket, ad
|
|
|
69
101
|
console.error('Error fetching pivot table', e);
|
|
70
102
|
pivotError = 'Error fetching pivot table';
|
|
71
103
|
}
|
|
104
|
+
// For each key on item that starts with "referenceLine_{field}", we want to
|
|
105
|
+
// add it to referenceLineYValues as [field]: [value, value] (we only support horizontal lines)
|
|
106
|
+
// Then for each number value in the referenceLines map, we also want to add [key]: [value, value]
|
|
107
|
+
const referenceLineYValues = [];
|
|
108
|
+
for (const key in item) {
|
|
109
|
+
if (key.startsWith('referenceLine_')) {
|
|
110
|
+
const field = key.slice(14);
|
|
111
|
+
if (!item[key] || !item[key][0])
|
|
112
|
+
continue;
|
|
113
|
+
const value = Object.values(item[key][0])[0];
|
|
114
|
+
referenceLineYValues.push({ label: field, query: [value, value] });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (item.referenceLines) {
|
|
118
|
+
for (const referenceLine of item.referenceLines) {
|
|
119
|
+
if (Array.isArray(referenceLine.query)) {
|
|
120
|
+
referenceLineYValues.push({ label: referenceLine.label, query: referenceLine.query });
|
|
121
|
+
}
|
|
122
|
+
else if (referenceLine.query === '') {
|
|
123
|
+
referenceLineYValues.push({ label: referenceLine.label, query: (pivotTable?.rows ? pivotTable.rows : item.rows).map((row) => Number(row[referenceLine.label]) || 0) });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
72
127
|
return {
|
|
73
128
|
id: item._id ?? item.id,
|
|
74
129
|
name: item.name,
|
|
@@ -82,9 +137,12 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket, ad
|
|
|
82
137
|
field: column.field,
|
|
83
138
|
format: column.format,
|
|
84
139
|
label: column.label,
|
|
140
|
+
inferFormat: column.inferFormat,
|
|
85
141
|
};
|
|
86
142
|
}),
|
|
87
|
-
|
|
143
|
+
includeCustomFields: item.includeCustomFields,
|
|
144
|
+
columnInternal,
|
|
145
|
+
columnsWithCustomFields,
|
|
88
146
|
chartType: item.chartType,
|
|
89
147
|
dateField: item.dateField,
|
|
90
148
|
pivot: pivotError
|
|
@@ -92,14 +150,16 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket, ad
|
|
|
92
150
|
: item.pivot
|
|
93
151
|
? {
|
|
94
152
|
...item.pivot,
|
|
95
|
-
aggregations: item.pivot.aggregations ?? [
|
|
153
|
+
aggregations: item.pivot.aggregations ?? [
|
|
154
|
+
{
|
|
96
155
|
valueField: item.pivot.valueField,
|
|
97
156
|
valueFieldType: item.pivot.valueFieldType,
|
|
98
157
|
valueField2: item.pivot.valueField2,
|
|
99
158
|
valueField2Type: item.pivot.valueField2Type,
|
|
100
159
|
aggregationType: item.pivot.aggregationType,
|
|
101
|
-
}
|
|
102
|
-
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
columnValues: item.distinctStrings,
|
|
103
163
|
}
|
|
104
164
|
: undefined,
|
|
105
165
|
yAxisFields: pivotTable
|
|
@@ -123,6 +183,8 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket, ad
|
|
|
123
183
|
referencedTables: item?.referencedTables || [],
|
|
124
184
|
referencedColumns: item?.referencedColumns || {},
|
|
125
185
|
error: item.error ?? pivotError,
|
|
186
|
+
referenceLineYValues: referenceLineYValues,
|
|
187
|
+
referenceLines: item.referenceLines,
|
|
126
188
|
};
|
|
127
189
|
}
|
|
128
190
|
/**
|
|
@@ -157,7 +219,8 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
|
|
|
157
219
|
field: agg.valueField,
|
|
158
220
|
label: (0, textProcessing_1.snakeCaseToTitleCase)((0, columnProcessing_1.processColumnName)(agg.valueField)),
|
|
159
221
|
//FIXME: valueFieldType is not always the same as the format
|
|
160
|
-
format: agg.valueFieldType ??
|
|
222
|
+
format: agg.valueFieldType ??
|
|
223
|
+
'whole_number',
|
|
161
224
|
jsType: agg.valueFieldType ?? 'number',
|
|
162
225
|
fieldType: agg.valueFieldType ?? 'number',
|
|
163
226
|
dataTypeID: (0, columnProcessing_1.fieldTypeToDataTypeID)(agg.valueFieldType ?? 'number'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAgFvD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAgFvD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,gBA4K1B;AAED,wBAAgB,aAAa;+BAGjB,mBAAmB,sBACP,MAAM,oBACR,GAAG,iCAEP,WAAW;EAoC5B;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB5C"}
|
|
@@ -95,7 +95,9 @@ async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cl
|
|
|
95
95
|
let errorMessage = 'Failed to fetch report: ' + responseJson.error;
|
|
96
96
|
if (hostedRequestBody.metadata.task === 'query' ||
|
|
97
97
|
hostedRequestBody.metadata.task === 'patterns') {
|
|
98
|
-
errorPrefix = '
|
|
98
|
+
errorPrefix = responseJson.error?.includes('Query Parsing Error')
|
|
99
|
+
? ''
|
|
100
|
+
: 'SQL Error: ';
|
|
99
101
|
errorMessage = errorPrefix + responseJson.error;
|
|
100
102
|
}
|
|
101
103
|
else if (responseJson.error?.includes('Virtual Table Error')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,SAAS,EACT,cAAc,EAGd,mBAAmB,EACnB,MAAM,EAEN,eAAe,
|
|
1
|
+
{"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,SAAS,EACT,cAAc,EAGd,mBAAmB,EACnB,MAAM,EAEN,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAGxE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAoB5D;AAMD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,OAkBnD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAG,YAAO,EACjB,UAAU,EAAE,GAAG,YAAO,EACtB,aAAa,EAAE,MAAM,OAmGtB;AAGD,eAAO,MAAM,OAAO,MAAO,MAAM,cA0DhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,cAAc,EAAE,CAoCrE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,yBAgCnD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA4B/D;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,mBAAmB,GACvC,mBAAmB,CAkKrB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,cAAc,EAAE,GAC9B,GAAG,EAAE,CA+CP;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAC3B,QAAQ,CAAC,EAAE,cAAc,EAAE,GAC1B,OAAO,CA+BT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE;IACpD,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB,CASA;AAED,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,WAClB,WAAW,EAAE,iBACP,MAAM,KACpB,CAAC,mBAAmB,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAAG,SAqDpD,CAAC"}
|