@quillsql/react 2.13.21 → 2.13.23

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/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +63 -43
  3. package/dist/cjs/Context.js +2 -2
  4. package/dist/cjs/Dashboard.d.ts.map +1 -1
  5. package/dist/cjs/Dashboard.js +58 -13
  6. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  7. package/dist/cjs/components/Chart/LineChart.js +12 -22
  8. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  9. package/dist/cjs/components/Dashboard/DashboardFilter.js +6 -6
  10. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  11. package/dist/cjs/components/Dashboard/DataLoader.js +22 -10
  12. package/dist/cjs/hooks/useDashboard.d.ts +1 -4
  13. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  14. package/dist/cjs/hooks/useDashboard.js +1 -22
  15. package/dist/cjs/hooks/useExport.d.ts +1 -8
  16. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  17. package/dist/cjs/hooks/useExport.js +6 -4
  18. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  19. package/dist/cjs/hooks/useQuill.js +4 -2
  20. package/dist/cjs/hooks/useReport.d.ts +12 -0
  21. package/dist/cjs/hooks/useReport.d.ts.map +1 -0
  22. package/dist/cjs/hooks/useReport.js +56 -0
  23. package/dist/cjs/index.d.ts +2 -1
  24. package/dist/cjs/index.d.ts.map +1 -1
  25. package/dist/cjs/index.js +3 -2
  26. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  27. package/dist/cjs/internals/ReportBuilder/PivotModal.js +1 -0
  28. package/dist/cjs/utils/constants.d.ts.map +1 -1
  29. package/dist/cjs/utils/constants.js +2 -2
  30. package/dist/cjs/utils/dataProcessing.js +2 -2
  31. package/dist/cjs/utils/filterProcessing.d.ts +2 -2
  32. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  33. package/dist/cjs/utils/filterProcessing.js +166 -36
  34. package/dist/cjs/utils/logging.js +1 -1
  35. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  36. package/dist/cjs/utils/pivotConstructor.js +47 -10
  37. package/dist/cjs/utils/queryConstructor.js +1 -1
  38. package/dist/cjs/utils/valueFormatter.d.ts +5 -1
  39. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  40. package/dist/cjs/utils/valueFormatter.js +32 -12
  41. package/dist/esm/Chart.d.ts.map +1 -1
  42. package/dist/esm/Chart.js +64 -44
  43. package/dist/esm/Context.js +2 -2
  44. package/dist/esm/Dashboard.d.ts.map +1 -1
  45. package/dist/esm/Dashboard.js +61 -16
  46. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  47. package/dist/esm/components/Chart/LineChart.js +15 -25
  48. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  49. package/dist/esm/components/Dashboard/DashboardFilter.js +7 -7
  50. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  51. package/dist/esm/components/Dashboard/DataLoader.js +22 -10
  52. package/dist/esm/hooks/useDashboard.d.ts +1 -4
  53. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  54. package/dist/esm/hooks/useDashboard.js +1 -21
  55. package/dist/esm/hooks/useExport.d.ts +1 -8
  56. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  57. package/dist/esm/hooks/useExport.js +6 -4
  58. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  59. package/dist/esm/hooks/useQuill.js +4 -2
  60. package/dist/esm/hooks/useReport.d.ts +12 -0
  61. package/dist/esm/hooks/useReport.d.ts.map +1 -0
  62. package/dist/esm/hooks/useReport.js +51 -0
  63. package/dist/esm/index.d.ts +2 -1
  64. package/dist/esm/index.d.ts.map +1 -1
  65. package/dist/esm/index.js +2 -1
  66. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  67. package/dist/esm/internals/ReportBuilder/PivotModal.js +1 -0
  68. package/dist/esm/utils/constants.d.ts.map +1 -1
  69. package/dist/esm/utils/constants.js +2 -2
  70. package/dist/esm/utils/dataProcessing.js +2 -2
  71. package/dist/esm/utils/filterProcessing.d.ts +2 -2
  72. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  73. package/dist/esm/utils/filterProcessing.js +166 -36
  74. package/dist/esm/utils/logging.js +1 -1
  75. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  76. package/dist/esm/utils/pivotConstructor.js +47 -10
  77. package/dist/esm/utils/queryConstructor.js +1 -1
  78. package/dist/esm/utils/valueFormatter.d.ts +5 -1
  79. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  80. package/dist/esm/utils/valueFormatter.js +33 -13
  81. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useContext, useEffect, useState, useMemo, useRef, } from 'react';
3
3
  import { ChartDisplay } from './Chart';
