@quillsql/react 2.12.30 → 2.12.32

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 (201) hide show
  1. package/dist/cjs/Chart.d.ts +6 -37
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +86 -327
  4. package/dist/cjs/ChartBuilder.d.ts +12 -49
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +68 -36
  7. package/dist/cjs/ChartEditor.d.ts +1 -1
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +11 -7
  10. package/dist/cjs/Context.d.ts +4 -1
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +10 -4
  13. package/dist/cjs/Dashboard.d.ts +61 -114
  14. package/dist/cjs/Dashboard.d.ts.map +1 -1
  15. package/dist/cjs/Dashboard.js +261 -30
  16. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  17. package/dist/cjs/DateRangePicker/DateRangePicker.js +0 -26
  18. package/dist/cjs/ReportBuilder.d.ts +1 -1
  19. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  20. package/dist/cjs/ReportBuilder.js +62 -97
  21. package/dist/cjs/SQLEditor.d.ts +2 -2
  22. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  23. package/dist/cjs/SQLEditor.js +10 -5
  24. package/dist/cjs/Table.d.ts.map +1 -1
  25. package/dist/cjs/Table.js +41 -43
  26. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/BarChart.js +12 -1
  28. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  29. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  30. package/dist/cjs/components/Chart/LineChart.js +25 -1
  31. package/dist/cjs/components/Dashboard/DataLoader.d.ts +7 -7
  32. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  33. package/dist/cjs/components/Dashboard/DataLoader.js +64 -28
  34. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  35. package/dist/cjs/components/Dashboard/MetricComponent.js +11 -45
  36. package/dist/cjs/components/Dashboard/TableComponent.d.ts +1 -1
  37. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  38. package/dist/cjs/components/Dashboard/TableComponent.js +1 -30
  39. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  40. package/dist/cjs/components/QuillMultiSelectWithCombo.js +16 -1
  41. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  42. package/dist/cjs/components/QuillSelectWithCombo.js +4 -1
  43. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +10 -2
  44. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  45. package/dist/cjs/components/ReportBuilder/FilterModal.js +94 -70
  46. package/dist/cjs/components/ReportBuilder/convert.d.ts +7 -2
  47. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  48. package/dist/cjs/components/ReportBuilder/convert.js +53 -1
  49. package/dist/cjs/components/ReportBuilder/ui.d.ts +6 -6
  50. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  51. package/dist/cjs/components/ReportBuilder/ui.js +6 -22
  52. package/dist/cjs/components/UiComponents.d.ts +26 -1
  53. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  54. package/dist/cjs/components/UiComponents.js +97 -4
  55. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  56. package/dist/cjs/hooks/useQuill.js +19 -3
  57. package/dist/cjs/index.d.ts +2 -1
  58. package/dist/cjs/index.d.ts.map +1 -1
  59. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +1 -0
  60. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  61. package/dist/cjs/models/Columns.d.ts +2 -1
  62. package/dist/cjs/models/Columns.d.ts.map +1 -1
  63. package/dist/cjs/models/Filter.d.ts +15 -4
  64. package/dist/cjs/models/Filter.d.ts.map +1 -1
  65. package/dist/cjs/models/Filter.js +9 -1
  66. package/dist/cjs/models/Report.d.ts +10 -23
  67. package/dist/cjs/models/Report.d.ts.map +1 -1
  68. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  69. package/dist/cjs/utils/astFilterProcessing.js +37 -2
  70. package/dist/cjs/utils/columnProcessing.d.ts +2 -0
  71. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  72. package/dist/cjs/utils/columnProcessing.js +54 -1
  73. package/dist/cjs/utils/dashboard.d.ts +1 -1
  74. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  75. package/dist/cjs/utils/dashboard.js +3 -56
  76. package/dist/cjs/utils/dataProcessing.d.ts +4 -2
  77. package/dist/cjs/utils/dataProcessing.d.ts.map +1 -1
  78. package/dist/cjs/utils/dataProcessing.js +18 -1
  79. package/dist/cjs/utils/dates.d.ts +2 -1
  80. package/dist/cjs/utils/dates.d.ts.map +1 -1
  81. package/dist/cjs/utils/dates.js +23 -1
  82. package/dist/cjs/utils/filterProcessing.d.ts +7 -1
  83. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  84. package/dist/cjs/utils/filterProcessing.js +100 -13
  85. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  86. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  87. package/dist/cjs/utils/pivotConstructor.js +7 -1
  88. package/dist/cjs/utils/report.d.ts +4 -1
  89. package/dist/cjs/utils/report.d.ts.map +1 -1
  90. package/dist/cjs/utils/report.js +94 -7
  91. package/dist/cjs/utils/tableProcessing.d.ts +1 -1
  92. package/dist/esm/Chart.d.ts +6 -37
  93. package/dist/esm/Chart.d.ts.map +1 -1
  94. package/dist/esm/Chart.js +87 -329
  95. package/dist/esm/ChartBuilder.d.ts +12 -49
  96. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  97. package/dist/esm/ChartBuilder.js +68 -33
  98. package/dist/esm/ChartEditor.d.ts +1 -1
  99. package/dist/esm/ChartEditor.d.ts.map +1 -1
  100. package/dist/esm/ChartEditor.js +11 -7
  101. package/dist/esm/Context.d.ts +4 -1
  102. package/dist/esm/Context.d.ts.map +1 -1
  103. package/dist/esm/Context.js +9 -3
  104. package/dist/esm/Dashboard.d.ts +61 -114
  105. package/dist/esm/Dashboard.d.ts.map +1 -1
  106. package/dist/esm/Dashboard.js +263 -32
  107. package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  108. package/dist/esm/DateRangePicker/DateRangePicker.js +0 -26
  109. package/dist/esm/ReportBuilder.d.ts +1 -1
  110. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  111. package/dist/esm/ReportBuilder.js +64 -99
  112. package/dist/esm/SQLEditor.d.ts +2 -2
  113. package/dist/esm/SQLEditor.d.ts.map +1 -1
  114. package/dist/esm/SQLEditor.js +11 -6
  115. package/dist/esm/Table.d.ts.map +1 -1
  116. package/dist/esm/Table.js +42 -44
  117. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  118. package/dist/esm/components/Chart/BarChart.js +13 -2
  119. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  120. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  121. package/dist/esm/components/Chart/LineChart.js +26 -2
  122. package/dist/esm/components/Dashboard/DataLoader.d.ts +7 -7
  123. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  124. package/dist/esm/components/Dashboard/DataLoader.js +65 -29
  125. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  126. package/dist/esm/components/Dashboard/MetricComponent.js +11 -45
  127. package/dist/esm/components/Dashboard/TableComponent.d.ts +1 -1
  128. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  129. package/dist/esm/components/Dashboard/TableComponent.js +1 -30
  130. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  131. package/dist/esm/components/QuillMultiSelectWithCombo.js +16 -1
  132. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  133. package/dist/esm/components/QuillSelectWithCombo.js +5 -2
  134. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +10 -2
  135. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  136. package/dist/esm/components/ReportBuilder/FilterModal.js +94 -70
  137. package/dist/esm/components/ReportBuilder/convert.d.ts +7 -2
  138. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  139. package/dist/esm/components/ReportBuilder/convert.js +51 -0
  140. package/dist/esm/components/ReportBuilder/ui.d.ts +6 -6
  141. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  142. package/dist/esm/components/ReportBuilder/ui.js +6 -22
  143. package/dist/esm/components/UiComponents.d.ts +26 -1
  144. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  145. package/dist/esm/components/UiComponents.js +95 -3
  146. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  147. package/dist/esm/hooks/useQuill.js +19 -3
  148. package/dist/esm/index.d.ts +2 -1
  149. package/dist/esm/index.d.ts.map +1 -1
  150. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +1 -0
  151. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  152. package/dist/esm/models/Columns.d.ts +2 -1
  153. package/dist/esm/models/Columns.d.ts.map +1 -1
  154. package/dist/esm/models/Filter.d.ts +15 -4
  155. package/dist/esm/models/Filter.d.ts.map +1 -1
  156. package/dist/esm/models/Filter.js +8 -0
  157. package/dist/esm/models/Report.d.ts +10 -23
  158. package/dist/esm/models/Report.d.ts.map +1 -1
  159. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  160. package/dist/esm/utils/astFilterProcessing.js +38 -3
  161. package/dist/esm/utils/columnProcessing.d.ts +2 -0
  162. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  163. package/dist/esm/utils/columnProcessing.js +52 -0
  164. package/dist/esm/utils/dashboard.d.ts +1 -1
  165. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  166. package/dist/esm/utils/dashboard.js +3 -56
  167. package/dist/esm/utils/dataProcessing.d.ts +4 -2
  168. package/dist/esm/utils/dataProcessing.d.ts.map +1 -1
  169. package/dist/esm/utils/dataProcessing.js +16 -0
  170. package/dist/esm/utils/dates.d.ts +2 -1
  171. package/dist/esm/utils/dates.d.ts.map +1 -1
  172. package/dist/esm/utils/dates.js +21 -0
  173. package/dist/esm/utils/filterProcessing.d.ts +7 -1
  174. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  175. package/dist/esm/utils/filterProcessing.js +97 -12
  176. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  177. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  178. package/dist/esm/utils/pivotConstructor.js +7 -1
  179. package/dist/esm/utils/report.d.ts +4 -1
  180. package/dist/esm/utils/report.d.ts.map +1 -1
  181. package/dist/esm/utils/report.js +92 -6
  182. package/dist/esm/utils/tableProcessing.d.ts +1 -1
  183. package/package.json +1 -1
  184. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts +0 -2
  185. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts.map +0 -1
  186. package/dist/esm/components/ReportBuilder/convert.uspec.js +0 -1152
  187. package/dist/esm/utils/astFilterProcessing.uspec.d.ts +0 -2
  188. package/dist/esm/utils/astFilterProcessing.uspec.d.ts.map +0 -1
  189. package/dist/esm/utils/astFilterProcessing.uspec.js +0 -2729
  190. package/dist/esm/utils/dataProcessing.uspec.d.ts +0 -2
  191. package/dist/esm/utils/dataProcessing.uspec.d.ts.map +0 -1
  192. package/dist/esm/utils/dataProcessing.uspec.js +0 -204
  193. package/dist/esm/utils/queryConstructor.uspec.d.ts +0 -2
  194. package/dist/esm/utils/queryConstructor.uspec.d.ts.map +0 -1
  195. package/dist/esm/utils/queryConstructor.uspec.js +0 -223
  196. package/dist/esm/utils/report.ispec.d.ts +0 -2
  197. package/dist/esm/utils/report.ispec.d.ts.map +0 -1
  198. package/dist/esm/utils/report.ispec.js +0 -46
  199. package/dist/esm/utils/tableProcessing.ispec.d.ts +0 -2
  200. package/dist/esm/utils/tableProcessing.ispec.d.ts.map +0 -1
  201. package/dist/esm/utils/tableProcessing.ispec.js +0 -61
