@quillsql/react 2.11.13 → 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 (31) hide show
  1. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  2. package/dist/cjs/ReportBuilder.js +197 -139
  3. package/dist/cjs/components/Dashboard/MetricComponent.js +2 -2
  4. package/dist/cjs/components/QuillCard.d.ts.map +1 -1
  5. package/dist/cjs/components/QuillCard.js +2 -4
  6. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  7. package/dist/cjs/components/QuillTable.js +2 -2
  8. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +1 -1
  9. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  10. package/dist/cjs/components/ReportBuilder/convert.js +38 -12
  11. package/dist/cjs/components/UiComponents.js +2 -2
  12. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  13. package/dist/cjs/internals/ReportBuilder/PivotList.js +28 -2
  14. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  15. package/dist/cjs/internals/ReportBuilder/PivotModal.js +23 -3
  16. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  17. package/dist/esm/ReportBuilder.js +197 -139
  18. package/dist/esm/components/Dashboard/MetricComponent.js +2 -2
  19. package/dist/esm/components/QuillCard.d.ts.map +1 -1
  20. package/dist/esm/components/QuillCard.js +2 -4
  21. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  22. package/dist/esm/components/QuillTable.js +2 -2
  23. package/dist/esm/components/ReportBuilder/AddSortPopover.js +1 -1
  24. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  25. package/dist/esm/components/ReportBuilder/convert.js +38 -12
  26. package/dist/esm/components/UiComponents.js +2 -2
  27. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  28. package/dist/esm/internals/ReportBuilder/PivotList.js +28 -2
  29. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  30. package/dist/esm/internals/ReportBuilder/PivotModal.js +23 -3
  31. package/package.json +1 -1
@@ -21,7 +21,7 @@ function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLo
21
21
  cursor: 'pointer',
22
22
  boxSizing: 'content-box',
23
23
  borderRadius: 8,
24
- paddingBottom: 30,
24
+ paddingBottom: isLoading ? 0 : 30,
25
25
  ...style,
