@quillsql/react 2.12.52 → 2.13.0

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 (263) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +5 -3
  3. package/dist/cjs/ChartBuilder.d.ts +10 -3
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +62 -26
  6. package/dist/cjs/ChartEditor.d.ts +3 -1
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +74 -16
  9. package/dist/cjs/Context.d.ts +17 -6
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +138 -73
  12. package/dist/cjs/Dashboard.d.ts +8 -4
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +146 -367
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  16. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +20 -14
  17. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
  18. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  19. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  20. package/dist/cjs/QuillProvider.js +1 -1
  21. package/dist/cjs/ReportBuilder.d.ts +8 -12
  22. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  23. package/dist/cjs/ReportBuilder.js +163 -83
  24. package/dist/cjs/SQLEditor.d.ts +8 -1
  25. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  26. package/dist/cjs/SQLEditor.js +81 -28
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +6 -3
  29. package/dist/cjs/assets/AdjustmentsIcon.d.ts +5 -0
  30. package/dist/cjs/assets/AdjustmentsIcon.d.ts.map +1 -0
  31. package/dist/cjs/assets/AdjustmentsIcon.js +5 -0
  32. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  33. package/dist/cjs/components/Chart/ChartError.js +2 -2
  34. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +4 -3
  35. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  36. package/dist/cjs/components/Dashboard/DashboardFilter.js +12 -12
  37. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts +2 -2
  38. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  39. package/dist/cjs/components/Dashboard/DataLoader.d.ts +11 -5
  40. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/DataLoader.js +91 -32
  42. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
  43. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  44. package/dist/cjs/components/Dashboard/TableComponent.js +10 -3
  45. package/dist/cjs/components/Dashboard/util.d.ts +2 -2
  46. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  47. package/dist/cjs/components/Dashboard/util.js +2 -2
  48. package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
  49. package/dist/cjs/components/QuillMultiSelect.js +18 -13
  50. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillMultiSelectWithCombo.js +67 -45
  52. package/dist/cjs/components/QuillSelect.d.ts +1 -1
  53. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  54. package/dist/cjs/components/QuillSelect.js +29 -7
  55. package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
  56. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  57. package/dist/cjs/components/QuillSelectWithCombo.js +47 -26
  58. package/dist/cjs/components/QuillTable.d.ts +3 -2
  59. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  60. package/dist/cjs/components/QuillTable.js +32 -19
  61. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
  62. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  63. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
  64. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +2 -1
  65. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  66. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -2
  67. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +2 -1
  68. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  69. package/dist/cjs/components/ReportBuilder/FilterModal.js +17 -4
  70. package/dist/cjs/components/ReportBuilder/ui.d.ts +13 -8
  71. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  72. package/dist/cjs/components/ReportBuilder/ui.js +15 -24
  73. package/dist/cjs/components/UiComponents.d.ts +17 -9
  74. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  75. package/dist/cjs/components/UiComponents.js +30 -24
  76. package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -2
  77. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  78. package/dist/cjs/hooks/useDashboard.d.ts +13 -5
  79. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  80. package/dist/cjs/hooks/useDashboard.js +158 -70
  81. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  82. package/dist/cjs/hooks/useExport.js +9 -3
  83. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  84. package/dist/cjs/hooks/useQuill.js +15 -15
  85. package/dist/cjs/hooks/useVirtualTables.d.ts +12 -3
  86. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  87. package/dist/cjs/hooks/useVirtualTables.js +105 -1
  88. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +3 -1
  89. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  90. package/dist/cjs/internals/ReportBuilder/PivotForm.js +9 -9
  91. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  92. package/dist/cjs/internals/ReportBuilder/PivotList.js +21 -15
  93. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +3 -2
  94. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  95. package/dist/cjs/internals/ReportBuilder/PivotModal.js +9 -9
  96. package/dist/cjs/models/Client.d.ts +16 -2
  97. package/dist/cjs/models/Client.d.ts.map +1 -1
  98. package/dist/cjs/models/Dashboard.d.ts +1 -1
  99. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  100. package/dist/cjs/models/Filter.d.ts +4 -3
  101. package/dist/cjs/models/Filter.d.ts.map +1 -1
  102. package/dist/cjs/models/Filter.js +38 -1
  103. package/dist/cjs/utils/astProcessing.d.ts +3 -3
  104. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  105. package/dist/cjs/utils/client.d.ts.map +1 -1
  106. package/dist/cjs/utils/client.js +2 -7
  107. package/dist/cjs/utils/dashboard.d.ts +5 -5
  108. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  109. package/dist/cjs/utils/dashboard.js +90 -9
  110. package/dist/cjs/utils/dataFetcher.d.ts +4 -4
  111. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  112. package/dist/cjs/utils/dataFetcher.js +1 -1
  113. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  114. package/dist/cjs/utils/filterProcessing.js +2 -8
  115. package/dist/cjs/utils/paginationProcessing.js +1 -1
  116. package/dist/cjs/utils/pivotConstructor.d.ts +2 -2
  117. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  118. package/dist/cjs/utils/pivotConstructor.js +1 -1
  119. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  120. package/dist/cjs/utils/pivotProcessing.js +6 -2
  121. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  122. package/dist/cjs/utils/queryConstructor.js +12 -9
  123. package/dist/cjs/utils/report.d.ts +6 -5
  124. package/dist/cjs/utils/report.d.ts.map +1 -1
  125. package/dist/cjs/utils/report.js +71 -25
  126. package/dist/cjs/utils/schema.d.ts +3 -3
  127. package/dist/cjs/utils/schema.d.ts.map +1 -1
  128. package/dist/cjs/utils/schema.js +39 -35
  129. package/dist/cjs/utils/tableProcessing.d.ts +18 -11
  130. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  131. package/dist/cjs/utils/tableProcessing.js +44 -23
  132. package/dist/esm/Chart.d.ts.map +1 -1
  133. package/dist/esm/Chart.js +6 -4
  134. package/dist/esm/ChartBuilder.d.ts +10 -3
  135. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  136. package/dist/esm/ChartBuilder.js +59 -26
  137. package/dist/esm/ChartEditor.d.ts +3 -1
  138. package/dist/esm/ChartEditor.d.ts.map +1 -1
  139. package/dist/esm/ChartEditor.js +76 -18
  140. package/dist/esm/Context.d.ts +17 -6
  141. package/dist/esm/Context.d.ts.map +1 -1
  142. package/dist/esm/Context.js +139 -74
  143. package/dist/esm/Dashboard.d.ts +8 -4
  144. package/dist/esm/Dashboard.d.ts.map +1 -1
  145. package/dist/esm/Dashboard.js +146 -367
  146. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  147. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +21 -15
  148. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
  149. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  150. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  151. package/dist/esm/QuillProvider.js +1 -1
  152. package/dist/esm/ReportBuilder.d.ts +8 -12
  153. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  154. package/dist/esm/ReportBuilder.js +167 -87
  155. package/dist/esm/SQLEditor.d.ts +8 -1
  156. package/dist/esm/SQLEditor.d.ts.map +1 -1
  157. package/dist/esm/SQLEditor.js +84 -31
  158. package/dist/esm/Table.d.ts.map +1 -1
  159. package/dist/esm/Table.js +7 -4
  160. package/dist/esm/assets/AdjustmentsIcon.d.ts +5 -0
  161. package/dist/esm/assets/AdjustmentsIcon.d.ts.map +1 -0
  162. package/dist/esm/assets/AdjustmentsIcon.js +3 -0
  163. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  164. package/dist/esm/components/Chart/ChartError.js +2 -2
  165. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +4 -3
  166. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  167. package/dist/esm/components/Dashboard/DashboardFilter.js +12 -12
  168. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts +2 -2
  169. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  170. package/dist/esm/components/Dashboard/DataLoader.d.ts +11 -5
  171. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  172. package/dist/esm/components/Dashboard/DataLoader.js +94 -35
  173. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
  174. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  175. package/dist/esm/components/Dashboard/TableComponent.js +10 -3
  176. package/dist/esm/components/Dashboard/util.d.ts +2 -2
  177. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  178. package/dist/esm/components/Dashboard/util.js +2 -2
  179. package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
  180. package/dist/esm/components/QuillMultiSelect.js +19 -14
  181. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  182. package/dist/esm/components/QuillMultiSelectWithCombo.js +68 -46
  183. package/dist/esm/components/QuillSelect.d.ts +1 -1
  184. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  185. package/dist/esm/components/QuillSelect.js +30 -8
  186. package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
  187. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  188. package/dist/esm/components/QuillSelectWithCombo.js +48 -27
  189. package/dist/esm/components/QuillTable.d.ts +3 -2
  190. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  191. package/dist/esm/components/QuillTable.js +32 -19
  192. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
  193. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  194. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
  195. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +2 -1
  196. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  197. package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -2
  198. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +2 -1
  199. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  200. package/dist/esm/components/ReportBuilder/FilterModal.js +17 -4
  201. package/dist/esm/components/ReportBuilder/ui.d.ts +13 -8
  202. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  203. package/dist/esm/components/ReportBuilder/ui.js +14 -19
  204. package/dist/esm/components/UiComponents.d.ts +17 -9
  205. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  206. package/dist/esm/components/UiComponents.js +30 -24
  207. package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -2
  208. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  209. package/dist/esm/hooks/useDashboard.d.ts +13 -5
  210. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  211. package/dist/esm/hooks/useDashboard.js +158 -73
  212. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  213. package/dist/esm/hooks/useExport.js +10 -4
  214. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  215. package/dist/esm/hooks/useQuill.js +17 -17
  216. package/dist/esm/hooks/useVirtualTables.d.ts +12 -3
  217. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  218. package/dist/esm/hooks/useVirtualTables.js +106 -2
  219. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +3 -1
  220. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  221. package/dist/esm/internals/ReportBuilder/PivotForm.js +9 -9
  222. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  223. package/dist/esm/internals/ReportBuilder/PivotList.js +21 -15
  224. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +3 -2
  225. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  226. package/dist/esm/internals/ReportBuilder/PivotModal.js +9 -9
  227. package/dist/esm/models/Client.d.ts +16 -2
  228. package/dist/esm/models/Client.d.ts.map +1 -1
  229. package/dist/esm/models/Dashboard.d.ts +1 -1
  230. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  231. package/dist/esm/models/Filter.d.ts +4 -3
  232. package/dist/esm/models/Filter.d.ts.map +1 -1
  233. package/dist/esm/models/Filter.js +36 -0
  234. package/dist/esm/utils/astProcessing.d.ts +3 -3
  235. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  236. package/dist/esm/utils/client.d.ts.map +1 -1
  237. package/dist/esm/utils/client.js +2 -7
  238. package/dist/esm/utils/dashboard.d.ts +5 -5
  239. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  240. package/dist/esm/utils/dashboard.js +90 -9
  241. package/dist/esm/utils/dataFetcher.d.ts +4 -4
  242. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  243. package/dist/esm/utils/dataFetcher.js +1 -1
  244. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  245. package/dist/esm/utils/filterProcessing.js +2 -8
  246. package/dist/esm/utils/paginationProcessing.js +1 -1
  247. package/dist/esm/utils/pivotConstructor.d.ts +2 -2
  248. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  249. package/dist/esm/utils/pivotConstructor.js +1 -1
  250. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  251. package/dist/esm/utils/pivotProcessing.js +6 -2
  252. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  253. package/dist/esm/utils/queryConstructor.js +12 -9
  254. package/dist/esm/utils/report.d.ts +6 -5
  255. package/dist/esm/utils/report.d.ts.map +1 -1
  256. package/dist/esm/utils/report.js +70 -25
  257. package/dist/esm/utils/schema.d.ts +3 -3
  258. package/dist/esm/utils/schema.d.ts.map +1 -1
  259. package/dist/esm/utils/schema.js +39 -35
  260. package/dist/esm/utils/tableProcessing.d.ts +18 -11
  261. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  262. package/dist/esm/utils/tableProcessing.js +41 -20
  263. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { QuillReport } from '../../models/Report';