@@ -10,7 +10,7 @@ import { ChartBuilderWithModal, createInitialFormData } from './ChartBuilder';
10
10
  import { QuillTextInput } from './components/UiComponents';
11
11
  import { QuillSidebar, CustomContainer, QuillSelectColumn, QuillDraggableColumn, QuillSidebarHeading, QuillFilterPopover, QuillSortPopover, QuillLimitPopover, FilterPopoverWrapper, } from './components/ReportBuilder/ui';
12
12
  import { generateCurrentPeriodPostgres, generateEqualsPostgres, generateLastNPeriodsPostgres, generatePreviousPeriodPostgres, } from './components/ReportBuilder/postgres';
13
- import { convertBigQuery, convertGroupBy, convertRemoveSimpleParentheses, convertStringComparison, convertWildcardColumns, } from './components/ReportBuilder/convert';
13
+ import { convertBigQuery, convertGroupBy, convertRemoveSimpleParentheses, convertStringComparison, convertWildcardColumns, convertUnaryToBinary, } from './components/ReportBuilder/convert';
14
14
  import { deepCopy, formatDateComparisonNode, getDateFilterInfo, isColumnComparison, isDateTruncEquals, isInTheLastInterval, isNodeEmptyCollection, isTheCurrentInterval, isThePreviousInterval, showNodeAsRow, removeNonSelectedTableReferences, isEquals, } from './components/ReportBuilder/util';
