@quillsql/react 2.12.40 → 2.12.41
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.js +1 -1
- package/dist/cjs/ChartBuilder.d.ts +1 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +6 -6
- package/dist/cjs/Dashboard.js +5 -5
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +111 -1588
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +0 -9
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +1 -11
- package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +32 -32
- package/dist/cjs/components/ReportBuilder/convert.d.ts +5 -31
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +1 -1
- 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 +177 -0
- package/dist/cjs/index.d.ts +1 -0
- 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 +1 -15
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +24 -24
- package/dist/cjs/models/Filter.d.ts +25 -19
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +2 -2
- package/dist/cjs/{components/ReportBuilder/pivot.d.ts → models/Pivot.d.ts} +13 -4
- package/dist/cjs/models/Pivot.d.ts.map +1 -0
- package/dist/cjs/models/Report.d.ts +1 -1
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Tables.d.ts +16 -0
- 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 +42 -0
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +210 -1
- 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/dataFetcher.d.ts +4 -0
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +24 -1
- 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/pivotConstructor.d.ts +1 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +7 -4
- 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 +25 -0
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +114 -2
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +1 -1
- package/dist/cjs/utils/tableProcessing.d.ts +18 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +94 -1
- package/dist/esm/Chart.js +1 -1
- package/dist/esm/ChartBuilder.d.ts +1 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +6 -6
- package/dist/esm/Dashboard.js +5 -5
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +121 -1598
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +0 -9
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +1 -11
- package/dist/esm/components/Dashboard/DataLoader.js +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +32 -32
- package/dist/esm/components/ReportBuilder/convert.d.ts +5 -31
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +1 -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 +173 -0
- package/dist/esm/index.d.ts +1 -0
- 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 +1 -15
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +24 -24
- package/dist/esm/models/Filter.d.ts +25 -19
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +2 -2
- package/dist/esm/{components/ReportBuilder/pivot.d.ts → models/Pivot.d.ts} +13 -4
- package/dist/esm/models/Pivot.d.ts.map +1 -0
- package/dist/esm/models/Report.d.ts +1 -1
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Tables.d.ts +16 -0
- 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 +42 -0
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +204 -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/dataFetcher.d.ts +4 -0
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +22 -0
- 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/pivotConstructor.d.ts +1 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +7 -4
- 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 +25 -0
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +114 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +1 -1
- package/dist/esm/utils/tableProcessing.d.ts +18 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +91 -1
- package/package.json +1 -1
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +0 -1
- package/dist/cjs/models/Pivots.d.ts +0 -2
- package/dist/cjs/models/Pivots.d.ts.map +0 -1
- package/dist/cjs/models/Pivots.js +0 -2
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +0 -1
- package/dist/esm/models/Pivots.d.ts +0 -2
- package/dist/esm/models/Pivots.d.ts.map +0 -1
- package/dist/esm/models/Pivots.js +0 -1
- /package/dist/cjs/{components/ReportBuilder/pivot.js → models/Pivot.js} +0 -0
- /package/dist/esm/{components/ReportBuilder/pivot.js → models/Pivot.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CA6MA"}
|
|
@@ -24,15 +24,6 @@ export default function BarChart({ colors, colorMap, yAxisFields, data, containe
|
|
|
24
24
|
setFormattedData(barChartData);
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
const curData = data.map((d) => {
|
|
28
|
-
const formatted = { ...d };
|
|
29
|
-
// NEED TO FORMAT FOR BIG QUERY
|
|
30
|
-
if (d[xAxisField] && typeof d[xAxisField] === 'object') {
|
|
31
|
-
formatted[xAxisField] = d[xAxisField].value;
|
|
32
|
-
}
|
|
33
|
-
return formatted;
|
|
34
|
-
});
|
|
35
|
-
setFormattedData(curData);
|
|
36
27
|
}, [data]);
|
|
37
28
|
const getCustomColor = (field) => {
|
|
38
29
|
const key = field.startsWith('comparison_') ? 'comparison' : 'primary';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgC7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgC7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CA4PA"}
|
|
@@ -37,17 +37,7 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
|
|
|
37
37
|
setFormattedData(createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat));
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
if (typeof data[0][xAxisField] === 'object') {
|
|
42
|
-
newData = data.map((d) => {
|
|
43
|
-
const formatted = { ...d };
|
|
44
|
-
// NEED TO FORMAT FOR BIG QUERY
|
|
45
|
-
if (d[xAxisField] && typeof d[xAxisField] === 'object') {
|
|
46
|
-
formatted[xAxisField] = d[xAxisField].value;
|
|
47
|
-
}
|
|
48
|
-
return formatted;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
40
|
+
const newData = [...data];
|
|
51
41
|
if (newData.length === 1) {
|
|
52
42
|
const point = { ...newData[0] };
|
|
53
43
|
newData.push(point);
|
|
@@ -14,20 +14,20 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
14
14
|
const [field, setField] = useState(filter ? filter.field : '');
|
|
15
15
|
const [fieldOptions, setFieldOptions] = useState([]);
|
|
16
16
|
const [fieldValues, setFieldValues] = useState([]);
|
|
17
|
-
const [type, setType] = useState(filter ? filter.
|
|
17
|
+
const [type, setType] = useState(filter ? filter.filterType : '');
|
|
18
18
|
const [value, setValue] = useState(filter
|
|
19
|
-
? filter.
|
|
19
|
+
? filter.filterType === 'date-filter'
|
|
20
20
|
? filter.value.value
|
|
21
21
|
: filter.value
|
|
22
22
|
: undefined);
|
|
23
|
-
const [selectedOptions, setSelectedOptions] = useState(filter && filter.
|
|
23
|
+
const [selectedOptions, setSelectedOptions] = useState(filter && filter.filterType === 'string-in-filter'
|
|
24
24
|
? filter.value.map((val) => {
|
|
25
25
|
return { label: val, value: val };
|
|
26
26
|
})
|
|
27
27
|
: []);
|
|
28
28
|
const [operator, setOperator] = useState(filter ? filter.operator : '');
|
|
29
29
|
const [operatorOptions, setOperatorOptions] = useState([]);
|
|
30
|
-
const [unit, setUnit] = useState(filter && filter.
|
|
30
|
+
const [unit, setUnit] = useState(filter && filter.filterType === 'date-filter' ? filter.value.unit : '');
|
|
31
31
|
const [unitOptions, setUnitOptions] = useState([]);
|
|
32
32
|
const [startDate, setStartDate] = useState(filter && filter.value?.startDate
|
|
33
33
|
? filter.value.startDate.substring(0, 10)
|
|
@@ -39,7 +39,7 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
39
39
|
const [table, setTable] = useState('');
|
|
40
40
|
// Define all supported operator options for each field type
|
|
41
41
|
const allOperatorOptions = {
|
|
42
|
-
[FieldTypes.
|
|
42
|
+
[FieldTypes.Number]: [
|
|
43
43
|
NumberOperator.EqualTo,
|
|
44
44
|
NumberOperator.NotEqualTo,
|
|
45
45
|
NumberOperator.GreaterThan,
|
|
@@ -80,7 +80,7 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
80
80
|
// Effect hook to initialize or update fieldValues based on selected field
|
|
81
81
|
useEffect(() => {
|
|
82
82
|
if (filter) {
|
|
83
|
-
if (filter.
|
|
83
|
+
if (filter.filterType === 'string-in-filter') {
|
|
84
84
|
setSelectedOptions(filter.value.map((val) => {
|
|
85
85
|
return { label: val, value: val };
|
|
86
86
|
}));
|
|
@@ -141,7 +141,7 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
141
141
|
setOperator(DateOperator.InTheLast);
|
|
142
142
|
setValue('90');
|
|
143
143
|
break;
|
|
144
|
-
case '
|
|
144
|
+
case 'number':
|
|
145
145
|
setOperator(NumberOperator.EqualTo);
|
|
146
146
|
setValue('0');
|
|
147
147
|
break;
|
|
@@ -268,8 +268,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
268
268
|
}
|
|
269
269
|
onSubmitFilter({
|
|
270
270
|
field,
|
|
271
|
-
|
|
272
|
-
|
|
271
|
+
filterType: FilterNames.DateFilter,
|
|
272
|
+
fieldType: FieldTypes.Date,
|
|
273
273
|
operator: operator,
|
|
274
274
|
value: { value: value, unit: unit },
|
|
275
275
|
table,
|
|
@@ -282,8 +282,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
282
282
|
}
|
|
283
283
|
onSubmitFilter({
|
|
284
284
|
field,
|
|
285
|
-
|
|
286
|
-
|
|
285
|
+
filterType: FilterNames.DateFilter,
|
|
286
|
+
fieldType: FieldTypes.Date,
|
|
287
287
|
operator: operator,
|
|
288
288
|
value: { value: 0, unit: unit },
|
|
289
289
|
table,
|
|
@@ -296,8 +296,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
296
296
|
}
|
|
297
297
|
onSubmitFilter({
|
|
298
298
|
field,
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
filterType: FilterNames.DateCustomFilter,
|
|
300
|
+
fieldType: FieldTypes.Date,
|
|
301
301
|
operator: operator,
|
|
302
302
|
value: { startDate, endDate },
|
|
303
303
|
table,
|
|
@@ -317,8 +317,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
317
317
|
}
|
|
318
318
|
onSubmitFilter({
|
|
319
319
|
field,
|
|
320
|
-
|
|
321
|
-
|
|
320
|
+
filterType: FilterNames.DateComparisonFilter,
|
|
321
|
+
fieldType: FieldTypes.Date,
|
|
322
322
|
operator: operator,
|
|
323
323
|
value,
|
|
324
324
|
table,
|
|
@@ -328,8 +328,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
328
328
|
case NullOperator.IsNull:
|
|
329
329
|
onSubmitFilter({
|
|
330
330
|
field,
|
|
331
|
-
|
|
332
|
-
|
|
331
|
+
filterType: FilterNames.NullFilter,
|
|
332
|
+
fieldType: FieldTypes.Null,
|
|
333
333
|
operator: operator,
|
|
334
334
|
value: null,
|
|
335
335
|
table,
|
|
@@ -347,8 +347,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
347
347
|
}
|
|
348
348
|
onSubmitFilter({
|
|
349
349
|
field,
|
|
350
|
-
|
|
351
|
-
|
|
350
|
+
filterType: FilterNames.StringInFilter,
|
|
351
|
+
fieldType: FieldTypes.String,
|
|
352
352
|
operator: operator,
|
|
353
353
|
value: selectedOptions.map((val) => val.label),
|
|
354
354
|
table,
|
|
@@ -358,8 +358,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
358
358
|
case NullOperator.IsNull:
|
|
359
359
|
onSubmitFilter({
|
|
360
360
|
field,
|
|
361
|
-
|
|
362
|
-
|
|
361
|
+
filterType: FilterNames.NullFilter,
|
|
362
|
+
fieldType: FieldTypes.Null,
|
|
363
363
|
operator: operator,
|
|
364
364
|
value: null,
|
|
365
365
|
table,
|
|
@@ -372,22 +372,22 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
372
372
|
}
|
|
373
373
|
onSubmitFilter({
|
|
374
374
|
field,
|
|
375
|
-
|
|
376
|
-
|
|
375
|
+
filterType: FilterNames.StringFilter,
|
|
376
|
+
fieldType: FieldTypes.String,
|
|
377
377
|
operator: operator,
|
|
378
378
|
value,
|
|
379
379
|
table,
|
|
380
380
|
});
|
|
381
381
|
}
|
|
382
382
|
break;
|
|
383
|
-
case '
|
|
383
|
+
case 'number':
|
|
384
384
|
switch (operator) {
|
|
385
385
|
case NullOperator.IsNotNull:
|
|
386
386
|
case NullOperator.IsNull:
|
|
387
387
|
onSubmitFilter({
|
|
388
388
|
field,
|
|
389
|
-
|
|
390
|
-
|
|
389
|
+
filterType: FilterNames.NullFilter,
|
|
390
|
+
fieldType: FieldTypes.Null,
|
|
391
391
|
operator: operator,
|
|
392
392
|
value: null,
|
|
393
393
|
table,
|
|
@@ -402,8 +402,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
402
402
|
}
|
|
403
403
|
onSubmitFilter({
|
|
404
404
|
field,
|
|
405
|
-
|
|
406
|
-
|
|
405
|
+
filterType: FilterNames.NumericFilter,
|
|
406
|
+
fieldType: FieldTypes.Number,
|
|
407
407
|
operator: operator,
|
|
408
408
|
value,
|
|
409
409
|
table,
|
|
@@ -416,8 +416,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
416
416
|
case NullOperator.IsNull:
|
|
417
417
|
onSubmitFilter({
|
|
418
418
|
field,
|
|
419
|
-
|
|
420
|
-
|
|
419
|
+
filterType: FilterNames.NullFilter,
|
|
420
|
+
fieldType: FieldTypes.Null,
|
|
421
421
|
operator: operator,
|
|
422
422
|
value: null,
|
|
423
423
|
table,
|
|
@@ -427,8 +427,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
|
|
|
427
427
|
case BoolOperator.NotEqualTo:
|
|
428
428
|
onSubmitFilter({
|
|
429
429
|
field,
|
|
430
|
-
|
|
431
|
-
|
|
430
|
+
filterType: FilterNames.BooleanFilter,
|
|
431
|
+
fieldType: FieldTypes.Boolean,
|
|
432
432
|
operator: operator,
|
|
433
433
|
value: value,
|
|
434
434
|
table,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NodeSQLParser as NSP, AST } from './ast';
|
|
2
|
-
import { Pivot } from './pivot';
|
|
3
2
|
import { TableInfo } from './schema';
|
|
4
3
|
import { ColumnInternal } from '../../models/Columns';
|
|
4
|
+
import { Pivot } from '../../models/Pivot';
|
|
5
5
|
export declare function convertDateComparison(node: NSP.Select): NSP.Select;
|
|
6
6
|
export declare function recursiveSearchAndReplace(node: any, search: string, replace: string): void;
|
|
7
7
|
export declare function recursiveSearchAndReplaceByKey(node: any, search: string, replace: string, searchKey: string): void;
|
|
@@ -22,37 +22,11 @@ export declare function convertASTToPivotData(ast: NSP.Select, columnInfo: Colum
|
|
|
22
22
|
* Processes the AST and builds up a new pivot, given the old AST, the old pivot
|
|
23
23
|
* and a list of tables in the schema.
|
|
24
24
|
*/
|
|
25
|
-
export declare function convertGroupBy(ast: AST,
|
|
26
|
-
ast: NSP.
|
|
27
|
-
pivot: Pivot;
|
|
25
|
+
export declare function convertGroupBy(ast: AST, schemaTables: TableInfo[], prevPivot?: Pivot): {
|
|
26
|
+
ast: NSP.Use | NSP.Create | NSP.Update | NSP.Insert_Replace | NSP.Alter | NSP.Delete | NSP.Drop | NSP.BigQuery;
|
|
27
|
+
pivot: Pivot | undefined;
|
|
28
28
|
} | {
|
|
29
|
-
pivot:
|
|
30
|
-
aggregationType: "count" | "average" | "avg" | "min" | "max" | "sum";
|
|
31
|
-
valueField: string;
|
|
32
|
-
valueFieldType?: string | undefined;
|
|
33
|
-
rowField?: string | undefined;
|
|
34
|
-
rowFieldType?: string | undefined;
|
|
35
|
-
columnField?: string | undefined;
|
|
36
|
-
sort: boolean;
|
|
37
|
-
sortDirection: "ASC" | "DESC";
|
|
38
|
-
sortField?: string | undefined;
|
|
39
|
-
sortFieldType?: string | undefined;
|
|
40
|
-
} | null;
|
|
41
|
-
ast: Partial<NSP.Select>;
|
|
42
|
-
} | {
|
|
43
|
-
pivot: {
|
|
44
|
-
title: string;
|
|
45
|
-
aggregationType: "count" | "average" | "avg" | "min" | "max" | "sum";
|
|
46
|
-
valueField: string;
|
|
47
|
-
valueFieldType?: string | undefined;
|
|
48
|
-
rowField?: string | undefined;
|
|
49
|
-
rowFieldType?: string | undefined;
|
|
50
|
-
columnField?: string | undefined;
|
|
51
|
-
sort: boolean;
|
|
52
|
-
sortDirection: "ASC" | "DESC";
|
|
53
|
-
sortField?: string | undefined;
|
|
54
|
-
sortFieldType?: string | undefined;
|
|
55
|
-
};
|
|
29
|
+
pivot: Pivot | null;
|
|
56
30
|
ast: Partial<NSP.Select>;
|
|
57
31
|
};
|
|
58
32
|
export declare function convertStringComparison(node: any, databaseType: string): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAOJ,MAAM,OAAO,CAAC;AACf,OAAO,
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAOJ,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAQ3C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,QAalB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAoDpD;AAUD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,SAAS,EAAE,GACxB,GAAG,CAAC,MAAM,CA8BZ;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAkBrE;AAmID,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,UAAU,EAAE,cAAc,EAAE,GAC3B,KAAK,GAAG,IAAI,CAmFd;AA+BD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,SAAS,EAAE,EACzB,SAAS,CAAC,EAAE,KAAK;;;;;;EA2FlB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyNtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,OA+C5C"}
|
|
@@ -366,7 +366,7 @@ function addValueFieldToPivot(newAst, pivot, columns) {
|
|
|
366
366
|
* Processes the AST and builds up a new pivot, given the old AST, the old pivot
|
|
367
367
|
* and a list of tables in the schema.
|
|
368
368
|
*/
|
|
369
|
-
export function convertGroupBy(ast,
|
|
369
|
+
export function convertGroupBy(ast, schemaTables, prevPivot) {
|
|
370
370
|
if (!isSelect(ast))
|
|
371
371
|
return { ast, pivot: prevPivot };
|
|
372
372
|
let newAst = {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pivot } from '../models/Pivot';
|
|
2
|
+
import { FilterTreeNode as FilterTree } from '../utils/astFilterProcessing';
|
|
3
|
+
import { FieldTypes } from '../models/Filter';
|
|
4
|
+
interface Column {
|
|
5
|
+
label: string;
|
|
6
|
+
field: string;
|
|
7
|
+
format: string;
|
|
8
|
+
fieldType: FieldTypes;
|
|
9
|
+
}
|
|
10
|
+
export declare const useAskQuill: () => {
|
|
11
|
+
data: {
|
|
12
|
+
rows: any[];
|
|
13
|
+
columns: Column[];
|
|
14
|
+
pivot: Pivot | null;
|
|
15
|
+
pivotRowFields: string[];
|
|
16
|
+
pivotColumnFields: string[];
|
|
17
|
+
pivotValueFields: string[];
|
|
18
|
+
filterTree: FilterTree | null;
|
|
19
|
+
};
|
|
20
|
+
loading: boolean;
|
|
21
|
+
error: string | undefined;
|
|
22
|
+
ask: (query: string) => Promise<any | undefined>;
|
|
23
|
+
onChangePivot: (pivot: Pivot) => void;
|
|
24
|
+
onChangeFilterTree: (filterTree: FilterTree) => void;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=useAskQuill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,cAAc,IAAI,UAAU,EAE7B,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;CACvB;AA6BD,eAAO,MAAM,WAAW;UAChB;QACJ,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;KAE/B;aACQ,OAAO;WACT,MAAM,GAAG,SAAS;iBACZ,MAAM,KAAK,QAAQ,GAAG,GAAG,SAAS,CAAC;2BACzB,KAAK,KAAK,IAAI;qCACJ,UAAU,KAAK,IAAI;CA+LrD,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { useContext, useEffect, useState } from 'react';
|
|
2
|
+
import { ClientContext, SchemaContext } from '../Context';
|
|
3
|
+
import { fetchAndProcessASTFromPrompt } from '../utils/astProcessing';
|
|
4
|
+
import { fetchReportBuilderDataFromAST, } from '../utils/report';
|
|
5
|
+
import { astToFilterTree, filterTreeToAst, } from '../utils/astFilterProcessing';
|
|
6
|
+
import { getPossiblePivotFieldOptions } from '../utils/pivotProcessing';
|
|
7
|
+
import { convertColumnInfoToColumnInternal } from '../utils/columnProcessing';
|
|
8
|
+
import { FieldTypes } from '../models/Filter';
|
|
9
|
+
function convertColumnInternalToAboveType(columns) {
|
|
10
|
+
return columns.map((column) => {
|
|
11
|
+
let convertedFieldType = FieldTypes.String;
|
|
12
|
+
if (column.jsType === FieldTypes.Date) {
|
|
13
|
+
convertedFieldType = FieldTypes.Date;
|
|
14
|
+
}
|
|
15
|
+
else if (column.jsType === FieldTypes.Number) {
|
|
16
|
+
convertedFieldType = FieldTypes.Number;
|
|
17
|
+
}
|
|
18
|
+
else if (column.jsType === FieldTypes.String) {
|
|
19
|
+
convertedFieldType = FieldTypes.String;
|
|
20
|
+
}
|
|
21
|
+
else if (column.jsType === FieldTypes.Boolean ||
|
|
22
|
+
column.jsType === 'bool') {
|
|
23
|
+
convertedFieldType = FieldTypes.Boolean;
|
|
24
|
+
}
|
|
25
|
+
else if (column.jsType === FieldTypes.Null) {
|
|
26
|
+
convertedFieldType = FieldTypes.Null;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
label: column.label,
|
|
30
|
+
field: column.field,
|
|
31
|
+
format: column.format,
|
|
32
|
+
fieldType: convertedFieldType,
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export const useAskQuill = () => {
|
|
37
|
+
const [client] = useContext(ClientContext);
|
|
38
|
+
const [schema] = useContext(SchemaContext);
|
|
39
|
+
const [astInfo, setAstInfo] = useState(undefined);
|
|
40
|
+
const [data, setData] = useState({
|
|
41
|
+
rows: [],
|
|
42
|
+
columns: [],
|
|
43
|
+
pivot: null,
|
|
44
|
+
filterTree: null,
|
|
45
|
+
// uniqueValues: {},
|
|
46
|
+
pivotRowFields: [],
|
|
47
|
+
pivotColumnFields: [],
|
|
48
|
+
pivotValueFields: [],
|
|
49
|
+
});
|
|
50
|
+
const [loading, setLoading] = useState(false);
|
|
51
|
+
const [error, setError] = useState(undefined);
|
|
52
|
+
const [ask, setAsk] = useState(async () => undefined);
|
|
53
|
+
const askHelper = async (query) => {
|
|
54
|
+
if (!query) {
|
|
55
|
+
setLoading(false);
|
|
56
|
+
setError('Please supply a prompt.');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
let astInfo = {};
|
|
60
|
+
let reportBuilderInfo = undefined;
|
|
61
|
+
let possibleColumns = { rowFields: [], columnFields: [], valueFields: [] };
|
|
62
|
+
let curFilterTree = null;
|
|
63
|
+
setLoading(true);
|
|
64
|
+
try {
|
|
65
|
+
setLoading(true);
|
|
66
|
+
astInfo = await fetchAndProcessASTFromPrompt(query, schema, client);
|
|
67
|
+
if (astInfo.error) {
|
|
68
|
+
throw new Error(astInfo.error);
|
|
69
|
+
}
|
|
70
|
+
reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schema, client, astInfo.pivot);
|
|
71
|
+
if (!reportBuilderInfo) {
|
|
72
|
+
throw new Error('Error fetching report');
|
|
73
|
+
}
|
|
74
|
+
const tableName = reportBuilderInfo.table;
|
|
75
|
+
const tableInfo = schema.find((table) => table.name === tableName);
|
|
76
|
+
if (!tableInfo) {
|
|
77
|
+
throw new Error('Table not found');
|
|
78
|
+
}
|
|
79
|
+
const columnInternal = tableInfo.columns.map((column) => convertColumnInfoToColumnInternal(column));
|
|
80
|
+
possibleColumns = getPossiblePivotFieldOptions(columnInternal, reportBuilderInfo.uniqueValues[reportBuilderInfo.table] || {});
|
|
81
|
+
curFilterTree = astToFilterTree(astInfo.whereAST, client.databaseType.toLowerCase());
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
if (err instanceof Error) {
|
|
85
|
+
setError(err.message);
|
|
86
|
+
setLoading(false);
|
|
87
|
+
}
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const convertedColumns = convertColumnInternalToAboveType(reportBuilderInfo?.pivotData?.columns || reportBuilderInfo?.columns || []);
|
|
91
|
+
setData({
|
|
92
|
+
rows: reportBuilderInfo?.pivotData?.rows || reportBuilderInfo?.rows || [],
|
|
93
|
+
columns: convertedColumns,
|
|
94
|
+
pivot: astInfo.pivot,
|
|
95
|
+
pivotRowFields: possibleColumns.rowFields || [],
|
|
96
|
+
pivotColumnFields: possibleColumns.columnFields || [],
|
|
97
|
+
pivotValueFields: possibleColumns.valueFields || [],
|
|
98
|
+
filterTree: curFilterTree,
|
|
99
|
+
});
|
|
100
|
+
setAstInfo(astInfo);
|
|
101
|
+
setLoading(false);
|
|
102
|
+
};
|
|
103
|
+
const onChangePivot = async (newPivot) => {
|
|
104
|
+
if (!data) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
let reportBuilderInfo = undefined;
|
|
108
|
+
try {
|
|
109
|
+
setLoading(true);
|
|
110
|
+
reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schema, client, newPivot);
|
|
111
|
+
setLoading(false);
|
|
112
|
+
if (!reportBuilderInfo) {
|
|
113
|
+
throw new Error('Error fetching report builder data');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
if (err instanceof Error) {
|
|
118
|
+
setError(err.message);
|
|
119
|
+
setLoading(false);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const convertedColumns = convertColumnInternalToAboveType(reportBuilderInfo?.pivotData?.columns || reportBuilderInfo?.columns || []);
|
|
123
|
+
setData({
|
|
124
|
+
...data,
|
|
125
|
+
rows: reportBuilderInfo?.pivotData?.rows || reportBuilderInfo?.rows || [],
|
|
126
|
+
columns: convertedColumns,
|
|
127
|
+
pivot: newPivot,
|
|
128
|
+
pivotRowFields: data?.pivotRowFields || [],
|
|
129
|
+
pivotColumnFields: data?.pivotColumnFields || [],
|
|
130
|
+
pivotValueFields: data?.pivotValueFields || [],
|
|
131
|
+
});
|
|
132
|
+
setAstInfo({ ...astInfo, pivot: newPivot });
|
|
133
|
+
setLoading(false);
|
|
134
|
+
};
|
|
135
|
+
const onChangeFilterTree = async (filterTree) => {
|
|
136
|
+
if (!data) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
let reportBuilderInfo = {};
|
|
140
|
+
try {
|
|
141
|
+
const filterAst = filterTreeToAst(filterTree, client.databaseType.toLowerCase());
|
|
142
|
+
setLoading(true);
|
|
143
|
+
reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, filterAst, schema, client, data.pivot || undefined);
|
|
144
|
+
setLoading(false);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
if (err instanceof Error) {
|
|
148
|
+
setError(err.message);
|
|
149
|
+
setLoading(false);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
setData({
|
|
153
|
+
...data,
|
|
154
|
+
rows: reportBuilderInfo?.pivotData?.rows || reportBuilderInfo?.rows || [],
|
|
155
|
+
columns: reportBuilderInfo?.pivotData?.columns ||
|
|
156
|
+
reportBuilderInfo?.columns ||
|
|
157
|
+
[],
|
|
158
|
+
filterTree,
|
|
159
|
+
});
|
|
160
|
+
setLoading(false);
|
|
161
|
+
};
|
|
162
|
+
useEffect(() => {
|
|
163
|
+
setAsk(() => askHelper);
|
|
164
|
+
}, [schema]);
|
|
165
|
+
return {
|
|
166
|
+
data,
|
|
167
|
+
loading,
|
|
168
|
+
error,
|
|
169
|
+
ask,
|
|
170
|
+
onChangePivot,
|
|
171
|
+
onChangeFilterTree,
|
|
172
|
+
};
|
|
173
|
+
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { useDashboard } 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
|
+
export { useAskQuill } from './hooks/useAskQuill';
|
|
21
22
|
export { downloadCSV } from './utils/csv';
|
|
22
23
|
export { ThemeContext } from './Context';
|
|
23
24
|
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;AACpD,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,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,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACV,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,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,MAAM,sBAAsB,CAAC;AACpD,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,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,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACV,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export { useDashboard } 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
|
+
export { useAskQuill } from './hooks/useAskQuill';
|
|
14
15
|
export { downloadCSV } from './utils/csv';
|
|
15
16
|
export { ThemeContext } from './Context';
|
|
16
17
|
export { Calculation } from './utils/dataProcessing';
|
|
@@ -11,14 +11,14 @@ interface PivotFormProps {
|
|
|
11
11
|
setPivotAggregation: any;
|
|
12
12
|
columns: ColumnInternal[];
|
|
13
13
|
uniqueValues?: any;
|
|
14
|
-
onDelete
|
|
15
|
-
SecondaryButtonComponent
|
|
14
|
+
onDelete?: any;
|
|
15
|
+
SecondaryButtonComponent?: (props: {
|
|
16
16
|
onClick: () => void;
|
|
17
17
|
label: string;
|
|
18
18
|
disabled?: boolean;
|
|
19
19
|
icon?: ReactNode;
|
|
20
20
|
}) => JSX.Element;
|
|
21
|
-
SelectComponent
|
|
21
|
+
SelectComponent?: any;
|
|
22
22
|
PivotColumnContainer?: (props: {
|
|
23
23
|
children: ReactNode;
|
|
24
24
|
}) => JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotForm.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotForm.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAG9D,OAAO,EAAU,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"PivotForm.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotForm.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAG9D,OAAO,EAAU,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM9D,UAAU,cAAc;IACtB,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;CACxE;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,wBAA+C,EAC/C,eAA+C,EAC/C,oBAAgD,GACjD,EAAE,cAAc,2CA4GhB"}
|
|
@@ -4,7 +4,9 @@ import { QuillPivotColumnContainer } from '../../components/UiComponents';
|
|
|
4
4
|
import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
|
|
5
5
|
import { numberFormatOptions } from '../../ChartBuilder';
|
|
6
6
|
import { getPossiblePivotFieldOptions } from '../../utils/pivotProcessing';
|
|
7
|
-
|
|
7
|
+
import { QuillSecondaryButton } from '../../components/ReportBuilder/ui';
|
|
8
|
+
import { QuillSelectComponentWithCombo } from '../../components/QuillSelectWithCombo';
|
|
9
|
+
export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, columns, uniqueValues, onDelete, SecondaryButtonComponent = QuillSecondaryButton, SelectComponent = QuillSelectComponentWithCombo, PivotColumnContainer = QuillPivotColumnContainer, }) {
|
|
8
10
|
const [allowedColumnFields, setAllowedColumnFields] = useState([]);
|
|
9
11
|
const [allowedRowFields, setAllowedRowFields] = useState([]);
|
|
10
12
|
const [allowedValueFields, setAllowedValueFields] = useState([]);
|
|
@@ -58,5 +60,5 @@ export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumn
|
|
|
58
60
|
display: 'flex',
|
|
59
61
|
alignItems: 'flex-start',
|
|
60
62
|
flexDirection: 'column',
|
|
61
|
-
}, children: _jsx(SecondaryButtonComponent, { onClick: onDelete, label: "Delete Pivot" }) })] }));
|
|
63
|
+
}, children: onDelete && (_jsx(SecondaryButtonComponent, { onClick: onDelete, label: "Delete Pivot" })) })] }));
|
|
62
64
|
}
|
|
@@ -2,21 +2,7 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { ButtonComponentProps } from '../../components/UiComponents';
|
|
3
3
|
import { ColumnInternal } from '../../models/Columns';
|
|
4
4
|
import { AxisFormat } from '../../Dashboard';
|
|
5
|
-
|
|
6
|
-
rowField: string;
|
|
7
|
-
rowFieldType: string;
|
|
8
|
-
columnField?: string;
|
|
9
|
-
columnFieldType?: string;
|
|
10
|
-
valueField: string;
|
|
11
|
-
valueFieldType?: string;
|
|
12
|
-
aggregationType: string;
|
|
13
|
-
title?: string;
|
|
14
|
-
triggerButtonText?: string;
|
|
15
|
-
sort?: string;
|
|
16
|
-
sortDirection?: string;
|
|
17
|
-
sortField?: string;
|
|
18
|
-
sortFieldType?: string;
|
|
19
|
-
}
|
|
5
|
+
import { Pivot } from '../../models/Pivot';
|
|
20
6
|
export interface PivotModalProps {
|
|
21
7
|
pivotRowField: any;
|
|
22
8
|
setPivotRowField: any;
|