3
3
  import { QuillTheme } from '../../QuillProvider';
4
+ import { AdditionalProcessing } from '../../utils/tableProcessing';
4
5
  export type DataLoaderChildProps = {
5
6
  isLoading: boolean;
6
7
  error?: string;
@@ -10,10 +11,13 @@ export type DataLoaderChildProps = {
10
11
  direction: string;
11
12
  }) => void;
12
13
  data: QuillReport;
14
+ rowCount?: number;
15
+ rowCountIsLoading?: boolean;
13
16
  };
14
- export default function DataLoader({ item, children, filters, }: {
15
- item: any;
17
+ export default function DataLoader({ item, children, filters, additionalProcessing: defaultAdditionalProcessing, }: {
18
+ item: QuillReport;
16
19
  filters: any[] | null;
20
+ additionalProcessing: AdditionalProcessing;
17
21
  children: ({ isLoading, error, onPageChange, onSortChange, data, }: DataLoaderChildProps) => JSX.Element;
18
22
  }): JSX.Element;
19
23
  type ColorMapType = {
@@ -31,14 +35,16 @@ export type ChartDataLoaderChildProps = {
31
35
  error?: string;
32
36
  data: QuillReport;
33
37
  dateBucket?: string;
38
+ rowCount?: number;
39
+ rowCountIsLoading?: boolean;
34
40
  };
35
41
  export declare const ChartDataLoader: ({ item, children, dateBucket, additionalProcessing, filters, }: {
36
- item: any;
42
+ item: QuillReport;
37
43
  dateBucket?: string | undefined;
38
44
  mapColorsToFields?: ((_report: QuillReport, _theme: QuillTheme) => ColorMapType) | undefined;
39
- additionalProcessing?: any;
45
+ additionalProcessing: AdditionalProcessing;
40
46
  filters: any[] | null;
41
- children: ({ isLoading, error, data, dateBucket, }: ChartDataLoaderChildProps) => JSX.Element;
47
+ children: ({ isLoading, error, data, dateBucket, rowCount, rowCountIsLoading, }: ChartDataLoaderChildProps) => JSX.Element;
42
48
  }) => JSX.Element;
43
49
  export {};
44
50
  //# sourceMappingURL=DataLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAmCjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,GACR,EAAE;IACD,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CAiJd;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,eAAe;UAOpB,GAAG;;mCAGE,WAAW,UACZ,UAAU,KACf,YAAY;2BACM,GAAG;aACjB,GAAG,EAAE,GAAG,IAAI;wDAMlB,yBAAyB,KAAK,WAAW;MAC1C,WA4EH,CAAC"}
1
+ {"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AAuBrC,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAkCF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,oBAAoB,EAAE,2BAA2B,GAClD,EAAE;IACD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CAyLd;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,eAAe;UAOpB,WAAW;;mCAGN,WAAW,UACZ,UAAU,KACf,YAAY;0BACK,oBAAoB;aACjC,GAAG,EAAE,GAAG,IAAI;qFAQlB,yBAAyB,KAAK,WAAW;MAC1C,WAmFH,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
- import { useContext, useEffect, useState } from 'react';
2
+ import { useContext, useEffect, useRef, useState } from 'react';
3
3
  import { didFiltersChange } from '../../Chart';
4
4
  import { ClientContext, DashboardContext, SchemaDataContext, } from '../../Context';
5
- import { convertInternalReportToReport, EMPTY_INTERNAL_REPORT, fetchReport, } from '../../utils/report';
5
+ import { convertInternalReportToReport, EMPTY_INTERNAL_REPORT, fetchReport, fetchReportRowCount, } from '../../utils/report';
6
6
  import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from '../../utils/paginationProcessing';
7
- import { fetchTableByReport } from '../../utils/tableProcessing';
7
+ import { fetchResultsByReport, } from '../../utils/tableProcessing';
8
8
  const constructReportFromItem = (item) => {
9
9
  return {
10
10
  ...EMPTY_INTERNAL_REPORT,
@@ -25,21 +25,67 @@ const constructReportFromItem = (item) => {
25
25
  filtersApplied: item.filtersApplied,
26
26
  };
27
27
  };
28
- export default function DataLoader({ item, children, filters, }) {
28
+ function filterValuesEquivalent(filters1, filters2) {
29
+ if (filters1.length !== filters2.length) {
30
+ return false;
31
+ }
32
+ // The two filters arrays aren't necessarily in the same order
33
+ // we can build two dictionaries of [label, filter] and compare them
34
+ const mappedFilters1 = filters1.reduce((acc, filter) => {
35
+ acc[filter.label] = filter;
36
+ return acc;
37
+ }, {});
38
+ const mappedFilters2 = filters2.reduce((acc, filter) => {
39
+ acc[filter.label] = filter;
40
+ return acc;
41
+ }, {});
42
+ for (const key in mappedFilters1) {
43
+ if (mappedFilters1[key].selectedValue !==
44
+ mappedFilters2[key]?.selectedValue ||
45
+ mappedFilters1[key].values !== mappedFilters2[key]?.values ||
46
+ mappedFilters1[key].field !== mappedFilters2[key]?.field ||
47
+ mappedFilters1[key].label !== mappedFilters2[key]?.label ||
48
+ mappedFilters1[key].table !== mappedFilters2[key]?.table ||
49
+ mappedFilters1[key].filterType !== mappedFilters2[key]?.filterType ||
50
+ mappedFilters1[key].startDate !== mappedFilters2[key]?.startDate ||
51
+ mappedFilters1[key].endDate !== mappedFilters2[key]?.endDate) {
52
+ return false;
53
+ }
54
+ }
55
+ return true;
56
+ }
57
+ export default function DataLoader({ item, children, filters, additionalProcessing: defaultAdditionalProcessing, }) {
29
58
  const [client] = useContext(ClientContext);
30
59
  const [dashboard, dispatch] = useContext(DashboardContext);
31
60
  const [schemaData] = useContext(SchemaDataContext);
32
61
  const [loading, setLoading] = useState(false);
33
62
  const [error, setError] = useState(undefined);
34
63
  const [previousPage, setPreviousPage] = useState(0);
35
- const [report, setReport] = useState(dashboard[item._id] ?? constructReportFromItem(item));
36
- const [additionalProcessing, setAdditionProcessing] = useState({
37
- page: DEFAULT_PAGINATION,
38
- });
64
+ const [report, setReport] = useState(dashboard[item.id] ?? constructReportFromItem(item));
65
+ const [additionalProcessing, setAdditionProcessing] = useState(defaultAdditionalProcessing);
66
+ const previousFilters = useRef(null);
67
+ const [rowCount, setRowCount] = useState(dashboard[item.id]?.rowCount ?? 0);
68
+ const [rowCountIsLoading, setRowCountIsLoading] = useState(false);
69
+ const fetchRowCount = async (processing) => {
70
+ if (!client || !filters) {
71
+ return;
72
+ }
73
+ setRowCountIsLoading(true);
74
+ const rowCount = await fetchReportRowCount(item.id, client, true, filters, processing, schemaData.customFields);
75
+ if (rowCount) {
76
+ dispatch({
77
+ type: 'UPDATE_DASHBOARD_ITEM',
78
+ id: item.id,
79
+ data: { rowCount },
80
+ });
81
+ setRowCount(rowCount);
82
+ }
83
+ setRowCountIsLoading(false);
84
+ };
39
85
  const onPageChange = (page) => {
40
86
  if (additionalProcessing &&
41
87
  additionalProcessing.page &&
42
- shouldFetchMore(DEFAULT_PAGINATION, page, previousPage)) {
88
+ shouldFetchMore(additionalProcessing.page, page, previousPage)) {
43
89
  const newPagination = { ...additionalProcessing.page, page };
44
90
  const updatedProcessing = {
45
91
  ...additionalProcessing,
@@ -69,7 +115,7 @@ export default function DataLoader({ item, children, filters, }) {
69
115
  setLoading(true);
70
116
  try {
71
117
  const updatedProcessing = { ...additionalProcessing, ...processing };
72
- const paginatedRows = await fetchTableByReport(report.id, client, updatedProcessing, filters, schemaData.customFields);
118
+ const paginatedRows = await fetchResultsByReport(report.id, client, updatedProcessing, filters, schemaData.customFields, true);
73
119
  if (paginatedRows.error) {
74
120
  throw new Error('Error fetching chart');
75
121
  }
@@ -79,9 +125,7 @@ export default function DataLoader({ item, children, filters, }) {
79
125
  }
80
126
  setReport({ ...report, rows: tempRows });
81
127
  setAdditionProcessing(updatedProcessing);
82
- setTimeout(() => {
83
- setLoading(false);
84
- }, 200);
128
+ setLoading(false);
85
129
  }
86
130
  catch (e) {
87
131
  console.log(e);
@@ -93,26 +137,27 @@ export default function DataLoader({ item, children, filters, }) {
93
137
  if (!client || !filters) {
94
138
  return;
95
139
  }
96
- if (dashboard[item._id] &&
97
- !didFiltersChange(dashboard[item._id], filters) &&
140
+ if (dashboard[item.id] &&
141
+ !didFiltersChange(dashboard[item.id], filters) &&
98
142
  !loading &&
99
143
  // @ts-ignore
100
- !dashboard[item._id].triggerReload) {
144
+ !dashboard[item.id].triggerReload) {
101
145
  setLoading(false);
102
146
  const convertedReport = convertInternalReportToReport(
103
147
  // @ts-ignore
104
- dashboard[item._id]);
148
+ dashboard[item.id]);
105
149
  setReport(convertedReport);
106
150
  return;
107
151
  }
108
152
  setLoading(true);
109
- const { report, error } = await fetchReport(item._id, client, true, filters, processing, undefined, schemaData.customFields);
153
+ const { report: fetchedReport, error } = await fetchReport(item.id, client, true, filters, processing, undefined, schemaData.customFields, true);
110
154
  dispatch({
111
155
  type: 'ADD_DASHBOARD_ITEM',
112
- id: item._id,
113
- data: { ...report, triggerReload: false },
156
+ id: item.id,
157
+ data: { ...fetchedReport, triggerReload: false, rowCount: 0 }, // rowCount 0 indicates it's still loading if row length is nonzero
114
158
  });
115
- const convertedReport = convertInternalReportToReport(report);
159
+ fetchRowCount(processing);
160
+ const convertedReport = convertInternalReportToReport(fetchedReport);
116
161
  setReport(convertedReport);
117
162
  setAdditionProcessing(processing);
118
163
  setError(error);
@@ -122,20 +167,28 @@ export default function DataLoader({ item, children, filters, }) {
122
167
  if (!filters) {
123
168
  return;
124
169
  }
170
+ if (previousFilters.current &&
171
+ filterValuesEquivalent(previousFilters.current, filters)) {
172
+ return;
173
+ }
174
+ previousFilters.current = filters;
175
+ setPreviousPage(0);
125
176
  fetchReportHelper(additionalProcessing);
126
- }, [filters, item._id]);
177
+ }, [filters, item.id]);
127
178
  useEffect(() => {
128
179
  // @ts-ignore
129
- if (dashboard[item._id] && dashboard[item._id].triggerReload) {
180
+ if (dashboard[item.id] && dashboard[item.id].triggerReload) {
130
181
  fetchReportHelper(additionalProcessing);
131
182
  }
132
- }, [dashboard[item._id]]);
183
+ }, [dashboard[item.id]]);
133
184
  return (_jsx(_Fragment, { children: children({
134
185
  isLoading: loading,
135
186
  error,
136
187
  onPageChange,
137
188
  onSortChange,
138
189
  data: report,
190
+ rowCount: report.pivot ? report.rowCount : rowCount,
191
+ rowCountIsLoading,
139
192
  }) }));
140
193
  }
141
194
  // The same data-loader pattern as above, but with special logic for charts
@@ -146,36 +199,37 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
146
199
  const [loading, setLoading] = useState(false);
147
200
  const [error, setError] = useState(undefined);
148
201
  const [localDateBucket, setLocalDateBucket] = useState(undefined);
149
- const [localAdditionalProcessing, setLocalAdditionalProcessing] = useState();
150
- const [report, setReport] = useState(dashboard[item._id] ?? constructReportFromItem(item));
202
+ const [report, setReport] = useState(dashboard[item.id] ?? constructReportFromItem(item));
151
203
  const [client] = useContext(ClientContext);
152
204
  const [schemaData] = useContext(SchemaDataContext);
205
+ const previousFilters = useRef(null);
153
206
  const fetchReportHelper = async (useReportTask = true) => {
154
207
  if (!client || !filters) {
155
208
  return;
156
209
  }
157
- const tempReport = dashboard[item._id];
210
+ const tempReport = dashboard[item.id];
158
211
  if (tempReport &&
159
212
  !didFiltersChange(tempReport, filters) &&
160
213
  !tempReport.triggerReload &&
161
- dateBucket === localDateBucket &&
162
- additionalProcessing?.last === localAdditionalProcessing?.last) {
214
+ dateBucket === localDateBucket) {
163
215
  setLoading(false);
164
216
  const convertedReport = convertInternalReportToReport(tempReport);
165
217
  setReport(convertedReport);
166
218
  return;
167
219
  }
168
220
  setLoading(true);
169
- const { report, error } = await fetchReport(item._id, client, useReportTask, filters, additionalProcessing, dateBucket, schemaData.customFields);
221
+ const { report, error } = await fetchReport(item.id, client, useReportTask, filters, {
222
+ ...additionalProcessing,
223
+ ...(item.pivot ? {} : { page: DEFAULT_PAGINATION }),
224
+ }, dateBucket, schemaData.customFields);
170
225
  dispatch({
171
226
  type: 'ADD_DASHBOARD_ITEM',
172
- id: item._id,
227
+ id: item.id,
173
228
  data: { ...report, triggerReload: false },
174
229
  });
175
230
  const convertedReport = convertInternalReportToReport(report);
176
231
  setReport(convertedReport);
177
232
  setLocalDateBucket(dateBucket);
178
- setLocalAdditionalProcessing(additionalProcessing);
179
233
  setError(error);
180
234
  setLoading(false);
181
235
  };
@@ -183,15 +237,20 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
183
237
  if (!filters) {
184
238
  return;
185
239
  }
240
+ if (previousFilters.current &&
241
+ filterValuesEquivalent(previousFilters.current, filters)) {
242
+ return;
243
+ }
244
+ previousFilters.current = filters;
186
245
  setInitialLoad(false);
187
246
  fetchReportHelper();
188
- }, [filters, item._id, dateBucket, additionalProcessing]);
247
+ }, [filters, item.id, dateBucket]);
189
248
  useEffect(() => {
190
- const tempReport = dashboard[item._id];
249
+ const tempReport = dashboard[item.id];
191
250
  if (tempReport && tempReport.triggerReload) {
192
251
  fetchReportHelper();
193
252
  }
194
- }, [dashboard[item._id]]);
253
+ }, [dashboard[item.id]]);
195
254
  return children({
196
255
  isLoading: loading || initialLoad,
197
256
  data: report,
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import { QuillReport } from '../../models/Report';
3
- export default function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }: {
3
+ export default function QuillTableComponent({ report, onClick, isLoading, error, rowCount, rowCountIsLoading, onPageChange, onSortChange, }: {
4
4
  report: QuillReport;
5
5
  onClick?: (report: QuillReport) => void;
6
6
  isLoading?: boolean;
7
7
  error?: string;
8
8
  rowCount?: number;
9
+ rowCountIsLoading?: boolean;
9
10
  onPageChange?: (page: number) => void;
10
11
  onSortChange?: (sort: {
11
12
  field: string;
@@ -1 +1 @@
1
- {"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE,GAAG,GAAG,CAAC,OAAO,CAyFd"}
1
+ {"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE,GAAG,GAAG,CAAC,OAAO,CAkGd"}
@@ -6,15 +6,21 @@ import ChartError from '../Chart/ChartError';
6
6
  import { useExport } from '../../hooks/useExport';
7
7
  import { DEFAULT_PAGINATION } from '../../utils/paginationProcessing';
8
8
  import { ThemeContext } from '../../Context';
9
- export default function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }) {
9
+ export default function QuillTableComponent({ report, onClick, isLoading, error, rowCount, rowCountIsLoading, onPageChange, onSortChange, }) {
10
10
  const [theme] = useContext(ThemeContext);
11
11
  const [initialLoad, setInitialLoad] = useState(true);
12
12
  const { downloadCSV } = useExport(report?.id);
13
+ const [page, setPage] = useState(0);
13
14
  useEffect(() => {
14
15
  if (!isLoading) {
15
16
  setInitialLoad(false);
16
17
  }
17
18
  }, [isLoading]);
19
+ useEffect(() => {
20
+ if (rowCountIsLoading) {
21
+ setPage(0);
22
+ }
23
+ }, [rowCountIsLoading]);
18
24
  return (_jsxs("div", { style: { cursor: error || !onClick ? 'default' : 'pointer' }, onClick: () => onClick && onClick(report), children: [_jsx("div", { style: {
19
25
  display: 'flex',
20
26
  flexDirection: 'row',
@@ -40,14 +46,15 @@ export default function QuillTableComponent({ report, onClick, isLoading, error,
40
46
  } })) : error ? (_jsx("div", { style: {
41
47
  width: '100%',
42
48
  height: '400px',
43
- }, children: _jsx(ChartError, { errorMessage: error }) })) : (_jsx(QuillTable, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, columns: report.columns, rowsPerPage: report.pagination?.rowsPerPage ?? DEFAULT_PAGINATION.rowsPerPage, containerStyle: {
49
+ }, children: _jsx(ChartError, { errorMessage: error }) })) : (_jsx(QuillTable, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, columns: report.columns, rowsPerPage: report.pagination?.rowsPerPage ?? DEFAULT_PAGINATION.rowsPerPage, containerStyle: {
44
50
  width: '100%',
45
51
  height: '400px',
46
52
  }, downloadCSV: () => {
47
53
  downloadCSV();
48
54
  }, onPageChange: (page) => {
49
55
  onPageChange && onPageChange(page);
56
+ setPage(page);
50
57
  }, onSortChange: (sort) => {
51
58
  onSortChange && onSortChange(sort);
52
- }, currentPage: report?.pagination?.page, sort: report?.sort }))] }, report?.name));
59
+ }, currentPage: report?.pagination?.page ?? page, sort: report?.sort }))] }, report?.name));
53
60
  }
