@quillsql/react 2.13.7 → 2.13.9

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 (368) hide show
  1. package/dist/cjs/Chart.d.ts +5 -5
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +19 -8
  4. package/dist/cjs/ChartBuilder.d.ts +1 -1
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +58 -93
  7. package/dist/cjs/ChartEditor.js +1 -1
  8. package/dist/cjs/Context.d.ts +9 -8
  9. package/dist/cjs/Context.d.ts.map +1 -1
  10. package/dist/cjs/Context.js +119 -34
  11. package/dist/cjs/Dashboard.d.ts +20 -8
  12. package/dist/cjs/Dashboard.d.ts.map +1 -1
  13. package/dist/cjs/Dashboard.js +68 -58
  14. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +2 -2
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  16. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +1 -2
  17. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +20 -20
  18. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  19. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +64 -52
  20. package/dist/cjs/ReportBuilder.d.ts +2 -1
  21. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  22. package/dist/cjs/ReportBuilder.js +339 -339
  23. package/dist/cjs/SQLEditor.d.ts +1 -1
  24. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  25. package/dist/cjs/SQLEditor.js +30 -18
  26. package/dist/cjs/components/Banner/index.d.ts +0 -1
  27. package/dist/cjs/components/Banner/index.d.ts.map +1 -1
  28. package/dist/cjs/components/Banner/index.js +1 -1
  29. package/dist/cjs/components/Chart/BarChart.d.ts +0 -1
  30. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  31. package/dist/cjs/components/Chart/BarChart.js +1 -1
  32. package/dist/cjs/components/Chart/BarList.js +1 -2
  33. package/dist/cjs/components/Chart/ChartError.js +2 -3
  34. package/dist/cjs/components/Chart/ChartSkeleton.js +1 -1
  35. package/dist/cjs/components/Chart/ChartTooltip.js +1 -1
  36. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts +0 -1
  37. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts.map +1 -1
  38. package/dist/cjs/components/Chart/ChartTooltipFrame.js +1 -1
  39. package/dist/cjs/components/Chart/ChartTooltipGroup.js +1 -1
  40. package/dist/cjs/components/Chart/ChartTooltipRow.js +1 -1
  41. package/dist/cjs/components/Chart/LineChart.d.ts +0 -1
  42. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  43. package/dist/cjs/components/Chart/LineChart.js +1 -1
  44. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  45. package/dist/cjs/components/Chart/PieChart.js +18 -9
  46. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +0 -1
  47. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  48. package/dist/cjs/components/Dashboard/ChartComponent.js +1 -1
  49. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +10 -2
  50. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  51. package/dist/cjs/components/Dashboard/DashboardFilter.js +9 -23
  52. package/dist/cjs/components/Dashboard/DashboardSection.d.ts +0 -1
  53. package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
  54. package/dist/cjs/components/Dashboard/DashboardSection.js +1 -1
  55. package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts +0 -1
  56. package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -1
  57. package/dist/cjs/components/Dashboard/DashboardSectionContainer.js +1 -1
  58. package/dist/cjs/components/Dashboard/DashboardTemplate.js +1 -1
  59. package/dist/cjs/components/Dashboard/DataLoader.d.ts +9 -7
  60. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  61. package/dist/cjs/components/Dashboard/DataLoader.js +104 -61
  62. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +0 -1
  63. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  64. package/dist/cjs/components/Dashboard/MetricComponent.js +3 -3
  65. package/dist/cjs/components/Dashboard/TableComponent.d.ts +0 -1
  66. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  67. package/dist/cjs/components/Dashboard/TableComponent.js +1 -1
  68. package/dist/cjs/components/Dashboard/TemplateChartComponent.d.ts +0 -1
  69. package/dist/cjs/components/Dashboard/TemplateChartComponent.d.ts.map +1 -1
  70. package/dist/cjs/components/Dashboard/TemplateChartComponent.js +1 -1
  71. package/dist/cjs/components/Dashboard/TemplateMetricComponent.d.ts +0 -1
  72. package/dist/cjs/components/Dashboard/TemplateMetricComponent.d.ts.map +1 -1
  73. package/dist/cjs/components/Dashboard/TemplateMetricComponent.js +1 -1
  74. package/dist/cjs/components/Dashboard/TemplateTableComponent.d.ts +0 -1
  75. package/dist/cjs/components/Dashboard/TemplateTableComponent.d.ts.map +1 -1
  76. package/dist/cjs/components/Dashboard/TemplateTableComponent.js +1 -1
  77. package/dist/cjs/components/Dashboard/util.js +2 -3
  78. package/dist/cjs/components/QuillCard.js +1 -2
  79. package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
  80. package/dist/cjs/components/QuillMultiSelect.js +21 -20
  81. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  82. package/dist/cjs/components/QuillMultiSelectWithCombo.js +172 -70
  83. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  84. package/dist/cjs/components/QuillSelect.js +9 -8
  85. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  86. package/dist/cjs/components/QuillSelectWithCombo.js +26 -12
  87. package/dist/cjs/components/QuillTable.d.ts +5 -1
  88. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  89. package/dist/cjs/components/QuillTable.js +5 -3
  90. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +1 -1
  91. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -3
  92. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  93. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +5 -6
  94. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  95. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +3 -4
  96. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  97. package/dist/cjs/components/ReportBuilder/FilterModal.js +45 -39
  98. package/dist/cjs/components/ReportBuilder/FilterStack.js +1 -1
  99. package/dist/cjs/components/ReportBuilder/ast.d.ts.map +1 -1
  100. package/dist/cjs/components/ReportBuilder/ast.js +2 -2
  101. package/dist/cjs/components/ReportBuilder/convert.js +11 -12
  102. package/dist/cjs/components/ReportBuilder/postgres.js +4 -4
  103. package/dist/cjs/components/ReportBuilder/ui.d.ts +3 -3
  104. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  105. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  106. package/dist/cjs/components/ReportBuilder/util.js +21 -23
  107. package/dist/cjs/components/UiComponents.d.ts +14 -12
  108. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  109. package/dist/cjs/components/UiComponents.js +41 -17
  110. package/dist/cjs/components/selectUtils.js +3 -3
  111. package/dist/cjs/contexts/BaseColorContext.d.ts +0 -1
  112. package/dist/cjs/contexts/BaseColorContext.d.ts.map +1 -1
  113. package/dist/cjs/contexts/RootStylesContext.d.ts +0 -1
  114. package/dist/cjs/contexts/RootStylesContext.d.ts.map +1 -1
  115. package/dist/cjs/contexts/SelectedValueContext.d.ts +0 -1
  116. package/dist/cjs/contexts/SelectedValueContext.d.ts.map +1 -1
  117. package/dist/cjs/hooks/useAskQuill.d.ts +2 -2
  118. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  119. package/dist/cjs/hooks/useAskQuill.js +11 -11
  120. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  121. package/dist/cjs/hooks/useDashboard.d.ts +8 -7
  122. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  123. package/dist/cjs/hooks/useDashboard.js +47 -31
  124. package/dist/cjs/hooks/useExport.d.ts +3 -4
  125. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  126. package/dist/cjs/hooks/useExport.js +6 -2
  127. package/dist/cjs/hooks/useInternalState.d.ts +1 -2
  128. package/dist/cjs/hooks/useInternalState.d.ts.map +1 -1
  129. package/dist/cjs/hooks/useOnClickOutside.d.ts +3 -1
  130. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  131. package/dist/cjs/hooks/useQuill.d.ts +0 -14
  132. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  133. package/dist/cjs/hooks/useQuill.js +17 -55
  134. package/dist/cjs/hooks/useSelectOnKeyDown.d.ts.map +1 -1
  135. package/dist/cjs/index.d.ts +2 -1
  136. package/dist/cjs/index.d.ts.map +1 -1
  137. package/dist/cjs/index.js +7 -2
  138. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +4 -1
  139. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  140. package/dist/cjs/internals/ReportBuilder/PivotForm.js +32 -7
  141. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +17 -13
  142. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  143. package/dist/cjs/internals/ReportBuilder/PivotModal.js +368 -162
  144. package/dist/cjs/lib/utils.d.ts +0 -1
  145. package/dist/cjs/lib/utils.d.ts.map +1 -1
  146. package/dist/cjs/lib/utils.js +2 -2
  147. package/dist/cjs/models/Filter.d.ts +49 -30
  148. package/dist/cjs/models/Filter.d.ts.map +1 -1
  149. package/dist/cjs/models/Filter.js +125 -52
  150. package/dist/cjs/models/Pivot.d.ts +3 -1
  151. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  152. package/dist/cjs/models/Report.d.ts +2 -2
  153. package/dist/cjs/models/Report.d.ts.map +1 -1
  154. package/dist/cjs/utils/astFilterProcessing.d.ts +4 -4
  155. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  156. package/dist/cjs/utils/astFilterProcessing.js +3839 -3427
  157. package/dist/cjs/utils/astProcessing.d.ts +12 -3
  158. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  159. package/dist/cjs/utils/astProcessing.js +76 -11
  160. package/dist/cjs/utils/client.js +2 -2
  161. package/dist/cjs/utils/color.js +5 -6
  162. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  163. package/dist/cjs/utils/columnProcessing.js +7 -7
  164. package/dist/cjs/utils/crypto.js +1 -2
  165. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  166. package/dist/cjs/utils/dashboard.js +34 -30
  167. package/dist/cjs/utils/dataFetcher.js +3 -4
  168. package/dist/cjs/utils/dataProcessing.js +2 -2
  169. package/dist/cjs/utils/dates.d.ts +4 -1
  170. package/dist/cjs/utils/dates.d.ts.map +1 -1
  171. package/dist/cjs/utils/dates.js +12 -10
  172. package/dist/cjs/utils/errorProcessing.js +1 -2
  173. package/dist/cjs/utils/filterProcessing.d.ts +3 -3
  174. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  175. package/dist/cjs/utils/filterProcessing.js +30 -27
  176. package/dist/cjs/utils/getDomain.js +1 -1
  177. package/dist/cjs/utils/logging.js +1 -2
  178. package/dist/cjs/utils/merge.d.ts +1 -1
  179. package/dist/cjs/utils/merge.d.ts.map +1 -1
  180. package/dist/cjs/utils/merge.js +15 -11
  181. package/dist/cjs/utils/monacoConfig.js +3 -3
  182. package/dist/cjs/utils/paginationProcessing.js +3 -3
  183. package/dist/cjs/utils/pivotConstructor.d.ts +4 -4
  184. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  185. package/dist/cjs/utils/pivotConstructor.js +104 -127
  186. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  187. package/dist/cjs/utils/pivotProcessing.js +14 -16
  188. package/dist/cjs/utils/queryConstructor.d.ts +2 -2
  189. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  190. package/dist/cjs/utils/queryConstructor.js +344 -78
  191. package/dist/cjs/utils/report.d.ts.map +1 -1
  192. package/dist/cjs/utils/report.js +22 -12
  193. package/dist/cjs/utils/schema.d.ts.map +1 -1
  194. package/dist/cjs/utils/styles.js +1 -2
  195. package/dist/cjs/utils/tableProcessing.d.ts +12 -12
  196. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  197. package/dist/cjs/utils/tableProcessing.js +69 -26
  198. package/dist/cjs/utils/textProcessing.js +5 -6
  199. package/dist/cjs/utils/validation.d.ts.map +1 -1
  200. package/dist/cjs/utils/validation.js +3 -1
  201. package/dist/cjs/utils/valueFormatter.d.ts +1 -0
  202. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  203. package/dist/cjs/utils/valueFormatter.js +2 -0
  204. package/dist/cjs/utils/width.d.ts.map +1 -1
  205. package/dist/esm/Chart.d.ts +5 -5
  206. package/dist/esm/Chart.d.ts.map +1 -1
  207. package/dist/esm/Chart.js +15 -4
  208. package/dist/esm/ChartBuilder.d.ts +1 -1
  209. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  210. package/dist/esm/ChartBuilder.js +52 -87
  211. package/dist/esm/Context.d.ts +9 -8
  212. package/dist/esm/Context.d.ts.map +1 -1
  213. package/dist/esm/Context.js +119 -34
  214. package/dist/esm/Dashboard.d.ts +20 -8
  215. package/dist/esm/Dashboard.d.ts.map +1 -1
  216. package/dist/esm/Dashboard.js +68 -58
  217. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +2 -2
  218. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  219. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +20 -20
  220. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  221. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +64 -52
  222. package/dist/esm/ReportBuilder.d.ts +2 -1
  223. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  224. package/dist/esm/ReportBuilder.js +343 -343
  225. package/dist/esm/SQLEditor.d.ts +1 -1
  226. package/dist/esm/SQLEditor.d.ts.map +1 -1
  227. package/dist/esm/SQLEditor.js +29 -17
  228. package/dist/esm/components/Banner/index.d.ts +0 -1
  229. package/dist/esm/components/Banner/index.d.ts.map +1 -1
  230. package/dist/esm/components/Chart/BarChart.d.ts +0 -1
  231. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  232. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts +0 -1
  233. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts.map +1 -1
  234. package/dist/esm/components/Chart/LineChart.d.ts +0 -1
  235. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  236. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  237. package/dist/esm/components/Chart/PieChart.js +18 -9
  238. package/dist/esm/components/Dashboard/ChartComponent.d.ts +0 -1
  239. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  240. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +10 -2
  241. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  242. package/dist/esm/components/Dashboard/DashboardFilter.js +8 -21
  243. package/dist/esm/components/Dashboard/DashboardSection.d.ts +0 -1
  244. package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
  245. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts +0 -1
  246. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -1
  247. package/dist/esm/components/Dashboard/DataLoader.d.ts +9 -7
  248. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  249. package/dist/esm/components/Dashboard/DataLoader.js +102 -62
  250. package/dist/esm/components/Dashboard/MetricComponent.d.ts +0 -1
  251. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  252. package/dist/esm/components/Dashboard/MetricComponent.js +2 -2
  253. package/dist/esm/components/Dashboard/TableComponent.d.ts +0 -1
  254. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  255. package/dist/esm/components/Dashboard/TemplateChartComponent.d.ts +0 -1
  256. package/dist/esm/components/Dashboard/TemplateChartComponent.d.ts.map +1 -1
  257. package/dist/esm/components/Dashboard/TemplateMetricComponent.d.ts +0 -1
  258. package/dist/esm/components/Dashboard/TemplateMetricComponent.d.ts.map +1 -1
  259. package/dist/esm/components/Dashboard/TemplateTableComponent.d.ts +0 -1
  260. package/dist/esm/components/Dashboard/TemplateTableComponent.d.ts.map +1 -1
  261. package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
  262. package/dist/esm/components/QuillMultiSelect.js +19 -18
  263. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  264. package/dist/esm/components/QuillMultiSelectWithCombo.js +171 -69
  265. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  266. package/dist/esm/components/QuillSelect.js +8 -6
  267. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  268. package/dist/esm/components/QuillSelectWithCombo.js +25 -10
  269. package/dist/esm/components/QuillTable.d.ts +5 -1
  270. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  271. package/dist/esm/components/QuillTable.js +4 -2
  272. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -3
  273. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  274. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +5 -6
  275. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  276. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +3 -4
  277. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  278. package/dist/esm/components/ReportBuilder/FilterModal.js +46 -40
  279. package/dist/esm/components/ReportBuilder/ast.d.ts.map +1 -1
  280. package/dist/esm/components/ReportBuilder/ui.d.ts +3 -3
  281. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  282. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  283. package/dist/esm/components/ReportBuilder/util.js +0 -2
  284. package/dist/esm/components/UiComponents.d.ts +14 -12
  285. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  286. package/dist/esm/components/UiComponents.js +37 -14
  287. package/dist/esm/contexts/BaseColorContext.d.ts +0 -1
  288. package/dist/esm/contexts/BaseColorContext.d.ts.map +1 -1
  289. package/dist/esm/contexts/RootStylesContext.d.ts +0 -1
  290. package/dist/esm/contexts/RootStylesContext.d.ts.map +1 -1
  291. package/dist/esm/contexts/SelectedValueContext.d.ts +0 -1
  292. package/dist/esm/contexts/SelectedValueContext.d.ts.map +1 -1
  293. package/dist/esm/hooks/useAskQuill.d.ts +2 -2
  294. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  295. package/dist/esm/hooks/useAskQuill.js +12 -12
  296. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  297. package/dist/esm/hooks/useDashboard.d.ts +8 -7
  298. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  299. package/dist/esm/hooks/useDashboard.js +48 -32
  300. package/dist/esm/hooks/useExport.d.ts +3 -4
  301. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  302. package/dist/esm/hooks/useExport.js +6 -2
  303. package/dist/esm/hooks/useInternalState.d.ts +1 -2
  304. package/dist/esm/hooks/useInternalState.d.ts.map +1 -1
  305. package/dist/esm/hooks/useOnClickOutside.d.ts +3 -1
  306. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  307. package/dist/esm/hooks/useQuill.d.ts +0 -14
  308. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  309. package/dist/esm/hooks/useQuill.js +16 -53
  310. package/dist/esm/hooks/useSelectOnKeyDown.d.ts.map +1 -1
  311. package/dist/esm/index.d.ts +2 -1
  312. package/dist/esm/index.d.ts.map +1 -1
  313. package/dist/esm/index.js +2 -1
  314. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +4 -1
  315. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  316. package/dist/esm/internals/ReportBuilder/PivotForm.js +32 -7
  317. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +17 -13
  318. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  319. package/dist/esm/internals/ReportBuilder/PivotModal.js +364 -158
  320. package/dist/esm/lib/utils.d.ts +0 -1
  321. package/dist/esm/lib/utils.d.ts.map +1 -1
  322. package/dist/esm/models/Filter.d.ts +49 -30
  323. package/dist/esm/models/Filter.d.ts.map +1 -1
  324. package/dist/esm/models/Filter.js +123 -50
  325. package/dist/esm/models/Pivot.d.ts +3 -1
  326. package/dist/esm/models/Pivot.d.ts.map +1 -1
  327. package/dist/esm/models/Report.d.ts +2 -2
  328. package/dist/esm/models/Report.d.ts.map +1 -1
  329. package/dist/esm/utils/astFilterProcessing.d.ts +4 -4
  330. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  331. package/dist/esm/utils/astFilterProcessing.js +3835 -3423
  332. package/dist/esm/utils/astProcessing.d.ts +12 -3
  333. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  334. package/dist/esm/utils/astProcessing.js +64 -0
  335. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  336. package/dist/esm/utils/columnProcessing.js +1 -1
  337. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  338. package/dist/esm/utils/dashboard.js +31 -26
  339. package/dist/esm/utils/dates.d.ts +4 -1
  340. package/dist/esm/utils/dates.d.ts.map +1 -1
  341. package/dist/esm/utils/dates.js +6 -3
  342. package/dist/esm/utils/filterProcessing.d.ts +3 -3
  343. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  344. package/dist/esm/utils/filterProcessing.js +22 -19
  345. package/dist/esm/utils/merge.d.ts +1 -1
  346. package/dist/esm/utils/merge.d.ts.map +1 -1
  347. package/dist/esm/utils/merge.js +14 -9
  348. package/dist/esm/utils/pivotConstructor.d.ts +4 -4
  349. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  350. package/dist/esm/utils/pivotConstructor.js +103 -125
  351. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  352. package/dist/esm/utils/pivotProcessing.js +9 -11
  353. package/dist/esm/utils/queryConstructor.d.ts +2 -2
  354. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  355. package/dist/esm/utils/queryConstructor.js +338 -71
  356. package/dist/esm/utils/report.d.ts.map +1 -1
  357. package/dist/esm/utils/report.js +18 -8
  358. package/dist/esm/utils/schema.d.ts.map +1 -1
  359. package/dist/esm/utils/tableProcessing.d.ts +12 -12
  360. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  361. package/dist/esm/utils/tableProcessing.js +69 -26
  362. package/dist/esm/utils/validation.d.ts.map +1 -1
  363. package/dist/esm/utils/validation.js +3 -1
  364. package/dist/esm/utils/valueFormatter.d.ts +1 -0
  365. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  366. package/dist/esm/utils/valueFormatter.js +2 -1
  367. package/dist/esm/utils/width.d.ts.map +1 -1
  368. package/package.json +4 -4
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = QuillTemplateMetricComponent;
6
7
  const jsx_runtime_1 = require("react/jsx-runtime");