15
15
  import { getDefaultOperatorSubtrees, OPERATOR_GROUPS, } from './components/ReportBuilder/operators';
16
16
  import { hashCode } from './utils/crypto';
@@ -35,12 +35,12 @@ import PivotForm from './internals/ReportBuilder/PivotForm';
35
35
  import { getSchemaInfoWithCustomFields } from './utils/schema';
36
36
  import { getDateBucketFromRange } from './utils/dates';
37
37
  import FilterModal from './components/ReportBuilder/FilterModal';
38
- import { DateOperator, FilterNames } from './models/Filter';
39
38
  import { filterToAst, filterTreeToAst, } from './utils/astFilterProcessing';
40
39
  import useAstToFilterTree from './hooks/useAstToFilterTree';
41
- import { QuillMultiSelectComponent } from './components/QuillMultiSelect';
40
+ import { filterSentence } from './utils/filterProcessing';
41
+ import { QuillMultiSelectComponentWithCombo } from './components/QuillMultiSelectWithCombo';
42
42
  import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from './utils/paginationProcessing';
43
- import { formatRowsFromReport } from './utils/report';
43
+ import { EMPTY_REPORT, formatRowsFromReport } from './utils/report';
44
44
  export const QUILL_SERVER = (typeof process !== 'undefined' && process?.env?.QUILL_SERVER_HOST) ||
45
45
  'https://quill-344421.uc.r.appspot.com';
46
46
  /**
@@ -74,7 +74,7 @@ export const QUILL_SERVER = (typeof process !== 'undefined' && process?.env?.QUI
74
74
  * ### Report Builder API
75
75
  * @see https://docs.quillsql.com/components/report-builder
76
76
  */
