@quillsql/react 2.13.1 → 2.13.3

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 (147) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +7 -15
  3. package/dist/cjs/ChartBuilder.d.ts +4 -1
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +7 -7
  6. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  7. package/dist/cjs/ChartEditor.js +40 -19
  8. package/dist/cjs/Context.d.ts +52 -16
  9. package/dist/cjs/Context.d.ts.map +1 -1
  10. package/dist/cjs/Context.js +34 -47
  11. package/dist/cjs/Dashboard.d.ts +5 -2
  12. package/dist/cjs/Dashboard.d.ts.map +1 -1
  13. package/dist/cjs/Dashboard.js +73 -83
  14. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +1 -1
  15. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  16. package/dist/cjs/ReportBuilder.js +179 -114
  17. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  18. package/dist/cjs/SQLEditor.js +18 -11
  19. package/dist/cjs/Table.d.ts.map +1 -1
  20. package/dist/cjs/Table.js +6 -3
  21. package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
  22. package/dist/cjs/components/Dashboard/DataLoader.d.ts +6 -4
  23. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  24. package/dist/cjs/components/Dashboard/DataLoader.js +76 -68
  25. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  26. package/dist/cjs/components/Dashboard/MetricComponent.js +14 -3
  27. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  28. package/dist/cjs/components/Dashboard/TableComponent.js +8 -1
  29. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +1 -1
  30. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  31. package/dist/cjs/components/QuillMultiSelectWithCombo.js +6 -2
  32. package/dist/cjs/components/QuillSelect.js +3 -3
  33. package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
  34. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  35. package/dist/cjs/components/QuillSelectWithCombo.js +13 -3
  36. package/dist/cjs/components/QuillTable.d.ts +1 -1
  37. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  38. package/dist/cjs/components/QuillTable.js +17 -14
  39. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +33 -0
  40. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -0
  41. package/dist/cjs/components/ReportBuilder/FilterStack.js +121 -0
  42. package/dist/cjs/components/ReportBuilder/ui.d.ts +0 -1
  43. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  44. package/dist/cjs/components/ReportBuilder/ui.js +1 -13
  45. package/dist/cjs/components/UiComponents.d.ts +2 -1
  46. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  47. package/dist/cjs/components/UiComponents.js +3 -3
  48. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  49. package/dist/cjs/hooks/useDashboard.js +41 -50
  50. package/dist/cjs/hooks/useExport.d.ts +14 -1
  51. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  52. package/dist/cjs/hooks/useExport.js +120 -38
  53. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  54. package/dist/cjs/hooks/useQuill.js +3 -1
  55. package/dist/cjs/models/Client.d.ts +2 -0
  56. package/dist/cjs/models/Client.d.ts.map +1 -1
  57. package/dist/cjs/models/Dashboard.d.ts +1 -1
  58. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  59. package/dist/cjs/models/Filter.d.ts +1 -1
  60. package/dist/cjs/models/Filter.d.ts.map +1 -1
  61. package/dist/cjs/utils/client.d.ts.map +1 -1
  62. package/dist/cjs/utils/client.js +1 -0
  63. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  64. package/dist/cjs/utils/dashboard.js +6 -3
  65. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  66. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  67. package/dist/cjs/utils/filterProcessing.js +3 -3
  68. package/dist/cjs/utils/report.d.ts +2 -2
  69. package/dist/cjs/utils/report.d.ts.map +1 -1
  70. package/dist/cjs/utils/report.js +5 -4
  71. package/dist/cjs/utils/tableProcessing.d.ts +2 -2
  72. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  73. package/dist/cjs/utils/tableProcessing.js +3 -1
  74. package/dist/esm/Chart.d.ts.map +1 -1
  75. package/dist/esm/Chart.js +7 -15
  76. package/dist/esm/ChartBuilder.d.ts +4 -1
  77. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  78. package/dist/esm/ChartBuilder.js +7 -7
  79. package/dist/esm/ChartEditor.d.ts.map +1 -1
  80. package/dist/esm/ChartEditor.js +41 -20
  81. package/dist/esm/Context.d.ts +52 -16
  82. package/dist/esm/Context.d.ts.map +1 -1
  83. package/dist/esm/Context.js +33 -46
  84. package/dist/esm/Dashboard.d.ts +5 -2
  85. package/dist/esm/Dashboard.d.ts.map +1 -1
  86. package/dist/esm/Dashboard.js +75 -85
  87. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +1 -1
  88. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  89. package/dist/esm/ReportBuilder.js +182 -117
  90. package/dist/esm/SQLEditor.d.ts.map +1 -1
  91. package/dist/esm/SQLEditor.js +18 -11
  92. package/dist/esm/Table.d.ts.map +1 -1
  93. package/dist/esm/Table.js +6 -3
  94. package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
  95. package/dist/esm/components/Dashboard/DataLoader.d.ts +6 -4
  96. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  97. package/dist/esm/components/Dashboard/DataLoader.js +77 -69
  98. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  99. package/dist/esm/components/Dashboard/MetricComponent.js +14 -3
  100. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  101. package/dist/esm/components/Dashboard/TableComponent.js +8 -1
  102. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +1 -1
  103. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  104. package/dist/esm/components/QuillMultiSelectWithCombo.js +6 -2
  105. package/dist/esm/components/QuillSelect.js +3 -3
  106. package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
  107. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  108. package/dist/esm/components/QuillSelectWithCombo.js +13 -3
  109. package/dist/esm/components/QuillTable.d.ts +1 -1
  110. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  111. package/dist/esm/components/QuillTable.js +17 -14
  112. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +33 -0
  113. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -0
  114. package/dist/esm/components/ReportBuilder/FilterStack.js +118 -0
  115. package/dist/esm/components/ReportBuilder/ui.d.ts +0 -1
  116. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  117. package/dist/esm/components/ReportBuilder/ui.js +0 -8
  118. package/dist/esm/components/UiComponents.d.ts +2 -1
  119. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  120. package/dist/esm/components/UiComponents.js +3 -3
  121. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  122. package/dist/esm/hooks/useDashboard.js +41 -50
  123. package/dist/esm/hooks/useExport.d.ts +14 -1
  124. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  125. package/dist/esm/hooks/useExport.js +122 -40
  126. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  127. package/dist/esm/hooks/useQuill.js +3 -1
  128. package/dist/esm/models/Client.d.ts +2 -0
  129. package/dist/esm/models/Client.d.ts.map +1 -1
  130. package/dist/esm/models/Dashboard.d.ts +1 -1
  131. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  132. package/dist/esm/models/Filter.d.ts +1 -1
  133. package/dist/esm/models/Filter.d.ts.map +1 -1
  134. package/dist/esm/utils/client.d.ts.map +1 -1
  135. package/dist/esm/utils/client.js +1 -0
  136. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  137. package/dist/esm/utils/dashboard.js +6 -3
  138. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  139. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  140. package/dist/esm/utils/filterProcessing.js +3 -3
  141. package/dist/esm/utils/report.d.ts +2 -2
  142. package/dist/esm/utils/report.d.ts.map +1 -1
  143. package/dist/esm/utils/report.js +5 -4
  144. package/dist/esm/utils/tableProcessing.d.ts +2 -2
  145. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  146. package/dist/esm/utils/tableProcessing.js +3 -1
  147. package/package.json +3 -3
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { QUILL_SERVER } from '../../ReportBuilder';
3
+ import { filterTreeToAst, } from '../../utils/astFilterProcessing';
4
+ import { getAllPossibleColumns } from '../../utils/astProcessing';
5
+ import { filterSentence, filterStackToFilterTree, } from '../../utils/filterProcessing';
6
+ import { DEFAULT_TAB_OPTIONS } from '../UiComponents';
7
+ import { FilterPopoverWrapper } from './ui';
8
+ import { deepCopy } from './util';
9
+ export default function FilterStack({ client, filterStack, filterTree, defaultAST, baseAst, setBaseAst, setFormData, fetchSqlQuery, schemaData, defaultColumn, defaultTable, currentTable, initialTableName, globalUniqueValues, globalUniqueValuesIsLoading, columns, removingFilter, setRemovingFilter, TabsComponent, FilterPopoverComponent, FilterModal, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, actionsEnabled = true, }) {
10
+ return (_jsx("div", { style: {
11
+ display: 'flex',
12
+ flexDirection: 'column',
13
+ }, children: filterStack.map((item, index) => {
14
+ if (!item.leaf && (item.operator === 'and' || item.operator === 'or')) {
15
+ return (_jsx("div", { style: {
16
+ width: 'fit-content',
17
+ marginBottom: '8px',
18
+ marginTop: '8px',
19
+ }, children: _jsx(TabsComponent, { value: item.operator.toUpperCase(), options: DEFAULT_TAB_OPTIONS, onChange: () => {
20
+ if (item.operator === 'and') {
21
+ item.operator = 'or';
22
+ }
23
+ else {
24
+ item.operator = 'and';
25
+ }
26
+ let newFormData = null;
27
+ if (filterTree) {
28
+ newFormData = filterTreeToAst(filterTree, client.databaseType.toLowerCase());
29
+ }
30
+ const newAst = deepCopy({
31
+ ...defaultAST,
32
+ ...baseAst,
33
+ ...(!baseAst?.columns && {
34
+ columns: getAllPossibleColumns(baseAst, schemaData.schema).map((c) => {
35
+ const newColumn = deepCopy(defaultColumn);
36
+ newColumn.expr.column = c.field;
37
+ return newColumn;
38
+ }),
39
+ }),
40
+ ...(!baseAst?.from && {
41
+ from: [{ ...defaultTable, table: initialTableName }],
42
+ }),
43
+ where: newFormData,
44
+ });
45
+ setBaseAst(newAst);
46
+ setFormData(newFormData);
47
+ fetchSqlQuery(newAst, newFormData);
48
+ } }) }, index));
49
+ }
50
+ else if (item.value) {
51
+ return (_jsx(FilterPopoverWrapper, { schema: schemaData.schema.find((s) => s.name === currentTable || s.displayName === currentTable) ?? schemaData.schema[0], filter: item.value, filterLabel: item.value ? filterSentence(item.value) : '', index: index, FilterTagComponent: FilterPopoverComponent, FilterModal: FilterModal, fieldValuesMap: globalUniqueValues, fieldValuesMapIsLoading: globalUniqueValuesIsLoading, priorFilters: filterStack.slice(0, index > 0 ? index - 1 : 0), columns: columns, client: client, customFields: schemaData.customFields, baseAst: baseAst, endpoint: QUILL_SERVER, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (filter) => {
52
+ item.value = filter;
53
+ let newFormData = null;
54
+ if (filterTree) {
55
+ newFormData = filterTreeToAst(filterTree, client.databaseType.toLowerCase());
56
+ }
57
+ const newAst = deepCopy({
58
+ ...defaultAST,
59
+ ...baseAst,
60
+ ...(!baseAst?.columns && {
61
+ columns: getAllPossibleColumns(baseAst, schemaData.schema).map((c) => {
62
+ const newColumn = deepCopy(defaultColumn);
63
+ newColumn.expr.column = c.field;
64
+ return newColumn;
65
+ }),
66
+ }),
67
+ ...(!baseAst?.from && {
68
+ from: [{ ...defaultTable, table: initialTableName }],
69
+ }),
70
+ where: newFormData,
71
+ });
72
+ setBaseAst(newAst);
73
+ setFormData(newFormData);
74
+ fetchSqlQuery(newAst, newFormData);
75
+ }, handleFilterDelete: (i) => {
76
+ if (!removingFilter) {
77
+ setRemovingFilter(true);
78
+ const newStack = filterStack;
79
+ if (i > 0) {
80
+ newStack.splice(i - 1, 2);
81
+ }
82
+ else {
83
+ if (filterStack.length > 1) {
84
+ newStack.splice(i, 2);
85
+ }
86
+ else {
87
+ newStack.splice(i, 1);
88
+ }
89
+ }
90
+ const tree = filterStackToFilterTree(newStack);
91
+ let newFormData = null;
92
+ if (tree) {
93
+ newFormData = filterTreeToAst(tree, client.databaseType.toLowerCase());
94
+ }
95
+ const newAst = deepCopy({
96
+ ...defaultAST,
97
+ ...baseAst,
98
+ ...(!baseAst?.columns && {
99
+ columns: getAllPossibleColumns(baseAst, schemaData.schema).map((c) => {
100
+ const newColumn = deepCopy(defaultColumn);
101
+ newColumn.expr.column = c.field;
102
+ return newColumn;
103
+ }),
104
+ }),
105
+ ...(!baseAst?.from && {
106
+ from: [{ ...defaultTable, table: initialTableName }],
107
+ }),
108
+ where: newFormData,
109
+ });
110
+ setBaseAst(newAst);
111
+ setFormData(newFormData);
112
+ fetchSqlQuery(newAst, newFormData);
113
+ setRemovingFilter(false);
114
+ }
115
+ }, disabled: !actionsEnabled }, `filter_${index}_${item.value ? filterSentence(item.value) : ''}`));
116
+ }
117
+ }) }));
118
+ }
@@ -12,7 +12,6 @@ import { QuillProviderClient } from '../../models/Client';
12
12
  */