7
8
  const react_1 = require("react");
8
9
  const MetricComponent_1 = __importDefault(require("./MetricComponent"));
@@ -20,4 +21,3 @@ function QuillTemplateMetricComponent({ report, onClick, children, isLoading, })
20
21
  cursor: 'pointer',
21
22
  }, children: (0, jsx_runtime_1.jsx)(MetricComponent_1.default, { report: report, children: children, isLoading: isLoading }) }));
22
23
  }
23
- exports.default = QuillTemplateMetricComponent;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { QuillReport } from '../../models/Report';
3
2
  export default function QuillTemplateTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }: {
4
3
  report: QuillReport;
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateTableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TemplateTableComponent.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAClD,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,CA4Bd"}
1
+ {"version":3,"file":"TemplateTableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TemplateTableComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAClD,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,CA4Bd"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = QuillTemplateTableComponent;
6
7
  const jsx_runtime_1 = require("react/jsx-runtime");
7
8
  const react_1 = require("react");
8
9
  const TableComponent_1 = __importDefault(require("./TableComponent"));
@@ -20,4 +21,3 @@ function QuillTemplateTableComponent({ report, onClick, isLoading, error, rowCou
20
21
  cursor: 'pointer',
21
22
  }, children: (0, jsx_runtime_1.jsx)(TableComponent_1.default, { report: report, isLoading: isLoading, error: error, rowCount: rowCount, onPageChange: onPageChange, onSortChange: onSortChange }) }));