77
- export default function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void null, onSubmitCreateReport = () => void null, destinationDashboard = undefined, organizationName = '', ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, DeleteButtonComponent = MemoizedDeleteButton, ModalComponent = MemoizedModal, TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, MultiSelectComponent = QuillMultiSelectComponent, TableComponent = QuillTableSQLEditorComponent, PopoverComponent = MemoizedPopover, TabsComponent = QuillTabs, CheckboxComponent = MemoizedCheckbox, SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectColumnComponent = QuillSelectColumn, DraggableColumnComponent = QuillDraggableColumn, SidebarHeadingComponent = QuillSidebarHeading, FilterPopoverComponent = QuillFilterPopover, SortPopoverComponent = QuillSortPopover, LimitPopoverComponent = QuillLimitPopover, CardComponent = QuillCard, LabelComponent = MemoizedLabel, HeaderComponent = MemoizedHeader, SubHeaderComponent = MemoizedSubHeader, TextComponent = MemoizedText, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, ColumnSearchEmptyState = QuillColumnSearchEmptyState, ChartBuilderFormContainer = QuillChartBuilderFormContainer, ChartBuilderModalComponent = MemoizedModal, isAdminEnabled = false, isAIEnabled = true, showChartBuilderTableFormatOptions = true, containerStyle, className, pivotRecommendationsEnabled = true, reportId, hideCopySQL = true, isChartBuilderHorizontalView = true, onClickChartElement, }) {
77
+ export default function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void null, onSubmitCreateReport = () => void null, destinationDashboard = undefined, organizationName = '', ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, DeleteButtonComponent = MemoizedDeleteButton, ModalComponent = MemoizedModal, TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, MultiSelectComponent = QuillMultiSelectComponentWithCombo, TableComponent = QuillTableSQLEditorComponent, PopoverComponent = MemoizedPopover, TabsComponent = QuillTabs, CheckboxComponent = MemoizedCheckbox, SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectColumnComponent = QuillSelectColumn, DraggableColumnComponent = QuillDraggableColumn, SidebarHeadingComponent = QuillSidebarHeading, FilterPopoverComponent = QuillFilterPopover, SortPopoverComponent = QuillSortPopover, LimitPopoverComponent = QuillLimitPopover, CardComponent = QuillCard, LabelComponent = MemoizedLabel, HeaderComponent = MemoizedHeader, SubHeaderComponent = MemoizedSubHeader, TextComponent = MemoizedText, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, ColumnSearchEmptyState = QuillColumnSearchEmptyState, ChartBuilderFormContainer = QuillChartBuilderFormContainer, ChartBuilderModalComponent = MemoizedModal, isAdminEnabled = false, isAIEnabled = true, showChartBuilderTableFormatOptions = true, containerStyle, className, pivotRecommendationsEnabled = true, reportId, hideCopySQL = true, isChartBuilderHorizontalView = true, onClickChartElement, }) {
78
78
  const { data: report } = useQuill(reportId || '');
79
79
  const [aiPrompt, setAiPrompt] = useState('');
80
80
  const [errorMessage, setErrorMessage] = useState('');
@@ -97,7 +97,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
97
97
  const [rows, setRows] = useState([]);
98
98
  const [formattedRows, setFormattedRows] = useState([]);
99
99
  const [columns, setColumns] = useState([]);
100
- const [tempReport, setTempReport] = useState({});
100
+ const [tempReport, setTempReport] = useState(EMPTY_REPORT);
101
101
  const [topLevelBinaryOperator, setTopLevelBinaryOperator] = useState('AND');
102
102
  const [uniqueValues, setUniqueValues] = useState({});
103
103
  const [pivot, setPivot] = useState(null);
@@ -127,7 +127,6 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
127
127
  // JANK: This is temp and stupid
128
128
  const [overrideRecommendations, setOverrideRecommendations] = useState(true);
129
129
  const [customFields, setCustomFields] = useContext(CustomFieldContext);
130
- const [openFilterIndex, setOpenFilterIndex] = useState(null); // Sets open filter modals
131
130
  const [fieldValuesMap, setFieldValuesMap] = useState({}); // Mapping of unique values per field, used in string filter 'in' and 'not in'
132
131
  const filterTree = useAstToFilterTree(formData, client); // Stores the state of filters
133
132
  useEffect(() => {
@@ -1000,8 +999,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
1000
999
  }
1001
1000
  };
1002
1001
  const onSortChange = (sort) => {
1003
- if (report &&
1004
- shouldSortInMemory(DEFAULT_PAGINATION, report.rowCount, !!report.pivot)) {
1002
+ if (shouldSortInMemory(DEFAULT_PAGINATION, numberOfRows, !!pivot)) {
1005
1003
  return;
1006
1004
  }
1007
1005
  const updatedProcessing = { page: DEFAULT_PAGINATION, sort };
@@ -1035,7 +1033,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
1035
1033
  }
1036
1034
  catch (e) {
1037
1035
  setTableLoading(false);
1038
- setErrorMessage('Failed to run SQL query: ' + e);
1036
+ setErrorMessage('Failed to run SQL query: ' + e.message);
1039
1037
  setRows([]);
1040
1038
  setColumns([]);
1041
1039
  return;
@@ -1712,11 +1710,9 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
1712
1710
  return validPivot;
1713
1711
  };
1714
1712
  /**
1715
- *
1716
1713
  * @param filterTree
1717
1714
  * Returns a list of filters to be displayed
1718
1715
  * Replaces the functionality of renderNodes in the context of filters
1719
- * Contains filterSentence, which replaces renderSentence
1720
1716
  */
1721
1717
  const renderFilters = (filterTree) => {
1722
1718
  let tree = filterTree;
@@ -1737,37 +1733,6 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
1737
1733
  traverseTree(node.rightNode);
1738
1734
  }
1739
1735
  }
1740
- /**
1741
- * Returns a sentence to describe a Filter
1742
- */
1743
- function filterSentence(filter) {
1744
- let value = '';
1745
- if (filter.name == FilterNames.NullFilter) {
1746
- return `${snakeAndCamelCaseToTitleCase(filter.field)} ${filter.operator}`;
1747
- }
1748
- else if (filter.value === null || filter.value === undefined) {
1749
- return 'Error: filter missing value';
1750
- }
1751
- if (typeof filter.value === 'string' ||
1752
- typeof filter.value === 'number') {
1753
- value = filter.value.toString();
1754
- }
1755
- else if ('unit' in filter.value) {
1756
- if (filter.operator === DateOperator.InTheCurrent) {
1757
- value = `${filter.value.unit}`;
1758
- }
1759
- else {
1760
- value = `${filter.value.value} ${filter.value.unit}${filter.value.value === 1 ? '' : 's'}`;
1761
- }
1762
- }
1763
- else if ('startDate' in filter.value) {
1764
- value = `from ${filter.value.startDate}`;
1765
- }
1766
- else if (filter.value.length > 0) {
1767
- value = filter.value.join(', ');
1768
- }
1769
- return `${snakeAndCamelCaseToTitleCase(filter.field)} ${filter.operator} ${value}`;
1770
- }
1771
1736
  /**
1772
1737
  * Given an array of Filters (presumed to be in in-order state), generate
1773
1738
  * the corresponding Filter tree. Essentially the reverse of what traverseTree does
@@ -1856,67 +1821,66 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
1856
1821
  } }) }, index));
1857
1822
  }
1858
1823
  else {
1859
- return (_jsx("div", { children: _jsx(FilterPopoverWrapper, { schema: schema.find((s) => s.name === currentTable ||
1860
- s.displayName === currentTable) ?? schema[0], filter: item.value, filterLabel: item.value ? filterSentence(item.value) : '', index: index, openFilterIndex: openFilterIndex, setOpenFilterIndex: setOpenFilterIndex, FilterPopover: FilterPopoverComponent, FilterModal: FilterModal, fieldValuesMap: fieldValuesMap, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (filter) => {
1861
- item.value = filter;
1862
- let newFormData = null;
1863
- if (tree) {
1864
- newFormData = filterTreeToAst(tree, client.databaseType.toLowerCase());
1865
- }
1866
- const newAst = deepCopy({
1867
- ...defaultAST,
1868
- ...baseAst,
1869
- ...(!baseAst?.columns && {
1870
- columns: getAllPossibleColumns().map((c) => {
1871
- const newColumn = deepCopy(defaultColumn);
1872
- newColumn.expr.column = c.name;
1873
- return newColumn;
1874
- }),
1875
- }),
1876
- ...(!baseAst?.from && {
1877
- from: [{ ...defaultTable, table: initialTableName }],
1824
+ return (_jsx(FilterPopoverWrapper, { schema: schema.find((s) => s.name === currentTable || s.displayName === currentTable) ?? schema[0], filter: item.value, filterLabel: item.value ? filterSentence(item.value) : '', index: index, FilterTagComponent: FilterPopoverComponent, FilterModal: FilterModal, fieldValuesMap: fieldValuesMap, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (filter) => {
1825
+ item.value = filter;
1826
+ let newFormData = null;
1827
+ if (tree) {
1828
+ newFormData = filterTreeToAst(tree, client.databaseType.toLowerCase());
1829
+ }
1830
+ const newAst = deepCopy({
1831
+ ...defaultAST,
1832
+ ...baseAst,
1833
+ ...(!baseAst?.columns && {
1834
+ columns: getAllPossibleColumns().map((c) => {
1835
+ const newColumn = deepCopy(defaultColumn);
1836
+ newColumn.expr.column = c.name;
1837
+ return newColumn;
1878
1838
  }),
1879
- where: newFormData,
1880
- });
1881
- setBaseAst(newAst);
1882
- setFormData(newFormData);
1883
- fetchSqlQuery(newAst, newFormData);
1884
- }, handleFilterDelete: (i) => {
1885
- if (i > 0) {
1886
- filterStack.splice(i - 1, 2);
1839
+ }),
1840
+ ...(!baseAst?.from && {
1841
+ from: [{ ...defaultTable, table: initialTableName }],
1842
+ }),
1843
+ where: newFormData,
1844
+ });
1845
+ setBaseAst(newAst);
1846
+ setFormData(newFormData);
1847
+ fetchSqlQuery(newAst, newFormData);
1848
+ }, handleFilterDelete: (i) => {
1849
+ if (i > 0) {
1850
+ filterStack.splice(i - 1, 2);
1851
+ }
1852
+ else {
1853
+ if (filterStack.length > 1) {
1854
+ filterStack.splice(i, 2);
1887
1855
  }
1888
1856
  else {
1889
- if (filterStack.length > 1) {
1890
- filterStack.splice(i, 2);
1891
- }
1892
- else {
1893
- filterStack.splice(i, 1);
1894
- }
1895
- }
1896
- tree = filterStackToFilterTree(filterStack);
1897
- let newFormData = null;
1898
- if (tree) {
1899
- newFormData = filterTreeToAst(tree, client.databaseType.toLowerCase());
1857
+ filterStack.splice(i, 1);
1900
1858
  }
1901
- const newAst = deepCopy({
1902
- ...defaultAST,
1903
- ...baseAst,
1904
- ...(!baseAst?.columns && {
1905
- columns: getAllPossibleColumns().map((c) => {
1906
- const newColumn = deepCopy(defaultColumn);
1907
- newColumn.expr.column = c.name;
1908
- return newColumn;
1909
- }),
1910
- }),
1911
- ...(!baseAst?.from && {
1912
- from: [{ ...defaultTable, table: initialTableName }],
1859
+ }
1860
+ tree = filterStackToFilterTree(filterStack);
1861
+ let newFormData = null;
1862
+ if (tree) {
1863
+ newFormData = filterTreeToAst(tree, client.databaseType.toLowerCase());
1864
+ }
1865
+ const newAst = deepCopy({
1866
+ ...defaultAST,
1867
+ ...baseAst,
1868
+ ...(!baseAst?.columns && {
1869
+ columns: getAllPossibleColumns().map((c) => {
1870
+ const newColumn = deepCopy(defaultColumn);
1871
+ newColumn.expr.column = c.name;
1872
+ return newColumn;
1913
1873
  }),
1914
- where: newFormData,
1915
- });
1916
- setBaseAst(newAst);
1917
- setFormData(newFormData);
1918
- fetchSqlQuery(newAst, newFormData);
1919
- } }) }, index));
1874
+ }),
1875
+ ...(!baseAst?.from && {
1876
+ from: [{ ...defaultTable, table: initialTableName }],
1877
+ }),
1878
+ where: newFormData,
1879
+ });
1880
+ setBaseAst(newAst);
1881
+ setFormData(newFormData);
1882
+ fetchSqlQuery(newAst, newFormData);
1883
+ } }, 'filter' + index));
1920
1884
  }
1921
1885
  }) }));
1922
1886
  };
@@ -2258,6 +2222,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitEditRepor
2258
2222
  newAst = convertRemoveSimpleParentheses(newAst);
2259
2223
  const table = getTableNames(newAst)[0] ?? initialTableName;
2260
2224
  const tableAlias = getTableAliases(newAst)[0] ?? initialTableName;
2225
+ newAst = convertUnaryToBinary(newAst);
2261
2226
  newAst = removeNonSelectedTableReferences(newAst, tableAlias ?? table, getAllPossibleColumns().map((col) => col.name));
2262
2227
  const procesedColumns = deepCopy(newAst).columns?.map((column) => {
2263
2228
  if (column.expr.type === 'column_ref') {
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { QuillReport } from './Dashboard';
2
+ import { QuillReport } from './models/Report';
3
3
  /**
4
4
  * Props for the Quill SQLEditor component.
5
5
  */
@@ -201,7 +201,7 @@ export interface SQLEditorProps {
201
201
  /**
202
202
  * A dashboard item.
203
203
  */
204
- report?: QuillReport | any;
204
+ report?: QuillReport;
205
205
  /**
206
206
  * The default query to use as a placeholder.
207
207
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ import { fetchTableByQuery, } from './utils/tableProcessing';
16
16
  import { processColumnReference } from './utils/queryConstructor';
17
17
  import { generateSuggestionsByDatasource, generateSuggestionsBySchema, QUILL_LANGUAGE, } from './utils/monacoConfig';
18
18
  import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from './utils/paginationProcessing';
19
- import { formatRowsFromReport } from './utils/report';
19
+ import { EMPTY_REPORT, formatRowsFromReport } from './utils/report';
20
20
  function defineEditorTheme(monaco, theme) {
21
21
  monaco.editor.defineTheme('onedark', {
22
22
  base: theme.darkMode ? 'vs-dark' : 'vs',
@@ -102,7 +102,10 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
102
102
  const [formattedRows, setFormattedRows] = useState([]);
103
103
  const [rowCount, setRowCount] = useState(undefined);
104
104
  const [maxPage, setMaxPage] = useState(1);
105
- const [tempReport, setTempReport] = useState(report);
105
+ const [tempReport, setTempReport] = useState({
106
+ ...EMPTY_REPORT,
107
+ ...report,
108
+ });
106
109
  const [currentProcessing, setCurrentProcessing] = useState({
107
110
  page: DEFAULT_PAGINATION,
108
111
  });
@@ -157,7 +160,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
157
160
  }
158
161
  };
159
162
  const onSortChange = (sort) => {
160
- if (report && shouldSortInMemory(DEFAULT_PAGINATION, rowCount, false)) {
163
+ if (tempReport && shouldSortInMemory(DEFAULT_PAGINATION, rowCount, false)) {
161
164
  return;
162
165
  }
163
166
  const updatedProcessing = { page: DEFAULT_PAGINATION, sort };
@@ -191,6 +194,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
191
194
  }
192
195
  setRows(tempRows);
193
196
  setFormattedRows(formatRowsFromReport({ rows: tempRows, columns: tableInfo.columns }));
197
+ console.log(formatRowsFromReport({ rows: tempRows, columns: tableInfo.columns }));
194
198
  if (onChangeData) {
195
199
  onChangeData(tempRows);
196
200
  }
@@ -205,16 +209,17 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
205
209
  ? report
206
210
  : createInitialFormData(tableInfo.columns);
207
211
  setTempReport({
212
+ ...tempReport,
208
213
  ...formData,
209
214
  itemQuery: tableInfo.itemQuery,
210
- rowCount: tableInfo.rowCount,
211
- filtersApplied: report && report.filtersApplied ? report.filtersApplied : [],
215
+ rowCount: tableInfo.rowCount ?? tableInfo.rows.length,
216
+ filtersApplied: tempReport.filtersApplied ?? [],
212
217
  rows: tempRows,
213
218
  columns: tableInfo.columns,
214
219
  });
215
220
  }
216
221
  catch (e) {
217
- setErrorMessage(e);
222
+ setErrorMessage(e.message);
218
223
  return;
219
224
  }
220
225
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,SAAS,EAIV,MAAM,OAAO,CAAC;AAaf,OAAO,EACL,yBAAyB,EAEzB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAkBnC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAwDD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IAEJ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC,oDAAoD;IACpD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAE/D,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;IAEzE,+DAA+D;IAC/D,wBAAwB,CAAC,EAAE,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,aAAa,EACb,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE,CAAC;QAC9C,aAAa,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClD,iBAAiB,EAAE,CAAC,EAClB,SAAS,EACT,OAAO,GACR,EAAE;YACD,SAAS,EAAE,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC;SACf,KAAK,IAAI,CAAC;QACX,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;KACjE,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,CAAC,EAC1B,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAmC/B,CAAC;AA6SF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,SAAS,EAIV,MAAM,OAAO,CAAC;AAaf,OAAO,EACL,yBAAyB,EAEzB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAuBnC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAwDD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IAEJ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC,oDAAoD;IACpD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAE/D,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;IAEzE,+DAA+D;IAC/D,wBAAwB,CAAC,EAAE,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,aAAa,EACb,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE,CAAC;QAC9C,aAAa,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClD,iBAAiB,EAAE,CAAC,EAClB,SAAS,EACT,OAAO,GACR,EAAE;YACD,SAAS,EAAE,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC;SACf,KAAK,IAAI,CAAC;QACX,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;KACjE,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,CAAC,EAC1B,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAmC/B,CAAC;AAmSF,eAAe,KAAK,CAAC"}
package/dist/esm/Table.js CHANGED
@@ -10,7 +10,7 @@ import { QuillSelectComponent } from './components/QuillSelect';
10
10
  import { QuillMultiSelectComponent } from './components/QuillMultiSelect';
11
11
  import { QuillDateRangePicker } from './DateRangePicker/QuillDateRangePicker';
12
12
  import { useTheme } from './hooks';
13
- import { fetchReport, formatRowsFromReport } from './utils/report';
13
+ import { convertInternalReportToReport, fetchReport, formatRowsFromReport, } from './utils/report';
14
14
  import { fetchTableByReport, } from './utils/tableProcessing';
15
15
  import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from './utils/paginationProcessing';
16
16
  /**
@@ -46,7 +46,7 @@ import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from './util
46
46
  */
47
47
  const Table = (props) => {
48
48
  const data = props;
49
- const { dashboard } = useContext(DashboardContext);
49
+ const [dashboard] = useContext(DashboardContext);
50
50
  const [client] = useContext(ClientContext);
51
51
  if ('rows' in data && 'columns' in data) {
52
52
  return (_jsx(QuillTable, { hideCSVDownloadButton: data.hideCSVDownloadButton, columns: data.columns, rows: data.rows, className: data.className, containerStyle: data.containerStyle, LoadingComponent: data.LoadingComponent, isLoading: data.isLoading, downloadCSV: data.downloadCSV }));
@@ -125,12 +125,13 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, c
125
125
  setRows([]);
126
126
  return;
127
127
  }
128
+ const convertedReport = convertInternalReportToReport(report);
128
129
  let filterArray = reportFilters.filters;
129
130
  // THIS SHOULD ONLY BE UNDEFINED ON INITIAL LOAD
130
131
  if (!filterArray) {
131
132
  filterArray = report.filtersApplied
132
133
  ? report.filtersApplied.map((filter) => {
133
- return processFilterFromBackend(filter, report.rows);
134
+ return processFilterFromBackend(filter);
134
135
  })
135
136
  : [];
136
137
  reportFiltersDispatch({
@@ -142,10 +143,10 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, c
142
143
  },
143
144
  });
144
145
  }
145
- setRows(formatRowsFromReport(report));
146
+ setRows(formatRowsFromReport(convertedReport));
146
147
  setTableFilters(filterArray);
147
- setRowCount(report.rowCount);
148
- setColumns(report.columns);
148
+ setRowCount(convertedReport.rowCount ?? 0);
149
+ setColumns(convertedReport.columns);
149
150
  setLoading(false);
150
151
  setInitialLoad(false);
151
152
  };
@@ -153,8 +154,8 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, c
153
154
  if (!client) {
154
155
  return;
155
156
  }
156
- // IF WE HAVE THE DATA IN DASHBOARD CONTEXT AND IT IS THE INITIAL LAOD DON'T FETCH DATA
157
- if (initialLoad && dashboardContext[reportId]) {
157
+ const report = dashboardContext[reportId];
158
+ if (initialLoad && report) {
158
159
  setInitialLoad(false);
159
160
  return;
160
161
  }
@@ -165,53 +166,50 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, c
165
166
  fetchReportHelper(true, parsedReportFilters, currentProcessing);
166
167
  }, [client, reportId, reportFilters[reportId]?.updateIndex]);