4
4
  import { PRIMARY_RANGE, COMPARISON_RANGE, defaultOptionsV2, getRangeFromPresetOptions, } from './DateRangePicker/dateRangePickerUtils';
5
- import { ClientContext, ThemeContext, SchemaDataContext } from './Context';
5
+ import { ClientContext, ThemeContext, SchemaDataContext, DashboardFiltersContext } from './Context';
6
6
  import { useDashboard } from './hooks/useDashboard';
7
7
  import DashboardSectionContainer from './components/Dashboard/DashboardSectionContainer';
8
8
  import QuillMetricComponent from './components/Dashboard/MetricComponent';
@@ -15,11 +15,11 @@ import { QuillDateRangePicker } from './DateRangePicker/QuillDateRangePicker';
15
15
  import DataLoader, { ChartDataLoader, } from './components/Dashboard/DataLoader';
16
16
  import { QuillEmptyDashboardComponent, QuillFilterContainerComponent, QuillLoadingDashboardComponent, QuillModalComponent, MemoizedButton, MemoizedSecondaryButton, QuillTextInput, MemoizedPopover, QuillErrorMessageComponent, } from './components/UiComponents';
17
17
  import { DashboardFilter } from './components/Dashboard/DashboardFilter';
18
- import { BoolOperator, convertCustomFilter, FieldType, NullOperator, NumberOperator, StringOperator, } from './models/Filter';
18
+ import { BoolOperator, convertCustomFilter, FieldType, FilterType, NullOperator, NumberOperator, StringOperator, } from './models/Filter';
19
19
  import { QuillMultiSelectComponentWithCombo } from './components/QuillMultiSelectWithCombo';
20
20
  import { QuillSelectComponentWithCombo } from './components/QuillSelectWithCombo';
21
21
  import { getUniqueStringValues } from './utils/tableProcessing';
22
- import { filterSentence, getType } from './utils/filterProcessing';
22
+ import { applyCustomFilterToDashDateFilter, filterSentence, getType } from './utils/filterProcessing';
23
23
  import { QuillChartErrorWithAction } from './components/Chart/ChartError';
24
24
  import { FilterPopoverWrapper, QuillFilterPopover, } from './components/ReportBuilder/ui';
25
25
  import FilterModal from './components/ReportBuilder/FilterModal';
@@ -28,6 +28,7 @@ import QuillTemplateTableComponent from './components/Dashboard/TemplateTableCom
28
28
  import QuillDashboardTemplate from './components/Dashboard/DashboardTemplate';
29
29
  import { DashboardFilterType, } from './models/Filter';
30
30
  import { DEFAULT_PAGINATION } from './utils/paginationProcessing';
