@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 +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"}
@@ -28,21 +28,67 @@ const constructReportFromItem = (item) => {
28
28
  filtersApplied: item.filtersApplied,
29
29
  };
30
30
  };
31
- function DataLoader({ item, children, filters, }) {
31
+ function filterValuesEquivalent(filters1, filters2) {
32
+ if (filters1.length !== filters2.length) {
33
+ return false;
34
+ }
35
+ // The two filters arrays aren't necessarily in the same order
36
+ // we can build two dictionaries of [label, filter] and compare them
37
+ const mappedFilters1 = filters1.reduce((acc, filter) => {
38
+ acc[filter.label] = filter;
39
+ return acc;
40
+ }, {});
41
+ const mappedFilters2 = filters2.reduce((acc, filter) => {
42
+ acc[filter.label] = filter;
43
+ return acc;
44
+ }, {});
45
+ for (const key in mappedFilters1) {
46
+ if (mappedFilters1[key].selectedValue !==
47
+ mappedFilters2[key]?.selectedValue ||
48
+ mappedFilters1[key].values !== mappedFilters2[key]?.values ||
49
+ mappedFilters1[key].field !== mappedFilters2[key]?.field ||
50
+ mappedFilters1[key].label !== mappedFilters2[key]?.label ||
51
+ mappedFilters1[key].table !== mappedFilters2[key]?.table ||
52
+ mappedFilters1[key].filterType !== mappedFilters2[key]?.filterType ||
53
+ mappedFilters1[key].startDate !== mappedFilters2[key]?.startDate ||
54
+ mappedFilters1[key].endDate !== mappedFilters2[key]?.endDate) {
55
+ return false;
56
+ }
57
+ }
58
+ return true;
59
+ }
60
+ function DataLoader({ item, children, filters, additionalProcessing: defaultAdditionalProcessing, }) {
32
61
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
33
62
  const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
34
63
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
35
64
  const [loading, setLoading] = (0, react_1.useState)(false);
36
65
  const [error, setError] = (0, react_1.useState)(undefined);
37
66
  const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
38
- const [report, setReport] = (0, react_1.useState)(dashboard[item._id] ?? constructReportFromItem(item));
39
- const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)({
40
- page: paginationProcessing_1.DEFAULT_PAGINATION,
41
- });
67
+ const [report, setReport] = (0, react_1.useState)(dashboard[item.id] ?? constructReportFromItem(item));
68
+ const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)(defaultAdditionalProcessing);
69
+ const previousFilters = (0, react_1.useRef)(null);
70
+ const [rowCount, setRowCount] = (0, react_1.useState)(dashboard[item.id]?.rowCount ?? 0);
71
+ const [rowCountIsLoading, setRowCountIsLoading] = (0, react_1.useState)(false);
72
+ const fetchRowCount = async (processing) => {
73
+ if (!client || !filters) {
74
+ return;
75
+ }
76
+ setRowCountIsLoading(true);
77
+ const rowCount = await (0, report_1.fetchReportRowCount)(item.id, client, true, filters, processing, schemaData.customFields);
78
+ if (rowCount) {
79
+ dispatch({
80
+ type: 'UPDATE_DASHBOARD_ITEM',
81
+ id: item.id,
82
+ data: { rowCount },
83
+ });
84
+ setRowCount(rowCount);
85
+ }
86
+ setRowCountIsLoading(false);
87
+ };
42
88
  const onPageChange = (page) => {
43
89
  if (additionalProcessing &&
44
90
  additionalProcessing.page &&
45
- (0, paginationProcessing_1.shouldFetchMore)(paginationProcessing_1.DEFAULT_PAGINATION, page, previousPage)) {
91
+ (0, paginationProcessing_1.shouldFetchMore)(additionalProcessing.page, page, previousPage)) {
46
92
  const newPagination = { ...additionalProcessing.page, page };
47
93
  const updatedProcessing = {
48
94
  ...additionalProcessing,
@@ -72,7 +118,7 @@ function DataLoader({ item, children, filters, }) {
72
118
  setLoading(true);
73
119
  try {
74
120
  const updatedProcessing = { ...additionalProcessing, ...processing };
75
- const paginatedRows = await (0, tableProcessing_1.fetchTableByReport)(report.id, client, updatedProcessing, filters, schemaData.customFields);
121
+ const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(report.id, client, updatedProcessing, filters, schemaData.customFields, true);
76
122
  if (paginatedRows.error) {
77
123
  throw new Error('Error fetching chart');
78
124
  }
@@ -82,9 +128,7 @@ function DataLoader({ item, children, filters, }) {
82
128
  }
83
129
  setReport({ ...report, rows: tempRows });
84
130
  setAdditionProcessing(updatedProcessing);
85
- setTimeout(() => {
86
- setLoading(false);
87
- }, 200);
131
+ setLoading(false);
88
132
  }
89
133
  catch (e) {
90
134
  console.log(e);
@@ -96,26 +140,27 @@ function DataLoader({ item, children, filters, }) {
96
140
  if (!client || !filters) {
97
141
  return;
98
142
  }
99
- if (dashboard[item._id] &&
100
- !(0, Chart_1.didFiltersChange)(dashboard[item._id], filters) &&
143
+ if (dashboard[item.id] &&
144
+ !(0, Chart_1.didFiltersChange)(dashboard[item.id], filters) &&
101
145
  !loading &&
102
146
  // @ts-ignore
103
- !dashboard[item._id].triggerReload) {
147
+ !dashboard[item.id].triggerReload) {
104
148
  setLoading(false);
105
149
  const convertedReport = (0, report_1.convertInternalReportToReport)(
106
150
  // @ts-ignore
107
- dashboard[item._id]);
151
+ dashboard[item.id]);
108
152
  setReport(convertedReport);
109
153
  return;
110
154
  }
111
155
  setLoading(true);
112
- const { report, error } = await (0, report_1.fetchReport)(item._id, client, true, filters, processing, undefined, schemaData.customFields);
156
+ const { report: fetchedReport, error } = await (0, report_1.fetchReport)(item.id, client, true, filters, processing, undefined, schemaData.customFields, true);
113
157
  dispatch({
114
158
  type: 'ADD_DASHBOARD_ITEM',
115
- id: item._id,
116
- data: { ...report, triggerReload: false },
159
+ id: item.id,
160
+ data: { ...fetchedReport, triggerReload: false, rowCount: 0 }, // rowCount 0 indicates it's still loading if row length is nonzero
117
161
  });
118
- const convertedReport = (0, report_1.convertInternalReportToReport)(report);
162
+ fetchRowCount(processing);
163
+ const convertedReport = (0, report_1.convertInternalReportToReport)(fetchedReport);
119
164
  setReport(convertedReport);
120
165
  setAdditionProcessing(processing);
121
166
  setError(error);
@@ -125,20 +170,28 @@ function DataLoader({ item, children, filters, }) {
125
170
  if (!filters) {
126
171
  return;
127
172
  }
173
+ if (previousFilters.current &&
174
+ filterValuesEquivalent(previousFilters.current, filters)) {
175
+ return;
176
+ }
177
+ previousFilters.current = filters;
178
+ setPreviousPage(0);
128
179
  fetchReportHelper(additionalProcessing);
129
- }, [filters, item._id]);
180
+ }, [filters, item.id]);
130
181
  (0, react_1.useEffect)(() => {
131
182
  // @ts-ignore
132
- if (dashboard[item._id] && dashboard[item._id].triggerReload) {
183
+ if (dashboard[item.id] && dashboard[item.id].triggerReload) {
133
184
  fetchReportHelper(additionalProcessing);
134
185
  }
135
- }, [dashboard[item._id]]);
186
+ }, [dashboard[item.id]]);
136
187
  return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
137
188
  isLoading: loading,
138
189
  error,
139
190
  onPageChange,
140
191
  onSortChange,
141
192
  data: report,
193
+ rowCount: report.pivot ? report.rowCount : rowCount,
194
+ rowCountIsLoading,
142
195
  }) }));