@@ -1,7 +1,7 @@
1
- import { Client } from '../../models/Client';
1
+ import { QuillProviderClient } from '../../models/Client';
2
2
  export declare function validateTemplatesAgainstFilters(filters: any[], templates: any[]): {
3
3
  valid: boolean;
4
4
  error: string;
5
5
  };
6
- export declare function addTemplatesToDashboard(name: any, newTemplates: any[], client: Client, dashboardData: any): Promise<any>;
6
+ export declare function addTemplatesToDashboard(name: any, newTemplates: any[], client: QuillProviderClient, dashboardData: any): Promise<any>;
7
7
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,GAAG,EAAE,EACd,SAAS,EAAE,GAAG,EAAE,GACf;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiCnC;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,GAAG,CAAC,CAiDd"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,GAAG,EAAE,EACd,SAAS,EAAE,GAAG,EAAE,GACf;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiCnC;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EAAE,EACnB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,GAAG,CAAC,CAiDd"}
@@ -36,13 +36,13 @@ export function validateTemplatesAgainstFilters(filters, templates) {
36
36
  }
37
37
  export async function addTemplatesToDashboard(name, newTemplates, client, dashboardData) {
38
38
  try {
39
- const { publicKey, customerId } = client;
39
+ const { publicKey, organizationId } = client;
40
40
  const hostedBody = {
41
41
  metadata: {
42
42
  dashboardName: name,
43
43
  task: 'add-from-template',
44
44
  clientId: publicKey,
45
- orgId: customerId || '*',
45
+ orgId: organizationId || '*',
46
46
  templateReportIds: newTemplates.map((template) => template._id),
47
47
  },
48
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"QuillMultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAgC3E;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,yBAAyB,2CA4Q3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAyDpB,CAAC"}
1
+ {"version":3,"file":"QuillMultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAiC3E;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,yBAAyB,2CAsO3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAyDpB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useOnClickOutside } from '../hooks';
3
3
  import { LoadingSpinner } from './UiComponents';
4
- import { useContext, useEffect, useRef, useState, } from 'react';
4
+ import { useContext, useEffect, useMemo, useRef, useState, } from 'react';
5
5
  import { ThemeContext } from '../Context';
6
6
  /**
7
7
  * Helper function for displaying option labels
@@ -15,7 +15,7 @@ function displaySelectedOptionLabels({ options, value, }) {
15
15
  return 'Select';
16
16
  }
17
17
  return matchingOptions
18
- .map((elem) => elem.label)
18
+ .map((elem) => elem.label ?? '-')
19
19
  .join(', ');
20
20
  }
21
21
  /**
@@ -27,8 +27,6 @@ export function QuillMultiSelectComponent({ options, width, onChange, label, val
27
27
  const [showModal, setShowModal] = useState(false);
28
28
  const modalRef = useRef(null);
29
29
  const debounceTimeoutId = useRef(null);
30
- // const [searchQuery, setSearchQuery] = useState('');
31
- // const [filteredOptions, setFilteredOptions] = useState(options);
32
30
  useOnClickOutside(modalRef, () => setShowModal(false));
33
31
  useEffect(() => {
34
32
  if (!value) {
@@ -38,6 +36,21 @@ export function QuillMultiSelectComponent({ options, width, onChange, label, val
38
36
  setSelectedOptions(value);
39
37
  }
40
38
  }, [value]);
39
+ const sortedItems = useMemo(() => {
40
+ // Sort null to top
41
+ return options.sort((a, b) => {
42
+ if (a.value === null) {
43
+ return -1;
44
+ }
45
+ if (b.value === null) {
46
+ return 1;
47
+ }
48
+ return 0;
49
+ });
50
+ }, [options]);
51
+ const nullLabel = useMemo(() => {
52
+ return sortedItems.some((item) => item.value === '-') ? 'None' : '-';
53
+ }, [sortedItems]);
41
54
  const debounce = (updatedChangeEvent) => {
42
55
  if (debounceTimeoutId.current) {
43
56
  clearTimeout(debounceTimeoutId.current);
@@ -46,14 +59,6 @@ export function QuillMultiSelectComponent({ options, width, onChange, label, val
46
59
  onChange(updatedChangeEvent);
47
60
  }, 500);
48
61
  };
49
- // const filterOptions = (query: string) => {
50
- // setSearchQuery(query);
51
- // setFilteredOptions(
52
- // options.filter((option) =>
53
- // option.label.toLowerCase().includes(query.toLowerCase()),
54
- // ),
55
- // );
56
- // };
57
62
  return (_jsxs("div", { style: {
58
63
  position: 'relative',
59
64
  borderRadius: '6px',
@@ -113,7 +118,7 @@ export function QuillMultiSelectComponent({ options, width, onChange, label, val
113
118
  fontFamily: theme?.fontFamily,
114
119
  maxHeight: '50vh',
115
120
  overflow: 'scroll',
116
- }, children: !isLoading ? (options.map((option) => (_jsxs("button", { style: {
121
+ }, children: !isLoading ? (sortedItems.map((option) => (_jsxs("button", { style: {
117
122
  display: 'flex',
118
123
  alignItems: 'center',
119
124
  padding: 8,
@@ -164,7 +169,7 @@ export function QuillMultiSelectComponent({ options, width, onChange, label, val
164
169
  textOverflow: 'ellipsis',
165
170
  whiteSpace: 'nowrap',
166
171
  overflow: 'hidden',
167
- }, children: option.label })] }, option.value)))) : (_jsx(LoadingSpinner, {})) }))] }));
172
+ }, children: option.label ?? nullLabel })] }, option.value)))) : (_jsx(LoadingSpinner, {})) }))] }));
168
173
  }
169
174
  export const ListboxTextInput = ({ value, onChange, placeholder, }) => {
170
175
  return (_jsxs("div", { style: {
@@ -1 +1 @@
1
- {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAgC3E;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,yBAAyB,2CAuV3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAwDpB,CAAC"}
1
+ {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAiC3E;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,yBAAyB,2CA4U3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAwDpB,CAAC"}