@quillsql/react 2.13.35 → 2.13.36

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 (185) hide show
  1. package/dist/cjs/Chart.d.ts +0 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +17 -14
  4. package/dist/cjs/ChartBuilder.d.ts +1 -0
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +178 -96
  7. package/dist/cjs/Context.d.ts.map +1 -1
  8. package/dist/cjs/Context.js +6 -8
  9. package/dist/cjs/Dashboard.js +17 -7
  10. package/dist/cjs/ReportBuilder.d.ts +2 -0
  11. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  12. package/dist/cjs/ReportBuilder.js +398 -271
  13. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  14. package/dist/cjs/SQLEditor.js +33 -11
  15. package/dist/cjs/Table.d.ts.map +1 -1
  16. package/dist/cjs/Table.js +17 -1
  17. package/dist/cjs/components/Chart/InternalChart.d.ts +0 -1
  18. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  19. package/dist/cjs/components/Chart/InternalChart.js +6 -7
  20. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  21. package/dist/cjs/components/Dashboard/DataLoader.js +75 -30
  22. package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  23. package/dist/cjs/components/QuillMultiSelectSectionList.js +21 -16
  24. package/dist/cjs/components/QuillMultiSelectWithCombo.js +18 -8
  25. package/dist/cjs/components/QuillSelectWithCombo.js +17 -7
  26. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  27. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  28. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
  29. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  30. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  31. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +9 -18
  32. package/dist/cjs/components/UiComponents.d.ts +2 -1
  33. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  34. package/dist/cjs/components/UiComponents.js +44 -28
  35. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  36. package/dist/cjs/hooks/useAskQuill.js +28 -4
  37. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  38. package/dist/cjs/hooks/useQuill.js +9 -1
  39. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  40. package/dist/cjs/hooks/useVirtualTables.js +11 -35
  41. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  42. package/dist/cjs/internals/ReportBuilder/PivotForm.js +14 -2
  43. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +12 -11
  44. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  45. package/dist/cjs/internals/ReportBuilder/PivotModal.js +63 -18
  46. package/dist/cjs/models/Client.d.ts +4 -5
  47. package/dist/cjs/models/Client.d.ts.map +1 -1
  48. package/dist/cjs/models/Pivot.d.ts +10 -0
  49. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  50. package/dist/cjs/models/Report.d.ts +13 -1
  51. package/dist/cjs/models/Report.d.ts.map +1 -1
  52. package/dist/cjs/utils/astFilterProcessing.d.ts +1 -1
  53. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  54. package/dist/cjs/utils/astFilterProcessing.js +799 -64
  55. package/dist/cjs/utils/astProcessing.d.ts +4 -1
  56. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  57. package/dist/cjs/utils/astProcessing.js +2 -2
  58. package/dist/cjs/utils/client.d.ts.map +1 -1
  59. package/dist/cjs/utils/client.js +6 -3
  60. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  61. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  62. package/dist/cjs/utils/columnProcessing.js +1 -0
  63. package/dist/cjs/utils/dashboard.d.ts +2 -1
  64. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  65. package/dist/cjs/utils/dashboard.js +38 -10
  66. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  67. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  68. package/dist/cjs/utils/merge.d.ts +16 -0
  69. package/dist/cjs/utils/merge.d.ts.map +1 -1
  70. package/dist/cjs/utils/merge.js +210 -0
  71. package/dist/cjs/utils/paginationProcessing.d.ts +1 -1
  72. package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -1
  73. package/dist/cjs/utils/paginationProcessing.js +3 -2
  74. package/dist/cjs/utils/pivotConstructor.d.ts +19 -9
  75. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  76. package/dist/cjs/utils/pivotConstructor.js +90 -34
  77. package/dist/cjs/utils/queryConstructor.d.ts +8 -1
  78. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  79. package/dist/cjs/utils/queryConstructor.js +276 -310
  80. package/dist/cjs/utils/report.d.ts +25 -12
  81. package/dist/cjs/utils/report.d.ts.map +1 -1
  82. package/dist/cjs/utils/report.js +13 -7
  83. package/dist/cjs/utils/schema.d.ts +1 -1
  84. package/dist/cjs/utils/schema.d.ts.map +1 -1
  85. package/dist/cjs/utils/schema.js +3 -32
  86. package/dist/cjs/utils/tableProcessing.d.ts +43 -13
  87. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  88. package/dist/cjs/utils/tableProcessing.js +140 -75
  89. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  90. package/dist/cjs/utils/textProcessing.js +10 -1
  91. package/dist/cjs/utils/valueFormatter.d.ts +2 -1
  92. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  93. package/dist/cjs/utils/valueFormatter.js +18 -14
  94. package/dist/esm/Chart.d.ts +0 -1
  95. package/dist/esm/Chart.d.ts.map +1 -1
  96. package/dist/esm/Chart.js +0 -6
  97. package/dist/esm/ChartBuilder.d.ts +1 -0
  98. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  99. package/dist/esm/ChartBuilder.js +179 -97
  100. package/dist/esm/Context.d.ts.map +1 -1
  101. package/dist/esm/Context.js +7 -9
  102. package/dist/esm/ReportBuilder.d.ts +2 -0
  103. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  104. package/dist/esm/ReportBuilder.js +399 -272
  105. package/dist/esm/SQLEditor.d.ts.map +1 -1
  106. package/dist/esm/SQLEditor.js +33 -11
  107. package/dist/esm/Table.d.ts.map +1 -1
  108. package/dist/esm/Table.js +17 -1
  109. package/dist/esm/components/Chart/InternalChart.d.ts +0 -1
  110. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  111. package/dist/esm/components/Chart/InternalChart.js +6 -6
  112. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  113. package/dist/esm/components/Dashboard/DataLoader.js +75 -30
  114. package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  115. package/dist/esm/components/QuillMultiSelectSectionList.js +5 -12
  116. package/dist/esm/components/QuillMultiSelectWithCombo.js +1 -1
  117. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  118. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  119. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
  120. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  121. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  122. package/dist/esm/components/ReportBuilder/AddSortPopover.js +9 -18
  123. package/dist/esm/components/UiComponents.d.ts +2 -1
  124. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  125. package/dist/esm/components/UiComponents.js +27 -21
  126. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  127. package/dist/esm/hooks/useAskQuill.js +28 -4
  128. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  129. package/dist/esm/hooks/useQuill.js +10 -2
  130. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  131. package/dist/esm/hooks/useVirtualTables.js +12 -36
  132. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  133. package/dist/esm/internals/ReportBuilder/PivotForm.js +14 -2
  134. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +12 -11
  135. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  136. package/dist/esm/internals/ReportBuilder/PivotModal.js +63 -18
  137. package/dist/esm/models/Client.d.ts +4 -5
  138. package/dist/esm/models/Client.d.ts.map +1 -1
  139. package/dist/esm/models/Pivot.d.ts +10 -0
  140. package/dist/esm/models/Pivot.d.ts.map +1 -1
  141. package/dist/esm/models/Report.d.ts +13 -1
  142. package/dist/esm/models/Report.d.ts.map +1 -1
  143. package/dist/esm/utils/astFilterProcessing.d.ts +1 -1
  144. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  145. package/dist/esm/utils/astFilterProcessing.js +799 -64
  146. package/dist/esm/utils/astProcessing.d.ts +4 -1
  147. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  148. package/dist/esm/utils/astProcessing.js +2 -2
  149. package/dist/esm/utils/client.d.ts.map +1 -1
  150. package/dist/esm/utils/client.js +6 -3
  151. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  152. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  153. package/dist/esm/utils/columnProcessing.js +1 -1
  154. package/dist/esm/utils/dashboard.d.ts +2 -1
  155. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  156. package/dist/esm/utils/dashboard.js +39 -11
  157. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  158. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  159. package/dist/esm/utils/merge.d.ts +16 -0
  160. package/dist/esm/utils/merge.d.ts.map +1 -1
  161. package/dist/esm/utils/merge.js +207 -0
  162. package/dist/esm/utils/paginationProcessing.d.ts +1 -1
  163. package/dist/esm/utils/paginationProcessing.d.ts.map +1 -1
  164. package/dist/esm/utils/paginationProcessing.js +3 -2
  165. package/dist/esm/utils/pivotConstructor.d.ts +19 -9
  166. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  167. package/dist/esm/utils/pivotConstructor.js +91 -35
  168. package/dist/esm/utils/queryConstructor.d.ts +8 -1
  169. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  170. package/dist/esm/utils/queryConstructor.js +274 -314
  171. package/dist/esm/utils/report.d.ts +25 -12
  172. package/dist/esm/utils/report.d.ts.map +1 -1
  173. package/dist/esm/utils/report.js +13 -7
  174. package/dist/esm/utils/schema.d.ts +1 -1
  175. package/dist/esm/utils/schema.d.ts.map +1 -1
  176. package/dist/esm/utils/schema.js +1 -30
  177. package/dist/esm/utils/tableProcessing.d.ts +43 -13
  178. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  179. package/dist/esm/utils/tableProcessing.js +140 -75
  180. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  181. package/dist/esm/utils/textProcessing.js +10 -1
  182. package/dist/esm/utils/valueFormatter.d.ts +2 -1
  183. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  184. package/dist/esm/utils/valueFormatter.js +18 -14
  185. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState, useContext, useMemo, } from 'react';
