@quillsql/react 2.12.40 → 2.12.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 +1 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +26 -12
- package/dist/cjs/ChartBuilder.d.ts +1 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +31 -25
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +7 -3
- package/dist/cjs/Context.d.ts +20 -5
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +55 -93
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +29 -18
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +11 -0
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +6 -6
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +1 -1
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.d.ts +5 -6
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +2 -2
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +132 -1612
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +22 -9
- package/dist/cjs/Table.d.ts +1 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +4 -2
- package/dist/cjs/components/Chart/BarChart.d.ts +3 -2
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +32 -27
- package/dist/cjs/components/Chart/BarList.d.ts +1 -5
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.js +6 -5
- package/dist/cjs/components/Chart/ChartTooltip.d.ts +4 -7
- package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.js +14 -48
- package/dist/cjs/components/Chart/LineChart.d.ts +1 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +30 -26
- package/dist/cjs/components/Chart/PieChart.d.ts +3 -1
- package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/PieChart.js +0 -2
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +7 -6
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +4 -2
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +4 -4
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts +2 -1
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardTemplate.js +3 -4
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +12 -7
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +8 -7
- package/dist/cjs/components/Dashboard/TableComponent.js +6 -6
- package/dist/cjs/components/Dashboard/util.d.ts +2 -1
- package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
- package/dist/cjs/components/QuillCard.d.ts.map +1 -1
- package/dist/cjs/components/QuillCard.js +6 -5
- package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelect.js +11 -11
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +11 -11
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +12 -12
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +12 -12
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +4 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +33 -33
- package/dist/cjs/components/ReportBuilder/convert.d.ts +7 -33
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +3 -7
- package/dist/cjs/components/ReportBuilder/ui.d.ts +4 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +1 -2
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +9 -10
- package/dist/cjs/hooks/index.d.ts +0 -1
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +1 -3
- package/dist/cjs/hooks/useAskQuill.d.ts +27 -0
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -0
- package/dist/cjs/hooks/useAskQuill.js +185 -0
- package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -1
- package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/cjs/hooks/useAstToFilterTree.js +1 -1
- package/dist/cjs/hooks/useDashboard.d.ts +1 -1
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +10 -6
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +8 -3
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +7 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +3 -3
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +4 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +3 -16
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +36 -24
- package/dist/cjs/models/Client.d.ts +11 -0
- package/dist/cjs/models/Client.d.ts.map +1 -0
- package/dist/cjs/models/Columns.d.ts +1 -0
- package/dist/cjs/models/Columns.d.ts.map +1 -1
- package/dist/cjs/models/Dashboard.d.ts +14 -0
- package/dist/cjs/models/Dashboard.d.ts.map +1 -0
- package/dist/cjs/models/Filter.d.ts +87 -19
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +15 -4
- package/dist/{esm/components/ReportBuilder/pivot.d.ts → cjs/models/Pivot.d.ts} +13 -4
- package/dist/cjs/models/Pivot.d.ts.map +1 -0
- package/dist/cjs/models/Pivot.js +2 -0
- package/dist/cjs/models/Report.d.ts +4 -2
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Tables.d.ts +29 -2
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +27 -27
- package/dist/cjs/utils/astProcessing.d.ts +46 -3
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +210 -7
- package/dist/cjs/utils/axisFormatter.d.ts +3 -4
- package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/axisFormatter.js +42 -34
- package/dist/cjs/utils/client.d.ts +4 -0
- package/dist/cjs/utils/client.d.ts.map +1 -0
- package/dist/cjs/utils/client.js +40 -0
- 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/csv.d.ts +2 -1
- package/dist/cjs/utils/csv.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.d.ts +3 -2
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +11 -2
- package/dist/cjs/utils/dataFetcher.d.ts +7 -2
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +24 -4
- package/dist/cjs/utils/dataProcessing.d.ts +6 -5
- package/dist/cjs/utils/dataProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/dataProcessing.js +15 -23
- package/dist/cjs/utils/dates.d.ts +1 -1
- package/dist/cjs/utils/filterProcessing.d.ts +2 -2
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +6 -6
- package/dist/cjs/utils/monacoConfig.d.ts +2 -1
- package/dist/cjs/utils/monacoConfig.d.ts.map +1 -1
- package/dist/cjs/utils/monacoConfig.js +2 -2
- package/dist/cjs/utils/pivotConstructor.d.ts +3 -2
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +10 -6
- package/dist/cjs/utils/pivotProcessing.d.ts +4 -4
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +21 -2
- 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 +3 -3
- package/dist/cjs/utils/report.d.ts +27 -1
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +143 -4
- package/dist/cjs/utils/schema.d.ts +6 -4
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +27 -4
- package/dist/cjs/utils/tableProcessing.d.ts +24 -6
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +94 -5
- package/dist/cjs/utils/valueFormatter.d.ts +0 -2
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +83 -67
- package/dist/esm/Chart.d.ts +1 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +27 -13
- package/dist/esm/ChartBuilder.d.ts +1 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +33 -27
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +7 -3
- package/dist/esm/Context.d.ts +20 -5
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +54 -92
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +29 -18
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +11 -0
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -6
- package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +1 -1
- package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
- package/dist/esm/QuillProvider.d.ts +5 -6
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +2 -2
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +141 -1621
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +23 -10
- package/dist/esm/Table.d.ts +1 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +5 -3
- package/dist/esm/components/Chart/BarChart.d.ts +3 -2
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +32 -27
- package/dist/esm/components/Chart/BarList.d.ts +1 -5
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.js +6 -5
- package/dist/esm/components/Chart/ChartTooltip.d.ts +4 -7
- package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartTooltip.js +15 -49
- package/dist/esm/components/Chart/LineChart.d.ts +1 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +30 -26
- package/dist/esm/components/Chart/PieChart.d.ts +3 -1
- package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/PieChart.js +0 -2
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +7 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +4 -2
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +4 -4
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts +2 -1
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardTemplate.js +4 -5
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +13 -8
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +8 -7
- package/dist/esm/components/Dashboard/TableComponent.js +7 -7
- package/dist/esm/components/Dashboard/util.d.ts +2 -1
- package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
- package/dist/esm/components/QuillCard.d.ts.map +1 -1
- package/dist/esm/components/QuillCard.js +6 -5
- package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelect.js +11 -11
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +11 -11
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +12 -12
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +12 -12
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +4 -1
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +33 -33
- package/dist/esm/components/ReportBuilder/convert.d.ts +7 -33
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +3 -7
- package/dist/esm/components/ReportBuilder/ui.d.ts +4 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +1 -2
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +9 -10
- package/dist/esm/hooks/index.d.ts +0 -1
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +0 -1
- package/dist/esm/hooks/useAskQuill.d.ts +27 -0
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -0
- package/dist/esm/hooks/useAskQuill.js +181 -0
- package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -1
- package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/esm/hooks/useAstToFilterTree.js +1 -1
- package/dist/esm/hooks/useDashboard.d.ts +1 -1
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +11 -7
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +9 -4
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +8 -2
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +3 -3
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +4 -2
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +3 -16
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +36 -24
- package/dist/esm/models/Client.d.ts +11 -0
- package/dist/esm/models/Client.d.ts.map +1 -0
- package/dist/esm/models/Columns.d.ts +1 -0
- package/dist/esm/models/Columns.d.ts.map +1 -1
- package/dist/esm/models/Dashboard.d.ts +14 -0
- package/dist/esm/models/Dashboard.d.ts.map +1 -0
- package/dist/esm/models/Filter.d.ts +87 -19
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +13 -2
- package/dist/{cjs/components/ReportBuilder/pivot.d.ts → esm/models/Pivot.d.ts} +13 -4
- package/dist/esm/models/Pivot.d.ts.map +1 -0
- package/dist/esm/models/Pivot.js +1 -0
- package/dist/esm/models/Report.d.ts +4 -2
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Tables.d.ts +29 -2
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +27 -27
- package/dist/esm/utils/astProcessing.d.ts +46 -3
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +204 -6
- package/dist/esm/utils/axisFormatter.d.ts +3 -4
- package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
- package/dist/esm/utils/axisFormatter.js +42 -34
- package/dist/esm/utils/client.d.ts +4 -0
- package/dist/esm/utils/client.d.ts.map +1 -0
- package/dist/esm/utils/client.js +36 -0
- 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/csv.d.ts +2 -1
- package/dist/esm/utils/csv.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.d.ts +3 -2
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +11 -2
- package/dist/esm/utils/dataFetcher.d.ts +7 -2
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +22 -3
- package/dist/esm/utils/dataProcessing.d.ts +6 -5
- package/dist/esm/utils/dataProcessing.d.ts.map +1 -1
- package/dist/esm/utils/dataProcessing.js +15 -23
- package/dist/esm/utils/dates.d.ts +1 -1
- package/dist/esm/utils/filterProcessing.d.ts +2 -2
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +7 -7
- package/dist/esm/utils/monacoConfig.d.ts +2 -1
- package/dist/esm/utils/monacoConfig.d.ts.map +1 -1
- package/dist/esm/utils/monacoConfig.js +2 -2
- package/dist/esm/utils/pivotConstructor.d.ts +3 -2
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +10 -6
- package/dist/esm/utils/pivotProcessing.d.ts +4 -4
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +19 -1
- 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 +3 -3
- package/dist/esm/utils/report.d.ts +27 -1
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +143 -5
- package/dist/esm/utils/schema.d.ts +6 -4
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +27 -4
- package/dist/esm/utils/tableProcessing.d.ts +24 -6
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +90 -4
- package/dist/esm/utils/valueFormatter.d.ts +0 -2
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +83 -67
- package/package.json +1 -1
- package/dist/cjs/DateRangePicker/Calendar.d.ts +0 -17
- package/dist/cjs/DateRangePicker/Calendar.d.ts.map +0 -1
- package/dist/cjs/DateRangePicker/Calendar.js +0 -168
- package/dist/cjs/DateRangePicker/DateRangePicker.d.ts +0 -39
- package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +0 -1
- package/dist/cjs/DateRangePicker/DateRangePicker.js +0 -123
- package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts +0 -22
- package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts.map +0 -1
- package/dist/cjs/DateRangePicker/DateRangePickerButton.js +0 -136
- package/dist/cjs/DateRangePicker/index.d.ts +0 -3
- package/dist/cjs/DateRangePicker/index.d.ts.map +0 -1
- package/dist/cjs/DateRangePicker/index.js +0 -9
- package/dist/cjs/TableChart.d.ts +0 -15
- package/dist/cjs/TableChart.d.ts.map +0 -1
- package/dist/cjs/TableChart.js +0 -122
- package/dist/cjs/components/Dropdown/Dropdown.d.ts +0 -14
- package/dist/cjs/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/cjs/components/Dropdown/Dropdown.js +0 -97
- package/dist/cjs/components/Dropdown/DropdownItem.d.ts +0 -11
- package/dist/cjs/components/Dropdown/DropdownItem.d.ts.map +0 -1
- package/dist/cjs/components/Dropdown/DropdownItem.js +0 -62
- package/dist/cjs/components/Dropdown/index.d.ts +0 -3
- package/dist/cjs/components/Dropdown/index.d.ts.map +0 -1
- package/dist/cjs/components/Dropdown/index.js +0 -10
- package/dist/cjs/components/Modal/Modal.d.ts +0 -15
- package/dist/cjs/components/Modal/Modal.d.ts.map +0 -1
- package/dist/cjs/components/Modal/Modal.js +0 -89
- package/dist/cjs/components/Modal/index.d.ts +0 -2
- package/dist/cjs/components/Modal/index.d.ts.map +0 -1
- package/dist/cjs/components/Modal/index.js +0 -8
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +0 -1
- package/dist/cjs/hooks/useTheme.d.ts +0 -7
- package/dist/cjs/hooks/useTheme.d.ts.map +0 -1
- package/dist/cjs/hooks/useTheme.js +0 -12
- package/dist/cjs/models/Pivots.d.ts +0 -2
- package/dist/cjs/models/Pivots.d.ts.map +0 -1
- package/dist/cjs/utils/aggregate.d.ts +0 -4
- package/dist/cjs/utils/aggregate.d.ts.map +0 -1
- package/dist/cjs/utils/aggregate.js +0 -428
- package/dist/esm/DateRangePicker/Calendar.d.ts +0 -17
- package/dist/esm/DateRangePicker/Calendar.d.ts.map +0 -1
- package/dist/esm/DateRangePicker/Calendar.js +0 -164
- package/dist/esm/DateRangePicker/DateRangePicker.d.ts +0 -39
- package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +0 -1
- package/dist/esm/DateRangePicker/DateRangePicker.js +0 -95
- package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts +0 -22
- package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts.map +0 -1
- package/dist/esm/DateRangePicker/DateRangePickerButton.js +0 -134
- package/dist/esm/DateRangePicker/index.d.ts +0 -3
- package/dist/esm/DateRangePicker/index.d.ts.map +0 -1
- package/dist/esm/DateRangePicker/index.js +0 -2
- package/dist/esm/TableChart.d.ts +0 -15
- package/dist/esm/TableChart.d.ts.map +0 -1
- package/dist/esm/TableChart.js +0 -95
- package/dist/esm/components/Dropdown/Dropdown.d.ts +0 -14
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +0 -1
- package/dist/esm/components/Dropdown/Dropdown.js +0 -69
- package/dist/esm/components/Dropdown/DropdownItem.d.ts +0 -11
- package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +0 -1
- package/dist/esm/components/Dropdown/DropdownItem.js +0 -37
- package/dist/esm/components/Dropdown/index.d.ts +0 -3
- package/dist/esm/components/Dropdown/index.d.ts.map +0 -1
- package/dist/esm/components/Dropdown/index.js +0 -2
- package/dist/esm/components/Modal/Modal.d.ts +0 -15
- package/dist/esm/components/Modal/Modal.d.ts.map +0 -1
- package/dist/esm/components/Modal/Modal.js +0 -64
- package/dist/esm/components/Modal/index.d.ts +0 -2
- package/dist/esm/components/Modal/index.d.ts.map +0 -1
- package/dist/esm/components/Modal/index.js +0 -1
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +0 -1
- package/dist/esm/hooks/useTheme.d.ts +0 -7
- package/dist/esm/hooks/useTheme.d.ts.map +0 -1
- package/dist/esm/hooks/useTheme.js +0 -10
- package/dist/esm/models/Pivots.d.ts +0 -2
- package/dist/esm/models/Pivots.d.ts.map +0 -1
- package/dist/esm/utils/aggregate.d.ts +0 -4
- package/dist/esm/utils/aggregate.d.ts.map +0 -1
- package/dist/esm/utils/aggregate.js +0 -422
- /package/dist/cjs/{components/ReportBuilder/pivot.js → models/Client.js} +0 -0
- /package/dist/cjs/models/{Pivots.js → Dashboard.js} +0 -0
- /package/dist/esm/{components/ReportBuilder/pivot.js → models/Client.js} +0 -0
- /package/dist/esm/models/{Pivots.js → Dashboard.js} +0 -0
|
@@ -60,7 +60,7 @@ const reverseOperatorMap = (operator, fieldType) => {
|
|
|
60
60
|
return (Object.keys(stringOperatorMap).find((key) => stringOperatorMap[key].includes(operator)) ?? null);
|
|
61
61
|
case FieldTypes.Date:
|
|
62
62
|
return (Object.keys(dateOperatorMap).find((key) => dateOperatorMap[key].includes(operator)) ?? null);
|
|
63
|
-
case FieldTypes.
|
|
63
|
+
case FieldTypes.Number:
|
|
64
64
|
return (Object.keys(numberOperatorMap).find((key) => numberOperatorMap[key].includes(operator)) ?? null);
|
|
65
65
|
case FieldTypes.Null:
|
|
66
66
|
return (Object.keys(nullOperatorMap).find((key) => nullOperatorMap[key].includes(operator)) ?? null);
|
|
@@ -116,7 +116,7 @@ function mapOperatorToFilterName(operator, fieldType) {
|
|
|
116
116
|
default:
|
|
117
117
|
return FilterNames.StringFilter;
|
|
118
118
|
}
|
|
119
|
-
case FieldTypes.
|
|
119
|
+
case FieldTypes.Number:
|
|
120
120
|
return FilterNames.NumericFilter;
|
|
121
121
|
case FieldTypes.Null:
|
|
122
122
|
return FilterNames.NullFilter;
|
|
@@ -4292,7 +4292,7 @@ export const astToFilter = (ast, db) => {
|
|
|
4292
4292
|
fieldType = FieldTypes.Null;
|
|
4293
4293
|
break;
|
|
4294
4294
|
case 'number':
|
|
4295
|
-
fieldType = FieldTypes.
|
|
4295
|
+
fieldType = FieldTypes.Number;
|
|
4296
4296
|
break;
|
|
4297
4297
|
case 'single_quote_string':
|
|
4298
4298
|
case 'double_quote_string':
|
|
@@ -4410,32 +4410,32 @@ export const astToFilter = (ast, db) => {
|
|
|
4410
4410
|
case FilterNames.StringFilter:
|
|
4411
4411
|
return {
|
|
4412
4412
|
field: lowerFunctionToField(field, db).replaceAll('%', ''),
|
|
4413
|
-
|
|
4414
|
-
|
|
4413
|
+
filterType: filterName,
|
|
4414
|
+
fieldType: FieldTypes.String,
|
|
4415
4415
|
operator: mappedOperator,
|
|
4416
4416
|
value: lowerFunctionToField(right, db).replaceAll('%', ''),
|
|
4417
4417
|
};
|
|
4418
4418
|
case FilterNames.StringInFilter:
|
|
4419
4419
|
return {
|
|
4420
4420
|
field: lowerFunctionToField(field, db).replaceAll('%', ''),
|
|
4421
|
-
|
|
4422
|
-
|
|
4421
|
+
filterType: filterName,
|
|
4422
|
+
fieldType: FieldTypes.String,
|
|
4423
4423
|
operator: mappedOperator,
|
|
4424
4424
|
value: right.value.map((v) => lowerFunctionToField(v, db).replaceAll('%', '')),
|
|
4425
4425
|
};
|
|
4426
4426
|
case FilterNames.NumericFilter:
|
|
4427
4427
|
return {
|
|
4428
4428
|
field: field,
|
|
4429
|
-
|
|
4430
|
-
|
|
4429
|
+
filterType: filterName,
|
|
4430
|
+
fieldType: FieldTypes.Number,
|
|
4431
4431
|
operator: mappedOperator,
|
|
4432
4432
|
value: Number(right.value),
|
|
4433
4433
|
};
|
|
4434
4434
|
case FilterNames.NullFilter:
|
|
4435
4435
|
return {
|
|
4436
4436
|
field: field,
|
|
4437
|
-
|
|
4438
|
-
|
|
4437
|
+
filterType: filterName,
|
|
4438
|
+
fieldType: FieldTypes.Null,
|
|
4439
4439
|
operator: mappedOperator,
|
|
4440
4440
|
value: null,
|
|
4441
4441
|
};
|
|
@@ -4448,13 +4448,13 @@ export const astToFilter = (ast, db) => {
|
|
|
4448
4448
|
}
|
|
4449
4449
|
return {
|
|
4450
4450
|
field: field,
|
|
4451
|
-
|
|
4452
|
-
|
|
4451
|
+
filterType: filterName,
|
|
4452
|
+
fieldType: FieldTypes.Date,
|
|
4453
4453
|
operator: DateOperator.Custom,
|
|
4454
4454
|
value: values,
|
|
4455
4455
|
};
|
|
4456
4456
|
case FilterNames.DateComparisonFilter:
|
|
4457
|
-
const numericDateComparison = reverseOperatorMap(operator, FieldTypes.
|
|
4457
|
+
const numericDateComparison = reverseOperatorMap(operator, FieldTypes.Number);
|
|
4458
4458
|
if (numericDateComparison) {
|
|
4459
4459
|
if (!right.value ||
|
|
4460
4460
|
(typeof right.value !== 'number' && typeof right.value !== 'string')) {
|
|
@@ -4465,16 +4465,16 @@ export const astToFilter = (ast, db) => {
|
|
|
4465
4465
|
if (numericDateComparison === NumberOperator.EqualTo) {
|
|
4466
4466
|
return {
|
|
4467
4467
|
field: field,
|
|
4468
|
-
|
|
4469
|
-
|
|
4468
|
+
filterType: FilterNames.DateCustomFilter,
|
|
4469
|
+
fieldType: FieldTypes.Date,
|
|
4470
4470
|
operator: DateOperator.Custom,
|
|
4471
4471
|
value: { startDate: right.value, endDate: right.value },
|
|
4472
4472
|
};
|
|
4473
4473
|
}
|
|
4474
4474
|
return {
|
|
4475
4475
|
field: field,
|
|
4476
|
-
|
|
4477
|
-
|
|
4476
|
+
filterType: FilterNames.DateComparisonFilter,
|
|
4477
|
+
fieldType: FieldTypes.Date,
|
|
4478
4478
|
operator: numericDateComparison,
|
|
4479
4479
|
value: right.value,
|
|
4480
4480
|
};
|
|
@@ -4488,8 +4488,8 @@ export const astToFilter = (ast, db) => {
|
|
|
4488
4488
|
if (!isNaN(value.value)) {
|
|
4489
4489
|
return {
|
|
4490
4490
|
field: field,
|
|
4491
|
-
|
|
4492
|
-
|
|
4491
|
+
filterType: filterName,
|
|
4492
|
+
fieldType: FieldTypes.Date,
|
|
4493
4493
|
operator: dateOperator,
|
|
4494
4494
|
value,
|
|
4495
4495
|
};
|
|
@@ -4497,8 +4497,8 @@ export const astToFilter = (ast, db) => {
|
|
|
4497
4497
|
else {
|
|
4498
4498
|
return {
|
|
4499
4499
|
field: field,
|
|
4500
|
-
|
|
4501
|
-
|
|
4500
|
+
filterType: FilterNames.DateCustomFilter,
|
|
4501
|
+
fieldType: FieldTypes.Date,
|
|
4502
4502
|
operator: DateOperator.Custom,
|
|
4503
4503
|
value: value.value,
|
|
4504
4504
|
};
|
|
@@ -4506,8 +4506,8 @@ export const astToFilter = (ast, db) => {
|
|
|
4506
4506
|
case FilterNames.BooleanFilter:
|
|
4507
4507
|
return {
|
|
4508
4508
|
field: field,
|
|
4509
|
-
|
|
4510
|
-
|
|
4509
|
+
filterType: filterName,
|
|
4510
|
+
fieldType: FieldTypes.Boolean,
|
|
4511
4511
|
operator: mappedOperator,
|
|
4512
4512
|
value: Boolean(right.value),
|
|
4513
4513
|
};
|
|
@@ -4553,7 +4553,7 @@ export const filterToAst = (filter, db) => {
|
|
|
4553
4553
|
const { field, operator, value } = filter;
|
|
4554
4554
|
const mappedOperator = operatorMap[operator][0];
|
|
4555
4555
|
// Generate SQL AST based on the filter type
|
|
4556
|
-
switch (filter.
|
|
4556
|
+
switch (filter.fieldType) {
|
|
4557
4557
|
case FieldTypes.String:
|
|
4558
4558
|
if (!value) {
|
|
4559
4559
|
return null;
|
|
@@ -4604,7 +4604,7 @@ export const filterToAst = (filter, db) => {
|
|
|
4604
4604
|
right: fieldColumnToLowerCaseAst(value, db, false),
|
|
4605
4605
|
};
|
|
4606
4606
|
}
|
|
4607
|
-
case FieldTypes.
|
|
4607
|
+
case FieldTypes.Number:
|
|
4608
4608
|
switch (mappedOperator) {
|
|
4609
4609
|
default:
|
|
4610
4610
|
return {
|
|
@@ -4615,7 +4615,7 @@ export const filterToAst = (filter, db) => {
|
|
|
4615
4615
|
};
|
|
4616
4616
|
}
|
|
4617
4617
|
case FieldTypes.Date:
|
|
4618
|
-
switch (filter.
|
|
4618
|
+
switch (filter.filterType) {
|
|
4619
4619
|
case FilterNames.DateCustomFilter:
|
|
4620
4620
|
return {
|
|
4621
4621
|
type: 'binary_expr',
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Client } from '../models/Client';
|
|
2
|
+
import { Column, ColumnInternal } from '../models/Columns';
|
|
3
|
+
import { Pivot } from '../models/Pivot';
|
|
4
|
+
import { QuillReportInternal } from '../models/Report';
|
|
5
|
+
import { Table } from '../models/Tables';
|
|
2
6
|
export declare function getSelectFromAST(ast: any): any;
|
|
3
7
|
export declare function processStarColumn(ast: any, columns: Column[]): any;
|
|
4
8
|
export declare function recursiveSearchByKey(node: any, searchKey: string): any;
|
|
@@ -16,11 +20,50 @@ export declare function processApostrophe(node: any, searchKeys: string[]): any;
|
|
|
16
20
|
export declare function recursiveSearchByKeysFindAllOccurances(node: any, searchKeys: string[], results: any[]): any;
|
|
17
21
|
export declare function getColumnAndTableInfo(tableAliasMap: {
|
|
18
22
|
[alias: string]: string;
|
|
19
|
-
}, column: any, schemaInfo:
|
|
23
|
+
}, column: any, schemaInfo: Table[]): {
|
|
20
24
|
tableName: string;
|
|
21
25
|
columnName: string;
|
|
22
26
|
} | undefined;
|
|
23
|
-
export declare function getColumnsByTableFromASTAndSchema(ast: any, tables:
|
|
27
|
+
export declare function getColumnsByTableFromASTAndSchema(ast: any, tables: Table[], tableAliasMap: any): {
|
|
24
28
|
[table: string]: string[];
|
|
25
29
|
};
|
|
30
|
+
export declare const isSubquery: (node: any) => boolean;
|
|
31
|
+
export declare const getAllPossibleColumns: (baseAst: any, schema: Table[]) => (ColumnInternal & {
|
|
32
|
+
table: string;
|
|
33
|
+
})[];
|
|
34
|
+
export declare const createBasicSelectASTFromColumns: (columns: ColumnInternal[], tableName: string) => {
|
|
35
|
+
type: string;
|
|
36
|
+
options: null;
|
|
37
|
+
distinct: null;
|
|
38
|
+
columns: {
|
|
39
|
+
expr: {
|
|
40
|
+
type: string;
|
|
41
|
+
table: string;
|
|
42
|
+
column: string;
|
|
43
|
+
};
|
|
44
|
+
as: null;
|
|
45
|
+
}[];
|
|
46
|
+
from: {
|
|
47
|
+
db: null;
|
|
48
|
+
table: string;
|
|
49
|
+
as: null;
|
|
50
|
+
}[];
|
|
51
|
+
where: null;
|
|
52
|
+
groupby: null;
|
|
53
|
+
having: null;
|
|
54
|
+
orderby: null;
|
|
55
|
+
limit: null;
|
|
56
|
+
};
|
|
57
|
+
export declare const fetchAndProcessASTFromPrompt: (aiPrompt: string, schema: Table[], client: Client, prevPivot?: Pivot, currentQuery?: string) => Promise<{
|
|
58
|
+
ast: any;
|
|
59
|
+
pivot: Pivot | null | undefined;
|
|
60
|
+
whereAST: any;
|
|
61
|
+
error?: string | undefined;
|
|
62
|
+
}>;
|
|
63
|
+
export declare const fetchASTFromQuillReport: (report: QuillReportInternal, client: Client, schema: Table[]) => Promise<{
|
|
64
|
+
ast: any;
|
|
65
|
+
pivot: Pivot | undefined | null;
|
|
66
|
+
schema?: Table[] | undefined;
|
|
67
|
+
error?: string | undefined;
|
|
68
|
+
}>;
|
|
26
69
|
//# sourceMappingURL=astProcessing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"
|
|
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,CAqG/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;;EA+Fd,CAAC;AAEF,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,UACnB,MAAM,UACN,KAAK,EAAE;SAEV,GAAG;WACD,KAAK,GAAG,SAAS,GAAG,IAAI;;;EAmDhC,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { getTableNames } from '../components/ReportBuilder/ast';
|
|
2
|
+
import { convertBigQuery, convertGroupBy, convertRemoveSimpleParentheses, convertStringComparison, convertUnaryToBinary, convertWildcardColumns, } from '../components/ReportBuilder/convert';
|
|
3
|
+
import { deepCopy, removeNonSelectedTableReferences, } from '../components/ReportBuilder/util';
|
|
4
|
+
import { QUILL_SERVER } from './constants';
|
|
5
|
+
import { getSchemaInfoWithCustomFields } from './schema';
|
|
1
6
|
export function getSelectFromAST(ast) {
|
|
2
7
|
if (Array.isArray(ast)) {
|
|
3
8
|
return ast[0];
|
|
@@ -155,17 +160,13 @@ export function getColumnAndTableInfo(tableAliasMap, column, schemaInfo) {
|
|
|
155
160
|
const tableInfo = schemaInfo.find((tableInfo) => tableInfo.name === table);
|
|
156
161
|
if (!tableInfo)
|
|
157
162
|
continue;
|
|
158
|
-
const columnNames = tableInfo.columns.map((column) => column.
|
|
163
|
+
const columnNames = tableInfo.columns.map((column) => column.field);
|
|
159
164
|
if (columnNames.includes(columnName)) {
|
|
160
165
|
tableName = table;
|
|
161
166
|
break;
|
|
162
167
|
}
|
|
163
168
|
}
|
|
164
169
|
}
|
|
165
|
-
// const tableName = columnsInfo.table
|
|
166
|
-
// ? tableAliasMap[columnsInfo.table]
|
|
167
|
-
// : //@ts-ignore
|
|
168
|
-
// tableAliasMap[Object.keys(tableAliasMap)[0]];
|
|
169
170
|
return { tableName, columnName };
|
|
170
171
|
}
|
|
171
172
|
export function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
|
|
@@ -179,7 +180,7 @@ export function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
|
|
|
179
180
|
if (!referencedColumns[table]) {
|
|
180
181
|
referencedColumns[table] = [];
|
|
181
182
|
}
|
|
182
|
-
referencedColumns[table] = tableInfo.columns.map((column) => column.
|
|
183
|
+
referencedColumns[table] = tableInfo.columns.map((column) => column.field);
|
|
183
184
|
}
|
|
184
185
|
});
|
|
185
186
|
}
|
|
@@ -252,3 +253,200 @@ export function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
|
|
|
252
253
|
}
|
|
253
254
|
return referencedColumns;
|
|
254
255
|
}
|
|
256
|
+
export const isSubquery = (node) => {
|
|
257
|
+
if (!node)
|
|
258
|
+
return false;
|
|
259
|
+
if (node.ast)
|
|
260
|
+
return true;
|
|
261
|
+
if (node.left && isSubquery(node.left))
|
|
262
|
+
return true;
|
|
263
|
+
if (node.right && isSubquery(node.right))
|
|
264
|
+
return true;
|
|
265
|
+
if (node.value && Array.isArray(node.value)) {
|
|
266
|
+
for (const value of node.value) {
|
|
267
|
+
if (isSubquery(value))
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return false;
|
|
272
|
+
};
|
|
273
|
+
export const getAllPossibleColumns = (baseAst, schema) => {
|
|
274
|
+
if (!baseAst || !baseAst.from) {
|
|
275
|
+
return schema.flatMap((table) => table.columns.map((c) => ({
|
|
276
|
+
...c,
|
|
277
|
+
table: table.displayName,
|
|
278
|
+
})));
|
|
279
|
+
}
|
|
280
|
+
// TODO: support infinitely nested FROM table lookups.
|
|
281
|
+
// This currently only supports top-level table names in the FROM section
|
|
282
|
+
// of queries (eg. FROM "table_name", not "FROM (SELECT * FROM other) AS table_name")
|
|
283
|
+
const tableNamesInQuery = baseAst.from.map((tbl) => tbl.table);
|
|
284
|
+
return schema
|
|
285
|
+
.filter((t) => tableNamesInQuery.includes(t.displayName))
|
|
286
|
+
.flatMap((table) => table.columns
|
|
287
|
+
.map((c) => ({
|
|
288
|
+
...c,
|
|
289
|
+
table: table.displayName,
|
|
290
|
+
}))
|
|
291
|
+
.sort((a, b) => {
|
|
292
|
+
const aIsId = a.field.toLowerCase() === 'id' ||
|
|
293
|
+
a.field.toLowerCase().endsWith('_id') ||
|
|
294
|
+
a.field.endsWith('Id');
|
|
295
|
+
const bIsId = b.field.toLowerCase() === 'id' ||
|
|
296
|
+
b.field.toLowerCase().endsWith('_id') ||
|
|
297
|
+
b.field.endsWith('Id');
|
|
298
|
+
if (aIsId && !bIsId)
|
|
299
|
+
return 1;
|
|
300
|
+
if (bIsId && !aIsId)
|
|
301
|
+
return -1;
|
|
302
|
+
return 0;
|
|
303
|
+
}));
|
|
304
|
+
};
|
|
305
|
+
export const createBasicSelectASTFromColumns = (columns, tableName) => {
|
|
306
|
+
return {
|
|
307
|
+
type: 'select',
|
|
308
|
+
options: null,
|
|
309
|
+
distinct: null,
|
|
310
|
+
columns: columns.map((column) => ({
|
|
311
|
+
expr: {
|
|
312
|
+
type: 'column_ref',
|
|
313
|
+
table: tableName,
|
|
314
|
+
column: column.field,
|
|
315
|
+
},
|
|
316
|
+
as: null,
|
|
317
|
+
})),
|
|
318
|
+
from: [{ db: null, table: tableName, as: null }],
|
|
319
|
+
where: null,
|
|
320
|
+
groupby: null,
|
|
321
|
+
having: null,
|
|
322
|
+
orderby: null,
|
|
323
|
+
limit: null,
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
export const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot, currentQuery) => {
|
|
327
|
+
let res, data, ast, newAst, pivot;
|
|
328
|
+
let numRetries = 0;
|
|
329
|
+
let whereAST;
|
|
330
|
+
const MAX_RETRIES = 3;
|
|
331
|
+
try {
|
|
332
|
+
let isTableJoin = !ast || !ast.from || ast.from.length !== 1;
|
|
333
|
+
while (isTableJoin || isSubquery(ast?.where)) {
|
|
334
|
+
if (numRetries === MAX_RETRIES)
|
|
335
|
+
break;
|
|
336
|
+
if (!currentQuery || (ast && (isTableJoin || isSubquery(ast?.where)))) {
|
|
337
|
+
res = await fetch(`${QUILL_SERVER}/magic`, {
|
|
338
|
+
method: 'POST',
|
|
339
|
+
headers: { 'Content-Type': 'application/json' },
|
|
340
|
+
body: JSON.stringify({
|
|
341
|
+
initialQuestion: aiPrompt,
|
|
342
|
+
publicKey: client.publicKey,
|
|
343
|
+
useNewNodeSql: true, // new flag
|
|
344
|
+
}),
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
res = await fetch(`${QUILL_SERVER}/magic/edit`, {
|
|
349
|
+
method: 'POST',
|
|
350
|
+
headers: { 'Content-Type': 'application/json' },
|
|
351
|
+
body: JSON.stringify({
|
|
352
|
+
sqlQuery: currentQuery,
|
|
353
|
+
initialQuestion: aiPrompt,
|
|
354
|
+
publicKey: client.publicKey,
|
|
355
|
+
useNewNodeSql: true, // new flag
|
|
356
|
+
}),
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
data = await res.json();
|
|
360
|
+
ast = data?.ast?.length ? data?.ast[0] : data?.ast;
|
|
361
|
+
// TODO: Debug invalid table joins in handleAsk
|
|
362
|
+
isTableJoin =
|
|
363
|
+
ast?.type !== 'bigquery' &&
|
|
364
|
+
(!ast || !ast.from || ast.from.length !== 1);
|
|
365
|
+
numRetries += 1;
|
|
366
|
+
}
|
|
367
|
+
if (numRetries === MAX_RETRIES) {
|
|
368
|
+
console.error('[Error]: Max retries exceeded.');
|
|
369
|
+
console.info(`%c[Prompt]: ${aiPrompt}`, 'color: dimgray');
|
|
370
|
+
throw new Error("Error: Couldn't process your request, please re-word your prompt.");
|
|
371
|
+
}
|
|
372
|
+
ast = ast.length ? ast[0] : ast;
|
|
373
|
+
newAst = convertBigQuery(ast);
|
|
374
|
+
newAst = convertWildcardColumns(newAst, schema); // must go before groupby
|
|
375
|
+
({ ast: newAst, pivot } = convertGroupBy(newAst, schema, prevPivot));
|
|
376
|
+
newAst = convertStringComparison(newAst, client.databaseType || 'postgresql');
|
|
377
|
+
newAst = convertRemoveSimpleParentheses(newAst);
|
|
378
|
+
const table = getTableNames(newAst)[0];
|
|
379
|
+
if (!table) {
|
|
380
|
+
throw new Error('Table or table alias not found');
|
|
381
|
+
}
|
|
382
|
+
const processedName = table || '';
|
|
383
|
+
const tableInfo = schema.find((t) => t.name === processedName);
|
|
384
|
+
if (!tableInfo) {
|
|
385
|
+
throw new Error('Table info not found');
|
|
386
|
+
}
|
|
387
|
+
newAst = convertUnaryToBinary(newAst);
|
|
388
|
+
newAst = removeNonSelectedTableReferences(newAst, processedName, tableInfo.columns.map((col) => col.field));
|
|
389
|
+
if (pivot) {
|
|
390
|
+
newAst = deepCopy({ ...newAst, orderby: null, limit: null });
|
|
391
|
+
}
|
|
392
|
+
whereAST = deepCopy(newAst.where);
|
|
393
|
+
}
|
|
394
|
+
catch (e) {
|
|
395
|
+
console.log(e);
|
|
396
|
+
if (e instanceof Error) {
|
|
397
|
+
return {
|
|
398
|
+
ast: null,
|
|
399
|
+
pivot: null,
|
|
400
|
+
whereAST: null,
|
|
401
|
+
error: "Error: Couldn't process your request, please re-word your prompt.",
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return { ast: newAst, pivot, whereAST };
|
|
406
|
+
};
|
|
407
|
+
export const fetchASTFromQuillReport = async (report, client, schema) => {
|
|
408
|
+
let newAst;
|
|
409
|
+
let groupByPivot = null;
|
|
410
|
+
let schemaInfo = [];
|
|
411
|
+
try {
|
|
412
|
+
if (!report || report.referencedTables?.length !== 1) {
|
|
413
|
+
throw new Error('Report not found');
|
|
414
|
+
}
|
|
415
|
+
const url = `${QUILL_SERVER}/astify`;
|
|
416
|
+
const result = await fetch(url, {
|
|
417
|
+
method: 'POST',
|
|
418
|
+
headers: {
|
|
419
|
+
'Content-Type': 'application/json',
|
|
420
|
+
},
|
|
421
|
+
body: JSON.stringify({ query: report.queryString, useNewNodeSql: true }),
|
|
422
|
+
});
|
|
423
|
+
const resp = await result.json();
|
|
424
|
+
if (resp.success === false) {
|
|
425
|
+
throw new Error("Couldn't process report query.");
|
|
426
|
+
}
|
|
427
|
+
const ast = getSelectFromAST(resp.ast);
|
|
428
|
+
let convertedAst = processStarColumn(ast, report.columns);
|
|
429
|
+
convertedAst = convertWildcardColumns(convertedAst, schema); // must go before groupby
|
|
430
|
+
convertedAst = convertBigQuery(convertedAst);
|
|
431
|
+
schemaInfo = schema;
|
|
432
|
+
if (!schemaInfo) {
|
|
433
|
+
const { schemaData } = await getSchemaInfoWithCustomFields(client, 'rb');
|
|
434
|
+
schemaInfo = schemaData;
|
|
435
|
+
}
|
|
436
|
+
processApostrophe(convertedAst, ['type', 'value']);
|
|
437
|
+
convertedAst = convertBigQuery(convertedAst);
|
|
438
|
+
({ ast: newAst, pivot: groupByPivot } = convertGroupBy(convertedAst, schemaInfo, report.pivot ? report.pivot : undefined));
|
|
439
|
+
newAst = groupByPivot ? newAst : convertedAst;
|
|
440
|
+
}
|
|
441
|
+
catch (e) {
|
|
442
|
+
console.log(e);
|
|
443
|
+
if (e instanceof Error) {
|
|
444
|
+
return {
|
|
445
|
+
error: e.message,
|
|
446
|
+
ast: null,
|
|
447
|
+
pivot: null,
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
return { ast: newAst, pivot: groupByPivot, schema: schemaInfo };
|
|
452
|
+
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import { AxisFormat } from '../Dashboard';
|
|
1
2
|
type Field = {
|
|
2
|
-
_id: string;
|
|
3
|
-
label: string;
|
|
4
3
|
field: string;
|
|
5
|
-
format:
|
|
4
|
+
format: AxisFormat;
|
|
6
5
|
};
|
|
7
6
|
type Props = {
|
|
8
7
|
value: string | number | boolean | undefined | null;
|
|
@@ -15,6 +14,6 @@ type Props = {
|
|
|
15
14
|
* The axis formatter will print a shorter version of the valueFormatter, which
|
|
16
15
|
* fits nicely along the X or Y axes.
|
|
17
16
|
*/
|
|
18
|
-
export declare const axisFormatter: ({ value, field, fields
|
|
17
|
+
export declare const axisFormatter: ({ value, field, fields }: Props) => string;
|
|
19
18
|
export {};
|
|
20
19
|
//# sourceMappingURL=axisFormatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axisFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/axisFormatter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"axisFormatter.d.ts","sourceRoot":"","sources":["../../../src/utils/axisFormatter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,6BAA8B,KAAK,KAAG,MAwC/D,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { utcToZonedTime } from 'date-fns-tz';
|
|
|
6
6
|
* The axis formatter will print a shorter version of the valueFormatter, which
|
|
7
7
|
* fits nicely along the X or Y axes.
|
|
8
8
|
*/
|
|
9
|
-
export const axisFormatter = ({ value, field, fields
|
|
9
|
+
export const axisFormatter = ({ value, field, fields }) => {
|
|
10
10
|
if (field === undefined || field === null)
|
|
11
11
|
return '';
|
|
12
12
|
if (value === undefined || value === null)
|
|
@@ -14,30 +14,39 @@ export const axisFormatter = ({ value, field, fields, }) => {
|
|
|
14
14
|
const fieldInfo = fields.find((f) => f.field === field);
|
|
15
15
|
if (!fieldInfo)
|
|
16
16
|
return '';
|
|
17
|
-
const HANDLERS = {
|
|
18
|
-
percent: formatPercent,
|
|
19
|
-
dollar_amount: formatDollarAmount,
|
|
20
|
-
dollar_cents: formatDollarAmount, // no cents for axis format
|
|
21
|
-
whole_number: formatWholeNumber,
|
|
22
|
-
one_decimal_place: formatWholeNumber, // no decimals for axis format
|
|
23
|
-
two_decimal_places: formatWholeNumber, // no decimals for axis format
|
|
24
|
-
string: formatString,
|
|
25
|
-
yyyy: format_YYYY,
|
|
26
|
-
MMM_yyyy: format_MMM_yyyy,
|
|
27
|
-
MMM_dd: format_MMM_dd,
|
|
28
|
-
MMM_dd_yyyy: format_MMM_dd_yyyy,
|
|
29
|
-
MMM_ww_yyyy: format_MMM_ww_yyyy,
|
|
30
|
-
hh_ap_pm: format_hh_ap_pm,
|
|
31
|
-
'MMM_dd-MMM_dd': format_MMM_dd_MMM_dd,
|
|
32
|
-
'MMM_dd_hh:mm_ap_pm': format_MMM_dd_hh_mm_ap_pm,
|
|
33
|
-
'wo, yyyy': format_wo_yyyy,
|
|
34
|
-
};
|
|
35
17
|
// try to handle this value using the associated formatType handler
|
|
36
18
|
const formatType = fieldInfo.format;
|
|
37
|
-
|
|
38
|
-
|
|
19
|
+
switch (formatType) {
|
|
20
|
+
case 'percent':
|
|
21
|
+
return formatPercent(value);
|
|
22
|
+
case 'dollar_amount':
|
|
23
|
+
return formatDollarAmount(value);
|
|
24
|
+
case 'whole_number':
|
|
25
|
+
return formatWholeNumber(value);
|
|
26
|
+
case 'string':
|
|
27
|
+
return formatString(value);
|
|
28
|
+
case 'yyyy':
|
|
29
|
+
return format_YYYY(value);
|
|
30
|
+
case 'MMM_dd':
|
|
31
|
+
return format_MMM_dd(value);
|
|
32
|
+
case 'MMM_yyyy':
|
|
33
|
+
return format_MMM_yyyy(value);
|
|
34
|
+
case 'MMM_dd_yyyy':
|
|
35
|
+
return format_MMM_dd_yyyy(value);
|
|
36
|
+
// not sure what this is
|
|
37
|
+
// case 'MMM_ww_yyyy':
|
|
38
|
+
// return format_MMM_ww_yyyy(value);
|
|
39
|
+
case 'hh_ap_pm':
|
|
40
|
+
return format_hh_ap_pm(value);
|
|
41
|
+
case 'MMM_dd-MMM_dd':
|
|
42
|
+
return format_MMM_dd_MMM_dd(value);
|
|
43
|
+
case 'MMM_dd_hh:mm_ap_pm':
|
|
44
|
+
return format_MMM_dd_hh_mm_ap_pm(value);
|
|
45
|
+
case 'wo, yyyy':
|
|
46
|
+
return format_wo_yyyy(value);
|
|
47
|
+
default:
|
|
48
|
+
return formatString(value);
|
|
39
49
|
}
|
|
40
|
-
return formatString(value); // by default make this value a string
|
|
41
50
|
};
|
|
42
51
|
/**
|
|
43
52
|
* HELPER FUNCTION DEFINITIONS
|
|
@@ -151,18 +160,17 @@ const format_MMM_dd_MMM_dd = (value) => {
|
|
|
151
160
|
return `${format(monday, 'MMM dd')} - ${format(sunday, 'MMM dd')}`;
|
|
152
161
|
}
|
|
153
162
|
};
|
|
154
|
-
const format_MMM_ww_yyyy = (value) => {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
};
|
|
163
|
+
// const format_MMM_ww_yyyy = (value: any) => {
|
|
164
|
+
// const utcDate: Date = utcToZonedTime(new Date(value), 'UTC');
|
|
165
|
+
// if (!isValid(utcDate)) return 'Invalid date';
|
|
166
|
+
// const startOfWeekDate = startOfWeek(utcDate, { weekStartsOn: 1 });
|
|
167
|
+
// const endOfWeekDate = endOfWeek(utcDate, { weekStartsOn: 1 });
|
|
168
|
+
// const month = format(utcDate, 'MMM');
|
|
169
|
+
// const startDay = format(startOfWeekDate, 'd');
|
|
170
|
+
// const endDay = format(endOfWeekDate, 'd');
|
|
171
|
+
// const year = format(utcDate, 'yyyy');
|
|
172
|
+
// return `${month}, ${startDay}-${endDay}, ${year}`;
|
|
173
|
+
// };
|
|
166
174
|
const format_MMM_dd_hh_mm_ap_pm = (value) => {
|
|
167
175
|
const utcDate = utcToZonedTime(new Date(value), 'UTC');
|
|
168
176
|
if (!isValid(utcDate))
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Client } from '../models/Client';
|
|
2
|
+
export declare const EMPTY_CLIENT: Client;
|
|
3
|
+
export declare function fetchClient(publicKey: string, queryEndpoint: string, withCredentials?: boolean, queryHeaders?: HeadersInit): Promise<Client>;
|
|
4
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,MAAM,YAAY,EAAE,MAS1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,CAAC,CAwBjB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const EMPTY_CLIENT = {
|
|
2
|
+
customerId: '',
|
|
3
|
+
clientId: '',
|
|
4
|
+
userId: '',
|
|
5
|
+
publicKey: '',
|
|
6
|
+
queryEndpoint: '',
|
|
7
|
+
queryHeaders: {},
|
|
8
|
+
withCredentials: false,
|
|
9
|
+
databaseType: '',
|
|
10
|
+
};
|
|
11
|
+
export async function fetchClient(publicKey, queryEndpoint, withCredentials = false, queryHeaders) {
|
|
12
|
+
let result = EMPTY_CLIENT;
|
|
13
|
+
try {
|
|
14
|
+
const response = await fetch(`${queryEndpoint}`, {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
headers: {
|
|
17
|
+
...queryHeaders,
|
|
18
|
+
'Content-Type': 'application/json',
|
|
19
|
+
},
|
|
20
|
+
body: JSON.stringify({
|
|
21
|
+
metadata: {
|
|
22
|
+
clientId: publicKey,
|
|
23
|
+
publicKey,
|
|
24
|
+
task: 'client',
|
|
25
|
+
},
|
|
26
|
+
}),
|
|
27
|
+
credentials: withCredentials ? 'include' : 'omit',
|
|
28
|
+
});
|
|
29
|
+
const json = await response.json();
|
|
30
|
+
result = json.data?.data?.client || json.data?.client;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.error('ERROR:', error);
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,YAAY,0CAA0C,CAAC;AACpE,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
|