@quillsql/react 2.11.12 → 2.11.14

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.
Files changed (81) hide show
  1. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  2. package/dist/cjs/ChartBuilder.js +1 -1
  3. package/dist/cjs/Dashboard.js +1 -1
  4. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ReportBuilder.js +354 -197
  6. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  7. package/dist/cjs/SQLEditor.js +1 -0
  8. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts.map +1 -1
  9. package/dist/cjs/components/Chart/ChartTooltipFrame.js +1 -0
  10. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  11. package/dist/cjs/components/Chart/LineChart.js +3 -0
  12. package/dist/cjs/components/Dashboard/MetricComponent.js +2 -2
  13. package/dist/cjs/components/QuillCard.d.ts.map +1 -1
  14. package/dist/cjs/components/QuillCard.js +2 -4
  15. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  16. package/dist/cjs/components/QuillSelect.js +7 -1
  17. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  18. package/dist/cjs/components/QuillTable.js +2 -2
  19. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +3 -3
  20. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +3 -0
  21. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -0
  22. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +43 -0
  23. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  24. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +10 -4
  25. package/dist/cjs/components/ReportBuilder/bigDateMap.d.ts.map +1 -1
  26. package/dist/cjs/components/ReportBuilder/bigDateMap.js +2 -1
  27. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  28. package/dist/cjs/components/ReportBuilder/convert.js +38 -12
  29. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  30. package/dist/cjs/components/ReportBuilder/ui.js +4 -3
  31. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  32. package/dist/cjs/components/ReportBuilder/util.js +7 -5
  33. package/dist/cjs/components/UiComponents.js +2 -2
  34. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  35. package/dist/cjs/internals/ReportBuilder/PivotList.js +28 -2
  36. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  37. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  38. package/dist/cjs/internals/ReportBuilder/PivotModal.js +49 -32
  39. package/dist/cjs/utils/getDomain.d.ts.map +1 -1
  40. package/dist/cjs/utils/getDomain.js +3 -0
  41. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  42. package/dist/esm/ChartBuilder.js +1 -1
  43. package/dist/esm/Dashboard.js +1 -1
  44. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  45. package/dist/esm/ReportBuilder.js +354 -197
  46. package/dist/esm/SQLEditor.d.ts.map +1 -1
  47. package/dist/esm/SQLEditor.js +1 -0
  48. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts.map +1 -1
  49. package/dist/esm/components/Chart/ChartTooltipFrame.js +1 -0
  50. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  51. package/dist/esm/components/Chart/LineChart.js +3 -0
  52. package/dist/esm/components/Dashboard/MetricComponent.js +2 -2
  53. package/dist/esm/components/QuillCard.d.ts.map +1 -1
  54. package/dist/esm/components/QuillCard.js +2 -4
  55. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  56. package/dist/esm/components/QuillSelect.js +7 -1
  57. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  58. package/dist/esm/components/QuillTable.js +2 -2
  59. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +3 -3
  60. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +3 -0
  61. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -0
  62. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +38 -0
  63. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  64. package/dist/esm/components/ReportBuilder/AddSortPopover.js +10 -4
  65. package/dist/esm/components/ReportBuilder/bigDateMap.d.ts.map +1 -1
  66. package/dist/esm/components/ReportBuilder/bigDateMap.js +2 -1
  67. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  68. package/dist/esm/components/ReportBuilder/convert.js +38 -12
  69. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  70. package/dist/esm/components/ReportBuilder/ui.js +4 -3
  71. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  72. package/dist/esm/components/ReportBuilder/util.js +7 -5
  73. package/dist/esm/components/UiComponents.js +2 -2
  74. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  75. package/dist/esm/internals/ReportBuilder/PivotList.js +28 -2
  76. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  77. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  78. package/dist/esm/internals/ReportBuilder/PivotModal.js +49 -32
  79. package/dist/esm/utils/getDomain.d.ts.map +1 -1
  80. package/dist/esm/utils/getDomain.js +3 -0
  81. package/package.json +2 -2