167
168
  useEffect(() => {
168
- if (!dashboardContext || !dashboardContext[reportId]) {
169
+ const report = dashboardContext[reportId];
170
+ if (!report) {
169
171
  return;
170
172
  }
171
- if (!dashboardContext[reportId].rows ||
172
- !dashboardContext[reportId].columns) {
173
+ if (!report.rows || !report.columns) {
173
174
  setRows([]);
174
175
  setColumns([]);
175
176
  return;
176
177
  }
177
178
  let filtersApplied = [];
178
- if (dashboardContext[reportId].filtersApplied &&
179
- dashboardContext[reportId].filtersApplied.length > 0) {
180
- filtersApplied = dashboardContext[reportId].filtersApplied;
179
+ if (report.filtersApplied && report.filtersApplied.length > 0) {
180
+ filtersApplied = report.filtersApplied.map((filter) => {
181
+ return filter;
182
+ });
181
183
  }
182
- setRows(formatRowsFromReport(dashboardContext[reportId]));
183
- setRowCount(dashboardContext[reportId].rowCount);
184
- setColumns(dashboardContext[reportId].columns);
184
+ const convertedReport = convertInternalReportToReport(report);
185
+ setRows(formatRowsFromReport(convertedReport));
186
+ setRowCount(convertedReport.rowCount);
187
+ setColumns(convertedReport.columns);
185
188
  setTableFilters(filtersApplied);
186
189
  }, []);
187
- return (_jsxs("div", { children: [!hideFilters && (_jsx("div", { style: {
188
- display: 'flex',
189
- boxSizing: 'content-box',
190
- flexDirection: 'row',
191
- alignItems: 'center',
192
- }, children: _jsx(FilterContainerComponent, { children: tableFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: filter, onChangeFilter: (filter, value = null, comparison = null) => {
193
- const updatedFilters = tableFilters.map((f) => {
194
- if (f.field === filter.field ||
195
- (f.filterType === 'date_range' &&
196
- filter.filterType === 'date_range')) {
197
- return updateFilter(f, value, comparison);
198
- }
199
- return f;
200
- });
201
- setTableFilters(updatedFilters);
202
- fetchReportHelper(true, {
190
+ return (_jsxs("div", { children: [!hideFilters && (_jsx(FilterContainerComponent, { children: tableFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: filter, onChangeFilter: (filter, value = null, comparison = null) => {
191
+ const updatedFilters = tableFilters.map((f) => {
192
+ if (f.field === filter.field ||
193
+ (f.filterType === 'date_range' &&
194
+ filter.filterType === 'date_range')) {
195
+ return updateFilter(f, value, comparison);
196
+ }
197
+ return f;
198
+ });
199
+ setTableFilters(updatedFilters);
200
+ fetchReportHelper(true, {
201
+ filters: updatedFilters,
202
+ updateIndex: filterUpdateIndex + 1,
203
+ }, currentProcessing);
204
+ setFilterUpdateIndex(filterUpdateIndex + 1);
205
+ reportFiltersDispatch({
206
+ type: 'UPDATE_REPORT_FILTER',
207
+ id: reportId,
208
+ data: {
203
209
  filters: updatedFilters,
204
210
  updateIndex: filterUpdateIndex + 1,
205
- }, currentProcessing);
206
- setFilterUpdateIndex(filterUpdateIndex + 1);
207
- reportFiltersDispatch({
208
- type: 'UPDATE_REPORT_FILTER',
209
- id: reportId,
210
- data: {
211
- filters: updatedFilters,
212
- updateIndex: filterUpdateIndex + 1,
213
- },
214
- });
215
- }, theme: theme, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))) }) })), _jsx(QuillTable, { hideCSVDownloadButton: hideCSVDownloadButton, columns: columns ?? [], rows: rows ?? [], containerStyle: containerStyle, className: className, LoadingComponent: LoadingComponent, sort: currentProcessing.sort, isLoading: loading || initialLoad, downloadCSV: downloadCSV, onPageChange: onPageChange, onSortChange: onSortChange, rowCount: rowCount })] }));
211
+ },
212
+ });
213
+ }, theme: theme, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))) })), _jsx(QuillTable, { hideCSVDownloadButton: hideCSVDownloadButton, columns: columns ?? [], rows: rows ?? [], containerStyle: containerStyle, className: className, LoadingComponent: LoadingComponent, sort: currentProcessing.sort, isLoading: loading || initialLoad, downloadCSV: downloadCSV, onPageChange: onPageChange, onSortChange: onSortChange, rowCount: rowCount })] }));
216
214
  };