22
23
  }
23
- exports.default = QuillTemplateTableComponent;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addTemplatesToDashboard = exports.validateTemplatesAgainstFilters = void 0;
3
+ exports.validateTemplatesAgainstFilters = validateTemplatesAgainstFilters;
4
+ exports.addTemplatesToDashboard = addTemplatesToDashboard;
4
5
  const dataFetcher_1 = require("../../utils/dataFetcher");
5
6
  function validateTemplatesAgainstFilters(filters, templates) {
6
7
  let error = '';
@@ -37,7 +38,6 @@ function validateTemplatesAgainstFilters(filters, templates) {
37
38
  return { valid: false, error };
38
39
  }
39
40
  }
40
- exports.validateTemplatesAgainstFilters = validateTemplatesAgainstFilters;
41
41
  async function addTemplatesToDashboard(name, newTemplates, client, dashboardData) {
42
42
  try {
43
43
  const { publicKey, organizationId } = client;
@@ -82,4 +82,3 @@ async function addTemplatesToDashboard(name, newTemplates, client, dashboardData
82
82
  console.error('Error while updating dashboard:', error);
83
83
  }
84
84
  }
85
- exports.addTemplatesToDashboard = addTemplatesToDashboard;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QuillCard = void 0;
3
+ exports.QuillCard = QuillCard;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const assets_1 = require("../assets");
@@ -58,4 +58,3 @@ function QuillCard({ children, onClick, onDelete }) {
58
58
  height: '100%',
59
59
  }, children: children })] }));