@@ -8,7 +8,7 @@ export interface Pivot {
8
8
  title?: string;
9
9
  triggerButtonText?: string;
10
10
  }
11
- export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, 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, }: {
11
+ 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, }: {
12
12
  pivotRowField: any;
13
13
  setPivotRowField: any;
14
14
  pivotColumnField: any;
@@ -22,6 +22,7 @@ export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumn
22
22
  selectedTable: any;
23
23
  SelectComponent: any;
24
24
  ButtonComponent: any;
25
+ SecondaryButtonComponent: any;
25
26
  PopoverComponent: any;
26
27
  HeaderComponent: any;
27
28
  LabelComponent: any;
@@ -1 +1 @@
1
- {"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AA+BA,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;CAC5B;AAkBD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAotBtB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,OAyB1D;AAkHD,wBAAgB,WAAW,CAAC,SAAS,KAAA,WAYpC;AAgCD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,GAAG,EACd,YAAY,EAAE,OAAO,EACrB,QAAQ,SAAK,EACb,SAAS,GAAE,GAAU;;;;;;EA6atB"}
1
+ {"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AA+BA,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;CAC5B;AAkBD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CA0tBtB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,OAyB1D;AAkHD,wBAAgB,WAAW,CAAC,SAAS,KAAA,WAYpC;AAgCD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,GAAG,EACd,YAAY,EAAE,OAAO,EACrB,QAAQ,SAAK,EACb,SAAS,GAAE,GAAU;;;;;;EA6btB"}
@@ -3,13 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useCallback, useContext, useMemo, useState, useEffect, useRef, } from 'react';
4
4
  import { ClientContext } from '../../Context';
5
5
  import { getDataFromCloud } from '../../utils/dataFetcher';
6
- import { RefreshIcon } from '../../assets';
7
6
  import { PivotList, PivotCard } from './PivotList';
8
7
  import { differenceInDays, eachDayOfInterval, eachMonthOfInterval, eachWeekOfInterval, eachYearOfInterval, endOfDay, isWithinInterval, subMilliseconds, min, max, add, } from 'date-fns';
9
8
  import { valueFormatter } from '../../utils/valueFormatter';
10
9
  import { numberFormatOptions, dateFormatOptions } from '../../ChartBuilder';
11
10
  import { snakeCaseToTitleCase } from '../../utils/textProcessing';
12
- import { QuillCard } from '../../components/QuillCard';
13
11
  const QuillHover = () => {
14
12
  return (_jsx("style", { children: `
15
13
  .quill-hover {
@@ -23,7 +21,7 @@ const QuillHover = () => {
23
21
  }
24
22
  ` }));
25
23
  };