143
196
  }
144
197
  exports.default = DataLoader;
@@ -150,36 +203,37 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
150
203
  const [loading, setLoading] = (0, react_1.useState)(false);
151
204
  const [error, setError] = (0, react_1.useState)(undefined);
152
205
  const [localDateBucket, setLocalDateBucket] = (0, react_1.useState)(undefined);
153
- const [localAdditionalProcessing, setLocalAdditionalProcessing] = (0, react_1.useState)();
154
- const [report, setReport] = (0, react_1.useState)(dashboard[item._id] ?? constructReportFromItem(item));
206
+ const [report, setReport] = (0, react_1.useState)(dashboard[item.id] ?? constructReportFromItem(item));
155
207
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
156
208
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
209
+ const previousFilters = (0, react_1.useRef)(null);
157
210
  const fetchReportHelper = async (useReportTask = true) => {
158
211
  if (!client || !filters) {
159
212
  return;
160
213
  }
161
- const tempReport = dashboard[item._id];
214
+ const tempReport = dashboard[item.id];
162
215
  if (tempReport &&
163
216
  !(0, Chart_1.didFiltersChange)(tempReport, filters) &&
164
217
  !tempReport.triggerReload &&
165
- dateBucket === localDateBucket &&
166
- additionalProcessing?.last === localAdditionalProcessing?.last) {
218
+ dateBucket === localDateBucket) {
167
219
  setLoading(false);
168
220
  const convertedReport = (0, report_1.convertInternalReportToReport)(tempReport);
169
221
  setReport(convertedReport);
170
222
  return;
171
223
  }
172
224
  setLoading(true);
173
- const { report, error } = await (0, report_1.fetchReport)(item._id, client, useReportTask, filters, additionalProcessing, dateBucket, schemaData.customFields);
225
+ const { report, error } = await (0, report_1.fetchReport)(item.id, client, useReportTask, filters, {
226
+ ...additionalProcessing,
227
+ ...(item.pivot ? {} : { page: paginationProcessing_1.DEFAULT_PAGINATION }),
228
+ }, dateBucket, schemaData.customFields);
174
229
  dispatch({
175
230
  type: 'ADD_DASHBOARD_ITEM',
176
- id: item._id,
231
+ id: item.id,
177
232
  data: { ...report, triggerReload: false },
178
233
  });
179
234
  const convertedReport = (0, report_1.convertInternalReportToReport)(report);
180
235
  setReport(convertedReport);
181
236
  setLocalDateBucket(dateBucket);
182
- setLocalAdditionalProcessing(additionalProcessing);
183
237
  setError(error);
184
238
  setLoading(false);
185
239
  };