13
13
  export declare const QuillButton: ({ children, ...props }: any) => import("react/jsx-runtime").JSX.Element;
14
14
  export declare const QuillSecondaryButton: ({ children, ...props }: any) => import("react/jsx-runtime").JSX.Element;
15
- export declare const QuillReportBuilderTable: ({ rows, columns, error, ...props }: any) => import("react/jsx-runtime").JSX.Element;
16
15
  export declare const QuillTag: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
17
16
  export interface SidebarHeadingComponentProps {
18
17
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { forwardRef, useContext, useEffect, useRef, useState, } from 'react';
3
3
  import { MemoizedCheckbox, LoadingSpinner, MemoizedPopover, } from '../UiComponents';
4
- import MemoizedQuillTable from '../QuillTable';
5
4
  import { ThemeContext } from '../../Context';
6
5
  import { isNodeEmptyCollection, allNumericNodesValidInTree } from './util';
7
- import { downloadCSV } from '../../utils/csv';
8
- import { DEFAULT_PAGINATION } from '../../utils/paginationProcessing';
9
6
  import { buildQueryFromFilters, uniqueValuesToStringMap, } from '../../utils/filterProcessing';
10
7
  import { getRelevantInfoFromQuery } from '../../utils/tableProcessing';
11
8
  /**
@@ -54,11 +51,6 @@ export const QuillSecondaryButton = ({ children, ...props }) => {
54
51
  ...props.style,
55
52
  }, children: children }));
56
53
  };
57
- // TODO: remove this, I think it is unused.
58
- export const QuillReportBuilderTable = ({ rows, columns, error, ...props }) => {
59
- const reformattedColumns = columns.map((c) => ({ label: c, field: c }));
60
- return (_jsx("div", { style: { height: '100%', overflow: 'auto' }, children: _jsx(MemoizedQuillTable, { rows: rows, columns: reformattedColumns, rowsPerPage: DEFAULT_PAGINATION.rowsPerPage, hideCSVDownloadButton: rows?.length > 0, downloadCSV: () => downloadCSV({ rows, fields: reformattedColumns, name: 'my_report' }), emptyStateLabel: error || 'No results', ...props }) }));
61
- };
62
54
  export const QuillTag = forwardRef(({ label, onClick, children, onClickDelete, hideDelete = false }, forwardedRef) => {
63
55
  const [theme] = useContext(ThemeContext);
64
56
  return (_jsxs("div", { style: {
@@ -106,6 +106,7 @@ export interface MultiSelectComponentProps {
106
106
  };
107
107
  }) => void;
108
108
  isLoading?: boolean;
109
+ disabled?: boolean;
109
110
  }
110
111
  export interface HeaderComponentProps {
111
112
  label: string;
@@ -178,7 +179,7 @@ export interface TableComponentProps {
178
179
  setCurrentPage?: (page: number) => void;
179
180
  }
180
181
  export declare const QuillTableSQLEditorComponent: ({ rows, columns, isLoading, rowCount, rowCountIsLoading, rowsPerPage, onPageChange, onSortChange, containerStyle, currentPage, setCurrentPage, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
181
- export declare const QuillTableComponent: ({ rows, columns, isLoading, rowCount, onPageChange, onSortChange, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
182
+ export declare const QuillTableComponent: ({ rows, columns, isLoading, rowCount, rowCountIsLoading, onPageChange, onSortChange, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
182
183
  export declare const QuillEmptyDashboardComponent: () => import("react/jsx-runtime").JSX.Element;
183
184
  export declare const QuillLoadingDashboardComponent: ({ containerStyle, chartContainerStyle, LoadingComponent, }: {
184
185
  containerStyle?: React.CSSProperties | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
@@ -379,12 +379,12 @@ export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false,
379
379
  onPageChange && onPageChange(page);
380
380
  }, onSortChange: (sort) => {
381
381
  setSort(sort);
382
- setPage(page);
383
382
  setCurrentPage && setCurrentPage(0);
383
+ setPage(0);
384
384
  onSortChange && onSortChange(sort);
385
385
  }, sort: sort, currentPage: currentPage ?? page, isLoading: isLoading, containerStyle: containerStyle }));
386
386
  };
387
- export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, onPageChange, onSortChange, }) => {
387
+ export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, rowCountIsLoading, onPageChange, onSortChange, }) => {
388
388
  const [sort, setSort] = useState({ field: '', direction: '' });
389
389
  const [page, setPage] = useState(0);
390
390
  const [initialLoad, setInitialLoad] = useState(true);
@@ -402,7 +402,7 @@ export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount
402
402
  height: '100%',
403
403
  }, children: _jsx(ChartSkeleton, {}) }));
404
404
  }
405
- return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, onPageChange: (page) => {
405
+ return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, onPageChange: (page) => {
406
406
  setPage(page);
407
407
  onPageChange && onPageChange(page);
408
408
  }, onSortChange: (sort) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,eAAO,MAAM,UAAU;gDAYC,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;2CAsQF,MAAM;;qCAhP1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;CA0P9E,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,eAAO,MAAM,UAAU;gDAYC,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;2CA0PF,MAAM;;qCApO1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;CA8O9E,CAAC"}
@@ -9,7 +9,7 @@ export const useReports = () => {
9
9
  dispatch({
10
10
  type: 'UPDATE_DASHBOARD_ITEM',
11
11
  id: id,
12
- data: { ...dashboard[id], triggerReload: true },
12
+ data: { triggerReload: true },
13
13
  });
14
14
  };
15
15
  const reloadFilteredReports = (predicate) => {
@@ -35,8 +35,6 @@ export const useDashboard = (dashboardName) => {
35
35
  (dashboardConfig[dashboardName] &&
36
36
  !dashboardConfig[dashboardName]?.sections), [isLoading, isClientLoading, dashboardConfig, dashboardName]);
37
37
  const handleReload = async (overrideDashboardName, fetchFromServer = false, reportAction, overrideFilters) => {
38
- if (!fetchFromServer && isLoading)
39
- return;
40
38
  if (overrideFilters) {
41
39
  // Pull the date filter out of the override filters, process it, and append it to the filters
42
40
  const dateFilter = overrideFilters.filters.find((f) => f.filterType === 'date_range');
@@ -113,61 +111,54 @@ export const useDashboard = (dashboardName) => {
113
111
  ...(dashboard?.filters ?? []),
114
112
  ]);
115
113
  };
116
- //FIXME: report should be of type QuillReport
117
114
  async function getDashboards(dashboardName, fetchFromServer = false, reportAction) {
118
- const curDashboardConfig = dashboardConfig[dashboardName];
115
+ let curDashboardConfig = dashboardConfig[dashboardName];
119
116
  if (!fetchFromServer && curDashboardConfig?.sections) {
120
117
  if (reportAction?.action === 'delete') {
121
- dashboardConfigContext({
122
- type: 'UPDATE_DASHBOARD',
123
- id: dashboardName,
124
- data: {
125
- ...curDashboardConfig,
126
- sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
127
- sectionKey,
128
- reports.filter((report) => (report.id ?? report._id) !==
129
- (reportAction.report.id ?? reportAction.report._id)),
130
- ])),
131
- },
132
- });
118
+ curDashboardConfig = {
119
+ ...curDashboardConfig,
120
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
121
+ sectionKey,
122
+ reports.filter((report) => report.id !== reportAction.report.id),
123
+ ])),
124
+ };
133
125
  }
134
126
  else if (reportAction?.action === 'upsert') {
135
127
  const containsReport = Object.values(curDashboardConfig?.sections ?? {})
136
128
  .flat()
137
- .some((report) => (report.id ?? report._id) ===
138
- (reportAction?.report.id ?? reportAction?.report._id));
139
- dashboardConfigContext({
140
- type: 'UPDATE_DASHBOARD',
141
- id: dashboardName,
142
- data: {
143
- ...curDashboardConfig,
144
- sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
145
- sectionKey,
146
- containsReport
147
- ? reports.map((report) => {
148
- return {
149
- report,
150
- // FIXME: this is bizarre. The _id field shouldn't even exist on the report according to the type, but that's what is set.
151
- ...((reportAction?.report.id ??
152
- reportAction?.report._id) ===
153
- (report.id ?? report._id)
154
- ? reportAction?.report
155
- : dashboard[report.id ?? report._id]),
156
- _id: report.id ?? report._id,
157
- };
158
- })
159
- : [
160
- ...(reports ?? []),
161
- {
162
- report: reportAction?.report,
163
- ...dashboard[reportAction?.report.id ?? reportAction?.report._id],
164
- _id: reportAction?.report.id ?? reportAction?.report._id,
165
- },
166
- ],
167
- ])),
168
- },
169
- });
129
+ .some((report) => report.id === reportAction?.report.id);
130
+ curDashboardConfig = {
131
+ ...curDashboardConfig,
132
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
133
+ sectionKey,
134
+ containsReport
135
+ ? reports.map((report) => {
136
+ return {
137
+ report,
138
+ ...(reportAction?.report.id === report.id
139
+ ? reportAction?.report
140
+ : dashboard[report.id]),
141
+ _id: report.id,
142
+ id: report.id,
143
+ };
144
+ })
145
+ : [
146
+ ...(reports ?? []),
147
+ {
148
+ report: reportAction?.report,
149
+ ...dashboard[reportAction?.report.id],
150
+ id: reportAction?.report.id,
151
+ _id: reportAction?.report.id,
152
+ },
153
+ ],
154
+ ])),
155
+ };
170
156
  }
157
+ dashboardConfigContext({
158
+ type: 'UPDATE_DASHBOARD',
159
+ id: dashboardName,
160
+ data: curDashboardConfig,
161
+ });
171
162
  setIsLoading(false);
172
163
  return curDashboardConfig;
173
164
  }
@@ -1,6 +1,19 @@
1
- export declare const useExport: (reportId?: string) => {
1
+ /// <reference types="react" />
2
+ import { QuillReport } from '../models/Report';
3
+ export declare const useExport: (reportId?: string, { CustomDocumentComponent, maximumRowsPerPage, sectionField, }?: {
4
+ CustomDocumentComponent?: ((props: QuillPDFProps) => JSX.Element) | undefined;
5
+ maximumRowsPerPage?: number | undefined;
6
+ sectionField?: string | undefined;
7
+ }) => {
2
8
  downloadCSV: () => void;
3
9
  downloadPDF: () => void;
4
10
  isLoading: boolean;
5
11
  };
12
+ interface QuillPDFProps {
13
+ report: QuillReport;
14
+ pageNumber: number;
15
+ numberOfPages: number;
16
+ maximumRowsPerPage: number;
17
+ }
18
+ export {};
6
19
  //# sourceMappingURL=useExport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AA8DA,eAAO,MAAM,SAAS,cAAe,MAAM;;;;CA2D1C,CAAC"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAwD/C,eAAO,MAAM,SAAS,cACT,MAAM;uCAOmB,aAAa,KAAK,WAAW;;;;;;;CA2LlE,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -1,13 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { downloadCSV } from '../utils/csv';
3
- import { useContext, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
+ import { useContext, useMemo, useState } from 'react';
4
4
  import { getData } from '../utils/dataFetcher';
5
- import { ClientContext, DashboardFiltersContext, ThemeContext, } from '../Context';
6
- import ReactDOM from 'react-dom';
7
- import { quillFormat } from '../utils/valueFormatter';
5
+ import { ClientContext, DashboardContext, DashboardFiltersContext, } from '../Context';
8
6
  import { cleanDashboardItem } from '../utils/dashboard';
9
- import { useReactToPrint } from 'react-to-print';
7
+ import { defaultQuillTheme } from '../QuillProvider';
8
+ import { createRoot } from 'react-dom/client';
9
+ import { flushSync } from 'react-dom';
10
10
  import { ChartDisplay } from '../Chart';
11
+ import { fetchReport } from '../utils/report';
12
+ import jsPDF from 'jspdf';
13
+ import { quillFormat } from '../utils/valueFormatter';
11
14
  async function getExportData(client, dashboardFilters, reportId) {
12
15
  const minimalFilters = Object.values(dashboardFilters).length
13
16
  ? Object.values(dashboardFilters).map((filter) => {
@@ -42,18 +45,21 @@ async function getExportData(client, dashboardFilters, reportId) {
42
45
  }
43
46
  return cleanedReport;
44
47
  }
45
- export const useExport = (reportId) => {
48
+ export const useExport = (reportId, { CustomDocumentComponent = QuillCustomDocumentComponent, maximumRowsPerPage = 20,
49
+ // if sectionKeyField is passed, then we will group by that field
50
+ sectionField, } = {}) => {
46
51
  const { dashboardFilters } = useContext(DashboardFiltersContext);
52
+ const [dashboard] = useContext(DashboardContext);
47
53
  const specificDashboardFilters = useMemo(() => {
48
54
  //FIXME: Pretty sure this won't work with multiple dashboards
49
55
  Object.values(dashboardFilters).map((dashboardFilter) => {
50
56
  return dashboardFilter.filter;
51
57
  });
52
58
  }, [dashboardFilters]);
53
- const [theme] = useContext(ThemeContext);
59
+ // const [theme] = useContext(ThemeContext);
54
60
  const [client] = useContext(ClientContext);
55
61
  const [isLoading, setIsLoading] = useState(false);
56
- if (!reportId) {
62
+ if (!reportId || !client) {
57
63
  return { downloadCSV: () => { }, downloadPDF: () => { }, isLoading: false };
58
64
  }
59
65
  return {
@@ -71,48 +77,124 @@ export const useExport = (reportId) => {
71
77
  setIsLoading(false);
72
78
  },
73
79
  downloadPDF: async () => {
74
- if (!client) {
75
- return;
76
- }
77
80
  setIsLoading(true);
78
- const resp = await getExportData(client, specificDashboardFilters, reportId);
79
- const iframe = document.createElement('iframe');
80
- document.body.appendChild(iframe);
81
- if (iframe && iframe.contentDocument && theme) {
82
- ReactDOM.render(_jsx(PDFDetail, { report: resp, theme: theme }), iframe.contentDocument.body);
81
+ // @ts-ignore
82
+ let report;
83
+ if (reportId &&
84
+ dashboard[reportId] &&
85
+ dashboardFilters &&
86
+ // @ts-ignore
87
+ dashboardFilters[dashboard[reportId].dashboardName]) {
88
+ const { report: fetchedReport } = await fetchReport(reportId, client, true, Object.values(
89
+ // @ts-ignore
90
+ dashboardFilters[dashboard[reportId].dashboardName]).map((elem) => elem.filter));
91
+ report = fetchedReport;
83
92
  }
84
- // delete the iframe
85
- setTimeout(() => {
86
- document.body.removeChild(iframe);
87
- }, 1000);
88
- setIsLoading(false);
93
+ else {
94
+ const { report: fetchedReport } = await fetchReport(reportId, client, true, []);
95
+ report = fetchedReport;
96
+ }
97
+ let groupedRows = {};
98
+ if (sectionField) {
99
+ groupedRows = (report?.rows || []).reduce((acc, row) => {
100
+ const key = row[sectionField];
101
+ if (key !== undefined) {
102
+ if (!acc[key]) {
103
+ acc[key] = [];
104
+ }
105
+ acc[key].push(row);
106
+ }
107
+ return acc;
108
+ }, {});
109
+ }
110
+ // report.rows
111
+ const numberOfPages = Math.ceil(report.rows.length / maximumRowsPerPage);
112
+ let html = '';
113
+ let currentPage = {};
114
+ let currentCount = 0;
115
+ let pageNumber = 1;
116
+ // Iterate over each group of rows
117
+ for (const groupKey in groupedRows) {
118
+ // @ts-ignore
119
+ const rows = groupedRows[groupKey];
120
+ let groupIndex = 0;
121
+ while (groupIndex < rows.length) {
122
+ const remainingRows = rows.length - groupIndex;
123
+ const availableSpace = maximumRowsPerPage - currentCount;
124
+ const rowsToAdd = Math.min(remainingRows, availableSpace);
125
+ // @ts-ignore
126
+ currentPage[groupKey] = (currentPage[groupKey] || []).concat(rows.slice(groupIndex, groupIndex + rowsToAdd));
127
+ currentCount += rowsToAdd;
128
+ groupIndex += rowsToAdd;
129
+ if (currentCount === maximumRowsPerPage) {
130
+ if (Object.keys(currentPage).length > 0) {
131
+ pageNumber++;
132
+ const div = document.createElement('div');
133
+ const root = createRoot(div);
134
+ flushSync(() => {
135
+ root.render(_jsx(CustomDocumentComponent, { report: {
136
+ // @ts-ignore
137
+ ...report,
138
+ // @ts-ignore
139
+ sections: currentPage,
140
+ filters: Object.values(
141
+ // @ts-ignore
142
+ dashboardFilters[report.dashboardName]).map((elem) => elem.filter),
143
+ }, pageNumber: pageNumber, numberOfPages: numberOfPages, maximumRowsPerPage: maximumRowsPerPage }));
144
+ });
145
+ // const divContentBuffer = Buffer.from(div.innerHTML, 'utf-8');
146
+ // htmlBuffer = Buffer.concat([htmlBuffer, divContentBuffer]);
147
+ html += div.innerHTML;
148
+ currentPage = {};
149
+ currentCount = 0;
150
+ }
151
+ }
152
+ }
153
+ }
154
+ // Add the last page if it has remaining rows
155
+ if (Object.keys(currentPage).length > 0) {
156
+ pageNumber++;
157
+ const div = document.createElement('div');
158
+ const root = createRoot(div);
159
+ flushSync(() => {
160
+ root.render(_jsx(CustomDocumentComponent, { report: {
161
+ // @ts-ignore
162
+ ...report,
163
+ // @ts-ignore
164
+ sections: currentPage,
165
+ filters: Object.values(
166
+ // @ts-ignore
167
+ dashboardFilters[report.dashboardName]).map((elem) => elem.filter),
168
+ }, pageNumber: pageNumber, numberOfPages: numberOfPages, maximumRowsPerPage: maximumRowsPerPage }));
169
+ });
170
+ // const divContentBuffer = Buffer.from(div.innerHTML, 'utf-8');
171
+ // htmlBuffer = Buffer.concat([htmlBuffer, divContentBuffer]);
172
+ html += div.innerHTML;
173
+ currentPage = {};
174
+ currentCount = 0;
175
+ }
176
+ const doc = new jsPDF('landscape', 'pt', 'a4');
177
+ // const htmlStringFromBuffer = htmlBuffer.toString('utf-8');
178
+ doc.html(html, {
179
+ callback: function (doc) {
180
+ // @ts-ignore
181
+ doc.save(`${report.name}.pdf`);
182
+ setIsLoading(false);
183
+ },
184
+ });
89
185
  },
90
186
  isLoading,
91
187
  };
92
188
  };
93
- function PDFDetail({ report, theme }) {
94
- const componentRef = useRef(null);
95
- const handlePrint = useReactToPrint({
96
- content: () => componentRef.current,
97
- pageStyle: `@page {
98
- size: letter;
99
- margin: 0;
100
- }
101
-
102
- body {
103
- margin: 2rem;
104
- }`,
105
- });
106
- useLayoutEffect(() => {
107
- setTimeout(() => handlePrint(), 1500);
108
- }, []);
109
- return (_jsxs("div", { ref: componentRef, style: { display: 'flex', flexDirection: 'column', margin: '2rem' }, children: [_jsx("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: _jsx("h2", { style: {
189
+ function QuillCustomDocumentComponent({ report }) {
190
+ // const [theme] = useContext(ThemeContext);
191
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', margin: '2rem' }, children: [_jsx("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: _jsx("h2", { style: {
110
192
  fontSize: 18,
111
193
  fontWeight: '600',
112
194
  textAlign: 'left',
113
195
  paddingLeft: 10,
114
- color: theme?.primaryTextColor,
115
- }, children: report.name }) }), _jsxs("div", { style: { paddingLeft: 20, paddingRight: 20 }, children: [report.chartType !== 'table' && (_jsx(ChartDisplay, { overrideTheme: theme, config: report, containerStyle: {
196
+ // color: theme?.primaryTextColor,
197
+ }, children: report.name }) }), _jsxs("div", { style: { paddingLeft: 20, paddingRight: 20 }, children: [report.chartType !== 'table' && (_jsx(ChartDisplay, { overrideTheme: defaultQuillTheme, config: report, containerStyle: {
116
198
  display: 'flex',
117
199
  height: 400,
118
200
  }, loading: false, isAnimationActive: false })), _jsx("div", { style: {
@@ -1 +1 @@
1
- {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAGjC,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;UAEtD,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,SAAS;sBACP,MAAM,KAAK,IAAI;qBAChB,MAAM,aAAa,MAAM,KAAK,IAAI;2BAEnC,WAAW,KAAK,MAAM,GAAG,SAAS,WACvC,SAAS;CAiLrB,CAAC;AAEF,eAAO,MAAM,QAAQ,cACR,MAAM;UAEX;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS;WAC7C,MAAM,GAAG,SAAS;CAoD1B,CAAC"}
1
+ {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAGjC,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;UAEtD,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,SAAS;sBACP,MAAM,KAAK,IAAI;qBAChB,MAAM,aAAa,MAAM,KAAK,IAAI;2BAEnC,WAAW,KAAK,MAAM,GAAG,SAAS,WACvC,SAAS;CAmLrB,CAAC;AAEF,eAAO,MAAM,QAAQ,cACR,MAAM;UAEX;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS;WAC7C,MAAM,GAAG,SAAS;CAoD1B,CAAC"}
@@ -132,7 +132,9 @@ export const useQuill = (reportId, pagination) => {
132
132
  };
133
133
  useEffect(() => {
134
134
  if (reportId) {
135
- fetchReportHelper(reportId, pagination ? true : false, pagination);
135
+ fetchReportHelper(reportId, pagination ? true : false, {
136
+ page: pagination,
137
+ });
136
138
  }
137
139
  }, [reportId, dashboard]);
138
140
  useEffect(() => {