26
- export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, PopoverComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, selectPivotOnEdit = false, showTrigger = true, rightAlign = false, parentRef, recommendPivotCount = 6, }) => {
24
+ export 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 = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, selectPivotOnEdit = false, showTrigger = true, rightAlign = false, parentRef, recommendPivotCount = 6, }) => {
27
25
  const [isLoading, setIsLoading] = useState(false);
28
26
  const [pivotUpdateIndex, setPivotUpdateIndex] = useState(null);
29
27
  const [selectedPivotType, setSelectedPivotType] = useState('recommended');
@@ -93,7 +91,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
93
91
  const columnSelectOptions = useMemo(() => {
94
92
  return [
95
93
  ...Object.keys(columnsToShow).map((key) => {
96
- return { label: key, value: key };
94
+ return { label: snakeCaseToTitleCase(key), value: key };
97
95
  }),
98
96
  ];
99
97
  }, [columnsToShow]);
@@ -153,6 +151,11 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
153
151
  setRecommendedPivots(recommendedPivots
154
152
  .filter((pivot) => pivot.rowField != '')
155
153
  .map((pivot) => {
154
+ if (columnsToShow[pivot.columnField] === 'date') {
155
+ const columnField = pivot.columnField;
156
+ pivot.columnField = pivot.rowField;
157
+ pivot.rowField = columnField;
158
+ }
156
159
  return {
157
160
  ...pivot,
158
161
  rowFieldType: columnsToShow[pivot.rowField],
@@ -227,6 +230,9 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
227
230
  setShowUpdatePivot(false);
228
231
  setPopUpTitle('Add Pivot');
229
232
  }, style: rightAlign ? { right: 0 } : {}, parentRef: parentRef, showTrigger: showTrigger, label: triggerButtonText, isOpen: isOpen, setIsOpen: setIsOpen, onClick: () => {
233
+ if (columns.length === 0) {
234
+ setIsOpen(false);
235
+ }
230
236
  // table is not loaded yet, so pivot button is not clickable
231
237
  if (Object.keys(columnsToShow).length === 0) {
232
238
  return;
@@ -239,12 +245,10 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
239
245
  backgroundColor: 'rgb(255, 255, 255)',
240
246
  display: 'flex',
241
247
  flexDirection: 'column',
242
- }, children: [_jsx(HeaderComponent, { children: popUpTitle }), _jsx("div", { style: { height: 12 } }), _jsx("div", { style: { width: divWidth }, children: samplePivotTable ? (_jsx("div", { style: {
248
+ }, children: [_jsx(HeaderComponent, { children: popUpTitle }), _jsx("div", { style: { height: 12 } }), _jsx("div", { style: { width: divWidth }, children: samplePivotTable && (_jsx("div", { style: {
243
249
  marginBottom: 20,
244
250
  minHeight: 160,
245
- }, children: _jsx(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 }) })) : (_jsx("div", { style: { marginBottom: 20, maxWidth: 470 }, children: _jsx(QuillCard, { theme: theme, clickable: false, children: _jsx("div", { style: {
246
- color: theme.secondaryTextColor,
247
- }, children: "Select a row field and aggregation type to see a preview" }) }) })) }), _jsxs("div", { style: {
251
+ }, children: _jsx(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 }) })) }), _jsxs("div", { style: {
248
252
  display: 'flex',
249
253
  flexDirection: 'column',
250
254
  gap: 10,
@@ -352,26 +356,24 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
352
356
  columns: selectedPivotTable?.columns,
353
357
  }, theme: theme, index: 0, onSelectPivot: () => { }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: ButtonComponent, showEdit: false, onClose: () => {
354
358
  removePivot();
355
- }, clickable: true, minHeight: 180, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) }) })) : (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("div", { style: {
356
- fontWeight: '600',
357
- marginBottom: 5,
358
- fontSize: 18,
359
- }, children: "Recommended Pivots" }), _jsx("div", { children: _jsxs("div", { onClick: refreshPivots, style: {
360
- color: theme?.secondaryTextColor,
361
- cursor: 'pointer',
362
- marginTop: 0,
363
- marginBottom: 12,
364
- display: 'flex',
365
- flexDirection: 'row',
366
- alignItems: 'center',
367
- width: 'min-content',
368
- fontSize: 14,
369
- paddingLeft: 8,
370
- paddingRight: 6,
371
- paddingTop: 6,
372
- paddingBottom: 6,
373
- borderRadius: 5,
374
- }, className: "quill-hover", children: [_jsx(QuillHover, {}), _jsx(RefreshIcon, { style: { marginRight: 5 } }), "Refresh"] }) }), isLoading ? (_jsxs("div", { style: {
359
+ }, clickable: true, minHeight: 180, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) }) })) : (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsxs("div", { style: {
360
+ display: 'flex',
361
+ flexDirection: 'row',
362
+ width: '100%',
363
+ alignItems: 'center',
364
+ justifyContent: 'space-between',
365
+ paddingBottom: 12,
366
+ }, children: [_jsx("div", { style: {
367
+ fontWeight: '600',
368
+ fontSize: 18,
369
+ }, children: "Recommended pivots" }), _jsx("div", { children: _jsx(SecondaryButtonComponent, { onClick: refreshPivots, label: _jsxs("div", { style: {
370
+ display: 'flex',
371
+ flexDirection: 'row',
372
+ whiteSpace: 'nowrap',
373
+ alignItems: 'center',
374
+ gap: 6,
375
+ fontSize: 14,
376
+ }, children: [_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", style: { width: 16, height: 16 }, children: _jsx("path", { fillRule: "evenodd", d: "M9 4.5a.75.75 0 0 1 .721.544l.813 2.846a3.75 3.75 0 0 0 2.576 2.576l2.846.813a.75.75 0 0 1 0 1.442l-2.846.813a3.75 3.75 0 0 0-2.576 2.576l-.813 2.846a.75.75 0 0 1-1.442 0l-.813-2.846a3.75 3.75 0 0 0-2.576-2.576l-2.846-.813a.75.75 0 0 1 0-1.442l2.846-.813A3.75 3.75 0 0 0 7.466 7.89l.813-2.846A.75.75 0 0 1 9 4.5ZM18 1.5a.75.75 0 0 1 .728.568l.258 1.036c.236.94.97 1.674 1.91 1.91l1.036.258a.75.75 0 0 1 0 1.456l-1.036.258c-.94.236-1.674.97-1.91 1.91l-.258 1.036a.75.75 0 0 1-1.456 0l-.258-1.036a2.625 2.625 0 0 0-1.91-1.91l-1.036-.258a.75.75 0 0 1 0-1.456l1.036-.258a2.625 2.625 0 0 0 1.91-1.91l.258-1.036A.75.75 0 0 1 18 1.5ZM16.5 15a.75.75 0 0 1 .712.513l.394 1.183c.15.447.5.799.948.948l1.183.395a.75.75 0 0 1 0 1.422l-1.183.395c-.447.15-.799.5-.948.948l-.395 1.183a.75.75 0 0 1-1.422 0l-.395-1.183a1.5 1.5 0 0 0-.948-.948l-1.183-.395a.75.75 0 0 1 0-1.422l1.183-.395c.447-.15.799-.5.948-.948l.395-1.183A.75.75 0 0 1 16.5 15Z", clipRule: "evenodd" }) }), "Regenerate"] }) }) })] }), isLoading ? (_jsxs("div", { style: {
375
377
  background: theme.backgroundColor,
376
378
  width: 250,
377
379
  minWidth: 250,
@@ -382,7 +384,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
382
384
  display: 'flex',
383
385
  margin: '0px auto',
384
386
  justifyContent: 'center',
385
- }, children: [_jsx("div", { style: { height: 100 } }), _jsxs("svg", { width: "24", height: "24", children: [_jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 6)", stroke: theme?.primaryTextColor || '#364153', fill: "none", transform: "rotate(-90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), _jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 1 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] })] })) : (_jsxs("div", { children: [recommendedPivotTables.length == 0 && (_jsx("div", { style: { marginBottom: 20 }, children: "There are currently no recommended pivots available." })), _jsx(PivotList, { recommendedPivotTables: recommendedPivotTables, createdPivotTables: createdPivotTables, theme: theme, onSelectRecommendedPivot: onSelectRecommendedPivot, onSelectCreatedPivot: onSelectCreatedPivot, selectedPivotIndex: selectedPivotIndex, selectedPivotType: selectedPivotType, ButtonComponent: ButtonComponent, HeaderComponent: HeaderComponent, onEditRecommendedPivot: onEditRecommendedPivot, onEditCreatedPivot: onEditPivot, showCreatePivot: true, showPivotEditButton: showPivotEditButton, LabelComponent: LabelComponent, TextComponent: TextComponent })] }))] })) })) }) })] }) }));
387
+ }, children: [_jsx("div", { style: { height: 100 } }), _jsxs("svg", { width: "24", height: "24", children: [_jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 6)", stroke: theme?.primaryTextColor || '#364153', fill: "none", transform: "rotate(-90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), _jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 1 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] })] })) : (_jsx("div", { children: _jsx(PivotList, { recommendedPivotTables: recommendedPivotTables, createdPivotTables: createdPivotTables, theme: theme, onSelectRecommendedPivot: onSelectRecommendedPivot, onSelectCreatedPivot: onSelectCreatedPivot, selectedPivotIndex: selectedPivotIndex, selectedPivotType: selectedPivotType, ButtonComponent: ButtonComponent, HeaderComponent: HeaderComponent, onEditRecommendedPivot: onEditRecommendedPivot, onEditCreatedPivot: onEditPivot, showCreatePivot: true, showPivotEditButton: showPivotEditButton, LabelComponent: LabelComponent, TextComponent: TextComponent }) }))] })) })) }) })] }) }));
386
388
  };