@@ -187,15 +241,20 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
187
241
  if (!filters) {
188
242
  return;
189
243
  }
244
+ if (previousFilters.current &&
245
+ filterValuesEquivalent(previousFilters.current, filters)) {
246
+ return;
247
+ }
248
+ previousFilters.current = filters;
190
249
  setInitialLoad(false);
191
250
  fetchReportHelper();
192
- }, [filters, item._id, dateBucket, additionalProcessing]);
251
+ }, [filters, item.id, dateBucket]);
193
252
  (0, react_1.useEffect)(() => {
194
- const tempReport = dashboard[item._id];
253
+ const tempReport = dashboard[item.id];
195
254
  if (tempReport && tempReport.triggerReload) {
196
255
  fetchReportHelper();
197
256
  }
198
- }, [dashboard[item._id]]);
257
+ }, [dashboard[item.id]]);
199
258
  return children({
200
259
  isLoading: loading || initialLoad,
201
260
  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"}
@@ -11,15 +11,21 @@ const ChartError_1 = __importDefault(require("../Chart/ChartError"));
11
11
  const useExport_1 = require("../../hooks/useExport");
12
12
  const paginationProcessing_1 = require("../../utils/paginationProcessing");
13
13
  const Context_1 = require("../../Context");
14
- function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }) {
14
+ function QuillTableComponent({ report, onClick, isLoading, error, rowCount, rowCountIsLoading, onPageChange, onSortChange, }) {
15
15
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
16
16
  const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
17
17
  const { downloadCSV } = (0, useExport_1.useExport)(report?.id);
18
+ const [page, setPage] = (0, react_1.useState)(0);
18
19
  (0, react_1.useEffect)(() => {
19
20
  if (!isLoading) {
20
21
  setInitialLoad(false);
21
22
  }
22
23
  }, [isLoading]);
24
+ (0, react_1.useEffect)(() => {
25
+ if (rowCountIsLoading) {
26
+ setPage(0);
27
+ }
28
+ }, [rowCountIsLoading]);
23
29
  return ((0, jsx_runtime_1.jsxs)("div", { style: { cursor: error || !onClick ? 'default' : 'pointer' }, onClick: () => onClick && onClick(report), children: [(0, jsx_runtime_1.jsx)("div", { style: {
24
30
  display: 'flex',
25
31
  flexDirection: 'row',
@@ -45,15 +51,16 @@ function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPa
45
51
  } })) : error ? ((0, jsx_runtime_1.jsx)("div", { style: {
46
52
  width: '100%',
47
53
  height: '400px',
48
- }, children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, columns: report.columns, rowsPerPage: report.pagination?.rowsPerPage ?? paginationProcessing_1.DEFAULT_PAGINATION.rowsPerPage, containerStyle: {
54
+ }, children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, columns: report.columns, rowsPerPage: report.pagination?.rowsPerPage ?? paginationProcessing_1.DEFAULT_PAGINATION.rowsPerPage, containerStyle: {
49
55
  width: '100%',
50
56
  height: '400px',
51
57
  }, downloadCSV: () => {
52
58
  downloadCSV();
53
59
  }, onPageChange: (page) => {
54
60
  onPageChange && onPageChange(page);
61
+ setPage(page);
55
62
  }, onSortChange: (sort) => {
56
63
  onSortChange && onSortChange(sort);
57
- }, currentPage: report?.pagination?.page, sort: report?.sort }))] }, report?.name));
64
+ }, currentPage: report?.pagination?.page ?? page, sort: report?.sort }))] }, report?.name));
58
65
  }
