@quillsql/react 2.12.46 → 2.12.47
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.map +1 -1
- package/dist/cjs/Chart.js +16 -7
- package/dist/cjs/ChartBuilder.d.ts +10 -11
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +78 -81
- package/dist/cjs/ChartEditor.d.ts +3 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +26 -10
- package/dist/cjs/Context.d.ts +2 -3
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +42 -28
- package/dist/cjs/Dashboard.d.ts +12 -12
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +61 -69
- package/dist/cjs/QuillProvider.d.ts +2 -0
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +1 -15
- package/dist/cjs/ReportBuilder.d.ts +9 -9
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +116 -179
- package/dist/cjs/SQLEditor.d.ts +20 -11
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +157 -90
- package/dist/cjs/Table.js +3 -3
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +6 -25
- package/dist/cjs/components/Chart/BarList.js +1 -1
- package/dist/cjs/components/Chart/ChartError.d.ts +5 -2
- package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.js +7 -10
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +16 -1
- package/dist/cjs/components/Chart/PieChart.js +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +46 -47
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +2 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +2 -2
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +19 -13
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +16 -26
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +16 -25
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +31 -1
- package/dist/cjs/components/QuillSelect.js +1 -1
- package/dist/cjs/components/QuillTable.d.ts +1 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +115 -105
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +3 -3
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +28 -9
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +178 -114
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +1 -2
- package/dist/cjs/components/ReportBuilder/ui.d.ts +9 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +37 -3
- package/dist/cjs/components/ReportBuilder/util.d.ts +5 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +26 -12
- package/dist/cjs/components/UiComponents.d.ts +17 -3
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +160 -29
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +7 -7
- package/dist/cjs/hooks/useAstToFilterTree.d.ts +4 -1
- package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/cjs/hooks/useAstToFilterTree.js +4 -1
- package/dist/cjs/hooks/useDashboard.d.ts +5 -1
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +28 -4
- package/dist/cjs/hooks/useOnClickOutside.js +2 -2
- package/dist/cjs/hooks/useQuill.js +4 -4
- package/dist/cjs/hooks/useVirtualTables.d.ts +10 -0
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -0
- package/dist/cjs/hooks/useVirtualTables.js +29 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +45 -21
- package/dist/cjs/models/Client.d.ts +3 -0
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Report.d.ts +2 -0
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Schema.d.ts +7 -0
- package/dist/cjs/models/Schema.d.ts.map +1 -0
- package/dist/cjs/models/Schema.js +2 -0
- package/dist/cjs/models/Tables.d.ts +2 -0
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +47 -44
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +8 -8
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/client.js +1 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +88 -5
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +7 -3
- package/dist/cjs/utils/filterProcessing.d.ts +25 -0
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +121 -1
- package/dist/cjs/utils/paginationProcessing.js +2 -2
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +10 -6
- package/dist/cjs/utils/queryConstructor.d.ts +1 -0
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +37 -11
- package/dist/cjs/utils/report.d.ts +5 -0
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +63 -9
- package/dist/cjs/utils/schema.js +22 -20
- package/dist/cjs/utils/tableProcessing.d.ts +1 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +22 -1
- package/dist/cjs/utils/validation.d.ts.map +1 -1
- package/dist/cjs/utils/validation.js +4 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +17 -8
- package/dist/esm/ChartBuilder.d.ts +10 -11
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +81 -84
- package/dist/esm/ChartEditor.d.ts +3 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +27 -11
- package/dist/esm/Context.d.ts +2 -3
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +42 -28
- package/dist/esm/Dashboard.d.ts +12 -12
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +63 -71
- package/dist/esm/QuillProvider.d.ts +2 -0
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +2 -16
- package/dist/esm/ReportBuilder.d.ts +9 -9
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +122 -185
- package/dist/esm/SQLEditor.d.ts +20 -11
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +160 -93
- package/dist/esm/Table.js +4 -4
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +7 -26
- package/dist/esm/components/Chart/BarList.js +1 -1
- package/dist/esm/components/Chart/ChartError.d.ts +5 -2
- package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.js +7 -10
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +16 -1
- package/dist/esm/components/Chart/PieChart.js +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +46 -47
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +2 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts +2 -2
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +20 -14
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +16 -26
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +16 -25
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +31 -1
- package/dist/esm/components/QuillSelect.js +1 -1
- package/dist/esm/components/QuillTable.d.ts +1 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +115 -105
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +3 -3
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +28 -9
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +178 -114
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +1 -2
- package/dist/esm/components/ReportBuilder/ui.d.ts +9 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +38 -4
- package/dist/esm/components/ReportBuilder/util.d.ts +5 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +26 -12
- package/dist/esm/components/UiComponents.d.ts +17 -3
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +158 -28
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +8 -8
- package/dist/esm/hooks/useAstToFilterTree.d.ts +4 -1
- package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/esm/hooks/useAstToFilterTree.js +4 -1
- package/dist/esm/hooks/useDashboard.d.ts +5 -1
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +28 -5
- package/dist/esm/hooks/useOnClickOutside.js +2 -2
- package/dist/esm/hooks/useQuill.js +5 -5
- package/dist/esm/hooks/useVirtualTables.d.ts +10 -0
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -0
- package/dist/esm/hooks/useVirtualTables.js +25 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +44 -23
- package/dist/esm/models/Client.d.ts +3 -0
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Report.d.ts +2 -0
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Schema.d.ts +7 -0
- package/dist/esm/models/Schema.d.ts.map +1 -0
- package/dist/esm/models/Schema.js +1 -0
- package/dist/esm/models/Tables.d.ts +2 -0
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +45 -43
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +8 -8
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/client.js +1 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +88 -5
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +7 -3
- package/dist/esm/utils/filterProcessing.d.ts +25 -0
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +116 -0
- package/dist/esm/utils/paginationProcessing.js +2 -2
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +10 -6
- package/dist/esm/utils/queryConstructor.d.ts +1 -0
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +35 -10
- package/dist/esm/utils/report.d.ts +5 -0
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +61 -8
- package/dist/esm/utils/schema.js +22 -20
- package/dist/esm/utils/tableProcessing.d.ts +1 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +21 -1
- package/dist/esm/utils/validation.d.ts.map +1 -1
- package/dist/esm/utils/validation.js +4 -0
- package/package.json +3 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const useVirtualTables: () => {
|
|
2
|
+
data: import("../models/Tables").Table[];
|
|
3
|
+
isLoading: boolean;
|
|
4
|
+
reload: (client: any, caller?: string) => Promise<{
|
|
5
|
+
schema: import("../models/Tables").Table[];
|
|
6
|
+
customFields: any;
|
|
7
|
+
isSchemaLoading: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useVirtualTables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVirtualTables.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVirtualTables.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;qBAGS,GAAG,WAAW,MAAM;;;;;CAqBzD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { SchemaDataContext } from '../Context';
|
|
3
|
+
import { getSchemaInfoWithCustomFields } from '../utils/schema';
|
|
4
|
+
export const useVirtualTables = () => {
|
|
5
|
+
const [schemaData, setSchemaData] = useContext(SchemaDataContext);
|
|
6
|
+
const handleReload = async (client, caller) => {
|
|
7
|
+
setSchemaData({ ...schemaData, isSchemaLoading: true });
|
|
8
|
+
const { schemaData: schema, customFieldsByTable } = await getSchemaInfoWithCustomFields(client, caller);
|
|
9
|
+
setSchemaData({
|
|
10
|
+
schema,
|
|
11
|
+
customFields: customFieldsByTable,
|
|
12
|
+
isSchemaLoading: false,
|
|
13
|
+
});
|
|
14
|
+
return {
|
|
15
|
+
schema,
|
|
16
|
+
customFields: customFieldsByTable,
|
|
17
|
+
isSchemaLoading: false,
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
data: schemaData.schema,
|
|
22
|
+
isLoading: schemaData.isSchemaLoading,
|
|
23
|
+
reload: handleReload,
|
|
24
|
+
};
|
|
25
|
+
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -14,11 +14,12 @@ export type { ReportBuilderProps } from './ReportBuilder';
|
|
|
14
14
|
export { default as ChartEditor } from './ChartEditor';
|
|
15
15
|
export type { ChartEditorProps } from './ChartEditor';
|
|
16
16
|
export { quillFormat as format } from './utils/valueFormatter';
|
|
17
|
-
export { useDashboard } from './hooks/useDashboard';
|
|
17
|
+
export { useDashboard, useReports } from './hooks/useDashboard';
|
|
18
18
|
export { useQuill, usePivot } from './hooks/useQuill';
|
|
19
19
|
export { useExport } from './hooks/useExport';
|
|
20
20
|
export { useMemoizedRows } from './hooks/useFormat';
|
|
21
21
|
export { useAskQuill } from './hooks/useAskQuill';
|
|
22
|
+
export { useVirtualTables } from './hooks/useVirtualTables';
|
|
22
23
|
export { downloadCSV } from './utils/csv';
|
|
23
24
|
export { ThemeContext } from './Context';
|
|
24
25
|
export type { TextInputComponentProps, ButtonComponentProps, DeleteButtonComponentProps, SelectComponentProps, PopoverComponentProps, TabsComponentProps, CheckboxComponentProps, SidebarComponentProps, ContainerComponentProps, HeaderComponentProps, LabelComponentProps, TextComponentProps, Option, ModalComponentProps, HeaderProps, } from './components/UiComponents';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -7,11 +7,12 @@ export { default as SQLEditor, SchemaListComponent } from './SQLEditor';
|
|
|
7
7
|
export { default as ReportBuilder } from './ReportBuilder';
|
|
8
8
|
export { default as ChartEditor } from './ChartEditor';
|
|
9
9
|
export { quillFormat as format } from './utils/valueFormatter';
|
|
10
|
-
export { useDashboard } from './hooks/useDashboard';
|
|
10
|
+
export { useDashboard, useReports } from './hooks/useDashboard';
|
|
11
11
|
export { useQuill, usePivot } from './hooks/useQuill';
|
|
12
12
|
export { useExport } from './hooks/useExport';
|
|
13
13
|
export { useMemoizedRows } from './hooks/useFormat';
|
|
14
14
|
export { useAskQuill } from './hooks/useAskQuill';
|
|
15
|
+
export { useVirtualTables } from './hooks/useVirtualTables';
|
|
15
16
|
export { downloadCSV } from './utils/csv';
|
|
16
17
|
export { ThemeContext } from './Context';
|
|
17
18
|
export { Calculation } from './utils/dataProcessing';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;AAiBf,OAAO,EACL,oBAAoB,EAKrB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useContext, useMemo, useState, useEffect, useRef, } from 'react';
|
|
3
|
-
import { ClientContext,
|
|
3
|
+
import { ClientContext, SchemaDataContext } from '../../Context';
|
|
4
4
|
import { getDataFromCloud } from '../../utils/dataFetcher';
|
|
5
5
|
import { PivotList, PivotCard } from './PivotList';
|
|
6
6
|
import { differenceInDays, eachDayOfInterval, eachMonthOfInterval, eachWeekOfInterval, eachYearOfInterval, endOfDay, isWithinInterval, subMilliseconds, } from 'date-fns';
|
|
@@ -8,19 +8,20 @@ import { valueFormatter } from '../../utils/valueFormatter';
|
|
|
8
8
|
import { numberFormatOptions, dateFormatOptions } from '../../ChartBuilder';
|
|
9
9
|
import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
|
|
10
10
|
import { QuillErrorMessageComponent, QuillLoadingComponent, QuillPivotColumnContainer, QuillPivotRowContainer, } from '../../components/UiComponents';
|
|
11
|
-
import { isNumericColumnType } from '../../components/ReportBuilder/ast';
|
|
11
|
+
import { isNumericColumnType, isTextColumnType, } from '../../components/ReportBuilder/ast';
|
|
12
12
|
import { QuillCard } from '../../components/QuillCard';
|
|
13
13
|
import { cleanPivot, getPossiblePivotFieldOptions, isValidPivot, } from '../../utils/pivotProcessing';
|
|
14
14
|
import { hashCode } from '../../utils/crypto';
|
|
15
15
|
import { getCountsByColumns, getDateRangeByColumns, getUniqueValuesByColumns, } from '../../utils/tableProcessing';
|
|
16
16
|
import { generatePivotWithSQL } from '../../utils/pivotConstructor';
|
|
17
17
|
import { getDateBucketFromRange } from '../../utils/dates';
|
|
18
|
+
import Big from 'big.js';
|
|
18
19
|
export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent = QuillErrorMessageComponent, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, CardComponent = QuillCard, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, showTrigger = true, pivotCountRequest = 6, query, initialUniqueValues, initialSelectedPivotTable, disabled = false, pivotRecommendationsEnabled = true, report, }) => {
|
|
19
20
|
const [isLoading, setIsLoading] = useState(false);
|
|
20
21
|
const [selectedPivotType, setSelectedPivotType] = useState('recommended');
|
|
21
22
|
const [errors, setErrors] = useState([]);
|
|
22
23
|
const [client] = useContext(ClientContext);
|
|
23
|
-
const [
|
|
24
|
+
const [schemaData] = useContext(SchemaDataContext);
|
|
24
25
|
const rowFieldRef = useRef(null);
|
|
25
26
|
const colFieldRef = useRef(null);
|
|
26
27
|
const [pivotCardWidth, setPivotCardWidth] = useState(420);
|
|
@@ -37,9 +38,9 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
37
38
|
uniqueValues: {},
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
|
-
if (columns) {
|
|
41
|
+
if (columns && query) {
|
|
41
42
|
const stringColumns = columns.filter((column) => {
|
|
42
|
-
return column.
|
|
43
|
+
return isTextColumnType(column.fieldType);
|
|
43
44
|
});
|
|
44
45
|
if (stringColumns.length === 0) {
|
|
45
46
|
const possibleColumns = getPossiblePivotFieldOptions(columns, {});
|
|
@@ -48,8 +49,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
48
49
|
setAllowedValueFields(possibleColumns.valueFields);
|
|
49
50
|
return { possibleColumns, uniqueValues: {} };
|
|
50
51
|
}
|
|
51
|
-
const smallStringColumns = await getCountsByColumns(stringColumns, query || '', client, customFields);
|
|
52
|
-
const newUniqueValues = await getUniqueValuesByColumns(smallStringColumns, query || '', data.rows || [], client, customFields);
|
|
52
|
+
const smallStringColumns = await getCountsByColumns(stringColumns, query || '', client, schemaData.customFields ?? []);
|
|
53
|
+
const newUniqueValues = await getUniqueValuesByColumns(smallStringColumns, query || '', data.rows || [], client, schemaData.customFields ?? []);
|
|
53
54
|
if (!uniqueValues ||
|
|
54
55
|
hashCode(uniqueValues) !== hashCode(newUniqueValues)) {
|
|
55
56
|
const possibleColumns = getPossiblePivotFieldOptions(columns, newUniqueValues || {});
|
|
@@ -66,18 +67,15 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
66
67
|
};
|
|
67
68
|
};
|
|
68
69
|
const getAllDateRangesByColumn = async () => {
|
|
69
|
-
if (!client) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
70
|
// Don't reprocess dateRanges if they are already gathered
|
|
73
|
-
if (columns) {
|
|
71
|
+
if (columns && query && client) {
|
|
74
72
|
const dateColumns = columns.filter((column) => {
|
|
75
73
|
return column.jsType === 'date';
|
|
76
74
|
});
|
|
77
75
|
if (dateColumns.length === 0) {
|
|
78
|
-
return
|
|
76
|
+
return;
|
|
79
77
|
}
|
|
80
|
-
const dateRangeByColumn = await getDateRangeByColumns(dateColumns, query || '', client, customFields);
|
|
78
|
+
const dateRangeByColumn = await getDateRangeByColumns(dateColumns, query || '', client, schemaData.customFields ?? []);
|
|
81
79
|
setDateRanges(dateRangeByColumn || {});
|
|
82
80
|
}
|
|
83
81
|
};
|
|
@@ -176,6 +174,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
176
174
|
return (columns || []).reduce((map, col) => {
|
|
177
175
|
// only use columns shown in the report builder's table
|
|
178
176
|
// also filter out id
|
|
177
|
+
// Note: should this account for other variations?
|
|
179
178
|
if (col.field !== 'id') {
|
|
180
179
|
map[col.field] = col.format;
|
|
181
180
|
}
|
|
@@ -418,7 +417,9 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
418
417
|
if (Object.keys(columnsToShow).length === 0) {
|
|
419
418
|
return;
|
|
420
419
|
}
|
|
421
|
-
if (!isOpen &&
|
|
420
|
+
if (!isOpen &&
|
|
421
|
+
(recommendedPivots.length === 0 ||
|
|
422
|
+
recommendedPivotTables.length === 0)) {
|
|
422
423
|
refreshPivots();
|
|
423
424
|
}
|
|
424
425
|
setIsOpen(!isOpen);
|
|
@@ -504,6 +505,13 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
504
505
|
if (!pivotAggregation) {
|
|
505
506
|
errors.push('Aggregation cannot be empty');
|
|
506
507
|
}
|
|
508
|
+
if (pivotRowField && !columnsToShow[pivotRowField]) {
|
|
509
|
+
errors.push('Error in row field: undefined type');
|
|
510
|
+
}
|
|
511
|
+
if (pivotColumnField &&
|
|
512
|
+
!columnsToShow[pivotColumnField]) {
|
|
513
|
+
errors.push('Error in column field: undefined type');
|
|
514
|
+
}
|
|
507
515
|
if (errors.length === 0) {
|
|
508
516
|
const pivot = {
|
|
509
517
|
rowField: pivotRowField || '',
|
|
@@ -513,11 +521,16 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
513
521
|
valueField: pivotValueField || '',
|
|
514
522
|
aggregationType: pivotAggregation || '',
|
|
515
523
|
};
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
524
|
+
if (isValidPivot(pivot)) {
|
|
525
|
+
pivot.title = generatePivotTitle(pivot);
|
|
526
|
+
setIsOpen(false);
|
|
527
|
+
setCreatedPivots([pivot]);
|
|
528
|
+
onSelectCreatedPivot(pivot);
|
|
529
|
+
setPopUpTitle('Add pivot');
|
|
530
|
+
}
|
|
531
|
+
else {
|
|
532
|
+
errors.push('Invalid pivot');
|
|
533
|
+
}
|
|
521
534
|
}
|
|
522
535
|
setErrors(errors);
|
|
523
536
|
}, label: popUpTitle }), errors.length > 0 && (_jsx("div", { style: {
|
|
@@ -1170,9 +1183,13 @@ function valueFieldAggregation(data, valueField, aggregationType, isComparison)
|
|
|
1170
1183
|
let count = 0;
|
|
1171
1184
|
switch (aggregationType) {
|
|
1172
1185
|
case 'sum':
|
|
1173
|
-
value = data.reduce((sum, item) => sum
|
|
1186
|
+
value = data.reduce((sum, item) => Big(sum)
|
|
1187
|
+
.add(Big(parseFloat(item[valueField] ?? 0)))
|
|
1188
|
+
.toNumber(), 0);
|
|
1174
1189
|
if (isComparison) {
|
|
1175
|
-
comparisonValue = data.reduce((sum, item) => sum
|
|
1190
|
+
comparisonValue = data.reduce((sum, item) => Big(sum)
|
|
1191
|
+
.add(Big(parseFloat(item[`comparison_${valueField}`] ?? 0)))
|
|
1192
|
+
.toNumber(), 0);
|
|
1176
1193
|
}
|
|
1177
1194
|
break;
|
|
1178
1195
|
case 'count':
|
|
@@ -1185,11 +1202,15 @@ function valueFieldAggregation(data, valueField, aggregationType, isComparison)
|
|
|
1185
1202
|
case 'average':
|
|
1186
1203
|
count = data.reduce((count, item) => count + (item[valueField] ? 1 : 0), 0);
|
|
1187
1204
|
value =
|
|
1188
|
-
data.reduce((sum, item) => sum
|
|
1205
|
+
data.reduce((sum, item) => Big(sum)
|
|
1206
|
+
.add(Big(parseFloat(item[valueField] ?? 0)))
|
|
1207
|
+
.toNumber(), 0) / (count === 0 ? 1 : count);
|
|
1189
1208
|
if (isComparison) {
|
|
1190
1209
|
const comparisonCount = data.reduce((count, item) => count + (item[`comparison_${valueField}`] ? 1 : 0), 0);
|
|
1191
1210
|
comparisonValue =
|
|
1192
|
-
data.reduce((sum, item) => sum
|
|
1211
|
+
data.reduce((sum, item) => Big(sum)
|
|
1212
|
+
.add(Big(parseFloat(item[`comparison_${valueField}`] ?? 0)))
|
|
1213
|
+
.toNumber(), 0) / (comparisonCount === 0 ? 1 : comparisonCount);
|
|
1193
1214
|
}
|
|
1194
1215
|
break;
|
|
1195
1216
|
case 'max':
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type Client = {
|
|
2
2
|
customerId: string;
|
|
3
|
+
name: string;
|
|
3
4
|
clientId: string;
|
|
4
5
|
userId?: string;
|
|
5
6
|
publicKey: string;
|
|
@@ -7,5 +8,7 @@ export type Client = {
|
|
|
7
8
|
queryHeaders?: HeadersInit;
|
|
8
9
|
withCredentials: boolean;
|
|
9
10
|
databaseType?: string;
|
|
11
|
+
multiTenancyDisabled?: boolean;
|
|
12
|
+
adminCustomerId?: string;
|
|
10
13
|
};
|
|
11
14
|
//# sourceMappingURL=Client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
|
|
@@ -40,6 +40,8 @@ export interface QuillReport {
|
|
|
40
40
|
xAxisField: string;
|
|
41
41
|
/** The format for this report's xAxis. */
|
|
42
42
|
xAxisFormat: AxisFormat;
|
|
43
|
+
/** The template flag for a report */
|
|
44
|
+
template?: boolean;
|
|
43
45
|
/**
|
|
44
46
|
* A list of metadata about the yAxes of this report.
|
|
45
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/models/Report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IAEX,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IAEtB,0DAA0D;IAC1D,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAElC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,uEAAuE;IACvE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEnD,4CAA4C;IAC5C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,WAAW,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,WAAW,EAAE;QACX,gCAAgC;QAChC,KAAK,EAAE,MAAM,CAAC;QAEd,uCAAuC;QACvC,KAAK,EAAE,MAAM,CAAC;QAEd,4CAA4C;QAC5C,MAAM,EAAE,UAAU,CAAC;KACpB,EAAE,CAAC;IAEJ;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAGvC,UAAU,CAAC,EAAE,UAAU,CAAC;IAGxB,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAG5C,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,0BAA0B;IAC1B,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAElD,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,8EAA8E;IAC9E,cAAc,EAAE,cAAc,EAAE,CAAC;CAClC"}
|
|
1
|
+
{"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/models/Report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IAEX,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IAEtB,0DAA0D;IAC1D,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAElC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,uEAAuE;IACvE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEnD,4CAA4C;IAC5C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,WAAW,EAAE,UAAU,CAAC;IAExB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE;QACX,gCAAgC;QAChC,KAAK,EAAE,MAAM,CAAC;QAEd,uCAAuC;QACvC,KAAK,EAAE,MAAM,CAAC;QAEd,4CAA4C;QAC5C,MAAM,EAAE,UAAU,CAAC;KACpB,EAAE,CAAC;IAEJ;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAGvC,UAAU,CAAC,EAAE,UAAU,CAAC;IAGxB,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAG5C,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,0BAA0B;IAC1B,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAElD,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,8EAA8E;IAC9E,cAAc,EAAE,cAAc,EAAE,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/models/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tables.d.ts","sourceRoot":"","sources":["../../../src/models/Tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"Tables.d.ts","sourceRoot":"","sources":["../../../src/models/Tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,SAAS,EAAE;YACT,KAAK,EAAE,IAAI,CAAC;YACZ,GAAG,EAAE,IAAI,CAAC;SACX,CAAC;KACH,CAAC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astFilterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astFilterProcessing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"astFilterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astFilterProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAOP,MAAM,kBAAkB,CAAC;AAmzI1B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAYpE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,QACrB,GAAG,MACJ,MAAM,KACT,cAAc,GAAG,IAyGnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,QAAS,GAAG,MAAM,MAAM,KAAG,MAAM,GAAG,IAgV3D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,eAAgB,cAAc,MAAM,MAAM,QAuBrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,MAAM,MAAM,KAAG,GAgoHxD,CAAC"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/* eslint-disable no-unused-vars */
|
|
2
|
-
/* eslint-disable no-case-declarations */
|
|
3
|
-
/* eslint-disable no-fallthrough */
|
|
4
1
|
import { BoolOperator, DateOperator, FieldTypes, FilterNames, NullOperator, NumberOperator, StringOperator, TimeUnit, } from '../models/Filter';
|
|
5
2
|
import { format, isValid, parse, subDays, subHours, subMonths, subWeeks, subYears, } from 'date-fns';
|
|
6
3
|
// Map SQL string operators to corresponding StringOperator enums
|
|
@@ -108,6 +105,7 @@ function mapOperatorToFilterName(operator, fieldType) {
|
|
|
108
105
|
case DateOperator.InThePrevious:
|
|
109
106
|
return FilterNames.DateFilter;
|
|
110
107
|
}
|
|
108
|
+
// fallthrough
|
|
111
109
|
case FieldTypes.String:
|
|
112
110
|
switch (operator) {
|
|
113
111
|
case StringOperator.Is:
|
|
@@ -134,6 +132,11 @@ function parseBetweenDates(values) {
|
|
|
134
132
|
if (values.length === 2 &&
|
|
135
133
|
typeof values[0].value === 'string' &&
|
|
136
134
|
typeof values[0].value === 'string') {
|
|
135
|
+
const parsedStart = parse(values[0].value, 'yyyy-mm-dd', new Date());
|
|
136
|
+
const parsedEnd = parse(values[1].value, 'yyyy-mm-dd', new Date());
|
|
137
|
+
if (!isValid(parsedStart) || !isValid(parsedEnd)) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
137
140
|
return {
|
|
138
141
|
startDate: values[0].value,
|
|
139
142
|
endDate: values[1].value,
|
|
@@ -4102,15 +4105,25 @@ function lowerFunctionToField(lower, db) {
|
|
|
4102
4105
|
case 'bigquery':
|
|
4103
4106
|
case 'mysql':
|
|
4104
4107
|
case 'postgresql':
|
|
4105
|
-
return (lower
|
|
4106
|
-
lower.args?.value[0]?.value?.expr?.value ??
|
|
4107
|
-
lower.args?.value[0]?.column ??
|
|
4108
|
-
lower.args?.value[0]?.value ??
|
|
4109
|
-
'');
|
|
4108
|
+
return getFieldFromExpression(lower) ?? '';
|
|
4110
4109
|
default:
|
|
4111
4110
|
return '';
|
|
4112
4111
|
}
|
|
4113
4112
|
}
|
|
4113
|
+
/**
|
|
4114
|
+
* Function that extracts a field value
|
|
4115
|
+
*/
|
|
4116
|
+
export function getFieldFromExpression(expr) {
|
|
4117
|
+
return (expr.column?.expr?.value ||
|
|
4118
|
+
expr.column ||
|
|
4119
|
+
expr.value ||
|
|
4120
|
+
expr.args?.value?.[0]?.value?.expr?.value ||
|
|
4121
|
+
expr.args?.value?.[0]?.column?.expr?.value ||
|
|
4122
|
+
expr.args?.value?.[0]?.column ||
|
|
4123
|
+
expr.args?.value?.[0]?.value ||
|
|
4124
|
+
expr.args?.source?.column?.expr?.value ||
|
|
4125
|
+
expr.args?.source?.column);
|
|
4126
|
+
}
|
|
4114
4127
|
/**
|
|
4115
4128
|
* @param ast
|
|
4116
4129
|
* @param client
|
|
@@ -4183,6 +4196,7 @@ export const astToFilterTree = (ast, db) => {
|
|
|
4183
4196
|
filterNode.leaf = filterNode.leftNode.leaf;
|
|
4184
4197
|
filterNode.operator = filterNode.leftNode.operator;
|
|
4185
4198
|
filterNode.rightNode = filterNode.leftNode.rightNode;
|
|
4199
|
+
filterNode.value = filterNode.leftNode.value;
|
|
4186
4200
|
filterNode.leftNode = filterNode.leftNode.leftNode;
|
|
4187
4201
|
}
|
|
4188
4202
|
else {
|
|
@@ -4199,6 +4213,7 @@ export const astToFilterTree = (ast, db) => {
|
|
|
4199
4213
|
filterNode.leaf = filterNode.rightNode.leaf;
|
|
4200
4214
|
filterNode.operator = filterNode.rightNode.operator;
|
|
4201
4215
|
filterNode.leftNode = filterNode.rightNode.leftNode;
|
|
4216
|
+
filterNode.value = filterNode.rightNode.value;
|
|
4202
4217
|
filterNode.rightNode = filterNode.rightNode.rightNode;
|
|
4203
4218
|
}
|
|
4204
4219
|
else {
|
|
@@ -4233,30 +4248,17 @@ export const astToFilter = (ast, db) => {
|
|
|
4233
4248
|
leftExpr = leftExpr.left;
|
|
4234
4249
|
}
|
|
4235
4250
|
switch (leftExpr.type) {
|
|
4236
|
-
case 'single_quote_string':
|
|
4237
|
-
case 'double_quote_string':
|
|
4238
|
-
case 'column_ref':
|
|
4239
|
-
if (typeof leftExpr.value === 'string') {
|
|
4240
|
-
field = leftExpr.value;
|
|
4241
|
-
}
|
|
4242
|
-
else if (typeof leftExpr.column === 'string') {
|
|
4243
|
-
field = leftExpr.column;
|
|
4244
|
-
}
|
|
4245
|
-
else {
|
|
4246
|
-
field = leftExpr.column.expr.value;
|
|
4247
|
-
}
|
|
4248
|
-
break;
|
|
4249
|
-
case 'extract':
|
|
4250
|
-
field = leftExpr.args.source.column.expr.value;
|
|
4251
|
-
break;
|
|
4252
4251
|
case 'function':
|
|
4253
4252
|
field =
|
|
4254
4253
|
leftExpr.args?.value[1]?.column?.expr?.value ??
|
|
4255
4254
|
lowerFunctionToField(leftExpr, db);
|
|
4256
4255
|
break;
|
|
4257
4256
|
default:
|
|
4258
|
-
|
|
4259
|
-
|
|
4257
|
+
field = getFieldFromExpression(leftExpr);
|
|
4258
|
+
if (!field) {
|
|
4259
|
+
console.error('Could not determine field: ', leftExpr);
|
|
4260
|
+
return null;
|
|
4261
|
+
}
|
|
4260
4262
|
}
|
|
4261
4263
|
break;
|
|
4262
4264
|
case 'snowflake':
|
|
@@ -4266,19 +4268,10 @@ export const astToFilter = (ast, db) => {
|
|
|
4266
4268
|
while (leftExpr.type === 'binary_expr') {
|
|
4267
4269
|
leftExpr = leftExpr.left;
|
|
4268
4270
|
}
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
case 'function':
|
|
4274
|
-
field = leftExpr.args.value[0].column;
|
|
4275
|
-
break;
|
|
4276
|
-
case 'extract':
|
|
4277
|
-
field = leftExpr.args.source.column;
|
|
4278
|
-
break;
|
|
4279
|
-
default:
|
|
4280
|
-
console.error('Could not determine field: ', leftExpr);
|
|
4281
|
-
return null;
|
|
4271
|
+
field = getFieldFromExpression(leftExpr);
|
|
4272
|
+
if (!field) {
|
|
4273
|
+
console.error('Could not determine field: ', leftExpr);
|
|
4274
|
+
return null;
|
|
4282
4275
|
}
|
|
4283
4276
|
break;
|
|
4284
4277
|
default:
|
|
@@ -4295,7 +4288,7 @@ export const astToFilter = (ast, db) => {
|
|
|
4295
4288
|
fieldType = FieldTypes.Number;
|
|
4296
4289
|
break;
|
|
4297
4290
|
case 'single_quote_string':
|
|
4298
|
-
case 'double_quote_string':
|
|
4291
|
+
case 'double_quote_string': {
|
|
4299
4292
|
const parsedDate = parse(right.value, 'yyyy-mm-dd', new Date());
|
|
4300
4293
|
// TODO: Potential bug when a string field has a value representing a date
|
|
4301
4294
|
if (isValid(parsedDate)) {
|
|
@@ -4305,6 +4298,7 @@ export const astToFilter = (ast, db) => {
|
|
|
4305
4298
|
fieldType = FieldTypes.String;
|
|
4306
4299
|
}
|
|
4307
4300
|
break;
|
|
4301
|
+
}
|
|
4308
4302
|
case 'function':
|
|
4309
4303
|
if (operator === 'LIKE' ||
|
|
4310
4304
|
(typeof right?.name === 'string' &&
|
|
@@ -4439,7 +4433,7 @@ export const astToFilter = (ast, db) => {
|
|
|
4439
4433
|
operator: mappedOperator,
|
|
4440
4434
|
value: null,
|
|
4441
4435
|
};
|
|
4442
|
-
case FilterNames.DateCustomFilter:
|
|
4436
|
+
case FilterNames.DateCustomFilter: {
|
|
4443
4437
|
const rightExprList = right;
|
|
4444
4438
|
const values = parseBetweenDates(rightExprList.value);
|
|
4445
4439
|
if (!values) {
|
|
@@ -4453,7 +4447,8 @@ export const astToFilter = (ast, db) => {
|
|
|
4453
4447
|
operator: DateOperator.Custom,
|
|
4454
4448
|
value: values,
|
|
4455
4449
|
};
|
|
4456
|
-
|
|
4450
|
+
}
|
|
4451
|
+
case FilterNames.DateComparisonFilter: {
|
|
4457
4452
|
const numericDateComparison = reverseOperatorMap(operator, FieldTypes.Number);
|
|
4458
4453
|
if (numericDateComparison) {
|
|
4459
4454
|
if (!right.value ||
|
|
@@ -4480,7 +4475,9 @@ export const astToFilter = (ast, db) => {
|
|
|
4480
4475
|
};
|
|
4481
4476
|
}
|
|
4482
4477
|
}
|
|
4483
|
-
|
|
4478
|
+
}
|
|
4479
|
+
// fallthrough
|
|
4480
|
+
case FilterNames.DateFilter: {
|
|
4484
4481
|
const { operator: dateOperator, value } = parseDateOperatorAndValue(ast, db);
|
|
4485
4482
|
if (!value) {
|
|
4486
4483
|
return null;
|
|
@@ -4503,6 +4500,7 @@ export const astToFilter = (ast, db) => {
|
|
|
4503
4500
|
value: value.value,
|
|
4504
4501
|
};
|
|
4505
4502
|
}
|
|
4503
|
+
}
|
|
4506
4504
|
case FilterNames.BooleanFilter:
|
|
4507
4505
|
return {
|
|
4508
4506
|
field: field,
|
|
@@ -6490,6 +6488,9 @@ export const filterToAst = (filter, db) => {
|
|
|
6490
6488
|
},
|
|
6491
6489
|
},
|
|
6492
6490
|
};
|
|
6491
|
+
default:
|
|
6492
|
+
console.error('Unknown filter time unit: ', filter.value.unit);
|
|
6493
|
+
return null;
|
|
6493
6494
|
}
|
|
6494
6495
|
case 'mysql':
|
|
6495
6496
|
switch (filter.value.unit) {
|
|
@@ -8057,6 +8058,7 @@ export const filterToAst = (filter, db) => {
|
|
|
8057
8058
|
return null;
|
|
8058
8059
|
}
|
|
8059
8060
|
}
|
|
8061
|
+
// fallthrough
|
|
8060
8062
|
case FieldTypes.Null:
|
|
8061
8063
|
return {
|
|
8062
8064
|
type: 'binary_expr',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,OAQxC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAe5D;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAgBtE;AAGD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAgB1E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG;;EA4BtD;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAahD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CActE;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,GAAG,EAAE,GACb,GAAG,CAYL;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC1C,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,KAAK,EAAE,GAClB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAmCvD;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,EAAE,GAAG,GACjB;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,OAQxC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAe5D;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAgBtE;AAGD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAgB1E;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG;;EA4BtD;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAahD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CActE;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,GAAG,EAAE,GACb,GAAG,CAYL;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC1C,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,KAAK,EAAE,GAClB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAmCvD;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,EAAE,GAAG,GACjB;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAyG/B;AAED,eAAO,MAAM,UAAU,SAAU,GAAG,YAWnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,YACvB,GAAG,UACJ,KAAK,EAAE,KACd,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAmCtC,CAAC;AAEF,eAAO,MAAM,+BAA+B,YACjC,cAAc,EAAE,aACd,MAAM;;;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAC;AAEF,eAAO,MAAM,4BAA4B,aAC7B,MAAM,UACR,KAAK,EAAE,UACP,MAAM,cACF,KAAK,iBACF,MAAM;SAEhB,GAAG;WACD,KAAK,GAAG,IAAI,GAAG,SAAS;cACrB,GAAG;;EAsGd,CAAC;AAEF,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,UACnB,MAAM,UACN,KAAK,EAAE;SAEV,GAAG;WACD,KAAK,GAAG,SAAS,GAAG,IAAI;;;EAwDhC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { getTableNames } from '../components/ReportBuilder/ast';
|
|
|
2
2
|
import { convertBigQuery, convertGroupBy, convertRemoveSimpleParentheses, convertStringComparison, convertUnaryToBinary, convertWildcardColumns, } from '../components/ReportBuilder/convert';
|
|
3
3
|
import { deepCopy, removeNonSelectedTableReferences, } from '../components/ReportBuilder/util';
|
|
4
4
|
import { QUILL_SERVER } from './constants';
|
|
5
|
-
import {
|
|
5
|
+
import { getUniqueStringValues } from './tableProcessing';
|
|
6
6
|
export function getSelectFromAST(ast) {
|
|
7
7
|
if (Array.isArray(ast)) {
|
|
8
8
|
return ast[0];
|
|
@@ -234,12 +234,15 @@ export function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
|
|
|
234
234
|
const tableInfo = tables.find((tableInfo) => tableInfo.name === table);
|
|
235
235
|
if (!tableInfo)
|
|
236
236
|
continue;
|
|
237
|
-
const columnNames = tableInfo.columns.map((column) => column.
|
|
237
|
+
const columnNames = tableInfo.columns.map((column) => column.field);
|
|
238
238
|
if (columnNames.includes(column.value)) {
|
|
239
239
|
tableName = table;
|
|
240
240
|
break;
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
+
if (tableName === '') {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
243
246
|
if (!referencedColumns[tableName]) {
|
|
244
247
|
referencedColumns[tableName] = [];
|
|
245
248
|
}
|
|
@@ -384,8 +387,9 @@ export const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, pre
|
|
|
384
387
|
if (!tableInfo) {
|
|
385
388
|
throw new Error('Table info not found');
|
|
386
389
|
}
|
|
390
|
+
const uniqueValues = await getUniqueStringValues(tableInfo.columns, processedName, client);
|
|
387
391
|
newAst = convertUnaryToBinary(newAst);
|
|
388
|
-
newAst = removeNonSelectedTableReferences(newAst, processedName, tableInfo.columns.map((col) => col.field));
|
|
392
|
+
newAst = removeNonSelectedTableReferences(newAst, processedName, tableInfo.columns.map((col) => col.field), uniqueValues);
|
|
389
393
|
if (pivot) {
|
|
390
394
|
newAst = deepCopy({ ...newAst, orderby: null, limit: null });
|
|
391
395
|
}
|
|
@@ -438,14 +442,10 @@ export const fetchASTFromQuillReport = async (report, client, schema) => {
|
|
|
438
442
|
convertedAst = convertWildcardColumns(convertedAst, schema); // must go before groupby
|
|
439
443
|
convertedAst = convertBigQuery(convertedAst);
|
|
440
444
|
schemaInfo = schema;
|
|
441
|
-
if (!schemaInfo) {
|
|
442
|
-
const { schemaData } = await getSchemaInfoWithCustomFields(client, 'rb');
|
|
443
|
-
schemaInfo = schemaData;
|
|
444
|
-
}
|
|
445
445
|
processApostrophe(convertedAst, ['type', 'value']);
|
|
446
446
|
convertedAst = convertBigQuery(convertedAst);
|
|
447
447
|
({ ast: newAst, pivot: groupByPivot } = convertGroupBy(convertedAst, schemaInfo, report.pivot ? report.pivot : undefined));
|
|
448
|
-
newAst =
|
|
448
|
+
newAst = convertedAst;
|
|
449
449
|
}
|
|
450
450
|
catch (e) {
|
|
451
451
|
console.log(e);
|