387
389
  export function generatePivotTableYAxis(pivot, cols, format) {
388
390
  // Use the column field for the field and label if there is one
@@ -768,6 +770,16 @@ export function generatePivotTable(pivot, data, dateRange, isComparison, rowLimi
768
770
  : 0;
769
771
  }
770
772
  break;
773
+ case 'avg':
774
+ value = filteredData.length
775
+ ? filteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / filteredData.length
776
+ : 0;
777
+ if (isComparison) {
778
+ comparisonValue = comparisonFilteredData.length
779
+ ? comparisonFilteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / comparisonFilteredData.length
780
+ : 0;
781
+ }
782
+ break;
771
783
  case 'max':
772
784
  value = filteredData.reduce((max, item) => Math.max(max, parseFloat(item[key] ?? 0)), -Infinity);
773
785
  if (isComparison) {
@@ -880,11 +892,16 @@ function valueFieldAggregation(data, valueField, aggregationType) {
880
892
  value = data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0);
881
893
  break;
882
894
  case 'count':
883
- value = filteredData.length;
895
+ value = data.length;
896
+ break;
897
+ case 'avg':
898
+ value = data.length
899
+ ? data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) / data.length
900
+ : 0;
884
901
  break;
885
902
  case 'average':
886
- value = filteredData.length
887
- ? filteredData.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) / filteredData.length
903
+ value = data.length
904
+ ? data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) / data.length
888
905
  : 0;