31
+ import equal from 'fast-deep-equal';
31
32
  const defaultChartContainerStyles = {
32
33
  display: 'flex',
33
34
  width: '100%',
@@ -129,6 +130,7 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
129
130
  const [client, isClientLoading] = useContext(ClientContext);
130
131
  const [theme] = useContext(ThemeContext);
131
132
  const [schemaData] = useContext(SchemaDataContext);
133
+ const { dispatch: dashboardFiltersDispatch } = useContext(DashboardFiltersContext);
132
134
  const [fieldValuesMap, setFieldValuesMap] = useState({}); // Mapping of unique values per field, used in string filter 'in' and 'not in'
133
135
  const [referencedTables, setReferencedTables] = useState([]); // Intersection of tables referenced in the dashboard
134
136
  const [fieldValuesIsLoaded, setFieldValuesIsLoaded] = useState(false);
@@ -162,12 +164,63 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
162
164
  const prevClientIdRef = useRef(undefined);
163
165
  const addFilterPopoverButtonRef = useRef(null);
164
166
  const viewFiltersPopoverButtonRef = useRef(null);
167
+ const previousFilters = useRef(undefined);
168
+ if (!equal(previousFilters.current, filters)) {
169
+ previousFilters.current = filters;
170
+ }
165
171
  useEffect(() => {
166
- setFilterValues({});
172
+ setFilterValues(Object.values(populatedDashboardFilters ?? {}).reduce((acc, f) => {
173
+ acc[f.label] =
174
+ f.filterType === 'string'
175
+ ? f.stringFilterType === 'multiselect'
176
+ ? { values: f.values, operator: 'IN' }
177
+ : { selectedValue: f.selectedValue }
178
+ : {
179
+ startDate: f.startDate,
180
+ endDate: f.endDate,
181
+ preset: f.preset,
182
+ comparisonRange: f.comparisonRange,
183
+ };
184
+ return acc;
185
+ }, {}));
167
186
  const clientIdChanged = prevClientIdRef.current !== client?.organizationId;
168
187
  reload(name, clientIdChanged);
169
188
  prevClientIdRef.current = client?.organizationId;
170
189
  }, [name, client?.organizationId]);
190
+ useEffect(() => {
191
+ const dashboardDateFilter = populatedDashboardFilters?.find((f) => f.filterType === 'date_range');
192
+ if (dashboardDateFilter) {
193
+ // Filter for custom date filter that applies to the report's dateField
194
+ const customDateFilter = previousFilters.current?.find((f) => f.filterType === FilterType.DateCustomFilter
195
+ || f.filterType === FilterType.DateFilter
196
+ || f.filterType === FilterType.DateComparisonFilter
197
+ // FIXME: this is the correct way to do it but the demo has a hardcoded filter field
198
+ // && f.field === report?.dateField?.field && f.table === report?.dateField?.table,
199
+ );
200
+ if (!customDateFilter) {
201
+ return;
202
+ }
203
+ const newFilter = applyCustomFilterToDashDateFilter(customDateFilter, dashboardDateFilter);
204
+ setFilterValues((filterValues) => ({
205
+ ...filterValues,
206
+ [dashboardDateFilter.label]: {
207
+ startDate: newFilter.startDate,
208
+ endDate: newFilter.endDate,
209
+ preset: newFilter.preset,
210
+ comparisonRange: newFilter.comparisonRange,
211
+ },
212
+ }));
213
+ dashboardFiltersDispatch({
214
+ type: 'UPDATE_DASHBOARD_FILTER',
215
+ dashboardName: name,
216
+ filterName: dashboardDateFilter.label,
217
+ data: {
218
+ filter: newFilter,
219
+ loading: false,
220
+ },
221
+ });
222
+ }
223
+ }, [previousFilters.current]);
171
224
  // Go through all columns in the referenced tables and get the unique values to use in fieldValuesMap
172
225
  useEffect(() => {
173
226
  const fetchData = async () => {
@@ -245,10 +298,6 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
245
298
  else {
246
299
  filterValue = { selectedValue: value };
247
300
  }
248
- setFilterValues((filterValues) => ({
249
- ...filterValues,
250
- [filter.label]: filterValue,
251
- }));
252
301
  }
253
302
  else if (filter.filterType === DashboardFilterType.Date) {
254
303
  if (comparison ||
@@ -284,10 +333,6 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
284
333
  value: key,
285
334
  },
286
335
  };
287
- setFilterValues((filterValues) => ({
288
- ...filterValues,
289
- [filter.label]: filterValue,
290
- }));
291
336
  }
292
337
  else {
293
338
  const primaryRange = value && value.preset
@@ -305,12 +350,12 @@ export default function Dashboard({ name, hidden = false, SelectComponent = Quil
305
350
  value: preset,
306
351
  },
307
352
  };
308
- setFilterValues((filterValues) => ({
309
- ...filterValues,
310
- [filter.label]: filterValue,
311
- }));
312
353
  }
313
354
  }
355
+ setFilterValues((filterValues) => ({
356
+ ...filterValues,
357
+ [filter.label]: filterValue,
358
+ }));
314
359
  reload(name, false, undefined, {
315
360
  filters: populatedDashboardFilters.map((f) => filter.label === f.label ? { ...f, ...filterValue } : f),
316
361
  editedFilterLabel: filter.label,
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgC7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CA0RA"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAyB7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAsRA"}
@@ -1,48 +1,38 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Area, CartesianGrid, ComposedChart as ReChartsAreaChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts';
3
- import { DATE_FORMAT_TYPES, quillFormat, valueFormatter, } from '../../utils/valueFormatter';
2
+ import { Area, CartesianGrid, ComposedChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts';
3
+ import { DATE_FORMAT_TYPES, valueFormatter, } from '../../utils/valueFormatter';
4
4
  import { axisFormatter } from '../../utils/axisFormatter';
5
5
  import { selectColor } from '../../utils/color';
6
6
  import ChartTooltip from '../../components/Chart/ChartTooltip';
7
7
  import getDomain from '../../utils/getDomain';
8
- import { useEffect, useState } from 'react';
9
8
  import { hashCode } from '../../utils/crypto';
9
+ import { useMemo } from 'react';
10
10
  function createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat) {
11
11
  let lineChartData = [];
12
- if (dateFilter &&
12
+ if (dateFilter && dateFilter.startDate && dateFilter.endDate &&
13
13
  DATE_FORMAT_TYPES.includes(xAxisFormat || '') &&
14
14
  (!lineChartData || lineChartData.length === 0)) {
15
15
  const xAxis = xAxisField || '';
16
16
  const yAxis = yAxisFields[0]?.field;
17
- const startDate = quillFormat({
18
- value: dateFilter?.startDate,
19
- format: xAxisFormat,
20
- });
21
- const endDate = quillFormat({
22
- value: dateFilter?.endDate,
23
- format: xAxisFormat,
24
- });
25
17
  lineChartData = [
26
- { [xAxis]: startDate, [yAxis]: '0' },
27
- { [xAxis]: endDate, [yAxis]: '0' },
18
+ { [xAxis]: dateFilter.startDate, [yAxis]: '0' },
19
+ { [xAxis]: dateFilter.endDate, [yAxis]: '0' },
28
20
  ];
29
21
  }
30
22
  return lineChartData;
31
23
  }
32
24
  export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', cartesianGridLineColor, onClickChartElement = () => { }, dateFilter, }) {
33
- const [formattedData, setFormattedData] = useState(data);
34
- useEffect(() => {
25
+ const formattedData = useMemo(() => {
35
26
  if (!data || data.length === 0) {
36
- setFormattedData(createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat));
37
- return;
27
+ return createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat);
38
28
  }
39
29
  const newData = [...data];
40
- if (newData.length === 1) {
41
- const point = { ...newData[0] };
42
- newData.push(point);
43
- }
44
- setFormattedData(newData);
45
- }, [data]);
30
+ // if (newData.length === 1) {
31
+ // const point = { ...newData[0] };
32
+ // newData.push(point);
33
+ // }
34
+ return newData;
35
+ }, [data, yAxisFields, dateFilter, xAxisField, xAxisFormat]);
46
36
  if (!formattedData || formattedData.length === 0) {
47
37
  return (_jsx("div", { style: {
48
38
  display: 'flex',
@@ -79,7 +69,7 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
79
69
  return sum + 1;
80
70
  return sum;
81
71
  }, 0);
82
- return (_jsx("div", { style: { ...containerStyle }, className: className, children: _jsx(ResponsiveContainer, { width: "100%", height: '100%', children: _jsxs(ReChartsAreaChart, { data: formattedData, onClick: (event) => onClickChartElement(event?.activePayload ? event.activePayload[0].payload : undefined), children: [!hideCartesianGrid && (_jsx(CartesianGrid, { horizontal: !hideHorizontalCartesianGrid, vertical: !hideVerticalCartesianGrid, stroke: cartesianGridLineColor ?? '#e5e7eb', strokeDasharray: cartesianGridLineStyle === 'dashed' ? '5 5' : undefined })), _jsx(XAxis, { dataKey: xAxisField, hide: hideXAxis, tick: { transform: 'translate(0, 6)' }, style: {
72
+ return (_jsx("div", { style: { ...containerStyle }, className: className, children: _jsx(ResponsiveContainer, { width: "100%", height: '100%', children: _jsxs(ComposedChart, { data: formattedData, onClick: (event) => onClickChartElement(event?.activePayload ? event.activePayload[0].payload : undefined), children: [!hideCartesianGrid && (_jsx(CartesianGrid, { horizontal: !hideHorizontalCartesianGrid, vertical: !hideVerticalCartesianGrid, stroke: cartesianGridLineColor ?? '#e5e7eb', strokeDasharray: cartesianGridLineStyle === 'dashed' ? '5 5' : undefined })), _jsx(XAxis, { dataKey: xAxisField, hide: hideXAxis, tick: { transform: 'translate(0, 6)' }, style: {
83
73
  fontSize: '12px',
84
74
  fontFamily: theme?.chartLabelFontFamily ||
85
75
  theme?.fontFamily ||
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"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"}
@@ -1,24 +1,24 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
- import { COMPARISON_OPTIONS, PRIMARY_RANGE } from '../../DateRangePicker/dateRangePickerUtils';
3
+ import { COMPARISON_OPTIONS, PRIMARY_RANGE, } from '../../DateRangePicker/dateRangePickerUtils';
4
4
  import { QuillDateRangePicker, } from '../../DateRangePicker/QuillDateRangePicker';
5
5
  import { QuillMultiSelectComponent } from '../QuillMultiSelect';
6
6
  import { QuillSelectComponent } from '../QuillSelect';
7
7
  export function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelectComponent, MultiSelectComponent = QuillMultiSelectComponent, DateRangePickerComponent = QuillDateRangePicker, theme, isLoading, }) {
8
8
  const preset = useMemo(() => {
9
- if ('preset' in filter && 'startDate' in filter && 'endDate' in filter) {
10
- if (!filter.preset)
9
+ if (('preset' in filter || 'primaryRange' in filter) && 'startDate' in filter && 'endDate' in filter) {
10
+ if (!filter.preset && !filter.primaryRange)
11
11
  return '';
12
12
  if (!filter.startDate || !filter.endDate)
13
- return filter.preset.value;
14
- const presetRange = filter.presetRanges?.find((range) => range.value === filter.preset.value) ?? PRIMARY_RANGE[filter.preset.value];
13
+ return filter.preset?.value ?? filter.primaryRange.value;
14
+ const presetRange = filter.presetRanges?.find((range) => range.value === (filter.preset?.value ?? filter.primaryRange.value)) ?? PRIMARY_RANGE[filter.preset?.value ?? filter.primaryRange.value];
15
15
  if (!presetRange)
16
- return filter.preset.value;
16
+ return filter.preset?.value ?? filter.primaryRange.value;
17
17
  if (presetRange.startDate !== filter.startDate ||
18
18
  presetRange.endDate !== filter.endDate) {
19
19
  return '';
20
20
  }
21
- return filter.preset.value;
21
+ return filter.preset?.value ?? filter.primaryRange.value;
22
22
  }
23
23
  return '';
24
24
  }, [filter]);
@@ -1 +1 @@
1
- {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA0BtE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAuFF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,oBAAoB,EAAE,2BAA2B,EACjD,UAAkB,GACnB,EAAE;IACD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CAuTd;AAED,KAAK,YAAY,GAAG;IAClB,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,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,eAAe,4FAQzB;IACD,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,KACf,YAAY,CAAC;IAClB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,iBAAiB,GAClB,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;CAC9C,KAAG,GAAG,CAAC,OA2JP,CAAC"}
1
+ {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA0BtE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAuFF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,oBAAoB,EAAE,2BAA2B,EACjD,UAAkB,GACnB,EAAE;IACD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CA+Td;AAED,KAAK,YAAY,GAAG;IAClB,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,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,eAAe,4FAQzB;IACD,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,KACf,YAAY,CAAC;IAClB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,iBAAiB,GAClB,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;CAC9C,KAAG,GAAG,CAAC,OA+JP,CAAC"}
@@ -219,14 +219,22 @@ export default function DataLoader({ item, children, filters, userFilters, addit
219
219
  reportsDispatch({
220
220
  type: 'UPDATE_REPORT',
221
221
  id: item.id,
222
- data: { rows: tempRows, filtersApplied: userFilters },
222
+ data: {
223
+ rows: tempRows,
224
+ loadingRows: false,
225
+ filtersApplied: userFilters,
226
+ },
223
227
  });
224
228
  }
225
229
  else {
226
230
  dispatch({
227
231
  type: 'UPDATE_DASHBOARD_ITEM',
228
232
  id: item.id,
229
- data: { rows: tempRows },
233
+ data: {
234
+ rows: tempRows,
235
+ loadingRows: false,
236
+ filtersApplied: userFilters,
237
+ },
230
238
  });
231
239
  }
232
240
  setAdditionalProcessing(updatedProcessing);
@@ -245,24 +253,24 @@ export default function DataLoader({ item, children, filters, userFilters, addit
245
253
  if (!client || !filters) {
246
254
  return;
247
255
  }
248
- const fetchRowsRequestId = rowsRequestId.current + 1;
249
- rowsRequestId.current = fetchRowsRequestId;
250
256
  const tempReport = (reportMode ? reports : dashboard)[item.id];
251
257
  if (tempReport &&
252
258
  !didFiltersChange(tempReport, filters) &&
253
259
  userFilterValuesEquivalent(userFilters ?? [], previousUserFilters.current ?? []) &&
254
260
  !tempReport.triggerReload) {
255
- setLoading(false);
256
261
  return;
257
262
  }
258
263
  setLoading(true);
264
+ const fetchRowsRequestId = rowsRequestId.current + 1;
265
+ rowsRequestId.current = fetchRowsRequestId;
259
266
  previousUserFilters.current = userFilters ?? null;
260
267
  rowsAbortController.current?.abort();
261
268
  rowsAbortController.current = new AbortController();
262
269
  try {
263
270
  if (reportMode) {
264
271
  try {
265
- await fetchIndividualReport(item.id, 'Chart', true, filters, userFilters, processing, undefined, rowsAbortController.current || undefined);
272
+ await fetchIndividualReport(item.id, 'Chart', true, filters, userFilters, processing, undefined, rowsAbortController.current);
273
+ rowsAbortController.current = null;
266
274
  setError(undefined);
267
275
  }
268
276
  catch (e) {
@@ -278,7 +286,7 @@ export default function DataLoader({ item, children, filters, userFilters, addit
278
286
  id: item.id,
279
287
  data: { ...fetchedReport, triggerReload: false, rowCount: 0 }, // rowCount 0 indicates it's still loading if row length is nonzero
280
288
  appliedFilters: userFilters,
281
- loading: false,
289
+ loadingRows: false,
282
290
  });
283
291
  setError(error);
284
292
  }
@@ -347,6 +355,7 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
347
355
  const previousUserFilters = useRef(null);
348
356
  const previousDateBucket = useRef(undefined);
349
357
  const fetchReportAbortController = useRef(null);
358
+ const rowsRequestId = useRef(0);
350
359
  const chartReport = useMemo(() => {
351
360
  const report = reportMode ? reports[item.id] : dashboard[item.id];
352
361
  if (!report) {
@@ -368,9 +377,10 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
368
377
  userFilterValuesEquivalent(userFilters ?? [], previousUserFilters.current ?? []) &&
369
378
  dateBucket === previousDateBucket.current &&
370
379
  !tempReport.triggerReload) {
371
- setLoading(false);
372
380
  return;
373
381
  }
382
+ const fetchRowsRequestId = rowsRequestId.current + 1;
383
+ rowsRequestId.current = fetchRowsRequestId;
374
384
  previousUserFilters.current = userFilters ?? null;
375
385
  previousDateBucket.current = dateBucket;
376
386
  setLoading(true);
@@ -401,7 +411,7 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
401
411
  id: item.id,
402
412
  data: { ...report, triggerReload: false },
403
413
  appliedFilters: userFilters,
404
- loading: false,
414
+ loadingRows: false,
405
415
  });
406
416
  setError(error);
407
417
  }
@@ -413,7 +423,9 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
413
423
  throw e;
414
424
  }
415
425
  finally {
416
- setLoading(false);
426
+ if (fetchRowsRequestId === rowsRequestId.current) {
427
+ setLoading(false);
428
+ }
417
429
  }
418
430
  };
419
431
  useEffect(() => {
@@ -1,9 +1,6 @@
1
- import { QuillReport, QuillReportInternal } from '../models/Report';
1
+ import { QuillReport } from '../models/Report';
2
2
  import { DashboardFilter, InternalFilter } from '../models/Filter';
3
3
  import { DashboardConfig } from '../models/Dashboard';
4
- export declare const useReports: () => {
5
- reloadFilteredReports: (predicate: (report: QuillReportInternal) => boolean) => void;
6
- };
7
4
  export declare const useDashboard: (dashboardName: string | null, customFilters?: InternalFilter[]) => {
8
5
  data: DashboardConfig | null;
9
6
  dashboardFilters: DashboardFilter[] | null;
@@ -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;AAEpE,OAAO,EACL,eAAe,EAEf,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,UAAU;uCAYR,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBACR,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CA8Gc,MAAM;qCApF1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;CA8FJ,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;sDAuBrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B;4BA+CO,MAAM,oDAMT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;KAClC;4BA2FkC,MAAM;CA8B5C,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EACL,eAAe,EAEf,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,YAAY,kBACR,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CA8Gc,MAAM;qCApF1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;CA8FJ,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;sDAuBrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B;4BA+CO,MAAM,oDAMT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;KAClC;4BA2FkC,MAAM;CA8B5C,CAAC"}
@@ -1,28 +1,8 @@
1
1
  import { useContext, useMemo } from 'react';
2
- import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext, } from '../Context';
2
+ import { ClientContext, DashboardConfigContext, DashboardFiltersContext, } from '../Context';
3
3
  import { PRIMARY_RANGE } from '../DateRangePicker/dateRangePickerUtils';
4
4
  import { DashboardFilterType, } from '../models/Filter';
5
5
  import { createDefaultDateFilter } from '../utils/filterProcessing';
6
- export const useReports = () => {
7
- const [dashboard, dispatch] = useContext(DashboardContext);
8
- const reloadReport = (id) => {
9
- dispatch({
10
- type: 'UPDATE_DASHBOARD_ITEM',
11
- id: id,
12
- data: { triggerReload: true },
13
- });
14
- };
15
- const reloadFilteredReports = (predicate) => {
16
- for (const id in dashboard) {
17
- if (predicate(dashboard[id])) {
18
- reloadReport(id);
19
- }
20
- }
21
- };
22
- return {
23
- reloadFilteredReports,
24
- };
25
- };
26
6
  export const useDashboard = (dashboardName, customFilters) => {
27
7
  const { dashboardConfig, isLoading: isDashboardsLoading, loadDashboard, } = useContext(DashboardConfigContext);
28
8
  const { dashboardFilters, loadFiltersForDashboard } = useContext(DashboardFiltersContext);
@@ -6,15 +6,8 @@ export declare const useExport: (reportId?: string, { CustomDocumentComponent, m
6
6
  }) => {
7
7
  downloadCSV: () => void;
8
8
  downloadPDF: () => void;
9
- isLoading: boolean;
10
- isCSVLoading?: undefined;
11
- isPDFLoading?: undefined;
12
- } | {
13
- downloadCSV: () => Promise<void>;
14
- downloadPDF: () => Promise<void>;
15
- isCSVLoading: boolean;
16
9
  isPDFLoading: boolean;
17
- isLoading?: undefined;
10
+ isCSVLoading: boolean;
18
11
  };
19
12
  interface QuillPDFProps {
20
13
  report: QuillReport;
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA0D/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;;;;;;;;CAyOF,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
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA8D/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;CA2OF,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"}
@@ -40,7 +40,7 @@ async function getExportData(client, dashboardFilters, reportId) {
40
40
  useNewNodeSql: true,
41
41
  };
42
42
  const resp = await getData(client, 'itempost', 'same-origin', hostedBody, cloudBody);
43
- const cleanedReport = await cleanDashboardItem(resp, dashboardFilters);
43
+ const cleanedReport = await cleanDashboardItem(resp, dashboardFilters, client);
44
44
  if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
45
45
  cleanedReport.columns = cleanedReport.yAxisFields;
46
46
  }
@@ -60,7 +60,6 @@ sectionField, } = {}) => {
60
60
  if (!dashboardName || !dashboardFilters[dashboardName]) {
61
61
  return [];
62
62
  }
63
- //FIXME: Pretty sure this won't work with multiple dashboards
64
63
  return Object.values(dashboardFilters[dashboardName]).map((dashboardFilter) => {
65
64
  return dashboardFilter.filter;
66
65
  });
@@ -75,7 +74,7 @@ sectionField, } = {}) => {
75
74
  const [isCSVLoading, setIsCSVLoading] = useState(false);
76
75
  const [isPDFLoading, setIsPDFLoading] = useState(false);
77
76
  if (!reportId || !client) {
78
- return { downloadCSV: () => { }, downloadPDF: () => { }, isLoading: false };
77
+ return { downloadCSV: () => { }, downloadPDF: () => { }, isPDFLoading: false, isCSVLoading: false };
79
78
  }
80
79
  return {
81
80
  downloadCSV: async () => {
@@ -100,6 +99,10 @@ sectionField, } = {}) => {
100
99
  : specificDashboardFilters;
101
100
  const { report: fetchedReport } = await fetchReport(reportId, client, true, filters);
102
101
  const report = fetchedReport;
102
+ if (report.pivot && report.pivotRows && report.pivotColumns) {
103
+ report.rows = report.pivotRows;
104
+ report.columns = report.pivotColumns;
105
+ }
103
106
  let groupedRows = {};
104
107
  if (sectionField) {
105
108
  groupedRows = (report?.rows || []).reduce((acc, row) => {
@@ -194,7 +197,6 @@ sectionField, } = {}) => {
194
197
  // const divContentBuffer = Buffer.from(div.innerHTML, 'utf-8');
195
198
  // htmlBuffer = Buffer.concat([htmlBuffer, divContentBuffer]);
196
199
  html += div.innerHTML;
197
- console.log('html', html);
198
200
  currentCount = 0;
199
201
  }
200
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAIjC,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,KAC3D;IACD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EACL,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC,GAC/C,CAAC,MAAM,SAAS,CAAC,CAAC;CA+MvB,CAAC"}
1
+ {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAIjC,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,KAC3D;IACD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EACL,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC,GAC/C,CAAC,MAAM,SAAS,CAAC,CAAC;CAiNvB,CAAC"}
@@ -163,8 +163,10 @@ export const useQuill = (reportId, pagination) => {
163
163
  }, [reportId, specificReportFilters]);
164
164
  return {
165
165
  data: processedReport ?? null,
166
- // rows is undefined sometimes when loading is false ??? @sam
167
- loading: !processedReport || !processedReport.rows || loading,
166
+ loading: !reportId
167
+ || (reports[reportId] || dashboard[reportId])?.loadingRows
168
+ || !processedReport?.rows
169
+ || loading,
168
170
  error,
169
171
  fetchMore,
170
172
  setSort,
@@ -0,0 +1,12 @@
1
+ import { QuillReportInternal } from '../models/Report';
2
+ import { DashboardFilter, Filter } from '../models/Filter';
3
+ export declare const useReports: () => {
4
+ reloadFilteredReports: (predicate: (report: QuillReportInternal) => boolean) => void;
5
+ };
6
+ export declare const useReport: (reportId: string) => {
7
+ reload: (overrideFilters: {
8
+ filters: DashboardFilter[];
9
+ editedFilterLabel?: string;
10
+ }, customFilters?: Filter[], initiator?: "Chart" | "useQuill" | "useExport") => Promise<void>;
11
+ };
12
+ //# sourceMappingURL=useReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useReport.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAuB,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhF,eAAO,MAAM,UAAU;uCAYR,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAIF,eAAO,MAAM,SAAS,aAAc,MAAM;8BAIrB;QACf,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,kBACc,MAAM,EAAE,cACZ,OAAO,GAAG,UAAU,GAAG,WAAW;CAmChD,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { useContext } from 'react';
2
+ import { DashboardContext, ReportFiltersContext, ReportsContext, } from '../Context';
3
+ import { convertCustomFilter } from '../models/Filter';
4
+ export const useReports = () => {
5
+ const [dashboard, dispatch] = useContext(DashboardContext);
6
+ const reloadReport = (id) => {
7
+ dispatch({
8
+ type: 'UPDATE_DASHBOARD_ITEM',
9
+ id: id,
10
+ data: { triggerReload: true },
11
+ });
12
+ };
13
+ const reloadFilteredReports = (predicate) => {
14
+ for (const id in dashboard) {
15
+ if (predicate(dashboard[id])) {
16
+ reloadReport(id);
17
+ }
18
+ }
19
+ };
20
+ return {
21
+ reloadFilteredReports,
22
+ };
23
+ };
24
+ // Exposes context operations with the "Report" scope
25
+ // Not meant to be customer facing
26
+ export const useReport = (reportId) => {
27
+ const { loadFiltersForReport } = useContext(ReportFiltersContext);
28
+ const { reports, reportsDispatch } = useContext(ReportsContext);
29
+ const reload = async (overrideFilters, customFilters = [], initiator = 'Chart') => {
30
+ // Set loading member on the report to true
31
+ reportsDispatch({
32
+ type: 'UPDATE_REPORT',
33
+ id: reportId,
34
+ data: { loadingRows: true },
35
+ });
36
+ // Pull the date filter out of the override filters, process it, and append it to the filters
37
+ const dateFilter = overrideFilters.filters.find((f) => f.filterType === 'date_range');
38
+ loadFiltersForReport(reportId, initiator, [
39
+ ...(dateFilter
40
+ ? [
41
+ {
42
+ ...dateFilter,
43
+ dateField: [reports[reportId]?.dateField],
44
+ },
45
+ ]
46
+ : []),
47
+ ...(overrideFilters.filters.filter((f) => f.filterType !== 'date_range') ?? []),
48
+ ], overrideFilters.editedFilterLabel, customFilters.map(convertCustomFilter));
49
+ };
50
+ return { reload };
51
+ };
@@ -14,7 +14,8 @@ export type { ReportBuilderProps } from './ReportBuilder';
14
14
  export { default as ChartEditor } from './ChartEditor';
15
15
  export type { ChartEditorProps } from './ChartEditor';
16
16
  export { quillFormat as format } from './utils/valueFormatter';
17
- export { useDashboard, useReports, useDashboards } from './hooks/useDashboard';
17
+ export { useDashboard, useDashboards } from './hooks/useDashboard';
18
+ export { useReports } from './hooks/useReport';
18
19
  export { useQuill } from './hooks/useQuill';
19
20
  export { useExport } from './hooks/useExport';
20
21
  export { useMemoizedRows } from './hooks/useFormat';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -7,7 +7,8 @@ export { default as SQLEditor, SchemaListComponent } from './SQLEditor';
7
7
  export { default as ReportBuilder } from './ReportBuilder';
8
8
  export { default as ChartEditor } from './ChartEditor';
9
9
  export { quillFormat as format } from './utils/valueFormatter';
10
- export { useDashboard, useReports, useDashboards } from './hooks/useDashboard';
10
+ export { useDashboard, useDashboards } from './hooks/useDashboard';
11
+ export { useReports } from './hooks/useReport';
11
12
  export { useQuill } from './hooks/useQuill';
12
13
  export { useExport } from './hooks/useExport';
13
14
  export { useMemoizedRows } from './hooks/useFormat';