217
215
  export default Table;
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,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,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CA2MA"}
1
+ {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,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,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAsNA"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // @ts-nocheck
3
3
  import { CartesianGrid, ResponsiveContainer, Tooltip, XAxis, YAxis, Bar, BarChart as ReChartsBarChart, } from 'recharts';
4
- import { valueFormatter } from '../../utils/valueFormatter';
4
+ import { quillFormat, valueFormatter } from '../../utils/valueFormatter';
5
5
  import { axisFormatter } from '../../utils/axisFormatter';
6
6
  import { generateArrayFromColor, selectColor } from '../../utils/color';
7
7
  import ChartTooltip from '../../components/Chart/ChartTooltip';
@@ -11,6 +11,17 @@ export default function BarChart({ colors, colorMap, yAxisFields, data, containe
11
11
  const [formattedData, setFormattedData] = useState(data);
12
12
  useEffect(() => {
13
13
  if (!data || data.length === 0) {
14
+ let barChartData = [];
15
+ if (dateFilter && (!barChartData || barChartData.length === 0)) {
16
+ const xAxis = xAxisField || '';
17
+ const endDate = quillFormat({
18
+ value: dateFilter?.endDate,
19
+ format: xAxisFormat,
20
+ });
21
+ const yAxis = yAxisFields[0]?.field;
22
+ barChartData = [{ [xAxis]: endDate, [yAxis]: '0' }];
23
+ }
24
+ setFormattedData(barChartData);
14
25
  return;
15
26
  }
16
27
  const curData = data.map((d) => {
@@ -39,7 +50,7 @@ export default function BarChart({ colors, colorMap, yAxisFields, data, containe
39
50
  }
40
51
  return fields;
41
52
  };
42
- if (!data || data.length === 0) {
53
+ if (!formattedData || formattedData.length === 0) {
43
54
  return (_jsx("div", { style: {
44
55
  display: 'flex',
45
56
  flex: '1 0 auto',
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { type ColorMapType } from '../../Chart';
3
+ import { AxisFormat } from '../../Dashboard';
3
4
  export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, cartesianGridLineColor, onClickChartElement, dateFilter, }: {
4
5
  colors?: string[];
5
6
  colorMap?: ColorMapType;
@@ -9,7 +10,7 @@ export default function LineChart({ colors, colorMap, yAxisFields, data, contain
9
10
  className?: string;
10
11
  xAxisField: string;
11
12
  xAxisLabel: string;
12
- xAxisFormat: string;
13
+ xAxisFormat: AxisFormat;
13
14
  theme: any;
14
15
  comparison: any;
15
16
  isAnimationActive: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,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,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,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,MAAM,CAAC;IACpB,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,2CA8PA"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAoBA,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,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,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,2CAuQA"}