3
- import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext, ReportFiltersContext, SchemaDataContext, TenantContext, ThemeContext, } from './Context';
3
+ import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext, ReportFiltersContext, ReportsContext, SchemaDataContext, TenantContext, ThemeContext, } from './Context';
4
4
  import { PivotModal, generatePivotTable, isDateField, } from './internals/ReportBuilder/PivotModal';
5
5
  import { PivotCard } from './internals/ReportBuilder/PivotList';
6
6
  import { MemoizedModal, QuillTextInput, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, QuillTableComponent, QuillChartBuilderInputRowContainer, QuillChartBuilderInputColumnContainer, MemoizedSubHeader, QuillErrorMessageComponent, QuillPivotRowContainer, QuillPivotColumnContainer, QuillChartBuilderFormContainer, QuillLoadingComponent, } from './components/UiComponents';
@@ -109,7 +109,8 @@ function createReportFromForm(formData, report, selectedPivotTable, rows = [], f
109
109
  filtersApplied: report?.filtersApplied || [],
110
110
  queryString: '',
111
111
  rows: rows,
112
- rowCount: report?.rowCount ||
112
+ rowCount: selectedPivotTable?.rowCount ||
113
+ report?.rowCount ||
113
114
  selectedPivotTable?.rows?.length ||
114
115
  rows.length ||
115
116
  0,
@@ -335,6 +336,7 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
335
336
  }, [isOpen]);
336
337
  const [dashboardOptions, setDashboardOptions] = useState([]);
337
338
  const { reportFilters, reportFiltersDispatch, loadFiltersForReport } = useContext(ReportFiltersContext);