889
906
  break;
890
907
  case 'max':
@@ -1 +1 @@
1
- {"version":3,"file":"getDomain.d.ts","sourceRoot":"","sources":["../../../src/utils/getDomain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CA0BtE"}
1
+ {"version":3,"file":"getDomain.d.ts","sourceRoot":"","sources":["../../../src/utils/getDomain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CA8BtE"}
@@ -21,6 +21,9 @@ export default function getDomain(data, fields) {
21
21
  });
22
22
  });
23
23
  const [minValue, maxValue] = numericValues.reduce(([min, max], value) => [Math.min(min, value), Math.max(max, value)], [Infinity, -Infinity]);
24
+ if (minValue === 0 && maxValue === 0) {
25
+ return [0, 1];
26
+ }
24
27
  return fuzzyRound(Math.min(minValue, 0), maxValue);
25
28
  }
26
29
  // Rounds the range to 4 equally-spaced increments of nice,round numbers.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.11.12",
3
+ "version": "2.11.14",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",
@@ -24,7 +24,7 @@
24
24
  "@monaco-editor/react": "^4.5.1",
25
25
  "date-fns": "^2.29.3",
26
26
  "date-fns-tz": "^2.0.0",
27
- "recharts": "^2.5.0"
27
+ "recharts": "^2.12.5"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@repo/eslint-config": "*",