59
66
  exports.default = QuillTableComponent;
@@ -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"}
@@ -40,13 +40,13 @@ function validateTemplatesAgainstFilters(filters, templates) {
40
40
  exports.validateTemplatesAgainstFilters = validateTemplatesAgainstFilters;
41
41
  async function addTemplatesToDashboard(name, newTemplates, client, dashboardData) {
42
42
  try {
43
- const { publicKey, customerId } = client;
43
+ const { publicKey, organizationId } = client;
44
44
  const hostedBody = {
45
45
  metadata: {
46
46
  dashboardName: name,
47
47
  task: 'add-from-template',
48
48
  clientId: publicKey,
49
- orgId: customerId || '*',
49
+ orgId: organizationId || '*',
50
50
  templateReportIds: newTemplates.map((template) => template._id),
51
51
  },
52
52
  };
@@ -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"}
@@ -18,7 +18,7 @@ function displaySelectedOptionLabels({ options, value, }) {
18
18
  return 'Select';
19
19
  }
20
20
  return matchingOptions
21
- .map((elem) => elem.label)
21
+ .map((elem) => elem.label ?? '-')
22
22
  .join(', ');
23
23
  }
24
24
  /**
@@ -30,8 +30,6 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
30
30
  const [showModal, setShowModal] = (0, react_1.useState)(false);
31
31
  const modalRef = (0, react_1.useRef)(null);
32
32
  const debounceTimeoutId = (0, react_1.useRef)(null);
33
- // const [searchQuery, setSearchQuery] = useState('');
34
- // const [filteredOptions, setFilteredOptions] = useState(options);
35
33
  (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false));
36
34
  (0, react_1.useEffect)(() => {
37
35
  if (!value) {
@@ -41,6 +39,21 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
41
39
  setSelectedOptions(value);
42
40
  }
43
41
  }, [value]);
42
+ const sortedItems = (0, react_1.useMemo)(() => {
43
+ // Sort null to top
44
+ return options.sort((a, b) => {
45
+ if (a.value === null) {
46
+ return -1;
47
+ }
48
+ if (b.value === null) {
49
+ return 1;
50
+ }
51
+ return 0;
52
+ });
53
+ }, [options]);
54
+ const nullLabel = (0, react_1.useMemo)(() => {
55
+ return sortedItems.some((item) => item.value === '-') ? 'None' : '-';
56
+ }, [sortedItems]);
44
57
  const debounce = (updatedChangeEvent) => {
45
58
  if (debounceTimeoutId.current) {
46
59
  clearTimeout(debounceTimeoutId.current);
@@ -49,14 +62,6 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
49
62
  onChange(updatedChangeEvent);
50
63
  }, 500);
51
64
  };
52
- // const filterOptions = (query: string) => {
53
- // setSearchQuery(query);
54
- // setFilteredOptions(
55
- // options.filter((option) =>
56
- // option.label.toLowerCase().includes(query.toLowerCase()),
57
- // ),
58
- // );
59
- // };
60
65
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
61
66
  position: 'relative',
62
67
  borderRadius: '6px',
@@ -116,7 +121,7 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
116
121
  fontFamily: theme?.fontFamily,
117
122
  maxHeight: '50vh',
118
123
  overflow: 'scroll',
119
- }, children: !isLoading ? (options.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
124
+ }, children: !isLoading ? (sortedItems.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
120
125
  display: 'flex',
121
126
  alignItems: 'center',
122
127
  padding: 8,
@@ -167,7 +172,7 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
167
172
  textOverflow: 'ellipsis',
168
173
  whiteSpace: 'nowrap',
169
174
  overflow: 'hidden',
170
- }, children: option.label })] }, option.value)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {})) }))] }));
175
+ }, children: option.label ?? nullLabel })] }, option.value)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {})) }))] }));
171
176
  }
172
177
  exports.QuillMultiSelectComponent = QuillMultiSelectComponent;
173
178
  const ListboxTextInput = ({ value, onChange, placeholder, }) => {
@@ -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"}
@@ -54,27 +54,15 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
54
54
  const modalRef = (0, react_1.useRef)(null);
55
55
  const debounceTimeoutId = (0, react_1.useRef)(null);
56
56
  const [searchQuery, setSearchQuery] = react_1.default.useState('');
57
- const [filteredItems, setFilteredItems] = react_1.default.useState(options.slice(0, 20));
57
+ const [exceedsLimit, setExceedsLimit] = (0, react_1.useState)(false);
58
58
  (0, react_1.useEffect)(() => {
59
- setFilteredItems(options.slice(0, 20));
59
+ if (options.length > 0 && options?.[0]?.value === 'EXCEEDS_LIMIT') {
60
+ setExceedsLimit(true);
61
+ }
62
+ else {
63
+ setExceedsLimit(false);
64
+ }
60
65
  }, [options]);
61
- const handleSearchChange = (value) => {
62
- setSearchQuery(value);
63
- const curFilteredItems = value === ''
64
- ? options.slice(0, 20)
65
- : options
66
- .filter((option) => {
67
- if (!option) {
68
- return false;
69
- }
70
- return option.value
71
- .toLowerCase()
72
- .replace(/\s+/g, '')
73
- .includes(value.toLowerCase().replace(/\s+/g, ''));
74
- })
75
- .slice(0, 20);
76
- setFilteredItems(curFilteredItems);
77
- };
78
66
  (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false));
79
67
  (0, react_1.useEffect)(() => {
80
68
  if (!value) {
@@ -92,14 +80,43 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
92
80
  onChange(updatedChangeEvent);
93
81
  }, 500);
94
82
  };
95
- // const filterOptions = (query: string) => {
96
- // setSearchQuery(query);
97
- // setFilteredOptions(
98
- // options.filter((option) =>
99
- // option.label.toLowerCase().includes(query.toLowerCase()),
100
- // ),
101
- // );
102
- // };
83
+ const filteredItems = react_1.default.useMemo(function () {
84
+ // Sort null to top
85
+ if (searchQuery === '') {
86
+ return options.sort((a, b) => {
87
+ if (a.value === null) {
88
+ return -1;
89
+ }
90
+ if (b.value === null) {
91
+ return 1;
92
+ }
93
+ return 0;
94
+ });
95
+ }
96
+ return options
97
+ .filter((option) => {
98
+ if (!option) {
99
+ return false;
100
+ }
101
+ return option.value
102
+ .toLowerCase()
103
+ .replace(/\s+/g, '')
104
+ .includes(searchQuery.toLowerCase().replace(/\s+/g, ''));
105
+ })
106
+ .sort((a, b) => {
107
+ if (a.value === null) {
108
+ return -1;
109
+ }
110
+ if (b.value === null) {
111
+ return 1;
112
+ }
113
+ return a.label.localeCompare(b.label);
114
+ })
115
+ .slice(0, 20);
116
+ }, [options, searchQuery]);
117
+ const nullLabel = (0, react_1.useMemo)(() => {
118
+ return filteredItems.some((item) => item.value === '-') ? 'None' : '-';
119
+ }, [filteredItems]);
103
120
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
104
121
  position: 'relative',
105
122
  borderRadius: '6px',
@@ -111,7 +128,7 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
111
128
  fontFamily: theme?.fontFamily,
112
129
  paddingBottom: 5,
113
130
  fontWeight: 600,
114
- }, children: label })), (0, jsx_runtime_1.jsxs)("button", { style: {
131
+ }, children: label ?? nullLabel })), (0, jsx_runtime_1.jsxs)("button", { style: {
115
132
  fontFamily: theme?.fontFamily,
116
133
  color: theme?.primaryTextColor,
117
134
  width: '100%',
@@ -160,9 +177,14 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
160
177
  maxHeight: '50vh',
161
178
  overflow: 'scroll',
162
179
  fontSize: 14,
163
- }, children: [options && options.length > 20 && !isLoading && ((0, jsx_runtime_1.jsx)(exports.ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
164
- handleSearchChange(value);
165
- } })), options && options.length > 20 && ((0, jsx_runtime_1.jsx)("div", { style: { height: 9, width: 230, borderTop: '1px solid #e7e7e7' } })), (!filteredItems || filteredItems.length === 0) && !isLoading && ((0, jsx_runtime_1.jsxs)("div", { style: {
180
+ }, children: [!exceedsLimit && options && options.length > 20 && ((0, jsx_runtime_1.jsx)(exports.ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
181
+ setSearchQuery(value);
182
+ } })), !exceedsLimit && options && options.length > 20 && ((0, jsx_runtime_1.jsx)("div", { style: {
183
+ height: 9,
184
+ width: 230,
185
+ borderTop: '1px solid #e7e7e7',
186
+ } })), !isLoading &&
187
+ (!filteredItems || filteredItems.length === 0 || exceedsLimit) && ((0, jsx_runtime_1.jsxs)("div", { style: {
166
188
  display: 'flex',
167
189
  alignItems: 'center',
168
190
  padding: 8,
@@ -181,18 +203,18 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
181
203
  gap: 6,
182
204
  overflow: 'hidden',
183
205
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
184
- .quill-option {
185
- background: white;
186
- }
187
- .quill-option:hover {
188
- background: #F4F4F5;
206
+ .quill-option {
207
+ background: white;
189
208
  }
190
- ` }), (0, jsx_runtime_1.jsx)("span", { style: {
209
+ .quill-option:hover {
210
+ background: #F4F4F5;
211
+ }
212
+ ` }), (0, jsx_runtime_1.jsx)("span", { style: {
191
213
  textOverflow: 'ellipsis',
192
214
  whiteSpace: 'nowrap',
193
215
  overflow: 'hidden',
194
216
  cursor: 'default',
195
- }, children: "No options available" })] })), !isLoading ? (filteredItems.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
217
+ }, children: exceedsLimit ? 'Too many options' : 'No options available' })] })), !exceedsLimit && !isLoading ? (filteredItems.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
196
218
  display: 'flex',
197
219
  alignItems: 'center',
198
220
  padding: 8,
@@ -233,17 +255,17 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
233
255
  }
234
256
  debounce(updatedChangeEvent);
235
257
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
236
- .quill-option {
237
- background: white;
238
- }
239
- .quill-option:hover {
240
- background: #F4F4F5;
258
+ .quill-option {
259
+ background: white;
241
260
  }
242
- ` }), (0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: selectedOptions.includes(option.value), style: { width: '14px', height: '14px', margin: 'auto 0' }, readOnly: true }), (0, jsx_runtime_1.jsx)("span", { style: {
261
+ .quill-option:hover {
262
+ background: #F4F4F5;
263
+ }
264
+ ` }), (0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: selectedOptions.includes(option.value), style: { width: '14px', height: '14px', margin: 'auto 0' }, readOnly: true }), (0, jsx_runtime_1.jsx)("span", { style: {
243
265
  textOverflow: 'ellipsis',
244
266
  whiteSpace: 'nowrap',
245
267
  overflow: 'hidden',
246
- }, children: option.label })] }, option.value)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}))] }))] }));
268
+ }, children: option.label ?? nullLabel })] }, option.value)))) : isLoading ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) })) : null] }))] }));
247
269
  }
248
270
  exports.QuillMultiSelectComponentWithCombo = QuillMultiSelectComponentWithCombo;
249
271
  const ListboxTextInput = ({ value, onChange, placeholder, }) => {
@@ -2,5 +2,5 @@ import { SelectComponentProps } from './UiComponents';
2
2
  /**
3
3
  * A robust select component that implements the new minimal Select interface.
4
4
  */
5
- export declare function QuillSelectComponent({ options, value, width, onChange, label, isLoading, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function QuillSelectComponent({ options, value, width, onChange, label, isLoading, disabled, hideEmptyOption, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=QuillSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,oBAAoB,2CAiNtB"}
1
+ {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,oBAAoB,2CA8OtB"}