339
+ const { reportsDispatch } = useContext(ReportsContext);
338
340
  useEffect(() => {
339
341
  loadFiltersForReport(report?.id ?? TEMP_REPORT_ID, 'ChartBuilder', specificDashboardFilters, undefined, undefined, canonicalFilterMap, report?.dashboardName);
340
342
  return () => {
@@ -342,16 +344,6 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
342
344
  type: 'CLEAR_REPORT_FILTERS',
343
345
  id: report?.id ?? tempReport?.id ?? TEMP_REPORT_ID,
344
346
  });
345
- // TODO: Currently the behavior of Chart Builder is dependent on whether there is a TEMP_REPORT_ID in context or not
346
- /* The Chart Builder can essentially be in three states
347
- 1. Creating a new report, all we have is an ephemeral temp report
348
- 2. Editing an existing report, we have a report id and the report is in the dashboard context
349
- 3. Editing the query of an existing report, we have a report id and the new-query report is in context under TEMP_REPORT_ID
350
- One can imagine this going wrong: somehow the temp report gets set by SQLEditor or ReportBuilder but never cleared
351
- and now its going to start popping up during state 2 rather than the real report.
352
- For now we're going on faith that unmounting will always clear the temp report
353
- but we may want to fiddle with the props to make this more robust
354
- */
355
347
  };
356
348
  }, []);
