@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
package/dist/esm/utils/report.js
CHANGED
|
@@ -2,7 +2,7 @@ import equal from 'fast-deep-equal';
|
|
|
2
2
|
import { createInitialFormData } from '../ChartBuilder';
|
|
3
3
|
import { getTableNames } from '../components/ReportBuilder/ast';
|
|
4
4
|
import { generatePivotTable } from '../internals/ReportBuilder/PivotModal';
|
|
5
|
-
import {
|
|
5
|
+
import { InternalFilterType } from '../models/Filter';
|
|
6
6
|
import { createBasicSelectASTFromColumns } from './astProcessing';
|
|
7
7
|
import { getYAxisFields } from './columnProcessing';
|
|
8
8
|
import { cleanDashboardItem } from './dashboard';
|
|
@@ -14,7 +14,7 @@ import { DEFAULT_PAGINATION } from './paginationProcessing';
|
|
|
14
14
|
import { isPivotPossible, isValidPivot } from './pivotProcessing';
|
|
15
15
|
import { fetchTableByAST, getQueryDateRangeByColumns, getRelevantInfoFromQuery, getUniqueStringValues, } from './tableProcessing';
|
|
16
16
|
import { snakeAndCamelCaseToTitleCase } from './textProcessing';
|
|
17
|
-
import { quillFormat } from './valueFormatter';
|
|
17
|
+
import { quillAutoFormat, quillFormat } from './valueFormatter';
|
|
18
18
|
export const EMPTY_REPORT = {
|
|
19
19
|
id: '',
|
|
20
20
|
name: '',
|
|
@@ -57,10 +57,14 @@ function extractAllReportValuesFromQuillInternalReport(reportInternal) {
|
|
|
57
57
|
queryString: reportInternal.queryString,
|
|
58
58
|
rowCount: reportInternal.rowCount,
|
|
59
59
|
template: reportInternal.template,
|
|
60
|
+
referenceLineYValues: reportInternal.referenceLineYValues,
|
|
61
|
+
referenceLines: reportInternal.referenceLines,
|
|
62
|
+
includeCustomFields: reportInternal.includeCustomFields,
|
|
63
|
+
columnsWithCustomFields: reportInternal.columnsWithCustomFields,
|
|
60
64
|
};
|
|
61
65
|
}
|
|
62
66
|
// TODO: Convert this to take an object rather than a bunch of arguments
|
|
63
|
-
export async function fetchReport(reportId, client, tenants, flags, useReportTask = true, filters = [], additionalProcessing, dateBucket, customFields, rowsOnly, rowCountOnly, abortSignal, getDefaultDashboardFilters) {
|
|
67
|
+
export async function fetchReport({ reportId, client, tenants, flags, useReportTask = true, filters = [], additionalProcessing, dateBucket, customFields, rowsOnly, rowCountOnly, abortSignal, getDefaultDashboardFilters, }) {
|
|
64
68
|
let reportInfo = undefined;
|
|
65
69
|
let errorMessage = undefined;
|
|
66
70
|
try {
|
|
@@ -95,6 +99,7 @@ export async function fetchReport(reportId, client, tenants, flags, useReportTas
|
|
|
95
99
|
filters,
|
|
96
100
|
dateBucket,
|
|
97
101
|
additionalProcessing,
|
|
102
|
+
customFields,
|
|
98
103
|
});
|
|
99
104
|
}
|
|
100
105
|
catch (error) {
|
|
@@ -123,10 +128,10 @@ export async function fetchReport(reportId, client, tenants, flags, useReportTas
|
|
|
123
128
|
}
|
|
124
129
|
return { report: reportInfo || EMPTY_INTERNAL_REPORT, error: errorMessage };
|
|
125
130
|
}
|
|
126
|
-
export async function processReportResponse({ resp, client, filters, dateBucket, additionalProcessing, }) {
|
|
131
|
+
export async function processReportResponse({ resp, client, filters, dateBucket, additionalProcessing, customFields, }) {
|
|
127
132
|
const dashboardItem = {
|
|
128
133
|
...resp,
|
|
129
|
-
filtersApplied: filters?.filter((filter) => filter.filterType in
|
|
134
|
+
filtersApplied: filters?.filter((filter) => filter.filterType in InternalFilterType),
|
|
130
135
|
};
|
|
131
136
|
if (resp.errorMessage) {
|
|
132
137
|
throw new DataLoadError(resp?.errorMessage, {
|
|
@@ -143,7 +148,14 @@ export async function processReportResponse({ resp, client, filters, dateBucket,
|
|
|
143
148
|
parseValueFromBigQueryDates(dashboardItem.compareRows, resp.fields);
|
|
144
149
|
}
|
|
145
150
|
}
|
|
146
|
-
const reportInfo = await cleanDashboardItem(
|
|
151
|
+
const reportInfo = await cleanDashboardItem({
|
|
152
|
+
item: dashboardItem,
|
|
153
|
+
dashboardFilters: filters,
|
|
154
|
+
client,
|
|
155
|
+
dateBucket,
|
|
156
|
+
additionalProcessing,
|
|
157
|
+
customFields,
|
|
158
|
+
});
|
|
147
159
|
if (additionalProcessing) {
|
|
148
160
|
reportInfo.pagination = additionalProcessing.page;
|
|
149
161
|
reportInfo.sort = additionalProcessing.sort;
|
|
@@ -245,15 +257,22 @@ export const formatRowsFromReport = (report, xAxisField, xAxisFormat) => {
|
|
|
245
257
|
if (!report.rows || !report.columns) {
|
|
246
258
|
return [];
|
|
247
259
|
}
|
|
260
|
+
const columns = report.includeCustomFields &&
|
|
261
|
+
report.columnsWithCustomFields &&
|
|
262
|
+
!report.pivot
|
|
263
|
+
? report.columnsWithCustomFields
|
|
264
|
+
: report.columns;
|
|
248
265
|
return report.rows.map((row) => {
|
|
249
|
-
return
|
|
266
|
+
return columns.reduce((formattedRow, column) => {
|
|
250
267
|
// Apply the format function to each field in the row
|
|
251
|
-
const formattedValue =
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
: column.
|
|
256
|
-
|
|
268
|
+
const formattedValue = column.inferFormat
|
|
269
|
+
? quillAutoFormat(row[column.field])
|
|
270
|
+
: quillFormat({
|
|
271
|
+
value: row[column.field],
|
|
272
|
+
format: column.field === xAxisField && xAxisFormat
|
|
273
|
+
? xAxisFormat
|
|
274
|
+
: column.format,
|
|
275
|
+
});
|
|
257
276
|
formattedRow[column.field] = formattedValue;
|
|
258
277
|
return formattedRow;
|
|
259
278
|
}, {});
|
|
@@ -269,7 +288,8 @@ export function convertInternalReportToReport(report, dashboardFilters, initiato
|
|
|
269
288
|
};
|
|
270
289
|
if (formattedReport.pivot &&
|
|
271
290
|
isValidPivot(formattedReport.pivot).valid &&
|
|
272
|
-
initiator !== 'useQuill'
|
|
291
|
+
initiator !== 'useQuill' &&
|
|
292
|
+
initiator !== 'Table') {
|
|
273
293
|
let columns = report.pivotColumns ?? report.columns;
|
|
274
294
|
let rows = report.pivotRows ?? report.rows;
|
|
275
295
|
if (report.chartType === 'table') {
|
|
@@ -343,7 +363,7 @@ export const fetchReportBuilderDataFromAST = async ({ baseAst, formData, schema,
|
|
|
343
363
|
if (!table || !tableInfo) {
|
|
344
364
|
throw new Error('No table found');
|
|
345
365
|
}
|
|
346
|
-
const tableData = await fetchTableByAST({ ...baseAst, where: formData }, client, tenants, processing ?? { page: DEFAULT_PAGINATION },
|
|
366
|
+
const tableData = await fetchTableByAST({ ...baseAst, where: formData }, client, tenants, processing ?? { page: DEFAULT_PAGINATION }, customFields, skipRowCount, undefined, dashboardName);
|
|
347
367
|
if (tableData.error) {
|
|
348
368
|
throw new Error(tableData.error);
|
|
349
369
|
}
|
|
@@ -371,6 +391,8 @@ export const fetchReportBuilderDataFromAST = async ({ baseAst, formData, schema,
|
|
|
371
391
|
};
|
|
372
392
|
}),
|
|
373
393
|
columnInternal: tableData.columns,
|
|
394
|
+
referenceLines: report?.referenceLines,
|
|
395
|
+
referenceLineYValues: report?.referenceLineYValues,
|
|
374
396
|
};
|
|
375
397
|
if (table !== currentTable || previousFormData !== formData) {
|
|
376
398
|
const queryResult = await fetchSqlQuery({
|
|
@@ -411,7 +433,7 @@ export const fetchReportBuilderDataFromAST = async ({ baseAst, formData, schema,
|
|
|
411
433
|
}
|
|
412
434
|
if (!Object.values(relevantInfo.uniqueStrings[table] ?? {}).length ||
|
|
413
435
|
!equal(formData, previousFormData)) {
|
|
414
|
-
relevantInfo.uniqueStrings[table] = await getUniqueStringValues(tableInfo.columns.filter((column) => column.field === pivot?.columnField), table, client, tenants, customFields, undefined, undefined, query ? query : (report?.queryString ?? ''));
|
|
436
|
+
relevantInfo.uniqueStrings[table] = await getUniqueStringValues(tableInfo.columns.filter((column) => column.field === pivot?.columnField), table, client, tenants, customFields, undefined, undefined, query ? query : (report?.queryString ?? ''), report?.dashboardName);
|
|
415
437
|
}
|
|
416
438
|
newPivotData = await generatePivotTable({
|
|
417
439
|
pivot,
|
|
@@ -1,8 +1,33 @@
|
|
|
1
1
|
import { QuillProviderClient } from '../models/Client';
|
|
2
|
+
import { ColumnInternal } from '../models/Columns';
|
|
3
|
+
import { CustomField } from '../models/Schema';
|
|
2
4
|
import { Table } from '../models/Tables';
|
|
3
|
-
export declare const getCustomFieldInfo: (client
|
|
4
|
-
|
|
5
|
+
export declare const getCustomFieldInfo: ({ client, tenants, caller, abortSignal, }: {
|
|
6
|
+
client: QuillProviderClient;
|
|
7
|
+
tenants: {
|
|
8
|
+
tenantField: string;
|
|
9
|
+
tenantIds: (string | number)[];
|
|
10
|
+
}[] | (string | number)[];
|
|
11
|
+
caller?: string;
|
|
12
|
+
abortSignal?: AbortSignal;
|
|
13
|
+
}) => Promise<{
|
|
14
|
+
[tableName: string]: CustomField[];
|
|
15
|
+
} | null>;
|
|
16
|
+
export declare const getSchemaInfo: ({ client, caller, tenants, tableIds, abortSignal, }: {
|
|
17
|
+
client: QuillProviderClient;
|
|
18
|
+
tenants?: {
|
|
19
|
+
tenantField: string;
|
|
20
|
+
tenantIds: (string | number)[];
|
|
21
|
+
}[] | (string | number)[];
|
|
22
|
+
caller?: string;
|
|
23
|
+
tableIds?: string[];
|
|
24
|
+
abortSignal?: AbortSignal;
|
|
25
|
+
}) => Promise<{
|
|
5
26
|
schemaData: Table[];
|
|
6
|
-
customFieldsByTable:
|
|
27
|
+
customFieldsByTable: {
|
|
28
|
+
[tableName: string]: CustomField[];
|
|
29
|
+
} | null;
|
|
30
|
+
schemaWithCustomFields: Table[];
|
|
7
31
|
}>;
|
|
32
|
+
export declare const customFieldToColumnInternal: (customField: CustomField) => ColumnInternal;
|
|
8
33
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA8BzC,eAAO,MAAM,kBAAkB,8CAK5B;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,GAAG,IAAI,CAmFxD,CAAC;AAEF,eAAO,MAAM,aAAa,wDAMvB;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IACV,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,mBAAmB,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,sBAAsB,EAAE,KAAK,EAAE,CAAC;CACjC,CAiEA,CAAC;AA0BF,eAAO,MAAM,2BAA2B,gBACzB,WAAW,KACvB,cAaF,CAAC"}
|
package/dist/esm/utils/schema.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { convertColumnInfoToColumnInternal } from './columnProcessing';
|
|
1
|
+
import { convertColumnInfoToColumnInternal, fieldTypeToDataTypeID, isNumberType, } from './columnProcessing';
|
|
2
2
|
const parseResponse = (results) => {
|
|
3
3
|
if (results.data?.data) {
|
|
4
4
|
if (results.data.data.queries &&
|
|
@@ -20,14 +20,16 @@ const parseResponse = (results) => {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
export const getCustomFieldInfo = async (client, caller = 'se') => {
|
|
24
|
-
let
|
|
23
|
+
export const getCustomFieldInfo = async ({ client, tenants, caller = 'se', abortSignal, }) => {
|
|
24
|
+
let customFieldsByTableUniqueRows = [];
|
|
25
25
|
try {
|
|
26
|
-
const { queryEndpoint, queryHeaders, publicKey, databaseType
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
const { queryEndpoint, queryHeaders, publicKey, databaseType } = client;
|
|
27
|
+
// if (
|
|
28
|
+
// (databaseType && databaseType.toLowerCase() !== 'postgresql') ||
|
|
29
|
+
// !['665610862cf7a3000be66453'].includes(publicKey)
|
|
30
|
+
// ) {
|
|
31
|
+
// throw new Error('CUSTOM FIELDS IS ONLY ALLOWED FOR POSTGRESQL DATABASES');
|
|
32
|
+
// }
|
|
31
33
|
const response = await fetch(`${queryEndpoint}?cfr-${caller}`, {
|
|
32
34
|
method: 'POST',
|
|
33
35
|
headers: {
|
|
@@ -39,10 +41,12 @@ export const getCustomFieldInfo = async (client, caller = 'se') => {
|
|
|
39
41
|
metadata: {
|
|
40
42
|
clientId: publicKey,
|
|
41
43
|
publicKey,
|
|
42
|
-
|
|
44
|
+
tenants,
|
|
45
|
+
task: 'custom-fields',
|
|
43
46
|
databaseType: databaseType,
|
|
44
47
|
},
|
|
45
48
|
}),
|
|
49
|
+
signal: abortSignal,
|
|
46
50
|
});
|
|
47
51
|
const result = await response.json();
|
|
48
52
|
const extractedData = parseResponse(result);
|
|
@@ -53,49 +57,66 @@ export const getCustomFieldInfo = async (client, caller = 'se') => {
|
|
|
53
57
|
}
|
|
54
58
|
table.rows.forEach((row) => {
|
|
55
59
|
customFieldsByTable.push({
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
viewName: table.name,
|
|
61
|
+
refTable: row.ref_table,
|
|
58
62
|
field: row.field,
|
|
59
|
-
|
|
63
|
+
refColumn: row.ref_column,
|
|
60
64
|
type: row.type,
|
|
65
|
+
refField: row.ref_table_id_field,
|
|
61
66
|
});
|
|
62
67
|
});
|
|
63
68
|
});
|
|
64
69
|
// make sure the are no duplicate records in extractedData
|
|
65
70
|
const customFieldsByTableSet = new Set();
|
|
66
|
-
|
|
67
|
-
if (customFieldsByTableSet.has(item.
|
|
68
|
-
item.
|
|
71
|
+
customFieldsByTableUniqueRows = customFieldsByTable.filter((item) => {
|
|
72
|
+
if (customFieldsByTableSet.has(item.viewName +
|
|
73
|
+
item.refTable +
|
|
74
|
+
item.refField +
|
|
69
75
|
item.field +
|
|
70
|
-
item.
|
|
76
|
+
item.refColumn +
|
|
71
77
|
item.type)) {
|
|
72
78
|
return false;
|
|
73
79
|
}
|
|
74
|
-
customFieldsByTableSet.add(item.
|
|
75
|
-
item.ref_table +
|
|
76
|
-
item.field +
|
|
77
|
-
item.ref_column +
|
|
78
|
-
item.type);
|
|
80
|
+
customFieldsByTableSet.add(item.viewName + item.refTable + item.refField + item.field + item.refColumn + item.type);
|
|
79
81
|
return true;
|
|
80
82
|
});
|
|
81
83
|
}
|
|
82
84
|
catch (e) {
|
|
83
|
-
return
|
|
85
|
+
return null;
|
|
84
86
|
}
|
|
87
|
+
const customFieldsByTableUnique = customFieldsByTableUniqueRows
|
|
88
|
+
? customFieldsByTableUniqueRows.reduce((acc, row) => {
|
|
89
|
+
if (!acc[row.viewName]) {
|
|
90
|
+
acc[row.viewName] = [];
|
|
91
|
+
}
|
|
92
|
+
acc[row.viewName]?.push(row);
|
|
93
|
+
return acc;
|
|
94
|
+
}, {})
|
|
95
|
+
: {};
|
|
85
96
|
return customFieldsByTableUnique;
|
|
86
97
|
};
|
|
87
|
-
export const getSchemaInfo = async (client, caller = 'se', tableIds) => {
|
|
88
|
-
const { queryEndpoint, queryHeaders, publicKey, withCredentials
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
export const getSchemaInfo = async ({ client, caller = 'se', tenants, tableIds, abortSignal, }) => {
|
|
99
|
+
const { queryEndpoint, queryHeaders, publicKey, withCredentials } = client;
|
|
100
|
+
let customFieldsByTableUnique = null;
|
|
101
|
+
if (client.featureFlags?.customFieldsEnabled &&
|
|
102
|
+
tenants &&
|
|
103
|
+
tenants[0] !== 'QUILL_ALL_TENANTS' &&
|
|
104
|
+
tenants.length === 1 &&
|
|
105
|
+
(typeof tenants[0] !== 'object' ||
|
|
106
|
+
(tenants[0].tenantIds?.[0] !== 'QUILL_ALL_TENANTS' &&
|
|
107
|
+
tenants[0].tenantIds?.length === 1))) {
|
|
108
|
+
try {
|
|
109
|
+
customFieldsByTableUnique = await getCustomFieldInfo({
|
|
110
|
+
client,
|
|
111
|
+
tenants,
|
|
112
|
+
caller,
|
|
113
|
+
abortSignal,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
console.error('Error fetching custom fields', e);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
99
120
|
const response = await fetch(`${queryEndpoint}?schema-${caller}`, {
|
|
100
121
|
method: 'POST',
|
|
101
122
|
headers: {
|
|
@@ -109,26 +130,28 @@ export const getSchemaInfo = async (client, caller = 'se', tableIds) => {
|
|
|
109
130
|
publicKey: publicKey,
|
|
110
131
|
task: 'schema',
|
|
111
132
|
removeCustomerField: true,
|
|
112
|
-
|
|
113
|
-
// !client.organizationId ||
|
|
114
|
-
// client.organizationId === '*' ||
|
|
115
|
-
// (customFieldsByTableUnique.length === 0 && !getCustomFields)
|
|
116
|
-
// ? false
|
|
117
|
-
// : true,
|
|
133
|
+
removeCustomFieldRef: true,
|
|
118
134
|
tableIds,
|
|
119
|
-
|
|
135
|
+
customFieldsByTable: customFieldsByTableUnique,
|
|
136
|
+
useNewCustomFields: true,
|
|
120
137
|
gatherSchemaData: '665610862cf7a3000be66453' === publicKey ? true : false,
|
|
138
|
+
tenants,
|
|
121
139
|
},
|
|
140
|
+
signal: abortSignal,
|
|
122
141
|
}),
|
|
123
142
|
});
|
|
124
143
|
const result = await response.json();
|
|
125
144
|
const parsedData = parseResponse(result);
|
|
126
145
|
const converted = convertSchemaInfoToTable(parsedData);
|
|
127
146
|
// triggerSoftUpdate(client, converted);
|
|
147
|
+
const schemaWithCustomFields = converted.map((table) => {
|
|
148
|
+
const customFieldRows = (customFieldsByTableUnique?.[table.name] ?? []).map((customField) => customFieldToColumnInternal(customField));
|
|
149
|
+
return { ...table, columns: [...table.columns, ...customFieldRows] };
|
|
150
|
+
});
|
|
128
151
|
return {
|
|
129
152
|
schemaData: converted,
|
|
130
|
-
|
|
131
|
-
|
|
153
|
+
customFieldsByTable: customFieldsByTableUnique,
|
|
154
|
+
schemaWithCustomFields,
|
|
132
155
|
};
|
|
133
156
|
};
|
|
134
157
|
// Used to convert backend data to front end data
|
|
@@ -154,3 +177,15 @@ function convertSchemaInfoToTable(schemaData) {
|
|
|
154
177
|
});
|
|
155
178
|
return tables;
|
|
156
179
|
}
|
|
180
|
+
export const customFieldToColumnInternal = (customField) => {
|
|
181
|
+
return {
|
|
182
|
+
field: customField.field,
|
|
183
|
+
label: customField.field,
|
|
184
|
+
format: isNumberType(customField.type || 'varchar')
|
|
185
|
+
? 'whole_number'
|
|
186
|
+
: 'string', // ex. 'whole_number'
|
|
187
|
+
fieldType: customField.type || 'varchar',
|
|
188
|
+
dataTypeID: fieldTypeToDataTypeID(customField.type?.toLocaleLowerCase() || 'varchar'),
|
|
189
|
+
jsType: isNumberType(customField.type || 'varchar') ? 'number' : 'string',
|
|
190
|
+
};
|
|
191
|
+
};
|
|
@@ -4,6 +4,7 @@ import { Column, ColumnInternal } from '../models/Columns';
|
|
|
4
4
|
import { DashboardFilter } from '../models/Filter';
|
|
5
5
|
import { Pagination } from '../models/Pagination';
|
|
6
6
|
import { Pivot } from '../models/Pivot';
|
|
7
|
+
import { CustomField } from '../models/Schema';
|
|
7
8
|
import { DateRangesByColumn } from '../models/Tables';
|
|
8
9
|
export interface AdditionalProcessing {
|
|
9
10
|
sort?: {
|
|
@@ -17,7 +18,9 @@ export declare const hasColumnAlias: (columns: Column[], referencedColumns: stri
|
|
|
17
18
|
export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: QuillProviderClient, tenants: {
|
|
18
19
|
tenantField: string;
|
|
19
20
|
tenantIds: (string | number)[];
|
|
20
|
-
}[] | (string | number)[] | undefined, customFields:
|
|
21
|
+
}[] | (string | number)[] | undefined, customFields: {
|
|
22
|
+
[table: string]: CustomField[];
|
|
23
|
+
}, filters?: DashboardFilter[], dashboardName?: string) => Promise<{
|
|
21
24
|
[column: string]: {
|
|
22
25
|
[value: string]: boolean;
|
|
23
26
|
};
|
|
@@ -41,14 +44,18 @@ export declare const getRelevantInfoFromQuery: (columns: ColumnInternal[], clien
|
|
|
41
44
|
export declare const getCountsByColumns: (columns: Column[], query: string, client: QuillProviderClient, tenants: {
|
|
42
45
|
tenantField: string;
|
|
43
46
|
tenantIds: (string | number)[];
|
|
44
|
-
}[] | (string | number)[] | undefined, customFields:
|
|
47
|
+
}[] | (string | number)[] | undefined, customFields: {
|
|
48
|
+
[table: string]: CustomField[];
|
|
49
|
+
}, dashboardName?: string) => Promise<{
|
|
45
50
|
filteredColumns: Column[];
|
|
46
51
|
exceededColumns: Column[] | undefined;
|
|
47
52
|
}>;
|
|
48
53
|
export declare const getQueryDateRangeByColumns: (columns: Column[], query: string, client: QuillProviderClient, tenants: {
|
|
49
54
|
tenantField: string;
|
|
50
55
|
tenantIds: (string | number)[];
|
|
51
|
-
}[] | (string | number)[] | undefined, customFields:
|
|
56
|
+
}[] | (string | number)[] | undefined, customFields: {
|
|
57
|
+
[table: string]: CustomField[];
|
|
58
|
+
}, dashboardName?: string) => Promise<{
|
|
52
59
|
[column: string]: {
|
|
53
60
|
dateRange: {
|
|
54
61
|
start: Date;
|
|
@@ -97,6 +104,7 @@ export declare const fetchResultsByQuery: ({ query, client, tenants, processing,
|
|
|
97
104
|
rowCount?: number;
|
|
98
105
|
error?: string;
|
|
99
106
|
itemQuery?: string[];
|
|
107
|
+
referencedTables?: string[];
|
|
100
108
|
}>;
|
|
101
109
|
export declare const fetchResultsByReport: ({ reportId, client, tenants, processing, filters, customFields, rowsOnly, rowCountOnly, abortSignal, pivot, pivotQuery, comparisonPivotQuery, getPivotRowCount, }: {
|
|
102
110
|
reportId: string;
|
|
@@ -130,6 +138,7 @@ export declare const fetchTableByAST: (ast: NodeSQLParser.Select, client: QuillP
|
|
|
130
138
|
rowCount?: number;
|
|
131
139
|
error?: string;
|
|
132
140
|
itemQuery?: string[];
|
|
141
|
+
referencedTables?: string[];
|
|
133
142
|
}>;
|
|
134
143
|
export declare const convertUniqueValuesByColumnToUniqueValueStrings: (uniqueValuesByColumns: {
|
|
135
144
|
[column: string]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAoBtD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,mBAAmB,WAEvB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,gBACC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,11 +77,11 @@ export const getUniqueStringValues = async (columns, tableName, client, tenants,
|
|
|
77
77
|
const convertedStringColumns = columns.filter((column) => {
|
|
78
78
|
return isStringType(column.fieldType);
|
|
79
79
|
});
|
|
80
|
-
const stringNames = convertedStringColumns.map((column) => processColumnReference(column.field, client.databaseType));
|
|
80
|
+
const stringNames = convertedStringColumns.map((column) => processColumnReference(column.field, client.databaseType, undefined, true));
|
|
81
81
|
const { filteredColumns: smallStringColumns, exceededColumns } = stringNames.length > 0
|
|
82
82
|
? await getCountsByColumns(convertedStringColumns, query || `Select ${stringNames.join(', ')} from ${tableName}`, client, tenants, customFields ?? [], dashboardName)
|
|
83
83
|
: { filteredColumns: [], exceededColumns: undefined };
|
|
84
|
-
const smallStringNames = smallStringColumns.map((column) => processColumnReference(column.field, client.databaseType));
|
|
84
|
+
const smallStringNames = smallStringColumns.map((column) => processColumnReference(column.field, client.databaseType, undefined, true));
|
|
85
85
|
const newUniqueValues = query || smallStringColumns.length > 0
|
|
86
86
|
? await getUniqueValuesByColumns(
|
|
87
87
|
// returns null if data error
|
|
@@ -195,8 +195,8 @@ const fetchDistinctStrings = async (query, client, tenants, customFields, filter
|
|
|
195
195
|
filters,
|
|
196
196
|
// @ts-ignore
|
|
197
197
|
dateField: filters?.find((filter) => filter.filterType === 'date_range')?.dateField,
|
|
198
|
-
dashboardName
|
|
199
|
-
tenants
|
|
198
|
+
dashboardName,
|
|
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({
|
|
@@ -333,7 +334,6 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
|
|
|
333
334
|
filterMap,
|
|
334
335
|
clientId: client.publicKey,
|
|
335
336
|
databaseType: client?.databaseType,
|
|
336
|
-
getCustomFields: !!tenants?.length,
|
|
337
337
|
customFieldsByTable: customFields,
|
|
338
338
|
additionalProcessing: processing,
|
|
339
339
|
useUpdatedDataGathering: processing ? true : false,
|
|
@@ -399,6 +399,20 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
|
|
|
399
399
|
columns = resp.fields.map((elem) => convertPostgresColumn(elem));
|
|
400
400
|
rows = resp.rows;
|
|
401
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
|
+
}
|
|
402
416
|
}
|
|
403
417
|
}
|
|
404
418
|
catch (e) {
|
|
@@ -409,7 +423,7 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
|
|
|
409
423
|
if (client.databaseType && client.databaseType.toLowerCase() === 'bigquery') {
|
|
410
424
|
parseValueFromBigQueryDates(rows, columns);
|
|
411
425
|
}
|
|
412
|
-
return { rows, columns, rowCount, error, itemQuery };
|
|
426
|
+
return { rows, columns, rowCount, error, itemQuery, referencedTables };
|
|
413
427
|
};
|
|
414
428
|
export const fetchResultsByReport = async ({ reportId, client, tenants, processing, filters, customFields, rowsOnly, rowCountOnly, abortSignal, pivot, pivotQuery, comparisonPivotQuery, getPivotRowCount = true, }) => {
|
|
415
429
|
if (pivot && pivotQuery) {
|
|
@@ -503,6 +517,7 @@ export const fetchTableByAST = async (ast, client, tenants, processing, customFi
|
|
|
503
517
|
let rowCount;
|
|
504
518
|
let error;
|
|
505
519
|
let itemQuery;
|
|
520
|
+
let referencedTables;
|
|
506
521
|
try {
|
|
507
522
|
const hostedBody = {
|
|
508
523
|
metadata: {
|
|
@@ -510,7 +525,6 @@ export const fetchTableByAST = async (ast, client, tenants, processing, customFi
|
|
|
510
525
|
ast,
|
|
511
526
|
publicKey: client.publicKey,
|
|
512
527
|
task: 'patterns',
|
|
513
|
-
getCustomFields: false,
|
|
514
528
|
customFields,
|
|
515
529
|
additionalProcessing: processing,
|
|
516
530
|
useUpdatedDataGathering: true,
|
|
@@ -534,6 +548,20 @@ export const fetchTableByAST = async (ast, client, tenants, processing, customFi
|
|
|
534
548
|
columns = resp.fields.map((elem) => convertPostgresColumn(elem));
|
|
535
549
|
rows = gatheredRows;
|
|
536
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
|
+
}
|
|
537
565
|
}
|
|
538
566
|
catch (e) {
|
|
539
567
|
rows = [];
|
|
@@ -544,7 +572,7 @@ export const fetchTableByAST = async (ast, client, tenants, processing, customFi
|
|
|
544
572
|
if (client.databaseType && client.databaseType.toLowerCase() === 'bigquery') {
|
|
545
573
|
parseValueFromBigQueryDates(rows, columns);
|
|
546
574
|
}
|
|
547
|
-
return { rows, columns, rowCount, error, itemQuery };
|
|
575
|
+
return { rows, columns, rowCount, error, itemQuery, referencedTables };
|
|
548
576
|
};
|
|
549
577
|
export const convertUniqueValuesByColumnToUniqueValueStrings = (uniqueValuesByColumns) => {
|
|
550
578
|
return Object.keys(uniqueValuesByColumns).reduce((acc, column) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/textProcessing.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAsE1F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,UAa/C;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"textProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/textProcessing.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAsE1F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,UAa/C;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,UAiBvD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAK7C"}
|
|
@@ -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"}
|