26
26
  }, children: (0, jsx_runtime_1.jsx)("div", { style: {
27
27
  width: '100%',
@@ -65,7 +65,7 @@ function QuillMetricComponent({ dashboardItem, onClickDashboardItem, error, isLo
65
65
  display: 'flex',
66
66
  alignItems: 'center',
67
67
  justifyContent: 'flex-end',
68
- }, children: 'view report →' })) : null] }), isLoading ? ((0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, {})) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, {})) : data.rows?.length === 0 ||
68
+ }, children: 'view report →' })) : null] }), isLoading ? ((0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, { containerStyle: { maxHeight: '78px', height: style?.height ?? '100%' } })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, {})) : data.rows?.length === 0 ||
69
69
  data.rows[0][data.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
70
70
  display: 'flex',
71
71
  flex: '1 0 auto',
@@ -1 +1 @@
1
- {"version":3,"file":"QuillCard.d.ts","sourceRoot":"","sources":["../../../src/components/QuillCard.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,UAAU,cAAc;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,KAAK,EACL,OAAO,EACP,UAAkB,EAClB,SAAgB,EAChB,OAAO,EACP,SAAa,EACb,KAAU,GACX,EAAE,cAAc,2CAqEhB"}
1
+ {"version":3,"file":"QuillCard.d.ts","sourceRoot":"","sources":["../../../src/components/QuillCard.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,UAAU,cAAc;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,KAAK,EACL,OAAO,EACP,UAAkB,EAClB,SAAgB,EAChB,OAAO,EACP,SAAa,EACb,KAAU,GACX,EAAE,cAAc,2CAmEhB"}
@@ -31,12 +31,10 @@ function QuillCard({ children, theme, onClick, isSelected = false, clickable = t
31
31
  e.stopPropagation();
32
32
  onClose();
33
33
  }, style: {
34
- height: 42,
35
- width: 42,
34
+ height: 40,
35
+ width: 40,
36
36
  top: 4,
37
37
  right: 4,
38
- // marginTop: -12,
39
- // marginRight: -12,
40
38
  position: 'absolute',
41
39
  cursor: 'pointer',
42
40
  border: 'none',
@@ -1 +1 @@
1
- {"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAMrD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,gBAA0C,EAC1C,WAAgB,EAChB,eAAwC,EACxC,WAAW,GACZ,EAAE,mBAAmB,2CAwZrB"}
1
+ {"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAMrD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,gBAA0C,EAC1C,WAAgB,EAChB,eAA8B,EAC9B,WAAW,GACZ,EAAE,mBAAmB,2CAwZrB"}
@@ -8,7 +8,7 @@ const react_1 = require("react");
8
8
  const valueFormatter_1 = require("../utils/valueFormatter");
9
9
  const Context_1 = require("../Context");
10
10
  const ChartSkeleton_1 = __importDefault(require("./Chart/ChartSkeleton"));
11
- function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFileName, containerStyle, LoadingComponent = () => (0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, {}), rowsPerPage = 10, emptyStateLabel = 'No results returned.', downloadCSV, }) {
11
+ function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFileName, containerStyle, LoadingComponent = () => (0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, {}), rowsPerPage = 10, emptyStateLabel = 'No results', downloadCSV, }) {
12
12
  const [activeRows, setActiveRows] = (0, react_1.useState)([]);
13
13
  const [page, setPage] = (0, react_1.useState)(1);
14
14
  const [maxPage, setMaxPage] = (0, react_1.useState)(1);
@@ -135,7 +135,7 @@ function QuillTable({ rows, columns, loading, showDownloadCSVButton, downloadFil
135
135
  : undefined,
136
136
  }, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z", clipRule: "evenodd" }) }))] }, 'sqlcol' + index))) }) }), (activeRows && activeRows.length === 0) ||
137
137
  (columns && columns.length === 0) ? ((0, jsx_runtime_1.jsx)("div", { style: {
138
- padding: '60px 0',
138
+ padding: '30px 0',
139
139
  display: 'flex',
140
140
  flex: '1 0 auto',
141
141
  margin: 'auto',
@@ -28,7 +28,7 @@ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopov
28
28
  // @ts-ignore
29
29
  , {
30
30
  // @ts-ignore
31
- filterLabel: `${(0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.column) || (0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.value)} is ${SORT_VALUE_TO_LABEL[sortData.type]}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
31
+ filterLabel: `${(0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.column) || (0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.value)} ${SORT_VALUE_TO_LABEL[sortData.type]}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.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 }), isOpen: isOpen, setIsOpen: setIsOpen, onDelete: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAMJ,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AASjD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAuCpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,SAAS,EAAE,GACxB,GAAG,CAAC,MAAM,CAwBZ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,SAAS,mBAAc,EACvB,YAAY,EAAE,SAAS,EAAE;;;;;;;;;;;;;;EAob1B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;;;EA6G5D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAuItE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAMJ,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AASjD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAuCpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,SAAS,EAAE,GACxB,GAAG,CAAC,MAAM,CAwBZ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,SAAS,mBAAc,EACvB,YAAY,EAAE,SAAS,EAAE;;;;;;;;;;;;;;EA8b1B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;;;EA6G5D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyJtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E"}
@@ -198,8 +198,14 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
198
198
  }
199
199
  if (columnName === '*') {
200
200
  // TODO: make valueField be a number
201
- pivot.valueField = columns[0].field;
202
- columnName = columns[0].field;
201
+ for (let i = 0; i < columns.length; i++) {
202
+ if (!isIdColumn(columns[i]?.field) &&
203
+ (0, ast_1.isNumericColumnType)(columns[i]?.fieldType)) {
204
+ pivot.valueField = columns[i].field;
205
+ columnName = columns[i].field;
206
+ break;
207
+ }
208
+ }
203
209
  }
204
210
  newColumns.push({
205
211
  type: 'expr',
@@ -277,17 +283,19 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
277
283
  const columnName = columnNode?.value || columnNode?.column;
278
284
  // if count(*), make the value field an actual column
279
285
  if (columnName === '*') {
280
- // TODO: make valueField be a number
281
- pivot.valueField = columns[0].field;
286
+ const numericColumn = columns.find((c) => {
287
+ return (0, ast_1.isNumericColumnType)(c.fieldType) && !isIdColumn(c.field);
288
+ });
289
+ pivot.valueField = numericColumn?.field;
282
290
  pivot.aggregationType = column?.expr?.name.toLowerCase();
283
- const findByName = (x) => [x.expr?.value, x.expr?.column].includes(columns[0].field);
291
+ const findByName = (x) => [x.expr?.value, x.expr?.column].includes(numericColumn.field);
284
292
  if (!newColumns.find(findByName)) {
285
293
  newColumns.push({
286
294
  type: 'expr',
287
295
  expr: {
288
296
  type: 'column_ref',
289
297
  table: null,
290
- column: columns[0].field,
298
+ column: numericColumn?.field || '',
291
299
  },
292
300
  as: null,
293
301
  });
@@ -637,8 +645,14 @@ function convertStringComparison(node, databaseType) {
637
645
  type: 'expr_list',
638
646
  value: [
639
647
  databaseType === 'BigQuery'
640
- ? { type: 'column_ref', value: obj.left.column }
641
- : { type: 'double_quote_string', value: obj.left.column },
648
+ ? {
649
+ type: 'column_ref',
650
+ value: obj.left.column || obj.left.value,
651
+ }
652
+ : {
653
+ type: 'double_quote_string',
654
+ value: obj.left.column || obj.left.value,
655
+ },
642
656
  ],
643
657
  },
644
658
  };
@@ -675,8 +689,14 @@ function convertStringComparison(node, databaseType) {
675
689
  type: 'expr_list',
676
690
  value: [
677
691
  databaseType === 'BigQuery'
678
- ? { type: 'column_ref', value: obj.left.column }
679
- : { type: 'double_quote_string', value: obj.left.column },
692
+ ? {
693
+ type: 'column_ref',
694
+ value: obj.left.column || obj.left.value,
695
+ }
696
+ : {
697
+ type: 'double_quote_string',
698
+ value: obj.left.column || obj.left.value,
699
+ },
680
700
  ],
681
701
  },
682
702
  };
@@ -711,8 +731,14 @@ function convertStringComparison(node, databaseType) {
711
731
  type: 'expr_list',
712
732
  value: [
713
733
  databaseType === 'BigQuery'
714
- ? { type: 'column_ref', value: obj.left.column }
715
- : { type: 'double_quote_string', value: obj.left.column },
734
+ ? {
735
+ type: 'column_ref',
736
+ value: obj.left.column || obj.left.value,
737
+ }
738
+ : {
739
+ type: 'double_quote_string',
740
+ value: obj.left.column || obj.left.value,
741
+ },
716
742
  ],
717
743
  },
718
744
  };
@@ -315,8 +315,8 @@ function MemoizedModal({ isOpen, onClose, setIsOpen, title, children, theme, sty
315
315
  }
316
316
  exports.MemoizedModal = MemoizedModal;
317
317
  const MemoizedDeleteButton = ({ onClick, style }) => ((0, jsx_runtime_1.jsxs)("button", { className: "quill-delete-button", type: "button", onClick: onClick, style: {
318
- height: 42,
319
- width: 42,
318
+ height: 40,
319
+ width: 40,
320
320
  border: 'none',
321
321
  cursor: 'pointer',
322
322
  display: 'flex',
@@ -1 +1 @@
1
- {"version":3,"file":"PivotList.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotList.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;6CA0IrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;6CAmFrB,CAAC"}
1
+ {"version":3,"file":"PivotList.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotList.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;6CA8MrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;6CAmFrB,CAAC"}
@@ -4,6 +4,7 @@ exports.PivotList = exports.PivotCard = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const QuillCard_1 = require("../../components/QuillCard");
6
6
  const valueFormatter_1 = require("../../utils/valueFormatter");
7
+ const textProcessing_1 = require("../../utils/textProcessing");
7
8
  const PivotCard = ({ pivotTable, theme, index, onSelectPivot, selectedPivotIndex, onEditPivot, ButtonComponent, showEdit = false, clickable = true, onClose = () => { }, minHeight = 0, LabelComponent, TextComponent, HeaderComponent, }) => {
8
9
  const maxRowsInPivotPeak = 5;
9
10
  return ((0, jsx_runtime_1.jsx)(QuillCard_1.QuillCard, { theme: theme, onClick: () => onSelectPivot(pivotTable.pivot, index), isSelected: index === selectedPivotIndex, clickable: clickable, onClose: onClose, minHeight: minHeight, children: (0, jsx_runtime_1.jsxs)("div", { style: {
@@ -20,7 +21,32 @@ const PivotCard = ({ pivotTable, theme, index, onSelectPivot, selectedPivotIndex
20
21
  whiteSpace: 'nowrap',
21
22
  textOverflow: 'ellipsis',
22
23
  paddingBottom: 6,
23
- }, children: (0, jsx_runtime_1.jsx)(HeaderComponent, { children: pivotTable.pivot.title }) })), (0, jsx_runtime_1.jsxs)("table", { children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsx)("tr", { children: pivotTable.columns.map((column) => ((0, jsx_runtime_1.jsx)("th", { style: {
24
+ }, children: (0, jsx_runtime_1.jsx)(HeaderComponent, { children: pivotTable.pivot.title }) })), pivotTable.columns.length === 0 ? ((0, jsx_runtime_1.jsxs)("table", { children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsxs)("tr", { children: [pivotTable.pivot.rowField && ((0, jsx_runtime_1.jsx)("th", { style: {
25
+ fontWeight: 600,
26
+ paddingRight: 5,
27
+ flex: 1,
28
+ textAlign: 'left',
29
+ whiteSpace: 'nowrap',
30
+ textOverflow: 'ellipsis',
31
+ }, children: (0, jsx_runtime_1.jsx)(LabelComponent, { children: (0, textProcessing_1.snakeCaseToTitleCase)(pivotTable.pivot.rowField) }) }, pivotTable.pivot.rowField)), pivotTable.pivot.columnField && ((0, jsx_runtime_1.jsx)("th", { style: {
32
+ fontWeight: 600,
33
+ paddingRight: 5,
34
+ flex: 1,
35
+ textAlign: 'left',
36
+ whiteSpace: 'nowrap',
37
+ textOverflow: 'ellipsis',
38
+ }, children: (0, jsx_runtime_1.jsx)(LabelComponent, { children: (0, textProcessing_1.snakeCaseToTitleCase)(pivotTable.pivot.columnField) }) }, pivotTable.pivot.columnField)), !pivotTable.pivot.columnField &&
39
+ pivotTable.pivot.valueField && ((0, jsx_runtime_1.jsx)("th", { style: {
40
+ fontWeight: 600,
41
+ paddingRight: 5,
42
+ flex: 1,
43
+ textAlign: 'left',
44
+ whiteSpace: 'nowrap',
45
+ textOverflow: 'ellipsis',
46
+ }, children: (0, jsx_runtime_1.jsx)(LabelComponent, { children: (0, textProcessing_1.snakeCaseToTitleCase)(pivotTable.pivot.valueField) }) }, pivotTable.pivot.valueField))] }) }), (0, jsx_runtime_1.jsx)("div", { style: {
47
+ paddingLeft: '2px',
48
+ width: '100%',
49
+ }, children: (0, jsx_runtime_1.jsx)(TextComponent, { children: "No results" }) })] })) : ((0, jsx_runtime_1.jsxs)("table", { children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsx)("tr", { children: pivotTable.columns.map((column) => ((0, jsx_runtime_1.jsx)("th", { style: {
24
50
  fontWeight: 600,
25
51
  paddingRight: 5,
26
52
  flex: 1,
@@ -39,7 +65,7 @@ const PivotCard = ({ pivotTable, theme, index, onSelectPivot, selectedPivotIndex
39
65
  value: row[colum.field],
40
66
  format: pivotTable.pivot.valueFieldType,
41
67
  })
42
- : row[colum.field] }) }, i))) }, index))) })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
68
+ : row[colum.field] }) }, i))) }, index))) })] }))] }), (0, jsx_runtime_1.jsxs)("div", { style: {
43
69
  display: 'flex',
44
70
  justifyContent: 'space-between',
45
71
  }, children: [pivotTable.rows.length > maxRowsInPivotPeak ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)(TextComponent, { children: ["...", pivotTable.rows.length - maxRowsInPivotPeak < 5
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAqtBtB,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"}
@@ -154,6 +154,11 @@ const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivo
154
154
  setRecommendedPivots(recommendedPivots
155
155
  .filter((pivot) => pivot.rowField != '')
156
156
  .map((pivot) => {
157
+ if (columnsToShow[pivot.columnField] === 'date') {
158
+ const columnField = pivot.columnField;
159
+ pivot.columnField = pivot.rowField;
160
+ pivot.rowField = columnField;
161
+ }
157
162
  return {
158
163
  ...pivot,
159
164
  rowFieldType: columnsToShow[pivot.rowField],
@@ -771,6 +776,16 @@ function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1,
771
776
  : 0;
772
777
  }
773
778
  break;
779
+ case 'avg':
780
+ value = filteredData.length
781
+ ? filteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / filteredData.length
782
+ : 0;
783
+ if (isComparison) {
784
+ comparisonValue = comparisonFilteredData.length
785
+ ? comparisonFilteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / comparisonFilteredData.length
786
+ : 0;
787
+ }
788
+ break;
774
789
  case 'max':
775
790
  value = filteredData.reduce((max, item) => Math.max(max, parseFloat(item[key] ?? 0)), -Infinity);
776
791
  if (isComparison) {
@@ -884,11 +899,16 @@ function valueFieldAggregation(data, valueField, aggregationType) {
884
899
  value = data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0);
885
900
  break;
886
901
  case 'count':
887
- value = filteredData.length;
902
+ value = data.length;
903
+ break;
904
+ case 'avg':
905
+ value = data.length
906
+ ? data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) / data.length
907
+ : 0;
888
908
  break;
889
909
  case 'average':
890
- value = filteredData.length
891
- ? filteredData.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) / filteredData.length
910
+ value = data.length
911
+ ? data.reduce((sum, item) => sum + parseFloat(item[valueField] ?? 0), 0) / data.length
892
912
  : 0;
893
913
  break;
894
914
  case 'max':
@@ -1 +1 @@
1
- {"version":3,"file":"ReportBuilder.d.ts","sourceRoot":"","sources":["../../src/ReportBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAMd,MAAM,OAAO,CAAC;AACf,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,UAAU,EAMV,oBAAoB,EAIpB,SAAS,EACV,MAAM,2BAA2B,CAAC;AA4HnC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,gBAAqB,EACrB,wBAA0C,EAC1C,oBAAgC,EAChC,gBAAqB,EACrB,MAAuB,EACvB,eAAyC,EACzC,SAA0B,EAC1B,MAA6B,EAC7B,KAAkB,EAClB,OAAsB,EACtB,IAAgB,EAChB,QAA2B,EAC3B,OAAsB,EACtB,SAA2B,EAC3B,YAAgC,EAChC,YAAgC,EAChC,eAAsC,EACtC,kBAA4C,EAC5C,iBAA0C,EAC1C,cAAoC,EACpC,iBAA0C,EAC1C,aAAkC,EAClC,WAA8B,EAC9B,KAAqB,EACrB,MAAuB,EACvB,IAAmB,EACnB,YAA8B,EAC9B,KAAa,EACb,MAAc,EACd,cAAc,GACf,EAAE;IACD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAm/GA"}
1
+ {"version":3,"file":"ReportBuilder.d.ts","sourceRoot":"","sources":["../../src/ReportBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAMd,MAAM,OAAO,CAAC;AACf,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,UAAU,EAMV,oBAAoB,EAIpB,SAAS,EACV,MAAM,2BAA2B,CAAC;AA4HnC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,gBAAqB,EACrB,wBAA0C,EAC1C,oBAAgC,EAChC,gBAAqB,EACrB,MAAuB,EACvB,eAAyC,EACzC,SAA0B,EAC1B,MAA6B,EAC7B,KAAkB,EAClB,OAAsB,EACtB,IAAgB,EAChB,QAA2B,EAC3B,OAAsB,EACtB,SAA2B,EAC3B,YAAgC,EAChC,YAAgC,EAChC,eAAsC,EACtC,kBAA4C,EAC5C,iBAA0C,EAC1C,cAAoC,EACpC,iBAA0C,EAC1C,aAAkC,EAClC,WAA8B,EAC9B,KAAqB,EACrB,MAAuB,EACvB,IAAmB,EACnB,YAA8B,EAC9B,KAAa,EACb,MAAc,EACd,cAAc,GACf,EAAE;IACD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CA0jHA"}