60
60
  }
61
- exports.QuillCard = QuillCard;
@@ -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;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;6CA0DpB,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,2CAgP3B;AAED,eAAO,MAAM,gBAAgB,sCAI1B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,4CAyDA,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ListboxTextInput = exports.QuillMultiSelectComponent = void 0;
3
+ exports.ListboxTextInput = void 0;
4
+ exports.QuillMultiSelectComponent = QuillMultiSelectComponent;
4
5
  const jsx_runtime_1 = require("react/jsx-runtime");
5
6
  const hooks_1 = require("../hooks");
6
7
  const UiComponents_1 = require("./UiComponents");
@@ -29,8 +30,12 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
29
30
  const [selectedOptions, setSelectedOptions] = (0, react_1.useState)([]);
30
31
  const [showModal, setShowModal] = (0, react_1.useState)(false);
31
32
  const modalRef = (0, react_1.useRef)(null);
33
+ const buttonRef = (0, react_1.useRef)(null);
32
34
  const debounceTimeoutId = (0, react_1.useRef)(null);
33
- (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false), showModal);
35
+ (0, hooks_1.useOnClickOutside)(modalRef, (event) => {
36
+ if (!buttonRef.current?.contains(event.target))
37
+ setShowModal(false);
38
+ }, showModal);
34
39
  (0, react_1.useEffect)(() => {
35
40
  if (!value) {
36
41
  setSelectedOptions([]);
@@ -67,7 +72,7 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
67
72
  borderRadius: '6px',
68
73
  width: width,
69
74
  minWidth: width,
70
- }, ref: modalRef, children: [label && ((0, jsx_runtime_1.jsx)("div", { style: {
75
+ }, children: [label && ((0, jsx_runtime_1.jsx)("div", { style: {
71
76
  fontSize: 14,
72
77
  color: theme?.secondaryTextColor,
73
78
  fontFamily: theme?.fontFamily,
@@ -95,7 +100,7 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
95
100
  height: 40,
96
101
  minHeight: 40,
97
102
  maxHeight: 40,
98
- }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; }
103
+ }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), ref: buttonRef, children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; }
99
104
  .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }
100
105
  ` }), (0, jsx_runtime_1.jsx)("span", { style: {
101
106
  textOverflow: 'ellipsis',
@@ -121,7 +126,7 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
121
126
  fontFamily: theme?.fontFamily,
122
127
  maxHeight: '50vh',
123
128
  overflow: 'scroll',
124
- }, children: !isLoading ? (sortedItems.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
129
+ }, ref: modalRef, children: !isLoading ? (sortedItems.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
125
130
  display: 'flex',
126
131
  alignItems: 'center',
127
132
  padding: 8,
@@ -140,26 +145,23 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
140
145
  gap: 6,
141
146
  overflow: 'hidden',
142
147
  }, className: "quill-option", onClick: () => {
143
- // Manually create a synthetic ChangeEvent and pass it to callback
144
- const changeEvent = { target: { value: option.value } };
145
- let updateSelctedOptions = [...selectedOptions];
146
- if (selectedOptions.includes(changeEvent.target.value)) {
147
- updateSelctedOptions = selectedOptions.filter((opt) => opt !== changeEvent.target.value);
148
- setSelectedOptions(updateSelctedOptions);
148
+ let updateSelectedOptions = [...selectedOptions];
149
+ if (selectedOptions.includes(option.value)) {
150
+ updateSelectedOptions = selectedOptions.filter((opt) => opt !== option.value);
151
+ setSelectedOptions(updateSelectedOptions);
149
152
  }
150
153
  else {
151
- updateSelctedOptions = [
152
- ...updateSelctedOptions,
153
- changeEvent.target.value,
154
+ updateSelectedOptions = [
155
+ ...updateSelectedOptions,
156
+ option.value,
154
157
  ];
155
- setSelectedOptions(updateSelctedOptions);
158
+ setSelectedOptions(updateSelectedOptions);
156
159
  }
157
160
  const updatedChangeEvent = {
158
- target: { value: updateSelctedOptions.join(',') },
161
+ target: {
162
+ value: updateSelectedOptions,
163
+ },
159
164
  };
160
- if (updateSelctedOptions.length === 0) {
161
- updatedChangeEvent.target.value = '';
162
- }
163
165
  debounce(updatedChangeEvent);
164
166
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
165
167
  .quill-option {
@@ -174,7 +176,6 @@ function QuillMultiSelectComponent({ options, width, onChange, label, value, isL
174
176
  overflow: 'hidden',
175
177
  }, children: option.label ?? nullLabel })] }, option.value)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {})) }))] }));
176
178
  }
177
- exports.QuillMultiSelectComponent = QuillMultiSelectComponent;
178
179
  const ListboxTextInput = ({ value, onChange, placeholder, }) => {
179
180
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
180
181
  position: 'relative',
@@ -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;AAiC3E;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,yBAAyB,2CAiV3B;AAED,eAAO,MAAM,gBAAgB;WAKpB,MAAM;kBACC,MAAM,KAAK,IAAI;iBAChB,MAAM;6CAyDpB,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,EACT,QAAQ,GACT,EAAE,yBAAyB,2CAge3B;AAED,eAAO,MAAM,gBAAgB,sCAI1B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,4CAwDA,CAAC"}
@@ -23,7 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ListboxTextInput = exports.QuillMultiSelectComponentWithCombo = void 0;
26
+ exports.ListboxTextInput = void 0;
27
+ exports.QuillMultiSelectComponentWithCombo = QuillMultiSelectComponentWithCombo;
27
28
  const jsx_runtime_1 = require("react/jsx-runtime");
28
29
  const hooks_1 = require("../hooks");
29
30
  const UiComponents_1 = require("./UiComponents");
@@ -37,11 +38,11 @@ function displaySelectedOptionLabels({ options, value, }) {
37
38
  return 'Select';
38
39
  }
39
40
  const matchingOptions = options.filter((elem) => value.includes(elem.value));
40
- if (!matchingOptions.length) {
41
- return 'Select';
41
+ if (matchingOptions.length !== value.length) {
42
+ return value.join(', ');
42
43
  }
43
44
  return matchingOptions
44
- .map((elem) => elem.label)
45
+ .map((elem) => elem.label ?? '-')
45
46
  .join(', ');
46
47
  }
47
48
  /**
@@ -52,9 +53,42 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
52
53
  const [selectedOptions, setSelectedOptions] = (0, react_1.useState)([]);
53
54
  const [showModal, setShowModal] = (0, react_1.useState)(false);
54
55
  const modalRef = (0, react_1.useRef)(null);
56
+ const buttonRef = (0, react_1.useRef)(null);
55
57
  const debounceTimeoutId = (0, react_1.useRef)(null);
56
58
  const [searchQuery, setSearchQuery] = react_1.default.useState('');
57
59
  const [exceedsLimit, setExceedsLimit] = (0, react_1.useState)(false);
60
+ const selectAllRef = (0, react_1.useRef)(null);
61
+ let CheckboxState;
62
+ (function (CheckboxState) {
63
+ CheckboxState[CheckboxState["SELECTED"] = 0] = "SELECTED";
64
+ CheckboxState[CheckboxState["UNSELECTED"] = 1] = "UNSELECTED";
65
+ CheckboxState[CheckboxState["INDETERMINATE"] = 2] = "INDETERMINATE";
66
+ })(CheckboxState || (CheckboxState = {}));
67
+ const optionValues = (0, react_1.useMemo)(() => new Set(options.map((opt) => opt.value)), [options]);
68
+ const potentialOptions = (0, react_1.useMemo)(() => {
69
+ return value
70
+ .filter((opt) => !optionValues.has(opt ?? ''))
71
+ .map((opt) => ({
72
+ label: opt === '' ? '-' : (opt ?? '-'),
73
+ value: opt ?? '',
74
+ }))
75
+ .concat(options);
76
+ }, [value, options]);
77
+ const [selectAllCheckboxState, setSelectAllCheckboxState] = (0, react_1.useState)((() => {
78
+ if (value.length === 0) {
79
+ return CheckboxState.UNSELECTED;
80
+ }
81
+ if (value.length === potentialOptions.length) {
82
+ return CheckboxState.SELECTED;
83
+ }
84
+ return CheckboxState.INDETERMINATE;
85
+ })());
86
+ (0, react_1.useEffect)(() => {
87
+ if (selectAllRef.current) {
88
+ selectAllRef.current.indeterminate =
89
+ selectAllCheckboxState === CheckboxState.INDETERMINATE;
90
+ }
91
+ }, [selectAllCheckboxState]);
58
92
  (0, react_1.useEffect)(() => {
59
93
  if (options.length > 0 && options?.[0]?.value === 'EXCEEDS_LIMIT') {
60
94
  setExceedsLimit(true);
@@ -63,7 +97,10 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
63
97
  setExceedsLimit(false);
64
98
  }
65
99
  }, [options]);
66
- (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false), showModal);
100
+ (0, hooks_1.useOnClickOutside)(modalRef, (event) => {
101
+ if (!buttonRef.current?.contains(event.target))
102
+ setShowModal(false);
103
+ }, showModal);
67
104
  (0, react_1.useEffect)(() => {
68
105
  if (!value) {
69
106
  setSelectedOptions([]);
@@ -78,12 +115,15 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
78
115
  }
79
116
  debounceTimeoutId.current = setTimeout(() => {
80
117
  onChange(updatedChangeEvent);
81
- }, 500);
118
+ }, 200);
82
119
  };
83
- const filteredItems = react_1.default.useMemo(function () {
120
+ // FIXME: Hacked this to display selected options that have been filtered out, which is good
121
+ // But they don't have their proper labels, since we haven't stored/passed in the label
122
+ const filteredItems = react_1.default.useMemo(() => {
84
123
  // Sort null to top
85
124
  if (searchQuery === '') {
86
- return options.sort((a, b) => {
125
+ return potentialOptions
126
+ .sort((a, b) => {
87
127
  if (a.value === null) {
88
128
  return -1;
89
129
  }
@@ -91,9 +131,10 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
91
131
  return 1;
92
132
  }
93
133
  return 0;
94
- });
134
+ })
135
+ .slice(0, 20);
95
136
  }
96
- return options
137
+ return potentialOptions
97
138
  .filter((option) => {
98
139
  if (!option) {
99
140
  return false;
@@ -110,10 +151,10 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
110
151
  if (b.value === null) {
111
152
  return 1;
112
153
  }
113
- return a.label.localeCompare(b.label);
154
+ return 0;
114
155
  })
115
156
  .slice(0, 20);
116
- }, [options, searchQuery]);
157
+ }, [potentialOptions, searchQuery]);
117
158
  const nullLabel = (0, react_1.useMemo)(() => {
118
159
  return filteredItems.some((item) => item.value === '-') ? 'None' : '-';
119
160
  }, [filteredItems]);
@@ -122,7 +163,7 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
122
163
  borderRadius: '6px',
123
164
  width: width,
124
165
  minWidth: width,
125
- }, ref: modalRef, children: [label && ((0, jsx_runtime_1.jsx)("div", { style: {
166
+ }, children: [label && ((0, jsx_runtime_1.jsx)("div", { style: {
126
167
  fontSize: 14,
127
168
  color: theme?.secondaryTextColor,
128
169
  fontFamily: theme?.fontFamily,
@@ -150,7 +191,7 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
150
191
  height: 40,
151
192
  minHeight: 40,
152
193
  maxHeight: 40,
153
- }, className: 'quill-select-button', onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; }
194
+ }, className: 'quill-select-button', onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, ref: buttonRef, children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill-select-button { background: ${theme?.backgroundColor}; }
154
195
  .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }
155
196
  .quill-select-button:disabled {
156
197
  cursor: not-allowed;
@@ -181,13 +222,13 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
181
222
  maxHeight: '50vh',
182
223
  overflow: 'scroll',
183
224
  fontSize: 14,
184
- }, children: [!exceedsLimit && options && options.length > 20 && ((0, jsx_runtime_1.jsx)(exports.ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
185
- setSearchQuery(value);
186
- } })), !exceedsLimit && options && options.length > 20 && ((0, jsx_runtime_1.jsx)("div", { style: {
187
- height: 9,
188
- width: 230,
189
- borderTop: '1px solid #e7e7e7',
190
- } })), !isLoading &&
225
+ }, ref: modalRef, children: [!exceedsLimit && options && options.length > 20 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
226
+ setSearchQuery(value);
227
+ } }), (0, jsx_runtime_1.jsx)("div", { style: {
228
+ height: 9,
229
+ width: 230,
230
+ borderTop: '1px solid #e7e7e7',
231
+ } })] })), !isLoading &&
191
232
  (!filteredItems || filteredItems.length === 0 || exceedsLimit) && ((0, jsx_runtime_1.jsxs)("div", { style: {
192
233
  display: 'flex',
193
234
  alignItems: 'center',
@@ -207,9 +248,9 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
207
248
  gap: 6,
208
249
  overflow: 'hidden',
209
250
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
210
- .quill-option {
211
- background: white;
212
- }
251
+ .quill-option {
252
+ background: white;
253
+ }
213
254
  .quill-option:hover {
214
255
  background: #F4F4F5;
215
256
  }
@@ -218,60 +259,121 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
218
259
  whiteSpace: 'nowrap',
219
260
  overflow: 'hidden',
220
261
  cursor: 'default',
221
- }, children: exceedsLimit ? 'Too many options' : 'No options available' })] })), !exceedsLimit && !isLoading ? (filteredItems.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
222
- display: 'flex',
223
- alignItems: 'center',
224
- padding: 8,
225
- margin: 0,
226
- boxSizing: 'border-box',
227
- borderWidth: 0,
228
- fontSize: 14,
229
- borderStyle: 'solid',
230
- borderColor: theme?.borderColor,
231
- borderRadius: 4,
232
- fontFamily: theme?.fontFamily,
233
- textOverflow: 'ellipsis',
234
- whiteSpace: 'nowrap',
235
- height: 34,
236
- minHeight: 34,
237
- gap: 6,
238
- overflow: 'hidden',
239
- }, className: "quill-option", onClick: () => {
240
- // Manually create a synthetic ChangeEvent and pass it to callback
241
- const changeEvent = { target: { value: option.value } };
242
- let updateSelctedOptions = [...selectedOptions];
243
- if (selectedOptions.includes(changeEvent.target.value)) {
244
- updateSelctedOptions = selectedOptions.filter((opt) => opt !== changeEvent.target.value);
245
- setSelectedOptions(updateSelctedOptions);
246
- }
247
- else {
248
- updateSelctedOptions = [
249
- ...updateSelctedOptions,
250
- changeEvent.target.value,
251
- ];
252
- setSelectedOptions(updateSelctedOptions);
253
- }
254
- const updatedChangeEvent = {
255
- target: { value: updateSelctedOptions.join(',') },
256
- };
257
- if (updateSelctedOptions.length === 0) {
258
- updatedChangeEvent.target.value = '';
259
- }
260
- debounce(updatedChangeEvent);
261
- }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
262
+ }, children: exceedsLimit ? 'Too many options' : 'No options available' })] })), !exceedsLimit && !isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [searchQuery === '' && potentialOptions.length > 0 && ((0, jsx_runtime_1.jsxs)("button", { style: {
263
+ display: 'flex',
264
+ alignItems: 'center',
265
+ padding: 8,
266
+ margin: 0,
267
+ boxSizing: 'border-box',
268
+ borderWidth: 0,
269
+ fontSize: 14,
270
+ borderStyle: 'solid',
271
+ borderColor: theme?.borderColor,
272
+ borderRadius: 4,
273
+ fontFamily: theme?.fontFamily,
274
+ textOverflow: 'ellipsis',
275
+ whiteSpace: 'nowrap',
276
+ height: 34,
277
+ minHeight: 34,
278
+ gap: 6,
279
+ overflow: 'hidden',
280
+ }, className: "quill-option", onClick: () => {
281
+ // if any are selected, deselect all
282
+ if (selectAllCheckboxState === CheckboxState.SELECTED ||
283
+ selectAllCheckboxState === CheckboxState.INDETERMINATE) {
284
+ setSelectAllCheckboxState(CheckboxState.UNSELECTED);
285
+ setSelectedOptions([]);
286
+ const updatedChangeEvent = {
287
+ target: { value: [] },
288
+ };
289
+ debounce(updatedChangeEvent);
290
+ return;
291
+ }
292
+ // if none are selected, select all
293
+ const updatedChangeEvent = {
294
+ target: {
295
+ value: options.map((opt) => opt.value),
296
+ },
297
+ };
298
+ setSelectAllCheckboxState(CheckboxState.SELECTED);
299
+ setSelectedOptions(options.map((opt) => opt.value));
300
+ debounce(updatedChangeEvent);
301
+ }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
262
302
  .quill-option {
263
303
  background: white;
264
304
  }
305
+ .quill-option:hover {
306
+ background: #F4F4F5;
307
+ }
308
+ ` }), (0, jsx_runtime_1.jsx)("input", { ref: selectAllRef, type: "checkbox", checked: selectAllCheckboxState === CheckboxState.SELECTED, style: { width: '14px', height: '14px', margin: 'auto 0' }, readOnly: true }), (0, jsx_runtime_1.jsx)("span", { style: {
309
+ textOverflow: 'ellipsis',
310
+ whiteSpace: 'nowrap',
311
+ overflow: 'hidden',
312
+ }, children: 'Select all' })] })), filteredItems.map((option) => ((0, jsx_runtime_1.jsxs)("button", { style: {
313
+ display: 'flex',
314
+ alignItems: 'center',
315
+ padding: 8,
316
+ margin: 0,
317
+ boxSizing: 'border-box',
318
+ borderWidth: 0,
319
+ fontSize: 14,
320
+ borderStyle: 'solid',
321
+ borderColor: theme?.borderColor,
322
+ borderRadius: 4,
323
+ fontFamily: theme?.fontFamily,
324
+ textOverflow: 'ellipsis',
325
+ whiteSpace: 'nowrap',
326
+ height: 34,
327
+ minHeight: 34,
328
+ gap: 6,
329
+ overflow: 'hidden',
330
+ }, className: "quill-option", onClick: () => {
331
+ // Manually create a synthetic ChangeEvent and pass it to callback
332
+ const changeEvent = { target: { value: option.value } };
333
+ let updateSelectedOptions = [...selectedOptions];
334
+ if (selectedOptions.includes(changeEvent.target.value)) {
335
+ updateSelectedOptions = selectedOptions.filter((opt) => opt !== changeEvent.target.value);
336
+ if (updateSelectedOptions.length === 0) {
337
+ setSelectAllCheckboxState(CheckboxState.UNSELECTED);
338
+ }
339
+ else {
340
+ setSelectAllCheckboxState(CheckboxState.INDETERMINATE);
341
+ }
342
+ setSelectedOptions(updateSelectedOptions);
343
+ }
344
+ else {
345
+ updateSelectedOptions = [
346
+ ...updateSelectedOptions,
347
+ changeEvent.target.value,
348
+ ];
349
+ if (updateSelectedOptions.length === potentialOptions.length) {
350
+ setSelectAllCheckboxState(CheckboxState.SELECTED);
351
+ }
352
+ else {
353
+ setSelectAllCheckboxState(CheckboxState.INDETERMINATE);
354
+ }
355
+ setSelectedOptions(updateSelectedOptions);
356
+ }
357
+ const updatedChangeEvent = {
358
+ target: { value: updateSelectedOptions },
359
+ };
360
+ if (updateSelectedOptions.length === 0) {
361
+ updatedChangeEvent.target.value = [];
362
+ }
363
+ debounce(updatedChangeEvent);
364
+ }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
365
+ .quill-option {
366
+ background: white;
367
+ }
265
368
  .quill-option:hover {
266
369
  background: #F4F4F5;
267
370
  }
268
371
  ` }), (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: {
269
- textOverflow: 'ellipsis',
270
- whiteSpace: 'nowrap',
271
- overflow: 'hidden',
272
- }, children: option.label ?? nullLabel })] }, option.value)))) : isLoading ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) })) : null] }))] }));
372
+ textOverflow: 'ellipsis',
373
+ whiteSpace: 'nowrap',
374
+ overflow: 'hidden',
375
+ }, children: option.label ?? nullLabel })] }, option.value)))] })) : isLoading ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) })) : null] }))] }));
273
376
  }
274
- exports.QuillMultiSelectComponentWithCombo = QuillMultiSelectComponentWithCombo;
275
377
  const ListboxTextInput = ({ value, onChange, placeholder, }) => {
276
378
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
277
379
  position: 'relative',
@@ -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,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,oBAAoB,2CA8OtB"}
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,2CAqPtB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QuillSelectComponent = void 0;
3
+ exports.QuillSelectComponent = QuillSelectComponent;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const hooks_1 = require("../hooks");
6
6
  const UiComponents_1 = require("./UiComponents");
@@ -13,7 +13,11 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
13
13
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
14
14
  const [showModal, setShowModal] = (0, react_1.useState)(false);
15
15
  const modalRef = (0, react_1.useRef)(null);
16
- (0, hooks_1.useOnClickOutside)(modalRef, () => setShowModal(false), showModal);
16
+ const buttonRef = (0, react_1.useRef)(null);
17
+ (0, hooks_1.useOnClickOutside)(modalRef, (event) => {
18
+ if (!buttonRef.current?.contains(event.target))
19
+ setShowModal(false);
20
+ }, showModal);
17
21
  const sortedItems = (0, react_1.useMemo)(() => {
18
22
  // Sort null to top
19
23
  return options.sort((a, b) => {
@@ -29,10 +33,8 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
29
33
  const nullLabel = (0, react_1.useMemo)(() => {
30
34
  return sortedItems.some((item) => item.value === '-') ? 'None' : '-';
31
35
  }, [sortedItems]);
32
- return ((0, jsx_runtime_1.jsxs)("div", { ref: modalRef, style: {
36
+ return ((0, jsx_runtime_1.jsxs)("div", { style: {
33
37
  position: 'relative',
34
- // width: 200,
35
- // minWidth: 200,
36
38
  borderRadius: '6px',
37
39
  width: width,
38
40
  minWidth: width,
@@ -63,7 +65,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
63
65
  height: 40,
64
66
  minHeight: 40,
65
67
  maxHeight: 40,
66
- }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, children: [(0, jsx_runtime_1.jsx)("style", { children: `
68
+ }, className: "quill-select-button", onClick: () => setShowModal((showModal) => !showModal), disabled: disabled, ref: buttonRef, children: [(0, jsx_runtime_1.jsx)("style", { children: `
67
69
  .quill-select-button { background: ${theme?.backgroundColor}; }
68
70
  .quill-select-button:hover { background: ${theme?.hoverBackgroundColor}; }
69
71
  .quill-select-button:disabled, {
@@ -94,7 +96,7 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
94
96
  fontFamily: theme?.fontFamily,
95
97
  maxHeight: '50vh',
96
98
  overflow: 'scroll',
97
- }, children: [!isLoading && (!hideEmptyOption || !options.length) && ((0, jsx_runtime_1.jsxs)("button", { style: {
99
+ }, ref: modalRef, children: [!isLoading && (!hideEmptyOption || !options.length) && ((0, jsx_runtime_1.jsxs)("button", { style: {
98
100
  display: 'flex',
99
101
  alignItems: 'center',
100
102
  justifyContent: 'space-between',
@@ -160,4 +162,3 @@ function QuillSelectComponent({ options, value, width, onChange, label, isLoadin
160
162
  overflow: 'hidden',
161
163
  }, children: option.label ?? '-' })] }, option.label)))) : ((0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}))] }))] }));
162
164
  }
163
- exports.QuillSelectComponent = QuillSelectComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,2CA2RtB"}
1
+ {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,2CAkTtB"}