@quillsql/react 2.11.15 → 2.11.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 +117 -42
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +44 -18
- package/dist/cjs/ChartBuilder.d.ts +195 -28
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +124 -63
- package/dist/cjs/ChartEditor.d.ts +114 -18
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +47 -15
- package/dist/cjs/Dashboard.d.ts +148 -90
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +46 -152
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +5 -2
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/cjs/QuillProvider.d.ts +105 -2
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +59 -0
- package/dist/cjs/ReportBuilder.d.ts +188 -34
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +551 -426
- package/dist/cjs/SQLEditor.d.ts +158 -29
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +52 -32
- package/dist/cjs/Table.d.ts +119 -15
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +37 -6
- package/dist/cjs/TableChart.d.ts.map +1 -1
- package/dist/cjs/TableChart.js +0 -194
- package/dist/cjs/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -0
- package/dist/cjs/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -3
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +3 -3
- package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -0
- package/dist/cjs/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +6 -7
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.js +75 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +39 -17
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +6 -9
- package/dist/cjs/components/QuillSelect.d.ts +4 -1
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +13 -8
- package/dist/cjs/components/QuillTable.d.ts +16 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +4 -4
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +33 -14
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +19 -19
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +18 -20
- package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +40 -20
- package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +68 -121
- package/dist/cjs/components/ReportBuilder/util.d.ts +3 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +34 -8
- package/dist/cjs/components/UiComponents.d.ts +98 -97
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +132 -112
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +3 -1
- package/dist/cjs/hooks/useTheme.d.ts +7 -0
- package/dist/cjs/hooks/useTheme.d.ts.map +1 -0
- package/dist/cjs/hooks/useTheme.js +12 -0
- package/dist/cjs/index.d.ts +10 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +2 -0
- package/dist/cjs/utils/width.d.ts +12 -0
- package/dist/cjs/utils/width.d.ts.map +1 -0
- package/dist/cjs/utils/width.js +25 -0
- package/dist/esm/Chart.d.ts +117 -42
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +45 -19
- package/dist/esm/ChartBuilder.d.ts +195 -28
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +124 -63
- package/dist/esm/ChartEditor.d.ts +114 -18
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +51 -19
- package/dist/esm/Dashboard.d.ts +148 -90
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +49 -153
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -3
- package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/esm/QuillProvider.d.ts +105 -2
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +59 -0
- package/dist/esm/ReportBuilder.d.ts +188 -34
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +553 -428
- package/dist/esm/SQLEditor.d.ts +158 -29
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +53 -33
- package/dist/esm/Table.d.ts +119 -15
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +38 -7
- package/dist/esm/TableChart.d.ts.map +1 -1
- package/dist/esm/TableChart.js +0 -194
- package/dist/esm/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -0
- package/dist/esm/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/esm/components/Chart/LineChart.d.ts +2 -3
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +3 -3
- package/dist/esm/components/Chart/PieChart.d.ts.map +1 -0
- package/dist/esm/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +5 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/DashboardFilter.js +71 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +39 -17
- package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +6 -9
- package/dist/esm/components/QuillSelect.d.ts +4 -1
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +14 -9
- package/dist/esm/components/QuillTable.d.ts +16 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +4 -4
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.js +34 -15
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +20 -20
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +20 -22
- package/dist/esm/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +33 -13
- package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +67 -119
- package/dist/esm/components/ReportBuilder/util.d.ts +3 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +31 -7
- package/dist/esm/components/UiComponents.d.ts +98 -97
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +125 -110
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useTheme.d.ts +7 -0
- package/dist/esm/hooks/useTheme.d.ts.map +1 -0
- package/dist/esm/hooks/useTheme.js +10 -0
- package/dist/esm/index.d.ts +10 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +2 -0
- package/dist/esm/utils/width.d.ts +12 -0
- package/dist/esm/utils/width.d.ts.map +1 -0
- package/dist/esm/utils/width.js +21 -0
- package/package.json +1 -1
- package/dist/cjs/BarList.d.ts.map +0 -1
- package/dist/cjs/PieChart.d.ts.map +0 -1
- package/dist/esm/BarList.d.ts.map +0 -1
- package/dist/esm/PieChart.d.ts.map +0 -1
- /package/dist/cjs/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
- /package/dist/esm/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonComponentProps } from '../../components/UiComponents';
|
|
1
3
|
export interface Pivot {
|
|
2
4
|
rowField: string;
|
|
3
5
|
rowFieldType: string;
|
|
@@ -8,7 +10,7 @@ export interface Pivot {
|
|
|
8
10
|
title?: string;
|
|
9
11
|
triggerButtonText?: string;
|
|
10
12
|
}
|
|
11
|
-
export
|
|
13
|
+
export interface PivotModalProps {
|
|
12
14
|
pivotRowField: any;
|
|
13
15
|
setPivotRowField: any;
|
|
14
16
|
pivotColumnField: any;
|
|
@@ -22,11 +24,23 @@ export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumn
|
|
|
22
24
|
selectedTable: any;
|
|
23
25
|
SelectComponent: any;
|
|
24
26
|
ButtonComponent: any;
|
|
25
|
-
SecondaryButtonComponent:
|
|
26
|
-
PopoverComponent:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
SecondaryButtonComponent: (props: ButtonComponentProps) => JSX.Element;
|
|
28
|
+
PopoverComponent: (props: {
|
|
29
|
+
isOpen: boolean;
|
|
30
|
+
setIsOpen: (isOpen: boolean) => void;
|
|
31
|
+
triggerLabel?: string | undefined;
|
|
32
|
+
popoverTitle?: string | undefined;
|
|
33
|
+
popoverChildren: ReactNode;
|
|
34
|
+
}) => JSX.Element;
|
|
35
|
+
HeaderComponent: (props: {
|
|
36
|
+
label: string;
|
|
37
|
+
}) => JSX.Element;
|
|
38
|
+
LabelComponent: (props: {
|
|
39
|
+
label: string;
|
|
40
|
+
}) => JSX.Element;
|
|
41
|
+
TextComponent: (props: {
|
|
42
|
+
label: string;
|
|
43
|
+
}) => JSX.Element;
|
|
30
44
|
selectedPivotIndex: any;
|
|
31
45
|
setSelectedPivotIndex: any;
|
|
32
46
|
removePivot: any;
|
|
@@ -43,15 +57,16 @@ export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumn
|
|
|
43
57
|
setCreatedPivots: any;
|
|
44
58
|
recommendedPivots: any;
|
|
45
59
|
setRecommendedPivots: any;
|
|
46
|
-
triggerButtonText?: string
|
|
47
|
-
showPivotEditButton?: boolean
|
|
48
|
-
showEditOnPivotClick?: boolean
|
|
49
|
-
selectPivotOnEdit?: boolean
|
|
50
|
-
showTrigger?: boolean
|
|
51
|
-
rightAlign?: boolean
|
|
60
|
+
triggerButtonText?: string;
|
|
61
|
+
showPivotEditButton?: boolean;
|
|
62
|
+
showEditOnPivotClick?: boolean;
|
|
63
|
+
selectPivotOnEdit?: boolean;
|
|
64
|
+
showTrigger?: boolean;
|
|
65
|
+
rightAlign?: boolean;
|
|
52
66
|
parentRef: any;
|
|
53
|
-
recommendPivotCount?: number
|
|
54
|
-
}
|
|
67
|
+
recommendPivotCount?: number;
|
|
68
|
+
}
|
|
69
|
+
export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText, showPivotEditButton, showEditOnPivotClick, selectPivotOnEdit, showTrigger, rightAlign, parentRef, recommendPivotCount, }: PivotModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
55
70
|
export declare function generatePivotTableYAxis(pivot: any, cols: any, format: any): any;
|
|
56
71
|
export declare function isDateField(fieldType: any): boolean;
|
|
57
72
|
export declare function generatePivotTable(pivot: Pivot, data: any, dateRange: any, isComparison: boolean, rowLimit?: number, compRange?: any): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ const date_fns_1 = require("date-fns");
|
|
|
11
11
|
const valueFormatter_1 = require("../../utils/valueFormatter");
|
|
12
12
|
const ChartBuilder_1 = require("../../ChartBuilder");
|
|
13
13
|
const textProcessing_1 = require("../../utils/textProcessing");
|
|
14
|
+
const util_1 = require("../../components/ReportBuilder/util");
|
|
15
|
+
const ast_1 = require("../../components/ReportBuilder/ast");
|
|
14
16
|
const QuillHover = () => {
|
|
15
17
|
return ((0, jsx_runtime_1.jsx)("style", { children: `
|
|
16
18
|
.quill-hover {
|
|
@@ -73,7 +75,7 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
73
75
|
return (columns || []).reduce((map, col) => {
|
|
74
76
|
// only use columns shown in the report builder's table
|
|
75
77
|
// also filter out id
|
|
76
|
-
if (col.field !== 'id'
|
|
78
|
+
if (col.field !== 'id') {
|
|
77
79
|
map[col.field] = col.fieldType || col.format;
|
|
78
80
|
}
|
|
79
81
|
return map;
|
|
@@ -193,7 +195,7 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
193
195
|
return pts;
|
|
194
196
|
}, [createdPivots, data]);
|
|
195
197
|
const samplePivotTable = (0, react_1.useMemo)(() => {
|
|
196
|
-
if (!pivotAggregation
|
|
198
|
+
if (!pivotAggregation) {
|
|
197
199
|
return null;
|
|
198
200
|
}
|
|
199
201
|
const pivot = {
|
|
@@ -229,10 +231,7 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
229
231
|
position: 'absolute',
|
|
230
232
|
top: -2,
|
|
231
233
|
right: -2,
|
|
232
|
-
} })) }), (0, jsx_runtime_1.jsx)(
|
|
233
|
-
setShowUpdatePivot(false);
|
|
234
|
-
setPopUpTitle('Add Pivot');
|
|
235
|
-
}, style: rightAlign ? { right: 0 } : {}, parentRef: parentRef, showTrigger: showTrigger, label: triggerButtonText, isOpen: isOpen, setIsOpen: setIsOpen, onClick: () => {
|
|
234
|
+
} })) }), showTrigger && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
|
|
236
235
|
if (columns.length === 0) {
|
|
237
236
|
setIsOpen(false);
|
|
238
237
|
}
|
|
@@ -243,15 +242,19 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
243
242
|
if (!isOpen && recommendedPivots.length === 0) {
|
|
244
243
|
refreshPivots();
|
|
245
244
|
}
|
|
245
|
+
setIsOpen(!isOpen);
|
|
246
246
|
setShowUpdatePivot(false);
|
|
247
|
-
},
|
|
247
|
+
}, label: triggerButtonText })), (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: isOpen, setIsOpen: (isOpen) => {
|
|
248
|
+
if (!isOpen) {
|
|
249
|
+
setShowUpdatePivot(false);
|
|
250
|
+
setPopUpTitle('Add Pivot');
|
|
251
|
+
}
|
|
252
|
+
setIsOpen(isOpen);
|
|
253
|
+
}, popoverChildren: (0, jsx_runtime_1.jsx)("div", { children: showUpdatePivot ? ((0, jsx_runtime_1.jsxs)("div", { className: "ref-in-use", ref: editModalRef, style: {
|
|
248
254
|
backgroundColor: 'rgb(255, 255, 255)',
|
|
249
255
|
display: 'flex',
|
|
250
256
|
flexDirection: 'column',
|
|
251
|
-
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, {
|
|
252
|
-
marginBottom: 20,
|
|
253
|
-
minHeight: 160,
|
|
254
|
-
}, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: samplePivotTable, theme: theme, index: 0, onSelectPivot: () => { }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: ButtonComponent, showEdit: false, clickable: false, minHeight: 140, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) })) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
257
|
+
}, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { label: popUpTitle }), (0, jsx_runtime_1.jsx)("div", { style: { height: 12 } }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
255
258
|
display: 'flex',
|
|
256
259
|
flexDirection: 'column',
|
|
257
260
|
gap: 10,
|
|
@@ -262,49 +265,55 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
|
|
|
262
265
|
flexDirection: 'row',
|
|
263
266
|
gap: 20,
|
|
264
267
|
marginBottom: 5,
|
|
265
|
-
}, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, {
|
|
266
|
-
setPivotRowField(e === ''
|
|
268
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Row Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { id: "pivot-row-field", value: pivotRowField, onChange: (e) => {
|
|
269
|
+
setPivotRowField(e.target.value === ''
|
|
270
|
+
? undefined
|
|
271
|
+
: e.target.value);
|
|
267
272
|
}, options: [
|
|
268
273
|
...columnSelectOptions.filter((option) => {
|
|
269
274
|
const format = columns.find((col) => col.field === option.value)?.format;
|
|
270
275
|
return (format === 'string' ||
|
|
271
|
-
ChartBuilder_1.dateFormatOptions.includes(format)
|
|
276
|
+
ChartBuilder_1.dateFormatOptions.includes(format) ||
|
|
277
|
+
(0, util_1.isIdColumn)(option.value));
|
|
272
278
|
}),
|
|
273
|
-
]
|
|
274
|
-
setPivotColumnField(e === ''
|
|
279
|
+
] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Column Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { id: "pivot-row-field", value: pivotColumnField, onChange: (e) => {
|
|
280
|
+
setPivotColumnField(e.target.value === ''
|
|
281
|
+
? undefined
|
|
282
|
+
: e.target.value);
|
|
275
283
|
}, options: [
|
|
276
284
|
...columnSelectOptions.filter((option) => {
|
|
277
|
-
return (columns.find((col) => col.field === option.value)
|
|
278
|
-
?.format === 'string');
|
|
285
|
+
return (columns.find((col) => col.field === option.value)?.format === 'string');
|
|
279
286
|
}),
|
|
280
|
-
]
|
|
287
|
+
] })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
281
288
|
display: 'flex',
|
|
282
289
|
flexDirection: 'row',
|
|
283
290
|
gap: 20,
|
|
284
291
|
marginBottom: 20,
|
|
285
|
-
}, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, {
|
|
286
|
-
setPivotValueField(e === ''
|
|
292
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Value Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { id: "pivot-row-field", value: pivotValueField, onChange: (e) => {
|
|
293
|
+
setPivotValueField(e.target.value === ''
|
|
294
|
+
? undefined
|
|
295
|
+
: e.target.value);
|
|
287
296
|
}, options: [
|
|
288
297
|
...columnSelectOptions.filter((option) => {
|
|
289
|
-
return (option.value === '' ||
|
|
290
|
-
ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === option.value)?.format))
|
|
298
|
+
return ((option.value === '' ||
|
|
299
|
+
ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === option.value)?.format)) &&
|
|
300
|
+
!(0, util_1.isIdColumn)(option.value));
|
|
291
301
|
}),
|
|
292
|
-
]
|
|
293
|
-
if (e !== 'count' &&
|
|
302
|
+
] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { label: "Aggregation Type" }), (0, jsx_runtime_1.jsx)(SelectComponent, { id: "pivot-row-field", value: pivotAggregation, onChange: (e) => {
|
|
303
|
+
if (e.target.value !== 'count' &&
|
|
294
304
|
pivotValueField &&
|
|
295
305
|
!ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField)?.format)) {
|
|
296
306
|
setPivotValueField(null);
|
|
297
307
|
}
|
|
298
|
-
setPivotAggregation(e === ''
|
|
308
|
+
setPivotAggregation(e.target.value === ''
|
|
309
|
+
? undefined
|
|
310
|
+
: e.target.value);
|
|
299
311
|
}, options: [
|
|
300
312
|
...['sum', 'average', 'count', 'max', 'min'].map((option) => {
|
|
301
313
|
return { label: option, value: option };
|
|
302
314
|
}),
|
|
303
315
|
] })] })] })] }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(ButtonComponent, { id: "custom-button", onClick: () => {
|
|
304
316
|
const errors = [];
|
|
305
|
-
if (!pivotRowField) {
|
|
306
|
-
errors.push('Row field cannot be empty');
|
|
307
|
-
}
|
|
308
317
|
if (!pivotValueField && pivotAggregation !== 'count') {
|
|
309
318
|
errors.push("Value field cannot be empty when aggregation is not 'count'");
|
|
310
319
|
}
|
|
@@ -547,7 +556,7 @@ const fixBigQueryData = (data = []) => {
|
|
|
547
556
|
function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = null) {
|
|
548
557
|
// If there is no rowField, aggregate on the valueField
|
|
549
558
|
if (!pivot.rowField) {
|
|
550
|
-
return valueFieldAggregation(data, pivot.valueField, pivot.aggregationType);
|
|
559
|
+
return valueFieldAggregation(data, pivot.valueField, pivot.aggregationType, isComparison);
|
|
551
560
|
}
|
|
552
561
|
// Handle edge-case for BigQuery objects.
|
|
553
562
|
data = fixBigQueryData(data);
|
|
@@ -767,15 +776,6 @@ function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1,
|
|
|
767
776
|
}
|
|
768
777
|
break;
|
|
769
778
|
case 'average':
|
|
770
|
-
value = filteredData.length
|
|
771
|
-
? filteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / filteredData.length
|
|
772
|
-
: 0;
|
|
773
|
-
if (isComparison) {
|
|
774
|
-
comparisonValue = comparisonFilteredData.length
|
|
775
|
-
? comparisonFilteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / comparisonFilteredData.length
|
|
776
|
-
: 0;
|
|
777
|
-
}
|
|
778
|
-
break;
|
|
779
779
|
case 'avg':
|
|
780
780
|
value = filteredData.length
|
|
781
781
|
? filteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / filteredData.length
|
|
@@ -879,12 +879,18 @@ function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1,
|
|
|
879
879
|
if (pivot.rowFieldType === 'date') {
|
|
880
880
|
return new Date(a[pivot.rowField]) - new Date(b[pivot.rowField]);
|
|
881
881
|
}
|
|
882
|
+
else if ((0, ast_1.isNumericColumnType)(pivot.rowFieldType)) {
|
|
883
|
+
return a[pivot.rowField] - b[pivot.rowField];
|
|
884
|
+
}
|
|
882
885
|
return a[pivot.rowField].localeCompare(b[pivot.rowField]);
|
|
883
886
|
}
|
|
884
887
|
else {
|
|
885
888
|
if (pivot.rowFieldType === 'date') {
|
|
886
889
|
return new Date(b[pivot.rowField]) - new Date(a[pivot.rowField]);
|
|
887
890
|
}
|
|
891
|
+
else if ((0, ast_1.isNumericColumnType)(pivot.rowFieldType)) {
|
|
892
|
+
return a[pivot.rowField] - b[pivot.rowField];
|
|
893
|
+
}
|
|
888
894
|
return b[pivot.rowField].localeCompare(a[pivot.rowField]);
|
|
889
895
|
}
|
|
890
896
|
});
|
|
@@ -892,30 +898,45 @@ function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1,
|
|
|
892
898
|
return { rows: pivotRows, columns };
|
|
893
899
|
}
|
|
894
900
|
exports.generatePivotTable = generatePivotTable;
|
|
895
|
-
function valueFieldAggregation(data, valueField, aggregationType) {
|
|
896
|
-
let value;
|
|
901
|
+
function valueFieldAggregation(data, valueField, aggregationType, isComparison) {
|
|
902
|
+
let value = 0;
|
|
903
|
+
let comparisonValue = 0;
|
|
897
904
|
switch (aggregationType) {
|
|
898
905
|
case 'sum':
|
|
899
906
|
value = data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0);
|
|
907
|
+
if (isComparison) {
|
|
908
|
+
comparisonValue = data.reduce((sum, item) => sum + parseFloat(item[`comparison_${valueField}`] ?? 0), 0);
|
|
909
|
+
}
|
|
900
910
|
break;
|
|
901
911
|
case 'count':
|
|
902
|
-
value = data.
|
|
912
|
+
value = data.reduce((count, item) => count + (item[valueField] ? 1 : 0), 0);
|
|
913
|
+
if (isComparison) {
|
|
914
|
+
comparisonValue = data.reduce((count, item) => count + (item[`comparison_${valueField}`] ? 1 : 0), 0);
|
|
915
|
+
}
|
|
903
916
|
break;
|
|
904
917
|
case 'avg':
|
|
905
|
-
value = data.length
|
|
906
|
-
? data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) / data.length
|
|
907
|
-
: 0;
|
|
908
|
-
break;
|
|
909
918
|
case 'average':
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
919
|
+
const count = data.reduce((count, item) => count + (item[valueField] ? 1 : 0), 0);
|
|
920
|
+
value =
|
|
921
|
+
data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) /
|
|
922
|
+
(count === 0 ? 1 : count);
|
|
923
|
+
if (isComparison) {
|
|
924
|
+
const comparisonCount = data.reduce((count, item) => count + (item[`comparison_${valueField}`] ? 1 : 0), 0);
|
|
925
|
+
comparisonValue =
|
|
926
|
+
data.reduce((sum, item) => sum + parseFloat(item[`comparison_${valueField}`] ?? 0), 0) / (comparisonCount === 0 ? 1 : comparisonCount);
|
|
927
|
+
}
|
|
913
928
|
break;
|
|
914
929
|
case 'max':
|
|
915
930
|
value = data.reduce((max, item) => Math.max(max, parseFloat(item[valueField] ?? 0)), -Infinity);
|
|
931
|
+
if (isComparison) {
|
|
932
|
+
comparisonValue = data.reduce((max, item) => Math.max(max, parseFloat(item[`comparison_${valueField}`] ?? 0)), -Infinity);
|
|
933
|
+
}
|
|
916
934
|
break;
|
|
917
935
|
case 'min':
|
|
918
936
|
value = data.reduce((min, item) => Math.min(min, parseFloat(item[valueField] ?? 0)), Infinity);
|
|
937
|
+
if (isComparison) {
|
|
938
|
+
comparisonValue = data.reduce((min, item) => Math.min(min, parseFloat(item[`comparison_${valueField}`] ?? 0)), Infinity);
|
|
939
|
+
}
|
|
919
940
|
break;
|
|
920
941
|
// Implement other aggregation types as needed
|
|
921
942
|
default:
|
|
@@ -923,6 +944,9 @@ function valueFieldAggregation(data, valueField, aggregationType) {
|
|
|
923
944
|
}
|
|
924
945
|
const row = {};
|
|
925
946
|
row[valueField] = value;
|
|
947
|
+
if (isComparison) {
|
|
948
|
+
row[`comparison_${valueField}`] = comparisonValue;
|
|
949
|
+
}
|
|
926
950
|
return {
|
|
927
951
|
rows: [row],
|
|
928
952
|
columns: [{ label: (0, textProcessing_1.snakeCaseToTitleCase)(valueField), field: valueField }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AAEA,wBAAsB,OAAO,CAC3B,MAAM,EAAE,GAAG,EACX,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AAEA,wBAAsB,OAAO,CAC3B,MAAM,EAAE,GAAG,EACX,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,gBAgEhB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,GAAG,EACX,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,gBA+BhB"}
|
|
@@ -23,6 +23,7 @@ async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cl
|
|
|
23
23
|
let result;
|
|
24
24
|
if (responseJson.data?.data) {
|
|
25
25
|
result = {
|
|
26
|
+
fields: responseJson?.data.queries?.queryResults[0]?.fields,
|
|
26
27
|
...responseJson.data.data,
|
|
27
28
|
rows: responseJson?.data.queries?.queryResults[0]?.rows,
|
|
28
29
|
compareRows: responseJson?.data.queries?.queryResults[1]?.rows,
|
|
@@ -30,6 +31,7 @@ async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cl
|
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
33
|
result = {
|
|
34
|
+
fields: responseJson?.queries?.queryResults[0]?.fields,
|
|
33
35
|
...responseJson.data,
|
|
34
36
|
rows: responseJson?.queries?.queryResults[0]?.rows,
|
|
35
37
|
compareRows: responseJson?.queries?.queryResults[1]?.rows,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates the width that the first child of the given container should be
|
|
3
|
+
* such that the first child takes up as much space as possible in the container
|
|
4
|
+
* without crowding out the rest of its siblings. Also respects flexbox gap.
|
|
5
|
+
* @param containerRef the ref of the container element
|
|
6
|
+
* @param setState a callback to set the new width of the first child
|
|
7
|
+
* @param options config options ('gap' sets the size of the flexbox gap)
|
|
8
|
+
*/
|
|
9
|
+
export declare const updateFirstChildWidth: (containerRef: React.RefObject<HTMLElement>, setState: (value: React.SetStateAction<number>) => void, options?: {
|
|
10
|
+
gap: number;
|
|
11
|
+
}) => void;
|
|
12
|
+
//# sourceMappingURL=width.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"width.d.ts","sourceRoot":"","sources":["../../../src/utils/width.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,iBAClB,MAAM,SAAS,CAAC,WAAW,CAAC,oBACxB,MAAM,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,YAC9C;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,SAazB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateFirstChildWidth = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the width that the first child of the given container should be
|
|
6
|
+
* such that the first child takes up as much space as possible in the container
|
|
7
|
+
* without crowding out the rest of its siblings. Also respects flexbox gap.
|
|
8
|
+
* @param containerRef the ref of the container element
|
|
9
|
+
* @param setState a callback to set the new width of the first child
|
|
10
|
+
* @param options config options ('gap' sets the size of the flexbox gap)
|
|
11
|
+
*/
|
|
12
|
+
const updateFirstChildWidth = (containerRef, setState, options = { gap: 0 }) => {
|
|
13
|
+
if (containerRef.current) {
|
|
14
|
+
const element = containerRef.current;
|
|
15
|
+
const totalWidth = element.getBoundingClientRect().width;
|
|
16
|
+
const gapWidth = options.gap * (element.childElementCount - 1);
|
|
17
|
+
let siblingsWidth = 0;
|
|
18
|
+
const children = Array.from(containerRef.current.children);
|
|
19
|
+
for (let i = 1; i < children.length; i++) {
|
|
20
|
+
siblingsWidth += children[i].getBoundingClientRect().width;
|
|
21
|
+
}
|
|
22
|
+
setState(totalWidth - siblingsWidth - gapWidth);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.updateFirstChildWidth = updateFirstChildWidth;
|
package/dist/esm/Chart.d.ts
CHANGED
|
@@ -1,46 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { QuillTheme } from './QuillProvider';
|
|
3
|
-
|
|
4
|
-
colors?: string[];
|
|
5
|
-
containerStyle?: React.CSSProperties;
|
|
6
|
-
dateFilter?: any;
|
|
7
|
-
theme?: any;
|
|
8
|
-
isDateFilter?: boolean;
|
|
9
|
-
isAnimationActive?: boolean;
|
|
10
|
-
hideXAxis?: boolean;
|
|
11
|
-
hideYAxis?: boolean;
|
|
12
|
-
hideCartesianGrid?: boolean;
|
|
13
|
-
dashedComparison?: boolean;
|
|
14
|
-
dateRangeFilterDisabled?: boolean;
|
|
15
|
-
singlePointStyle?: 'dot' | 'line';
|
|
16
|
-
mapColorsToFields?: (_dashboardItem: DashboardItem, _theme: QuillTheme) => ColorMapType;
|
|
17
|
-
}
|
|
18
|
-
interface WithChartId extends BaseChartProps {
|
|
19
|
-
chartId: string;
|
|
20
|
-
}
|
|
21
|
-
export type FieldFormat = 'whole_number' | 'one_decimal_place' | 'two_decimal_places' | 'dollar_amount' | 'dollar_cents' | 'MMM_yyyy' | 'MMM_dd_yyyy' | 'MMM_dd-MMM_dd' | 'MMM_dd_hh:mm_ap_pm' | 'hh_ap_pm' | 'percent' | 'string';
|
|
22
|
-
interface YAxisField {
|
|
23
|
-
label: string;
|
|
24
|
-
field: string;
|
|
25
|
-
chartType: string;
|
|
26
|
-
format: FieldFormat;
|
|
27
|
-
}
|
|
28
|
-
export interface DashboardItem {
|
|
29
|
-
id: string;
|
|
30
|
-
name: string;
|
|
31
|
-
chartType: string;
|
|
32
|
-
xAxisField: string;
|
|
33
|
-
xAxisLabel: string;
|
|
34
|
-
xAxisFormat: FieldFormat;
|
|
35
|
-
yAxisFields: YAxisField[];
|
|
36
|
-
rows: any[];
|
|
37
|
-
columns: any[];
|
|
38
|
-
pivot: any;
|
|
39
|
-
}
|
|
40
|
-
interface WithConfig extends BaseChartProps {
|
|
41
|
-
config: DashboardItem | any;
|
|
42
|
-
}
|
|
43
|
-
type ChartProps = WithChartId | WithConfig;
|
|
3
|
+
import { type DashboardItem } from './Dashboard';
|
|
44
4
|
export declare function didFiltersChange(dashboardItem: any, filters: any): boolean;
|
|
45
5
|
export type ColorMapType = {
|
|
46
6
|
[key: string]: {
|
|
@@ -52,6 +12,121 @@ export type ColorMapType = {
|
|
|
52
12
|
comparisonGradientStop?: string;
|
|
53
13
|
};
|
|
54
14
|
};
|
|
55
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Props for the Quill Chart component.
|
|
17
|
+
*/
|
|
18
|
+
export interface ChartProps {
|
|
19
|
+
/**
|
|
20
|
+
* A dashboard item to render, if any.
|
|
21
|
+
*
|
|
22
|
+
* When config is passed, the chart will not refetch the given dashboard item
|
|
23
|
+
* and will instead simply render the item it was given.
|
|
24
|
+
*
|
|
25
|
+
* A `config` must be passed if `chartId` is not present.
|
|
26
|
+
*/
|
|
27
|
+
config?: DashboardItem | any;
|
|
28
|
+
/**
|
|
29
|
+
* A dashboard item to render, if any.
|
|
30
|
+
*
|
|
31
|
+
* When a chartId is passed, the chart will first fetch the data necessary to
|
|
32
|
+
* render this chart, and then it will render the dashboard item that it
|
|
33
|
+
* receives from the server.
|
|
34
|
+
*
|
|
35
|
+
* A `chartId` must be passed if `config` is not present.
|
|
36
|
+
*/
|
|
37
|
+
chartId?: string;
|
|
38
|
+
/**
|
|
39
|
+
* A list of color strings used to color the chart.
|
|
40
|
+
*
|
|
41
|
+
* For example, a pie chart would use the colors for each section and a bar
|
|
42
|
+
* chart would use the colors for each bar.
|
|
43
|
+
*/
|
|
44
|
+
colors?: string[];
|
|
45
|
+
/**
|
|
46
|
+
* Applies the given date filter to this chart, if any.
|
|
47
|
+
*/
|
|
48
|
+
dateFilter?: any;
|
|
49
|
+
/**
|
|
50
|
+
* Whether this chart has a date filter.
|
|
51
|
+
*/
|
|
52
|
+
isDateFilter?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Whether to show animations on render complete.
|
|
55
|
+
*/
|
|
56
|
+
isAnimationActive?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Whether to hide the x axis.
|
|
59
|
+
*/
|
|
60
|
+
hideXAxis?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Whether to hide the y axis.
|
|
63
|
+
*/
|
|
64
|
+
hideYAxis?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Whether to hide the cartesian grid lines.
|
|
67
|
+
*/
|
|
68
|
+
hideCartesianGrid?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Whether the date range filter has been disabled.
|
|
71
|
+
*/
|
|
72
|
+
hideDateRangeFilter?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Whether the comparison range shows as dashed for date comparison line
|
|
75
|
+
* charts (as opposed to the default solid line).
|
|
76
|
+
*/
|
|
77
|
+
comparisonLineStyle?: 'solid' | 'dashed';
|
|
78
|
+
/**
|
|
79
|
+
* An optional function that takes a dashboard item and theme and returns a
|
|
80
|
+
* map of keys used in that dashboard item to the colors they should use.
|
|
81
|
+
*
|
|
82
|
+
* The color values support RGB hexcodes and CSS color literals.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```js
|
|
86
|
+
* let mapColorsToFields = (item, theme) => {
|
|
87
|
+
* return {
|
|
88
|
+
* // all the queries with yAxis of 'amount' get colored this way:
|
|
89
|
+
* amount: {
|
|
90
|
+
* primary: 'red',
|
|
91
|
+
* comparison: 'gray',
|
|
92
|
+
* primaryGradientStart: 'red',
|
|
93
|
+
* primaryGradientStop: 'lightred',
|
|
94
|
+
* comparisonGradientStart: '#EFEFEF',
|
|
95
|
+
* comparisonGradientStop: '#EFEFEF00',
|
|
96
|
+
* },
|
|
97
|
+
* total: {
|
|
98
|
+
* primary: 'red'
|
|
99
|
+
* },
|
|
100
|
+
* };
|
|
101
|
+
* }
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
mapColorsToFields?: (dashboardItem: DashboardItem, theme: QuillTheme) => ColorMapType;
|
|
105
|
+
/**
|
|
106
|
+
* Styles the top-level container of the Chart.
|
|
107
|
+
*/
|
|
108
|
+
containerStyle?: React.CSSProperties;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* ### Quill Chart
|
|
112
|
+
*
|
|
113
|
+
* A simple component that displays the given data in one of many chart types.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```js
|
|
117
|
+
* // Usage with chart id (will auto-fetch data)
|
|
118
|
+
* <Chart chartId="12345" />
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```js
|
|
123
|
+
* // Usage with a dashboard item (will not auto-fetch data)
|
|
124
|
+
* <Chart config={dashboardItem} />
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
127
|
+
* ### Chart API
|
|
128
|
+
* @see https://docs.quillsql.com/components/chart
|
|
129
|
+
*/
|
|
130
|
+
declare const Chart: (props: ChartProps) => import("react/jsx-runtime").JSX.Element;
|
|
56
131
|
export default Chart;
|
|
57
132
|
//# sourceMappingURL=Chart.d.ts.map
|
package/dist/esm/Chart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAiGjD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAQhE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAeF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,aAAa,GAAG,GAAG,CAAC;IAE7B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,iBAAiB,CAAC,EAAE,CAClB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,UAAU,KACd,YAAY,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAqC/B,CAAC;AA+hBF,eAAe,KAAK,CAAC"}
|