@quillsql/react 2.12.15 → 2.12.17
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 +4 -0
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +27 -10
- package/dist/cjs/ChartBuilder.d.ts +3 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +3 -3
- package/dist/cjs/ChartEditor.d.ts +3 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +2 -2
- package/dist/cjs/Dashboard.d.ts +8 -2
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +3 -3
- package/dist/cjs/ReportBuilder.d.ts +3 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +22 -19
- package/dist/cjs/SQLEditor.d.ts +3 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +2 -2
- package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +2 -2
- package/dist/cjs/components/Chart/BarList.d.ts +1 -0
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarList.js +2 -2
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +2 -2
- package/dist/cjs/components/Chart/PieChart.d.ts +1 -0
- package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/PieChart.js +2 -2
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +6 -3
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -2
- package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +8 -8
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +3 -3
- package/dist/cjs/internals/ReportBuilder/PivotList.js +3 -3
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +76 -34
- package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/axisFormatter.js +16 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +1 -0
- package/dist/cjs/utils/textProcessing.d.ts +1 -0
- package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/textProcessing.js +21 -1
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +15 -0
- package/dist/esm/Chart.d.ts +4 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +27 -10
- package/dist/esm/ChartBuilder.d.ts +3 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +4 -4
- package/dist/esm/ChartEditor.d.ts +3 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +2 -2
- package/dist/esm/Dashboard.d.ts +8 -2
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +3 -3
- package/dist/esm/ReportBuilder.d.ts +3 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +23 -20
- package/dist/esm/SQLEditor.d.ts +3 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +2 -2
- package/dist/esm/components/Chart/BarChart.d.ts +2 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +2 -2
- package/dist/esm/components/Chart/BarList.d.ts +1 -0
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarList.js +2 -2
- package/dist/esm/components/Chart/LineChart.d.ts +2 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +2 -2
- package/dist/esm/components/Chart/PieChart.d.ts +1 -0
- package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/PieChart.js +2 -2
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +7 -4
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +3 -3
- package/dist/esm/components/ReportBuilder/bigDateMap.js +2 -2
- package/dist/esm/components/ReportBuilder/util.js +9 -9
- package/dist/esm/internals/ReportBuilder/PivotForm.js +4 -4
- package/dist/esm/internals/ReportBuilder/PivotList.js +4 -4
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +77 -35
- package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
- package/dist/esm/utils/axisFormatter.js +16 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +1 -0
- package/dist/esm/utils/textProcessing.d.ts +1 -0
- package/dist/esm/utils/textProcessing.d.ts.map +1 -1
- package/dist/esm/utils/textProcessing.js +19 -0
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +15 -0
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ import { generateArrayFromColor, selectColor } from '../../utils/color';
|
|
|
7
7
|
import ChartTooltip from '../../components/Chart/ChartTooltip';
|
|
8
8
|
import getDomain from '../../utils/getDomain';
|
|
9
9
|
import { useEffect, useState } from 'react';
|
|
10
|
-
export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, }) {
|
|
10
|
+
export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, onClickChartElement, }) {
|
|
11
11
|
const [formattedData, setFormattedData] = useState([]);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
if (!data || data.length === 0) {
|
|
@@ -92,6 +92,6 @@ export default function BarChart({ colors, colorMap, yAxisFields, data, containe
|
|
|
92
92
|
'unknown'), type: "linear", fill: getCustomColor(elem.field) ??
|
|
93
93
|
selectColor(elem, colors.length >= yAxisFields.length / (comparison ? 2 : 1)
|
|
94
94
|
? colors
|
|
95
|
-
: generateArrayFromColor(colors.slice(0, 2), yAxisFields.length), yAxisFields.findIndex((field) => field.field === elem.field?.replace('comparison_', ''))), isAnimationActive: isAnimationActive }, elem.field));
|
|
95
|
+
: generateArrayFromColor(colors.slice(0, 2), yAxisFields.length), yAxisFields.findIndex((field) => field.field === elem.field?.replace('comparison_', ''))), isAnimationActive: isAnimationActive, onClick: onClickChartElement }, elem.field));
|
|
96
96
|
})] }) }) }));
|
|
97
97
|
}
|
|
@@ -18,6 +18,7 @@ export interface BarListProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
18
18
|
colors?: string[];
|
|
19
19
|
colorMap?: ColorMapType;
|
|
20
20
|
theme: any;
|
|
21
|
+
onClickChartElement?: (e: any) => void;
|
|
21
22
|
}
|
|
22
23
|
export declare function hexToRgbaWith10PercentAlpha(hex: any): string;
|
|
23
24
|
declare const BarList: React.ForwardRefExoticComponent<BarListProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarList.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAcvD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAuBhD,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"BarList.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAcvD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAuBhD,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACxC;AAYD,wBAAgB,2BAA2B,CAAC,GAAG,KAAA,UAW9C;AAED,QAAA,MAAM,OAAO,qFA2LX,CAAC;AAEH,eAAe,OAAO,CAAC"}
|
|
@@ -36,7 +36,7 @@ export function hexToRgbaWith10PercentAlpha(hex) {
|
|
|
36
36
|
const BarList = React.forwardRef((props, ref) => {
|
|
37
37
|
const { data = [], yAxisFields, xAxisField, xAxisFormat, colors, colorMap = {},
|
|
38
38
|
// valueFormatter = (value: any) => value,valueFormatter
|
|
39
|
-
showAnimation = true, className, containerStyle, theme, ...other } = props;
|
|
39
|
+
showAnimation = true, className, containerStyle, theme, onClickChartElement, ...other } = props;
|
|
40
40
|
const widths = getWidthsFromValues(data.map((item) => item[yAxisFields[0].field] ?? 0));
|
|
41
41
|
const NUM_TO_SHOW = 5;
|
|
42
42
|
if (!data || data.length === 0) {
|
|
@@ -88,7 +88,7 @@ const BarList = React.forwardRef((props, ref) => {
|
|
|
88
88
|
height: '36px',
|
|
89
89
|
marginBottom: '8px',
|
|
90
90
|
borderRadius: '4px',
|
|
91
|
-
}, children: _jsx("div", { style: {
|
|
91
|
+
}, onClick: () => onClickChartElement?.(item), children: _jsx("div", { style: {
|
|
92
92
|
boxSizing: 'content-box',
|
|
93
93
|
position: 'absolute',
|
|
94
94
|
maxWidth: '100%',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { type ColorMapType } from '../../Chart';
|
|
3
|
-
export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, cartesianGridLineColor, }: {
|
|
3
|
+
export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, cartesianGridLineColor, onClickChartElement }: {
|
|
4
4
|
colors?: string[];
|
|
5
5
|
colorMap?: ColorMapType;
|
|
6
6
|
yAxisFields: any[];
|
|
@@ -22,5 +22,6 @@ export default function LineChart({ colors, colorMap, yAxisFields, data, contain
|
|
|
22
22
|
cartesianGridLineStyle: 'solid' | 'dashed';
|
|
23
23
|
comparisonLineStyle: 'solid' | 'dashed';
|
|
24
24
|
cartesianGridLineColor?: string;
|
|
25
|
+
onClickChartElement?: (e: any) => void;
|
|
25
26
|
}): import("react/jsx-runtime").JSX.Element;
|
|
26
27
|
//# sourceMappingURL=LineChart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,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,
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,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,mBAAmB,EACpB,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,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;CACxC,2CA+PA"}
|
|
@@ -8,7 +8,7 @@ import ChartTooltip from '../../components/Chart/ChartTooltip';
|
|
|
8
8
|
import getDomain from '../../utils/getDomain';
|
|
9
9
|
import { useEffect, useState } from 'react';
|
|
10
10
|
import { hashCode } from '../../utils/crypto';
|
|
11
|
-
export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', cartesianGridLineColor, }) {
|
|
11
|
+
export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', cartesianGridLineColor, onClickChartElement }) {
|
|
12
12
|
const [formattedData, setFormattedData] = useState([]);
|
|
13
13
|
useEffect(() => {
|
|
14
14
|
if (!data || data.length === 0) {
|
|
@@ -134,6 +134,6 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
|
|
|
134
134
|
return (_jsx(Area, { name: elem.label, type: "linear", dataKey: elem.field, stroke: getCustomColor(index, elem.field) ??
|
|
135
135
|
selectColor(elem, colors, index - numComparisons), fill: `url(#${uniqueId})`, strokeWidth: 2, dot: false, strokeDasharray: comparison && comparisonLineStyle === 'dashed' && index > 0
|
|
136
136
|
? '5 5'
|
|
137
|
-
: undefined, isAnimationActive: isAnimationActive }, elem.field));
|
|
137
|
+
: undefined, isAnimationActive: isAnimationActive, onClick: onClickChartElement }, elem.field));
|
|
138
138
|
})] }) }) }));
|
|
139
139
|
}
|
|
@@ -55,6 +55,7 @@ export interface DonutChartProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
55
55
|
containerStyle?: CSSProperties;
|
|
56
56
|
className?: string;
|
|
57
57
|
theme?: any;
|
|
58
|
+
onClickChartElement?: (e: any) => void;
|
|
58
59
|
}
|
|
59
60
|
declare const PieChartWrapper: React.ForwardRefExoticComponent<DonutChartProps & React.RefAttributes<HTMLDivElement>>;
|
|
60
61
|
export default PieChartWrapper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PieChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/PieChart.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PieChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/PieChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -161,7 +161,7 @@ export const DonutChartTooltip = ({ active, payload, valueFormatter, theme, }) =
|
|
|
161
161
|
return null;
|
|
162
162
|
};
|
|
163
163
|
const PieChartWrapper = React.forwardRef((props, ref) => {
|
|
164
|
-
const { category = 'pct_of_the_total', index = 'status', data, colors = [], colorMap = {}, variant = 'donut', valueFormatter = defaultValueFormatter, label, showLabel = true, showAnimation = true, showTooltip = true, className, containerStyle, theme, ...other } = props;
|
|
164
|
+
const { category = 'pct_of_the_total', index = 'status', data, colors = [], colorMap = {}, variant = 'donut', valueFormatter = defaultValueFormatter, label, showLabel = true, showAnimation = true, showTooltip = true, className, containerStyle, theme, onClickChartElement, ...other } = props;
|
|
165
165
|
const isDonut = variant == 'donut';
|
|
166
166
|
if (!data || data.length === 0) {
|
|
167
167
|
return (_jsx("div", { style: {
|
|
@@ -188,7 +188,7 @@ const PieChartWrapper = React.forwardRef((props, ref) => {
|
|
|
188
188
|
generateArrayFromColor(colorMap[category]['primary'], data.length)) ??
|
|
189
189
|
(colors.length >= data.length
|
|
190
190
|
? colors
|
|
191
|
-
: generateArrayFromColor(colors.slice(0, 2), data.length)), index, category), cx: "50%", cy: "50%", startAngle: 90, endAngle: -270, innerRadius: isDonut ? '70%' : '0%', outerRadius: "100%", paddingAngle: 0, dataKey: category, nameKey: index, isAnimationActive: true }), _jsx(Tooltip, { wrapperStyle: {
|
|
191
|
+
: generateArrayFromColor(colors.slice(0, 2), data.length)), index, category), cx: "50%", cy: "50%", startAngle: 90, endAngle: -270, innerRadius: isDonut ? '70%' : '0%', outerRadius: "100%", paddingAngle: 0, dataKey: category, nameKey: index, isAnimationActive: true, onClick: onClickChartElement }), _jsx(Tooltip, { wrapperStyle: {
|
|
192
192
|
outline: 'none',
|
|
193
193
|
}, content: ({ active, payload }) => {
|
|
194
194
|
return (_jsx(DonutChartTooltip, { active: active, payload: payload, valueFormatter: valueFormatter, theme: theme }));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { QuillReportProps } from '../../Dashboard';
|
|
3
|
-
export default function QuillChartComponent({ report, onClick, children, }: QuillReportProps): JSX.Element;
|
|
3
|
+
export default function QuillChartComponent({ report, onClick, children, onClickChartElement }: QuillReportProps): JSX.Element;
|
|
4
4
|
//# sourceMappingURL=ChartComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,QAAQ,
|
|
1
|
+
{"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,QAAQ,EACR,mBAAmB,EACpB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA8FhC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useTheme } from '../../hooks';
|
|
3
|
-
export default function QuillChartComponent({ report, onClick, children, }) {
|
|
3
|
+
export default function QuillChartComponent({ report, onClick, children, onClickChartElement }) {
|
|
4
4
|
const theme = useTheme();
|
|
5
5
|
return (_jsx("div", { onClick: () => onClick && onClick(report), style: {
|
|
6
6
|
cursor: 'pointer',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddColumnModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnModal.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAEL,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AddColumnModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnModal.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAEL,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAMzB,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,EACN,sBAAoD,GACrD,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,CAAA;SAAE,KAAK,GAAG,CAAC,OAAO,CAAC;KAC5E,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,sBAAsB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CAC3C,2CAkNA"}
|
|
@@ -6,7 +6,7 @@ import { arrayMove, SortableContext, sortableKeyboardCoordinates, verticalListSo
|
|
|
6
6
|
import { CSS as DND_CSS } from '@dnd-kit/utilities';
|
|
7
7
|
import { ThemeContext } from '../../Context';
|
|
8
8
|
import { QuillColumnSearchEmptyState, } from '../UiComponents';
|
|
9
|
-
import {
|
|
9
|
+
import { snakeAndCamelCaseToTitleCase, } from '../../utils/textProcessing';
|
|
10
10
|
export default function AddColumnModal({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, ColumnSearchEmptyState = QuillColumnSearchEmptyState, }) {
|
|
11
11
|
const [theme] = useContext(ThemeContext);
|
|
12
12
|
const [search, setSearch] = useState('');
|
|
@@ -43,7 +43,7 @@ export default function AddColumnModal({ onSave, orderedColumnNames, setOrderedC
|
|
|
43
43
|
})
|
|
44
44
|
.filter((row) => search.length === 0 ||
|
|
45
45
|
row.includes(search) ||
|
|
46
|
-
|
|
46
|
+
snakeAndCamelCaseToTitleCase(row)
|
|
47
47
|
.toLowerCase()
|
|
48
48
|
.includes(search.toLowerCase())));
|
|
49
49
|
}, [search, orderedColumnNames, selectedColumns]);
|
|
@@ -70,7 +70,10 @@ export default function AddColumnModal({ onSave, orderedColumnNames, setOrderedC
|
|
|
70
70
|
overflowY: 'auto',
|
|
71
71
|
maxWidth: '400px',
|
|
72
72
|
}, children: [searchResults.map((value) => {
|
|
73
|
-
return (_jsx(SortableItem, { selectedColumns: selectedColumns, setSelectedColumns: setSelectedColumns, id: value, label: value
|
|
73
|
+
return (_jsx(SortableItem, { selectedColumns: selectedColumns, setSelectedColumns: setSelectedColumns, id: value, label: value
|
|
74
|
+
.split('.')
|
|
75
|
+
.map((v) => snakeAndCamelCaseToTitleCase(v))
|
|
76
|
+
.join(' | '), SelectColumn: SelectColumn }, value));
|
|
74
77
|
}), search.length > 0 && searchResults.length === 0 && (_jsx(ColumnSearchEmptyState, {}))] }) }) }), _jsxs("div", { style: {
|
|
75
78
|
display: 'flex',
|
|
76
79
|
width: '100%',
|
|
@@ -139,7 +142,7 @@ const SortableItem = ({ id, label, setSelectedColumns, selectedColumns, SelectCo
|
|
|
139
142
|
}
|
|
140
143
|
});
|
|
141
144
|
};
|
|
142
|
-
return (_jsx("div", { style: { userSelect: 'none', ...style }, ref: setNodeRef, children: _jsx(SelectColumn, { isSelected: selectedColumns?.includes(id), setSelected: handleSelect, label:
|
|
145
|
+
return (_jsx("div", { style: { userSelect: 'none', ...style }, ref: setNodeRef, children: _jsx(SelectColumn, { isSelected: selectedColumns?.includes(id), setSelected: handleSelect, label: snakeAndCamelCaseToTitleCase(label), DragHandle: (props) => (_jsx("div", { style: {
|
|
143
146
|
cursor: 'grab',
|
|
144
147
|
}, ...attributes, ...listeners, children: _jsx(props.dragIcon, {}) })) }) }));
|
|
145
148
|
};
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { QuillSelectComponent } from '../QuillSelect';
|
|
4
4
|
import { MemoizedButton, MemoizedSecondaryButton, } from '../UiComponents';
|
|
5
|
-
import {
|
|
5
|
+
import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
|
|
6
6
|
const SORT_VALUE_TO_LABEL = {
|
|
7
7
|
ASC: 'ascending',
|
|
8
8
|
DESC: 'descending',
|
|
@@ -28,7 +28,7 @@ export const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEd
|
|
|
28
28
|
if (!sortData && (!sortData.expr.column || !sortData.expr.value)) {
|
|
29
29
|
return null;
|
|
30
30
|
}
|
|
31
|
-
return (_jsx("div", { children: _jsx(SortPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, sortLabel: `${
|
|
31
|
+
return (_jsx("div", { children: _jsx(SortPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, sortLabel: `${snakeAndCamelCaseToTitleCase(sortData.expr.column) || snakeAndCamelCaseToTitleCase(sortData.expr.value)} ${SORT_VALUE_TO_LABEL[sortData.type]}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: _jsx(EditPopover, { onSave: (column, direction) => {
|
|
32
32
|
setIsOpen(false);
|
|
33
33
|
onSave(column, direction);
|
|
34
34
|
}, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value, direction: sortData.type, Select: Select, Button: Button, SecondaryButton: SecondaryButton }) }) }));
|
|
@@ -45,7 +45,7 @@ export const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, dire
|
|
|
45
45
|
setSortColumn(e.target.value);
|
|
46
46
|
}, options: [
|
|
47
47
|
...columns.map((column) => ({
|
|
48
|
-
label:
|
|
48
|
+
label: snakeAndCamelCaseToTitleCase(column.split('.')[1] || ''),
|
|
49
49
|
value: column.split('.')[1],
|
|
50
50
|
})),
|
|
51
51
|
], width: 200 }), _jsx(Select, { label: "Sort Direction", value: sortDirection, onChange: (e) => {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// A giant map of partial objects keys to functions that take the root node
|
|
2
2
|
// and return a strinified version of the node. Used to populate the filters.
|
|
3
|
-
import {
|
|
3
|
+
import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
|
|
4
4
|
/**
|
|
5
5
|
* Trims off the _at suffix of columnNames so "created_at" becomes "created"
|
|
6
6
|
*/
|
|
7
7
|
function cleanDateFieldName(fieldName) {
|
|
8
8
|
if (!fieldName)
|
|
9
9
|
return undefined;
|
|
10
|
-
return
|
|
10
|
+
return snakeAndCamelCaseToTitleCase(fieldName.replace('_at', ''));
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* A big map of partial objects and a callback to convert each to a string.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// A collection of reusable, pure, utility functions for the Report Builder.
|
|
2
2
|
import { getQuarter, format, addMinutes, } from 'date-fns';
|
|
3
3
|
import { DATE_DESCRIPTION_MAP } from './bigDateMap';
|
|
4
|
-
import {
|
|
4
|
+
import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
|
|
5
5
|
import { isAfterBigQuery, isBeforeBigQuery, isEqualsBigQuery, isInTheLastIntervalBigQuery, isTheCurrentIntervalBigQuery, } from '../../utils/parserBigQuery';
|
|
6
6
|
import { isInTheLastIntervalPostgres, isTheCurrentIntervalPostgres, } from '../../utils/parserPostgres';
|
|
7
7
|
/**
|
|
@@ -123,7 +123,7 @@ export function formatDateComparisonNode(node) {
|
|
|
123
123
|
}
|
|
124
124
|
export function getInTheCurrentIntervalSentence(node, databaseType) {
|
|
125
125
|
if (databaseType === 'BigQuery') {
|
|
126
|
-
const dateColumn =
|
|
126
|
+
const dateColumn = snakeAndCamelCaseToTitleCase(node.left.args.value[0].column);
|
|
127
127
|
const periodValue = node.left.args.value[1].column.toLowerCase();
|
|
128
128
|
return `${dateColumn} in the current ${periodValue}`;
|
|
129
129
|
}
|
|
@@ -136,7 +136,7 @@ const BIG_QUERY_DAY_TO_INTERVAL_MAP = {
|
|
|
136
136
|
};
|
|
137
137
|
export function getInTheLastIntervalSentence(node, databaseType) {
|
|
138
138
|
if (databaseType === 'BigQuery') {
|
|
139
|
-
const dateColumn =
|
|
139
|
+
const dateColumn = snakeAndCamelCaseToTitleCase(node.left.column || node.left.args.value[0].columns || '');
|
|
140
140
|
const amount = node.right.args.value[1].expr.value;
|
|
141
141
|
let unit = node.right.args.value[1].unit.toLowerCase();
|
|
142
142
|
if (unit.includes('*')) {
|
|
@@ -148,7 +148,7 @@ export function getInTheLastIntervalSentence(node, databaseType) {
|
|
|
148
148
|
}
|
|
149
149
|
export function getInThePreviousIntervalSentence(node, databaseType) {
|
|
150
150
|
if (databaseType === 'BigQuery') {
|
|
151
|
-
const dateColumn =
|
|
151
|
+
const dateColumn = snakeAndCamelCaseToTitleCase(node.left.args.value[0].column);
|
|
152
152
|
const periodValue = node.left.args.value[1].column.toLowerCase();
|
|
153
153
|
return `${dateColumn} in the previous ${periodValue}`;
|
|
154
154
|
}
|
|
@@ -156,7 +156,7 @@ export function getInThePreviousIntervalSentence(node, databaseType) {
|
|
|
156
156
|
}
|
|
157
157
|
export function getIsEqualsSentence(node, databaseType) {
|
|
158
158
|
if (databaseType === 'BigQuery') {
|
|
159
|
-
const dateColumn =
|
|
159
|
+
const dateColumn = snakeAndCamelCaseToTitleCase(node.left.args.value[1].column);
|
|
160
160
|
const type = node.right.args.value[1].column.toLowerCase();
|
|
161
161
|
const value = node.right.args.value[0].value;
|
|
162
162
|
// using date-fns can I parse the date to short month year
|
|
@@ -176,7 +176,7 @@ export function getIsEqualsSentence(node, databaseType) {
|
|
|
176
176
|
}
|
|
177
177
|
export function getIsAfterSentence(node, databaseType) {
|
|
178
178
|
if (databaseType === 'BigQuery') {
|
|
179
|
-
const dateColumn =
|
|
179
|
+
const dateColumn = snakeAndCamelCaseToTitleCase(node.left?.column || node.left?.args?.value[0]?.columns || '');
|
|
180
180
|
const value = node.right?.value || node.right?.args?.value[0]?.value || '';
|
|
181
181
|
if (!dateColumn || !value) {
|
|
182
182
|
return null;
|
|
@@ -187,7 +187,7 @@ export function getIsAfterSentence(node, databaseType) {
|
|
|
187
187
|
}
|
|
188
188
|
export function getIsBeforeSentence(node, databaseType) {
|
|
189
189
|
if (databaseType === 'BigQuery') {
|
|
190
|
-
const dateColumn =
|
|
190
|
+
const dateColumn = snakeAndCamelCaseToTitleCase(node.left?.column || node.left?.args?.value[0]?.columns || '');
|
|
191
191
|
const value = node.right?.value || node.right?.args?.value[0]?.value || '';
|
|
192
192
|
if (!dateColumn || !value) {
|
|
193
193
|
return null;
|
|
@@ -367,14 +367,14 @@ export function tryConvertDateEquality(node, databaseType) {
|
|
|
367
367
|
if (isDateTruncEquals(node, databaseType)) {
|
|
368
368
|
const columnNode = node.left.args.value[1];
|
|
369
369
|
const columnName = columnNode.column ?? columnNode.value;
|
|
370
|
-
const cleanColumnName =
|
|
370
|
+
const cleanColumnName = snakeAndCamelCaseToTitleCase(columnName.replaceAll('_at', ''));
|
|
371
371
|
const prettyDateSuffix = dateTruncSuffixToString(node, databaseType);
|
|
372
372
|
return `${cleanColumnName} ${prettyDateSuffix}`;
|
|
373
373
|
}
|
|
374
374
|
else if (isExtractEquals(node)) {
|
|
375
375
|
const columnNode = node.left.args.source;
|
|
376
376
|
const columnName = columnNode.column ?? columnNode.value;
|
|
377
|
-
const cleanColumnName =
|
|
377
|
+
const cleanColumnName = snakeAndCamelCaseToTitleCase(columnName.replaceAll('_at', ''));
|
|
378
378
|
const prettyDateSuffix = extractSuffixToString(node);
|
|
379
379
|
return `${cleanColumnName} ${prettyDateSuffix}`;
|
|
380
380
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { QuillPivotColumnContainer, } from '../../components/UiComponents';
|
|
4
|
-
import {
|
|
4
|
+
import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
|
|
5
5
|
import { numberFormatOptions } from '../../ChartBuilder';
|
|
6
6
|
import { getPossiblePivotFieldOptions } from '../../utils/pivotProcessing';
|
|
7
7
|
export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, columns, uniqueValues, onDelete, SecondaryButtonComponent, SelectComponent, PivotColumnContainer = QuillPivotColumnContainer, }) {
|
|
@@ -18,21 +18,21 @@ export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumn
|
|
|
18
18
|
setPivotRowField(e.target.value === '' ? undefined : e.target.value);
|
|
19
19
|
}, options: allowedRowFields.map((field) => {
|
|
20
20
|
return {
|
|
21
|
-
label:
|
|
21
|
+
label: snakeAndCamelCaseToTitleCase(field),
|
|
22
22
|
value: field,
|
|
23
23
|
};
|
|
24
24
|
}), width: 200 }), _jsx(SelectComponent, { id: "pivot-row-field", label: "Column field", value: pivotColumnField, onChange: (e) => {
|
|
25
25
|
setPivotColumnField(e.target.value === '' ? undefined : e.target.value);
|
|
26
26
|
}, options: allowedColumnFields.map((field) => {
|
|
27
27
|
return {
|
|
28
|
-
label:
|
|
28
|
+
label: snakeAndCamelCaseToTitleCase(field),
|
|
29
29
|
value: field,
|
|
30
30
|
};
|
|
31
31
|
}), width: 200 }), _jsx(SelectComponent, { id: "pivot-row-field", label: "Value field", value: pivotValueField, onChange: (e) => {
|
|
32
32
|
setPivotValueField(e.target.value === '' ? undefined : e.target.value);
|
|
33
33
|
}, options: allowedValueFields.map((field) => {
|
|
34
34
|
return {
|
|
35
|
-
label:
|
|
35
|
+
label: snakeAndCamelCaseToTitleCase(field),
|
|
36
36
|
value: field,
|
|
37
37
|
};
|
|
38
38
|
}), width: 200 }), _jsx(SelectComponent, { id: "pivot-row-field", label: "Aggregation type", value: pivotAggregation, onChange: (e) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { quillFormat } from '../../utils/valueFormatter';
|
|
3
|
-
import {
|
|
3
|
+
import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
|
|
4
4
|
import { QuillCard } from '../../components/QuillCard';
|
|
5
5
|
export const PivotCard = ({ pivotTable, theme, index, onSelectPivot, selectedPivotIndex, onEditPivot, ButtonComponent, showEdit = false, clickable = true, onClose, minHeight = 0, CardComponent = QuillCard, LabelComponent, TextComponent, HeaderComponent, }) => {
|
|
6
6
|
const maxRowsInPivotPeak = 5;
|
|
@@ -27,14 +27,14 @@ export const PivotCard = ({ pivotTable, theme, index, onSelectPivot, selectedPiv
|
|
|
27
27
|
textAlign: 'left',
|
|
28
28
|
whiteSpace: 'nowrap',
|
|
29
29
|
textOverflow: 'ellipsis',
|
|
30
|
-
}, children: _jsx(LabelComponent, { label:
|
|
30
|
+
}, children: _jsx(LabelComponent, { label: snakeAndCamelCaseToTitleCase(pivotTable.pivot.rowField) }) }, pivotTable.pivot.rowField)), pivotTable.pivot.columnField && (_jsx("th", { style: {
|
|
31
31
|
fontWeight: 600,
|
|
32
32
|
paddingRight: 5,
|
|
33
33
|
flex: 1,
|
|
34
34
|
textAlign: 'left',
|
|
35
35
|
whiteSpace: 'nowrap',
|
|
36
36
|
textOverflow: 'ellipsis',
|
|
37
|
-
}, children: _jsx(LabelComponent, { label:
|
|
37
|
+
}, children: _jsx(LabelComponent, { label: snakeAndCamelCaseToTitleCase(pivotTable.pivot.columnField) }) }, pivotTable.pivot.columnField)), !pivotTable.pivot.columnField &&
|
|
38
38
|
pivotTable.pivot.valueField && (_jsx("th", { style: {
|
|
39
39
|
fontWeight: 600,
|
|
40
40
|
paddingRight: 5,
|
|
@@ -42,7 +42,7 @@ export const PivotCard = ({ pivotTable, theme, index, onSelectPivot, selectedPiv
|
|
|
42
42
|
textAlign: 'left',
|
|
43
43
|
whiteSpace: 'nowrap',
|
|
44
44
|
textOverflow: 'ellipsis',
|
|
45
|
-
}, children: _jsx(LabelComponent, { label:
|
|
45
|
+
}, children: _jsx(LabelComponent, { label: snakeAndCamelCaseToTitleCase(pivotTable.pivot.valueField) }) }, pivotTable.pivot.valueField))] }) }), _jsx("div", { style: {
|
|
46
46
|
paddingLeft: '2px',
|
|
47
47
|
width: '100%',
|
|
48
48
|
}, children: _jsx(TextComponent, { label: 'No results' }) })] })) : (_jsxs("table", { children: [_jsx("thead", { children: _jsx("tr", { children: pivotTable.columns.map((column) => (_jsx("th", { style: {
|
|
@@ -104,7 +104,7 @@ export declare function generatePivotTable(pivot: Pivot, data: any, dateRange: {
|
|
|
104
104
|
} | undefined, isComparison: boolean, rowLimit?: number, compRange?: {
|
|
105
105
|
start: Date;
|
|
106
106
|
end: Date;
|
|
107
|
-
} | undefined): {
|
|
107
|
+
} | undefined, dateBucket?: string): {
|
|
108
108
|
rows: any[];
|
|
109
109
|
columns: {
|
|
110
110
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;AAuBf,OAAO,EACL,oBAAoB,EAKrB,MAAM,+BAA+B,CAAC;AAavC,OAAO,EAAU,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkBD,MAAM,WAAW,eAAe;IAC9B,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,UAAU,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC;IACnB,wBAAwB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACvE,gBAAgB,EAAE,CAAC,KAAK,EAAE;QACxB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,eAAe,EAAE,SAAS,CAAC;KAC5B,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3D,cAAc,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1D,aAAa,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACzE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACpE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IACvE,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,iBAAiB,EAAE,GAAG,CAAC;IACvB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,eAAO,MAAM,UAAU,m3BAqDpB,eAAe,4CA8xBjB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,EAAE,EACH,MAAM,EAAE,MAAM;;;;IAsBf;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAiBvD;AA0MD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,WAY5C;AAgCD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,GAAG,EACT,SAAS,EAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,SAAS,EACjD,YAAY,EAAE,OAAO,EACrB,QAAQ,SAAK,EACb,SAAS,GAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,SAAqB,EAC7D,UAAU,CAAC,EAAE,MAAM;;;;;;EAsdpB"}
|