357
349
  const currentDashboardFilters = useMemo(() => {
@@ -368,7 +360,13 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
368
360
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
369
361
  const [pivotError, setPivotError] = useState(undefined);
370
362
  const pivotData = report?.pivotRows && report?.pivotColumns
371
- ? { rows: report.pivotRows, columns: report.pivotColumns }
363
+ ? {
364
+ rows: report.pivotRows,
365
+ columns: report.pivotColumns,
366
+ rowCount: report.pivotRowCount ?? report.pivotRows.length,
367
+ pivotQuery: report.pivotQuery ?? '',
368
+ comparisonPivotQuery: report.comparisonPivotQuery,
369
+ }
372
370
  : undefined;
373
371
  const columns = report?.columnInternal ?? [];
374
372
  const destinationDashboard = report?.dashboardName;
@@ -460,7 +458,7 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
460
458
  if (!client) {
461
459
  return;
462
460
  }
463
- const { queryEndpoint, queryHeaders, publicKey, withCredentials, } = client;
461
+ const { queryEndpoint, queryHeaders, publicKey, withCredentials } = client;
464
462
  if (queryEndpoint) {
465
463
  const response = await fetch(queryEndpoint, {
466
464
  method: 'POST',
@@ -559,7 +557,7 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
559
557
  }, [dashboardConfig, formData.dashboardName, report?.dashboardName]);
560
558
  const currentDashboardTenants = useMemo(() => {
561
559
  return (currentDashboard?.tenantKeys?.map((tenantKey) => client?.allTenantTypes?.find((t) => t.tenantField === tenantKey)) ?? []);
562
- }, [tenants]);
560
+ }, [client?.allTenantTypes, currentDashboard?.tenantKeys]);
563
561
  const dashboardOwner = currentDashboardTenants?.[0];
564
562
  const invalidColumns = useMemo(() => {
565
563
  if (!rows || !rows.length) {
@@ -671,21 +669,23 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
671
669
  getFormData();
672
670
  }, []);
673
671
  const allTenantMap = useMemo(() => {
674
- return client?.allTenantTypes?.reduce((acc, tenantType) => {
672
+ return (client?.allTenantTypes?.reduce((acc, tenantType) => {
675
673
  if (tenantType.scope === 'database') {
676
- acc[tenantType.tenantField] = tenantType.flags?.map((t) => ({
677
- label: t,
678
- value: t,
679
- })) ?? [];
674
+ acc[tenantType.tenantField] =
675
+ tenantType.flags?.map((t) => ({
676
+ label: t,
677
+ value: t,
678
+ })) ?? [];
680
679
  }
681
680
  else {
682
- acc[tenantType.tenantField] = tenantType.tenantIds?.map((t) => ({
683
- label: t.label,
684
- value: t.flag,
685
- })) ?? [];
681
+ acc[tenantType.tenantField] =
682
+ tenantType.tenantIds?.map((t) => ({
683
+ label: t.label,
684
+ value: t.flag,
685
+ })) ?? [];
686
686
  }
687
687
  return acc;
688
- }, {}) ?? {};
688
+ }, {}) ?? {});
689
689
  }, [client?.allTenantTypes]);
690
690
  const [selectedPivotTable, setSelectedPivotTable] = useState(pivotData);
691
691
  const pivotCardTable = useMemo(() => {
@@ -708,8 +708,9 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
708
708
  : undefined;
709
709
  if (pivot) {
710
710
  let dateBucket = undefined;
711
+ let dateFilter = undefined;
711
712
  if (filtersEnabled) {
712
- const dateFilter = dashboardFilters?.find((f) => f.filterType === 'date_range');
713
+ dateFilter = dashboardFilters?.find((f) => f.filterType === 'date_range');
713
714
  dateBucket =
714
715
  dateFilter?.startDate && dateFilter?.endDate
715
716
  ? getDateBucketFromRange({
@@ -722,11 +723,15 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
722
723
  const pivotTable = await generatePivotTable({
723
724
  pivot,
724
725
  dateBucket,
725
- report: { ...report, ...(tableInfo ?? { itemQuery }) },
726
+ dateFilter,
727
+ report: report
728
+ ? { ...report, ...(tableInfo ?? { itemQuery }) }
729
+ : undefined,
726
730
  client,
727
731
  uniqueValues,
728
732
  dashboardName: destinationDashboard,
729
733
  tenants,
734
+ additionalProcessing: baseProcessing,
730
735
  });
731
736
  setSelectedPivotTable(pivotTable);
732
737
  }
@@ -793,7 +798,21 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
793
798
  return;
794
799
  }
795
800
  setRowCountIsLoading(true);
796
- const tableInfo = await fetchResultsByQuery(query, client, tenants, processing, schemaData.customFields, filtersEnabled ? overrideFilters : undefined, filtersEnabled ? (report?.dateField ?? formData.dateField) : undefined, false, true, canonicalFilterMap);
801
+ const tableInfo = await fetchResultsByQuery({
802
+ query,
803
+ client,
804
+ tenants,
805
+ processing,
806
+ customFields: schemaData.customFields,
807
+ filters: filtersEnabled ? overrideFilters : undefined,
808
+ dateField: filtersEnabled
809
+ ? (report?.dateField ?? formData.dateField)
810
+ : undefined,
811
+ rowsOnly: false,
812
+ rowCountOnly: true,
813
+ filterMap: canonicalFilterMap,
814
+ dashboardName: destinationDashboard,
815
+ });
797
816
  if (tableInfo.rowCount !== undefined) {
798
817
  setRowCount(tableInfo.rowCount);
799
818
  }
@@ -831,7 +850,21 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
831
850
  }
832
851
  try {
833
852
  setIsLoading(true);
834
- const tableInfo = await fetchResultsByQuery(query, client, tenants, processing, schemaData.customFields, filtersEnabled ? overrideFilters : undefined, filtersEnabled ? (report?.dateField ?? formData.dateField) : undefined, true, false, canonicalFilterMap, destinationDashboard);
853
+ const tableInfo = await fetchResultsByQuery({
854
+ query,
855
+ client,
856
+ tenants,
857
+ processing,
858
+ customFields: schemaData.customFields,
859
+ filters: filtersEnabled ? overrideFilters : undefined,
860
+ dateField: filtersEnabled
861
+ ? (report?.dateField ?? formData.dateField)
862
+ : undefined,
863
+ rowsOnly: true,
864
+ rowCountOnly: false,
865
+ filterMap: canonicalFilterMap,
866
+ dashboardName: destinationDashboard,
867
+ });
835
868
  setCurrentProcessing(processing);
836
869
  setRows(tableInfo.rows);
837
870
  setProcessedColumns(processColumns(tableInfo.columns));
@@ -853,7 +886,7 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
853
886
  console.log(e);
854
887
  }
855
888
  };
856
- const onPageChange = (page) => {
889
+ const onPageChange = (page, isPivotTable) => {
857
890
  // only fetch if report is valid, else use query task
858
891
  if (currentProcessing.page &&
859
892
  shouldFetchMore(currentProcessing.page, page, maxPage)) {
@@ -866,23 +899,23 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
866
899
  page: newPagination,
867
900
  };
868
901
  setCurrentProcessing(updatedProcessing);
869
- updateTableRows(updatedProcessing);
902
+ updateTableRows(updatedProcessing, false, isPivotTable);
870
903
  }
871
904
  if (page > maxPage) {
872
905
  setMaxPage(page);
873
906
  }
874
907
  };
875
- const onSortChange = (sort) => {
908
+ const onSortChange = (sort, isPivotTable) => {
876
909
  // if (shouldSortInMemory(baseProcessing.page, rowCount)) {
877
910
  // return;
878
911
  // }
879
912
  const updatedProcessing = { ...baseProcessing, sort };
880
- updateTableRows(updatedProcessing, true);
913
+ updateTableRows(updatedProcessing, true, isPivotTable);
881
914
  setCurrentProcessing(updatedProcessing);
882
915
  setCurrentPage(0);
883
916
  setMaxPage(0);
884
917
  };
885
- const updateTableRows = async (processing, resetRows = false) => {
918
+ const updateTableRows = async (processing, resetRows = false, isPivotTable = false) => {
886
919
  if (!client) {
887
920
  return;
888
921
  }
@@ -890,17 +923,40 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
890
923
  setIsLoading(true);
891
924
  try {
892
925
  const updatedProcessing = { ...currentProcessing, ...processing };
893
- const paginatedRows = await fetchResultsByQuery(query, client, tenants, updatedProcessing, schemaData.customFields, filtersEnabled ? currentDashboardFilters : undefined, filtersEnabled
894
- ? (report?.dateField ?? formData.dateField)
895
- : undefined, false, false, canonicalFilterMap, destinationDashboard);
926
+ const paginatedRows = await fetchResultsByQuery({
927
+ query: isPivotTable && report.pivotQuery ? report.pivotQuery : query,
928
+ comparisonQuery: isPivotTable && report.comparisonPivotQuery
929
+ ? report.comparisonPivotQuery
930
+ : undefined,
931
+ client,
932
+ tenants,
933
+ processing: updatedProcessing,
934
+ customFields: schemaData.customFields,
935
+ filters: filtersEnabled ? currentDashboardFilters : undefined,
936
+ dateField: filtersEnabled
937
+ ? (report?.dateField ?? formData.dateField)
938
+ : undefined,
939
+ rowsOnly: false,
940
+ rowCountOnly: false,
941
+ filterMap: canonicalFilterMap,
942
+ dashboardName: destinationDashboard,
943
+ pivot: isPivotTable ? report.pivot : undefined,
944
+ getPivotRowCount: false,
945
+ });
896
946
  if (paginatedRows.error) {
897
947
  throw new Error('Error fetching chart');
898
948
  }
899
- let tempRows = [...rows, ...paginatedRows.rows];
949
+ const prevRows = isPivotTable && selectedPivotTable ? selectedPivotTable.rows : rows;
950
+ let updatedRows = [...prevRows, ...paginatedRows.rows];
900
951
  if (resetRows) {
901
- tempRows = paginatedRows.rows;
952
+ updatedRows = paginatedRows.rows;
953
+ }
954
+ if (isPivotTable && selectedPivotTable) {
955
+ setSelectedPivotTable({ ...selectedPivotTable, rows: updatedRows });
956
+ }
957
+ else {
958
+ setRows(updatedRows);
902
959
  }
903
- setRows(tempRows);
904
960
  setCurrentProcessing(updatedProcessing);
905
961
  }
906
962
  catch (e) {
@@ -1013,6 +1069,9 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1013
1069
  setSelectedPivotTable({
1014
1070
  rows: pivotData.rows,
1015
1071
  columns: pivotData.columns,
1072
+ rowCount: pivotData.rowCount,
1073
+ pivotQuery: pivotData.pivotQuery,
1074
+ comparisonPivotQuery: pivotData.comparisonPivotQuery,
1016
1075
  });
1017
1076
  }
1018
1077
  else {
@@ -1040,7 +1099,6 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1040
1099
  setSelectedPivotTable(undefined);
1041
1100
  setChartTypes(getChartTypeOptions({ ...formEmptyState, pivot: null }, dashboardConfig[formData.dashboardName || '']));
1042
1101
  };
1043
- console.log('isAdmin', isAdmin);
1044
1102
  const handleAddField = (fieldName) => {
1045
1103
  if (fieldName === 'columns') {
1046
1104
  setFormData({
@@ -1055,7 +1113,7 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1055
1113
  yAxisFields: [
1056
1114
  ...formData.yAxisFields,
1057
1115
  // @ts-ignore
1058
- { label: '', field: '', chartType: '', format: '' },
1116
+ { label: '', field: '', chartType: '', format: 'whole_number' },
1059
1117
  ],
1060
1118
  });
1061
1119
  }
@@ -1132,30 +1190,44 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1132
1190
  : report && !isAdmin && formData.template
1133
1191
  ? false
1134
1192
  : formData.template,
1135
- reportFlags: formFlags ? Object.fromEntries(Object.entries(formFlags)
1136
- .filter(([, value]) => value.length > 0)
1137
- .map(([key, value]) => {
1138
- return [key, Object.keys(allTenantMap).length > 1 && allTenantMap[key]?.length === value.length ? ALL_TENANTS : value];
1139
- })) : undefined,
1193
+ reportFlags: formFlags
1194
+ ? Object.fromEntries(Object.entries(formFlags)
1195
+ .filter(([, value]) => value.length > 0)
1196
+ .map(([key, value]) => {
1197
+ return [
1198
+ key,
1199
+ Object.keys(allTenantMap).length > 1 &&
1200
+ allTenantMap[key]?.length === value.length
1201
+ ? ALL_TENANTS
1202
+ : value,
1203
+ ];
1204
+ }))
1205
+ : undefined,
1140
1206
  };
1141
1207
  const resp = await saveReport({
1142
- report: newReport,
1208
+ report: { ...newReport, rows: undefined, pivotRows: undefined }, // stop including rows in request
1143
1209
  dashboardItemId,
1144
1210
  client,
1145
1211
  });
1146
1212
  if (resp && resp.name !== 'error') {
1213
+ const data = {
1214
+ ...resp,
1215
+ rows,
1216
+ columns: formData.columns.filter((col) => !invalidColumns.includes(col)),
1217
+ pivotRows: selectedPivotTable?.rows || undefined,
1218
+ pivotColumns: selectedPivotTable?.columns || undefined,
1219
+ triggerReload: true,
1220
+ error: undefined,
1221
+ };
1147
1222
  dispatch({
1148
1223
  type: 'ADD_DASHBOARD_ITEM',
1149
1224
  id: resp.id,
1150
- data: {
1151
- ...resp,
1152
- rows,
1153
- columns: formData.columns.filter((col) => !invalidColumns.includes(col)),
1154
- pivotRows: selectedPivotTable?.rows || undefined,
1155
- pivotColumns: selectedPivotTable?.columns || undefined,
1156
- triggerReload: true,
1157
- error: undefined,
1158
- },
1225
+ data,
1226
+ });
1227
+ reportsDispatch({
1228
+ type: 'ADD_REPORT',
1229
+ id: resp.id,
1230
+ data,
1159
1231
  });
1160
1232
  }
1161
1233
  setIsOpen(false);
@@ -1226,11 +1298,11 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1226
1298
  }, currentPage: currentPage, rowCount: rowCount, isLoading: isLoading, rowCountIsLoading: rowCountIsLoading, disableSort: disableSort })) : (_jsx(TableComponent, { rows: formattedRows, columns: selectedPivotTable
1227
1299
  ? selectedPivotTable.columns
1228
1300
  : formData.columns, onPageChange: (page) => {
1229
- onPageChange(page);
1301
+ onPageChange(page, true);
1230
1302
  setCurrentPage(page);
1231
1303
  }, onSortChange: (sort) => {
1232
- onSortChange && onSortChange(sort);
1233
- }, currentPage: currentPage, rowCount: selectedPivotTable ? formattedRows.length : rowCount, rowCountIsLoading: rowCountIsLoading, isLoading: isLoading, disableSort: disableSort })) }))] }), isOpen && (_jsxs("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, style: {
1304
+ onSortChange && onSortChange(sort, true);
1305
+ }, currentPage: currentPage, rowCount: selectedPivotTable ? pivotData?.rowCount : rowCount, rowCountIsLoading: rowCountIsLoading, isLoading: isLoading, disableSort: disableSort })) }))] }), isOpen && (_jsxs("form", { ref: parentRef, id: "quill-chart-form", onSubmit: handleSubmit, style: {
1234
1306
  display: 'flex',
1235
1307
  flexDirection: 'column',
1236
1308
  gap: 20,
@@ -1245,15 +1317,15 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1245
1317
  paddingTop: modalPadding,
1246
1318
  paddingBottom: modalPadding,
1247
1319
  }),
1248
- }, children: [_jsxs(FormContainer, { children: [(formData.pivot || formData.chartType !== 'table') && windowWidth < 1200 &&
1249
- _jsx(InternalChart, { report: chartData, filtersEnabled: filtersEnabled, setFiltersEnabled: (hide) => {
1250
- onFiltersEnabledChanged(hide);
1251
- }, colors: theme?.chartColors, loading: false, hideDateRangeFilter: hideDateRangeFilter, isAdmin: isAdmin, containerStyle: {
1252
- width: '100%',
1253
- height: 500,
1254
- flexGrow: 1,
1255
- marginBottom: 20,
1256
- }, onClickChartElement: onClickChartElement, filterToggleDisabled: Object.values(validFilter).includes(false), onDashboardFilterChange: onDashboardFilterChange, layoutChanged: isOpen }), _jsxs(ChartBuilderInputRowContainer, { children: [_jsx("div", { ref: inputRef, style: { display: 'flex', flexDirection: 'column' }, children: _jsx(TextInputComponent
1320
+ }, children: [_jsxs(FormContainer, { children: [(formData.pivot || formData.chartType !== 'table') &&
1321
+ windowWidth < 1200 && (_jsx(InternalChart, { report: chartData, filtersEnabled: filtersEnabled, setFiltersEnabled: (hide) => {
1322
+ onFiltersEnabledChanged(hide);
1323
+ }, colors: theme?.chartColors, loading: false, hideDateRangeFilter: hideDateRangeFilter, isAdmin: isAdmin, containerStyle: {
1324
+ width: '100%',
1325
+ height: 500,
1326
+ flexGrow: 1,
1327
+ marginBottom: 20,
1328
+ }, onClickChartElement: onClickChartElement, filterToggleDisabled: Object.values(validFilter).includes(false), onDashboardFilterChange: onDashboardFilterChange, layoutChanged: isOpen })), _jsxs(ChartBuilderInputRowContainer, { children: [_jsx("div", { ref: inputRef, style: { display: 'flex', flexDirection: 'column' }, children: _jsx(TextInputComponent
1257
1329
  // {...autofocusRefProp}
1258
1330
  , {
1259
1331
  // {...autofocusRefProp}
@@ -1275,7 +1347,9 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1275
1347
  // marginTop: 6,
1276
1348
  display: 'flex',
1277
1349
  flexDirection: 'column',
1278
- }, children: _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotValueField2: pivotValueField2, setPivotValueField2: setPivotValueField2, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: selectedTable, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, LoadingComponent: LoadingComponent, theme: theme, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processedColumns, triggerButtonText: 'Add pivot +', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: handleDeletePivot, selectPivot: handleAddPivot, dateRange: dateRange, selectPivotOnEdit: true, showTrigger: !formData.pivot, query: query, pivotCountRequest: 4, initialUniqueValues: initialUniqueValues, uniqueValuesIsLoading: initialUniqueValuesIsLoading, initialSelectedPivotTable: selectedPivotTable, pivotRecommendationsEnabled: pivotRecommendationsEnabled, report: report, dashboardName: destinationDashboard }) }), formData.pivot && (_jsx("div", { children: _jsx("div", { style: { width: pivotCardWidth }, children: _jsx(PivotCard, { pivotTable: pivotCardTable, theme: theme, index: 0, onSelectPivot: () => {
1350
+ }, children: _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotValueField2: pivotValueField2, setPivotValueField2: setPivotValueField2, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: selectedTable, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, LoadingComponent: LoadingComponent, theme: theme, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processedColumns, triggerButtonText: 'Add pivot +', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: handleDeletePivot, selectPivot: handleAddPivot, dateRange: dateRange, selectPivotOnEdit: true, showTrigger: !formData.pivot, query: query, pivotCountRequest: 4, initialUniqueValues: initialUniqueValues, uniqueValuesIsLoading: initialUniqueValuesIsLoading, initialSelectedPivotTable: selectedPivotTable, pivotRecommendationsEnabled: pivotRecommendationsEnabled, report: report, dashboardName: destinationDashboard, dateFilter: filtersEnabled
1351
+ ? currentDashboardFilters?.find((f) => f.filterType === 'date_range')
1352
+ : undefined }) }), formData.pivot && (_jsx("div", { children: _jsx("div", { style: { width: pivotCardWidth }, children: _jsx(PivotCard, { pivotTable: pivotCardTable, theme: theme, index: 0, onSelectPivot: () => {
1279
1353
  setIsEdittingPivot(true);
1280
1354
  setShowPivotPopover(true);
1281
1355
  setPivotRowField(formData.pivot?.rowField);
@@ -1293,12 +1367,12 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1293
1367
  label: elem.field,
1294
1368
  value: elem.field,
1295
1369
  })), width: 200 }), _jsx(TextInputComponent, { id: "chart-builder-x-axis-label", width: 200, value: formData.xAxisLabel, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'xAxisLabel') }), _jsx(SelectComponent, { value: formData.pivot &&
1296
- isDateField(formData.pivot.rowFieldType || '')
1370
+ isDateField(formData.pivot.rowFieldType ?? '')
1297
1371
  ? 'pivot_date'
1298
1372
  : formData.xAxisFormat, onChange: (e) => handleChange(e.target.value, 'xAxisFormat'), options: formData.pivot &&
1299
- isDateField(formData.pivot.rowFieldType || '')
1373
+ isDateField(formData.pivot.rowFieldType ?? '')
1300
1374
  ? [{ value: 'pivot_date', label: 'date' }]
1301
- : formatOptions, width: 200 })] })] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && (_jsxs("div", { children: [_jsx(SubHeaderComponent, { label: CHART_TO_LABELS[formData.chartType]?.yAxisLabel ?? '' }), _jsxs(ChartBuilderInputColumnContainer, { children: [formData.yAxisFields.map((yAxisField, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(SelectComponent, { value: formData.pivot
1375
+ : formatOptions, width: 200, hideEmptyOption: true })] })] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && (_jsxs("div", { children: [_jsx(SubHeaderComponent, { label: CHART_TO_LABELS[formData.chartType]?.yAxisLabel ?? '' }), _jsxs(ChartBuilderInputColumnContainer, { children: [formData.yAxisFields.map((yAxisField, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(SelectComponent, { value: formData.pivot
1302
1376
  ? formData.pivot.valueField || 'count'
1303
1377
  : yAxisField.field, onChange: (e) => handleChange(e.target.value, 'yAxisFields.field', index), options: formData.pivot
1304
1378
  ? [
@@ -1318,13 +1392,10 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1318
1392
  })), width: 200 }), _jsx(TextInputComponent, { id: "chart-builder-y-axis-label", width: 200, value: yAxisField.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'yAxisFields.label', index) }), _jsx(SelectComponent, { value: formData.pivot
1319
1393
  ? NUMBER_OPTIONS.find((option) => {
1320
1394
  return (option.value === yAxisField.format);
1321
- })
1322
- ? // @ts-ignore
1323
- NUMBER_OPTIONS.find((option) => option.value === yAxisField.format).value
1324
- : ''
1395
+ })?.value ?? NUMBER_OPTIONS[0].value
1325
1396
  : yAxisField.format, onChange: (e) => handleChange(e.target.value, 'yAxisFields.format', index), options: formData.pivot
1326
1397
  ? NUMBER_OPTIONS
1327
- : formatOptions, width: 200 }), formData.pivot === null && (_jsx("div", { ref: deleteRef, style: { marginLeft: deleteButtonMargin }, children: _jsx(DeleteButtonComponent, { onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))), formData.pivot === null && (_jsx("div", { children: _jsx(SecondaryButtonComponent, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" }) }))] })] }))] })), windowWidth < 1200 && (_jsx("div", { style: {
1398
+ : formatOptions, width: 200, hideEmptyOption: true }), !formData.pivot && (_jsx("div", { ref: deleteRef, style: { marginLeft: deleteButtonMargin }, children: _jsx(DeleteButtonComponent, { onClick: () => handleRemoveField('yAxisFields', index) }) }))] }, 'yAxisField' + index))), !formData.pivot && (_jsx("div", { children: _jsx(SecondaryButtonComponent, { onClick: () => handleAddField('yAxisFields'), label: "Add field +" }) }))] })] }))] })), windowWidth < 1200 && (_jsx("div", { style: {
1328
1399
  width: '100%',
1329
1400
  height: isHorizontalView || !isOpen ? 'calc(50% - 10px)' : 400,
1330
1401
  flexGrow: 1,
@@ -1336,11 +1407,11 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1336
1407
  }, currentPage: currentPage, rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, isLoading: isLoading, disableSort: disableSort })) : (_jsx(TableComponent, { rows: formattedRows, columns: selectedPivotTable
1337
1408
  ? selectedPivotTable.columns
1338
1409
  : formData.columns, onPageChange: (page) => {
1339
- onPageChange(page);
1410
+ onPageChange(page, true);
1340
1411
  setCurrentPage(page);
1341
1412
  }, onSortChange: (sort) => {
1342
- onSortChange && onSortChange(sort);
1343
- }, currentPage: currentPage, rowCount: selectedPivotTable ? formattedRows.length : rowCount, rowCountIsLoading: rowCountIsLoading, isLoading: isLoading, disableSort: disableSort })) })), (showTableFormatOptions || isAdmin) && (_jsxs("div", { children: [_jsxs("div", { style: {
1413
+ onSortChange && onSortChange(sort, true);
1414
+ }, currentPage: currentPage, rowCount: selectedPivotTable ? pivotData?.rowCount : rowCount, rowCountIsLoading: rowCountIsLoading, isLoading: isLoading, disableSort: disableSort })) })), (showTableFormatOptions || isAdmin) && (_jsxs("div", { children: [_jsxs("div", { style: {
1344
1415
  display: 'flex',
1345
1416
  flexDirection: 'column',
1346
1417
  }, children: [_jsx(HeaderComponent, { label: "Table" }), _jsx(SubHeaderComponent, { label: "Columns" })] }), _jsxs(ChartBuilderInputColumnContainer, { children: [formData.pivot &&
@@ -1360,7 +1431,10 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1360
1431
  ? 'pivot_date'
1361
1432
  : 'string'
1362
1433
  : formData.pivot?.valueFieldType ||
1363
- 'two_decimal_places', onChange: (e) => handleChange(e.target.value, 'pivotColumn', index), options: formData.pivot && index === 0
1434
+ (formData.pivot?.aggregationType ===
1435
+ 'percentage'
1436
+ ? 'percent'
1437
+ : 'two_decimal_places'), onChange: (e) => handleChange(e.target.value, 'pivotColumn', index), options: formData.pivot && index === 0
1364
1438
  ? isDateField(formData.pivot.rowFieldType || '')
1365
1439
  ? [{ label: 'date', value: 'pivot_date' }]
1366
1440
  : [{ label: 'string', value: 'string' }]
@@ -1441,7 +1515,8 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1441
1515
  userSelect: 'none',
1442
1516
  }, children: "Custom" })] }), client?.allTenantTypes?.length === 1 ? (_jsx(MultiSelectComponent, { value: formFlags?.[dashboardOwner.tenantField] ?? [], onChange: (e) => setFormFlags({
1443
1517
  ...formFlags,
1444
- [dashboardOwner.tenantField]: e.target.value,
1518
+ [dashboardOwner.tenantField]: e.target
1519
+ .value,
1445
1520
  }), options: dashboardOwner.scope === 'database'
1446
1521
  ? (dashboardOwner.flags?.map((f) => ({
1447
1522
  label: f,
@@ -1454,18 +1529,26 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1454
1529
  value: t.flag,
1455
1530
  })) ?? []), width: 200, emptyLabel: dashboardOwner.scope === 'database'
1456
1531
  ? 'No flags supplied'
1457
- : undefined, allSelectedLabel: 'All ' + dashboardOwner.name + 's', style: { display: customTenantAccess ? 'inline' : 'none', marginTop: -1, marginBottom: -4 } })) : (_jsx(QuillMultiSelectSectionList, { value: formFlags ?? {}, onChange: (e) => setFormFlags(e.target.value), options: allTenantMap, sectionHeaderMap: client?.allTenantTypes?.reduce((acc, tenantType) => {
1532
+ : undefined, allSelectedLabel: 'All ' + dashboardOwner.name + 's', style: {
1533
+ display: customTenantAccess ? 'inline' : 'none',
1534
+ marginTop: -1,
1535
+ marginBottom: -4,
1536
+ } })) : (_jsx(QuillMultiSelectSectionList, { value: formFlags ?? {}, onChange: (e) => setFormFlags(e.target.value), options: allTenantMap, sectionHeaderMap: client?.allTenantTypes?.reduce((acc, tenantType) => {
1458
1537
  if (tenantType.scope === 'database') {
1459
1538
  acc[SINGLE_TENANT] = 'Database';
1460
1539
  return acc;
1461
1540
  }
1462
1541
  acc[tenantType.tenantField] = tenantType.name;
1463
1542
  return acc;
1464
- }, {}) ?? {}, width: 200, allSelectedLabel: 'All ' + dashboardOwner.name + 's', style: { display: customTenantAccess ? 'inline' : 'none', marginTop: -1, marginBottom: -4 }, owner: dashboardOwner.tenantField }))] }) })] })), (specificDashboardFilters.length > 0 &&
1465
- (isAdmin &&
1466
- formData.dateField &&
1467
- dashboardConfig[formData.dashboardName ?? '']?.config
1468
- .dateFilter?.label)) && (_jsxs("div", { style: {
1543
+ }, {}) ?? {}, width: 200, allSelectedLabel: 'All ' + dashboardOwner.name + 's', style: {
1544
+ display: customTenantAccess ? 'inline' : 'none',
1545
+ marginTop: -1,
1546
+ marginBottom: -4,
1547
+ }, owner: dashboardOwner.tenantField }))] }) })] })), specificDashboardFilters.length > 0 &&
1548
+ isAdmin &&
1549
+ formData.dateField &&
1550
+ dashboardConfig[formData.dashboardName ?? '']?.config.dateFilter
1551
+ ?.label && (_jsxs("div", { style: {
1469
1552
  display: 'flex',
1470
1553
  flexDirection: 'column',
1471
1554
  gap: 6,
@@ -1496,14 +1579,12 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1496
1579
  .map((filter, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(TextInputComponent, { id: 'filterMap.' + filter.label, value: filter.label, width: 200, onChange: () => { }, label: index === 0 &&
1497
1580
  !(isAdmin &&
1498
1581
  formData.dateField &&
1499
- dashboardConfig[formData.dashboardName ?? '']
1500
- ?.config.dateFilter?.label)
1582
+ dashboardConfig[formData.dashboardName ?? '']?.config.dateFilter?.label)
1501
1583
  ? 'Filter'
1502
1584
  : '', disabled: true }), _jsx(SelectComponent, { label: index === 0 &&
1503
1585
  !(isAdmin &&
1504
1586
  formData.dateField &&
1505
- dashboardConfig[formData.dashboardName ?? '']
1506
- ?.config.dateFilter?.label)
1587
+ dashboardConfig[formData.dashboardName ?? '']?.config.dateFilter?.label)
1507
1588
  ? 'Virtual Table'
1508
1589
  : '', value: filterMap[filter.label]?.table ?? filter.table, onChange: (e) => setFilterMap({
1509
1590
  ...filterMap,
@@ -1521,8 +1602,7 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1521
1602
  })), width: 200 }), _jsx(SelectComponent, { label: index === 0 &&
1522
1603
  !(isAdmin &&
1523
1604
  formData.dateField &&
1524
- dashboardConfig[formData.dashboardName ?? '']
1525
- ?.config.dateFilter?.label)
1605
+ dashboardConfig[formData.dashboardName ?? '']?.config.dateFilter?.label)
1526
1606
  ? 'Field'
1527
1607
  : '', value: filterMap[filter.label]?.field ?? filter.field, onChange: (e) => setFilterMap({
1528
1608
  ...filterMap,
@@ -1550,8 +1630,10 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1550
1630
  display: 'flex',
1551
1631
  flexDirection: 'row',
1552
1632
  justifyContent: 'flex-end',
1553
- marginTop: 'auto',
1554
1633
  gap: 10,
1634
+ position: 'absolute',
1635
+ bottom: 16,
1636
+ right: 16,
1555
1637
  }, children: [!hideDeleteButton && !isHorizontalView && report && (_jsx(SecondaryButtonComponent, { onClick: deleteChart, label: 'Delete' })), !hideSubmitButton && (_jsxs("div", { style: {
1556
1638
  display: 'flex',
1557
1639
  flexDirection: 'row',
@@ -1559,7 +1641,7 @@ onClickChartElement, isEditingMode = false, disableSort = true, }) {
1559
1641
  justifyContent: 'space-between',
1560
1642
  alignItems: 'center',
1561
1643
  gap: 6,
1562
- }, children: [filterIssues.length === 0 ? (_jsx("div", {})) : (_jsx(ErrorMessageComponent, { errorMessage: filterIssues[0] || 'Dashbord - Report issues', containerStyle: { height: '100%' } })), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 10 }, children: [_jsx(SecondaryButtonComponent, { onClick: () => {
1644
+ }, children: [filterIssues.length === 0 ? (_jsx("div", {})) : (_jsx(ErrorMessageComponent, { errorMessage: filterIssues[0] || 'Dashbord - Report issues', containerStyle: { height: '100%' } })), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 10, backgroundColor: 'white' }, children: [_jsx(SecondaryButtonComponent, { onClick: () => {
1563
1645
  setIsOpen(false);
1564
1646
  onDiscardChanges && onDiscardChanges();
1565
1647
  }, label: 'Discard changes' }), _jsx(ButtonComponent, { onClick: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/Context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/Context.tsx"],"names":[],"mappings":"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"}