@quillsql/admin 1.6.3 → 1.7.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 (304) hide show
  1. package/dist/cjs/Admin.d.ts +14 -8
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +134 -25
  4. package/dist/cjs/AdminProvider.d.ts +26 -5
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +174 -85
  7. package/dist/cjs/api/ConnectionClient.d.ts +26 -12
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +198 -31
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  11. package/dist/cjs/assets/XIcon.d.ts.map +1 -1
  12. package/dist/cjs/components/CardSection.d.ts.map +1 -1
  13. package/dist/cjs/components/CardSection.js +4 -2
  14. package/dist/cjs/components/ClipboardButton.d.ts.map +1 -1
  15. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  16. package/dist/cjs/components/DashboardSelectPopover.js +46 -7
  17. package/dist/cjs/components/DatabaseSelector.d.ts +3 -1
  18. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  19. package/dist/cjs/components/DatabaseSelector.js +3 -2
  20. package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
  21. package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +31 -7
  22. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
  23. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
  24. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  25. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  26. package/dist/cjs/components/DropDownMenuWithLabel.js +8 -1
  27. package/dist/cjs/components/DynamicBanner.d.ts +3 -2
  28. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
  29. package/dist/cjs/components/DynamicBanner.js +7 -2
  30. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  31. package/dist/cjs/components/EmptyDashboardComponent/index.js +3 -2
  32. package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
  33. package/dist/cjs/components/EmptyVirtualTablesComponent.js +4 -1
  34. package/dist/cjs/components/FormTooltip.d.ts.map +1 -1
  35. package/dist/cjs/components/FormTooltip.js +4 -1
  36. package/dist/cjs/components/InputLabel.d.ts.map +1 -1
  37. package/dist/cjs/components/InputLabel.js +4 -2
  38. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  39. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  40. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  41. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  42. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -14
  43. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  44. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  45. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +128 -35
  46. package/dist/cjs/components/OrgSelect.d.ts +0 -6
  47. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  48. package/dist/cjs/components/OrgSelect.js +79 -47
  49. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +8 -2
  50. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillMultiSelectWithCombo.js +351 -167
  52. package/dist/cjs/components/QuillPopover.d.ts.map +1 -1
  53. package/dist/cjs/components/QuillPopover.js +4 -5
  54. package/dist/cjs/components/QuillSelect.js +9 -9
  55. package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
  56. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  57. package/dist/cjs/components/QuillSelectWithCombo.js +47 -21
  58. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
  59. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  60. package/dist/cjs/components/SqlTextEditor.js +15 -2
  61. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
  62. package/dist/cjs/components/Tenants/EditTenant.js +51 -8
  63. package/dist/cjs/components/UiComponents.d.ts +16 -43
  64. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  65. package/dist/cjs/components/UiComponents.js +162 -33
  66. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  67. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +163 -51
  68. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  69. package/dist/cjs/forms/client_onboard/ConnectSchema.js +36 -2
  70. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  71. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  72. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +60 -22
  73. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +2 -1
  74. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +2 -1
  75. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  76. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +101 -15
  77. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
  78. package/dist/cjs/hooks/useDatabaseSchema.js +18 -2
  79. package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
  80. package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
  81. package/dist/cjs/hooks/useLongLoading.js +67 -0
  82. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  83. package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
  84. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  85. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
  86. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
  87. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
  88. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  89. package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
  90. package/dist/cjs/modals/CodePreview.js +7 -2
  91. package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
  92. package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
  93. package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
  94. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
  95. package/dist/cjs/modals/EditEnvironmentModal.js +74 -17
  96. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  97. package/dist/cjs/modals/EditFiltersModal.js +19 -15
  98. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  99. package/dist/cjs/modals/NewDashboardModal.js +54 -28
  100. package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
  101. package/dist/cjs/modals/PromoteReportModal.js +15 -4
  102. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  103. package/dist/cjs/modals/PromoteViewModal.js +13 -2
  104. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  105. package/dist/cjs/primitives/ButtonPrimitive.js +10 -6
  106. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
  107. package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
  108. package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
  109. package/dist/cjs/primitives/HeaderPrimitive.js +11 -7
  110. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
  111. package/dist/cjs/primitives/PopoverPrimitive.js +19 -6
  112. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  113. package/dist/cjs/primitives/SecondaryButtonPrimitive.js +5 -3
  114. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
  115. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
  116. package/dist/cjs/public_components/ChartQueryBuilder.js +17 -7
  117. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  118. package/dist/cjs/public_components/CreateEnvironment.js +68 -30
  119. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  120. package/dist/cjs/public_components/DashboardManager.js +71 -4
  121. package/dist/cjs/public_components/EnvSelectPopover.d.ts +2 -1
  122. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
  123. package/dist/cjs/public_components/EnvSelectPopover.js +48 -8
  124. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
  125. package/dist/cjs/public_components/VirtualTableManager.js +124 -10
  126. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +41 -2
  127. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  128. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  129. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  130. package/dist/cjs/utils/columnProcessing.js +7 -1
  131. package/dist/cjs/utils/constants.d.ts +1 -0
  132. package/dist/cjs/utils/constants.d.ts.map +1 -1
  133. package/dist/cjs/utils/constants.js +5 -1
  134. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  135. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  136. package/dist/cjs/utils/dataFetcher.js +0 -1
  137. package/dist/cjs/utils/databases.d.ts +6 -1
  138. package/dist/cjs/utils/databases.d.ts.map +1 -1
  139. package/dist/cjs/utils/databases.js +23 -5
  140. package/dist/cjs/utils/delay.d.ts.map +1 -1
  141. package/dist/cjs/utils/filter.d.ts +17 -21
  142. package/dist/cjs/utils/filter.d.ts.map +1 -1
  143. package/dist/cjs/utils/filter.js +6 -6
  144. package/dist/cjs/utils/report.d.ts +5 -5
  145. package/dist/cjs/utils/report.d.ts.map +1 -1
  146. package/dist/cjs/utils/schema.d.ts +6 -3
  147. package/dist/cjs/utils/schema.d.ts.map +1 -1
  148. package/dist/cjs/utils/schema.js +42 -3
  149. package/dist/cjs/utils/table.d.ts.map +1 -1
  150. package/dist/cjs/utils/tenants.d.ts.map +1 -1
  151. package/dist/cjs/utils/ui.d.ts.map +1 -1
  152. package/dist/esm/Admin.d.ts +14 -8
  153. package/dist/esm/Admin.d.ts.map +1 -1
  154. package/dist/esm/Admin.js +135 -26
  155. package/dist/esm/AdminProvider.d.ts +26 -5
  156. package/dist/esm/AdminProvider.d.ts.map +1 -1
  157. package/dist/esm/AdminProvider.js +177 -88
  158. package/dist/esm/api/ConnectionClient.d.ts +26 -12
  159. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  160. package/dist/esm/api/ConnectionClient.js +196 -31
  161. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  162. package/dist/esm/assets/XIcon.d.ts.map +1 -1
  163. package/dist/esm/components/CardSection.d.ts.map +1 -1
  164. package/dist/esm/components/CardSection.js +4 -2
  165. package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
  166. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  167. package/dist/esm/components/DashboardSelectPopover.js +47 -8
  168. package/dist/esm/components/DatabaseSelector.d.ts +3 -1
  169. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  170. package/dist/esm/components/DatabaseSelector.js +3 -2
  171. package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
  172. package/dist/esm/components/DateRangePicker/SingleDatePicker.js +31 -7
  173. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
  174. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
  175. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  176. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  177. package/dist/esm/components/DropDownMenuWithLabel.js +9 -2
  178. package/dist/esm/components/DynamicBanner.d.ts +3 -2
  179. package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
  180. package/dist/esm/components/DynamicBanner.js +7 -2
  181. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  182. package/dist/esm/components/EmptyDashboardComponent/index.js +3 -2
  183. package/dist/esm/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
  184. package/dist/esm/components/EmptyVirtualTablesComponent.js +4 -1
  185. package/dist/esm/components/FormTooltip.d.ts.map +1 -1
  186. package/dist/esm/components/FormTooltip.js +4 -1
  187. package/dist/esm/components/InputLabel.d.ts.map +1 -1
  188. package/dist/esm/components/InputLabel.js +4 -2
  189. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  190. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  191. package/dist/esm/components/InternalDashboard/DashboardFilter.js +1 -1
  192. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  193. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  194. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -11
  195. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  196. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  197. package/dist/esm/components/InternalDashboard/InternalDashboard.js +129 -36
  198. package/dist/esm/components/OrgSelect.d.ts +0 -6
  199. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  200. package/dist/esm/components/OrgSelect.js +79 -45
  201. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +8 -2
  202. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  203. package/dist/esm/components/QuillMultiSelectWithCombo.js +351 -167
  204. package/dist/esm/components/QuillPopover.d.ts.map +1 -1
  205. package/dist/esm/components/QuillPopover.js +4 -5
  206. package/dist/esm/components/QuillSelect.js +9 -9
  207. package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
  208. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  209. package/dist/esm/components/QuillSelectWithCombo.js +47 -21
  210. package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
  211. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  212. package/dist/esm/components/SqlTextEditor.js +15 -2
  213. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
  214. package/dist/esm/components/Tenants/EditTenant.js +51 -8
  215. package/dist/esm/components/UiComponents.d.ts +16 -43
  216. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  217. package/dist/esm/components/UiComponents.js +127 -29
  218. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  219. package/dist/esm/forms/client_onboard/ConnectDatabase.js +163 -51
  220. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  221. package/dist/esm/forms/client_onboard/ConnectSchema.js +36 -2
  222. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  223. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  224. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +61 -23
  225. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +2 -1
  226. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +2 -1
  227. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  228. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +103 -17
  229. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
  230. package/dist/esm/hooks/useDatabaseSchema.js +19 -3
  231. package/dist/esm/hooks/useLongLoading.d.ts +13 -0
  232. package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
  233. package/dist/esm/hooks/useLongLoading.js +64 -0
  234. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  235. package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
  236. package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  237. package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
  238. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
  239. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
  240. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  241. package/dist/esm/modals/CodePreview.d.ts.map +1 -1
  242. package/dist/esm/modals/CodePreview.js +7 -2
  243. package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
  244. package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
  245. package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
  246. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
  247. package/dist/esm/modals/EditEnvironmentModal.js +74 -17
  248. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  249. package/dist/esm/modals/EditFiltersModal.js +21 -17
  250. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  251. package/dist/esm/modals/NewDashboardModal.js +55 -29
  252. package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
  253. package/dist/esm/modals/PromoteReportModal.js +15 -4
  254. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  255. package/dist/esm/modals/PromoteViewModal.js +13 -2
  256. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  257. package/dist/esm/primitives/ButtonPrimitive.js +10 -6
  258. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
  259. package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
  260. package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
  261. package/dist/esm/primitives/HeaderPrimitive.js +11 -7
  262. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
  263. package/dist/esm/primitives/PopoverPrimitive.js +19 -6
  264. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  265. package/dist/esm/primitives/SecondaryButtonPrimitive.js +5 -3
  266. package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
  267. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
  268. package/dist/esm/public_components/ChartQueryBuilder.js +18 -8
  269. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  270. package/dist/esm/public_components/CreateEnvironment.js +68 -30
  271. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  272. package/dist/esm/public_components/DashboardManager.js +72 -5
  273. package/dist/esm/public_components/EnvSelectPopover.d.ts +2 -1
  274. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
  275. package/dist/esm/public_components/EnvSelectPopover.js +49 -9
  276. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
  277. package/dist/esm/public_components/VirtualTableManager.js +125 -11
  278. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +41 -2
  279. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  280. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  281. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  282. package/dist/esm/utils/columnProcessing.js +7 -2
  283. package/dist/esm/utils/constants.d.ts +1 -0
  284. package/dist/esm/utils/constants.d.ts.map +1 -1
  285. package/dist/esm/utils/constants.js +4 -0
  286. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  287. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  288. package/dist/esm/utils/dataFetcher.js +0 -1
  289. package/dist/esm/utils/databases.d.ts +6 -1
  290. package/dist/esm/utils/databases.d.ts.map +1 -1
  291. package/dist/esm/utils/databases.js +23 -5
  292. package/dist/esm/utils/delay.d.ts.map +1 -1
  293. package/dist/esm/utils/filter.d.ts +17 -21
  294. package/dist/esm/utils/filter.d.ts.map +1 -1
  295. package/dist/esm/utils/filter.js +5 -5
  296. package/dist/esm/utils/report.d.ts +5 -5
  297. package/dist/esm/utils/report.d.ts.map +1 -1
  298. package/dist/esm/utils/schema.d.ts +6 -3
  299. package/dist/esm/utils/schema.d.ts.map +1 -1
  300. package/dist/esm/utils/schema.js +42 -3
  301. package/dist/esm/utils/table.d.ts.map +1 -1
  302. package/dist/esm/utils/tenants.d.ts.map +1 -1
  303. package/dist/esm/utils/ui.d.ts.map +1 -1
  304. package/package.json +1 -1
@@ -27,8 +27,10 @@ const PopoverPrimitive_1 = require("../primitives/PopoverPrimitive");
27
27
  const CodePreview_1 = __importDefault(require("../modals/CodePreview"));
28
28
  const SavedQueriesModal_1 = __importDefault(require("../modals/SavedQueriesModal"));
29
29
  const InternalDashboard_1 = require("../components/InternalDashboard/InternalDashboard");
30
+ const useLongLoading_1 = require("../hooks/useLongLoading");
31
+ const CreateEnvironmentModal_1 = __importDefault(require("../modals/CreateEnvironmentModal"));
30
32
  function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTableManager, containerStyle, }) {
31
- const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, } = (0, AdminProvider_1.useAdmin)();
33
+ const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, eventTracking, } = (0, AdminProvider_1.useAdmin)();
32
34
  const parentRef = (0, react_1.useRef)(null);
33
35
  const envSelectPopoverRef = (0, react_1.useRef)(null);
34
36
  const dashboardSelectPopoverRef = (0, react_1.useRef)(null);
@@ -39,8 +41,13 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
39
41
  const [editEnvironmentModalIsOpen, setEditEnvironmentModalIsOpen] = (0, react_1.useState)(false);
40
42
  //FIXME: we don't want to lift up this state
41
43
  const [userFilters, setUserFilters] = (0, react_1.useState)([]);
42
- const { data: dashboardConfig, reload: reloadDashboard } = (0, react_2.useDashboard)(state.selectedDashboard, userFilters);
44
+ const [showCreateEnvironmentModal, setShowCreateEnvironmentModal] = (0, react_1.useState)(false);
45
+ const { data: dashboardConfig, reload: reloadDashboard } = (0, react_2.useDashboardInternal)(state.selectedDashboard, userFilters);
43
46
  const { dashboards, isLoading: dashboardsLoading } = (0, react_2.useDashboards)();
47
+ (0, useLongLoading_1.useLongLoading)(dashboardsLoading, {
48
+ origin: 'DashboardManager',
49
+ loadDescription: 'Loading dashboards',
50
+ });
44
51
  const { setSelectedDashboard } = (0, useDashboardManager_1.useDashboardManager)();
45
52
  // const [editMode, setEditMode] = useState(true);
46
53
  const [autoPromoteVirtualTables, setAutoPromoteVirtualTables] = (0, react_1.useState)(true);
@@ -61,6 +68,15 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
61
68
  type: 'SET_ACTIVE_COMPONENT',
62
69
  payload: 'Report',
63
70
  });
71
+ eventTracking?.addBreadcrumb?.({
72
+ message: 'Clicked report in DashboardManager',
73
+ data: {
74
+ report: elem.id,
75
+ },
76
+ category: 'navigation',
77
+ level: 'info',
78
+ timestamp: Date.now(),
79
+ });
64
80
  }, [dispatch]);
65
81
  const hoverActions = (data) => {
66
82
  return ((0, jsx_runtime_1.jsx)("div", { style: {
@@ -84,7 +100,7 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
84
100
  gap: 4,
85
101
  }, onClick: async (event) => {
86
102
  event.stopPropagation();
87
- if (await (0, Admin_1.deleteReport)(data.id, state, getToken)) {
103
+ if (await (0, Admin_1.deleteReport)(data.id, state, getToken, eventTracking)) {
88
104
  reloadDashboard(undefined, false, {
89
105
  report: { id: data.id },
90
106
  action: 'delete',
@@ -158,9 +174,23 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
158
174
  }
159
175
  catch (error) {
160
176
  console.error('Promotion failed:', error);
177
+ eventTracking?.logError?.({
178
+ type: 'bug', // TODO: determine type
179
+ severity: 'high',
180
+ message: 'Error promoting dashboard',
181
+ errorMessage: error.message,
182
+ errorStack: error.stack,
183
+ errorData: {
184
+ caller: 'DashboardManager',
185
+ function: 'handlePromote',
186
+ },
187
+ });
161
188
  alert('Could not promote this dashboard.');
162
189
  }
163
190
  };
191
+ if (showCreateEnvironmentModal) {
192
+ return ((0, jsx_runtime_1.jsx)(CreateEnvironmentModal_1.default, { showCreateEnvironmentModal: showCreateEnvironmentModal, setShowCreateEnvironmentModal: setShowCreateEnvironmentModal }));
193
+ }
164
194
  return ((0, jsx_runtime_1.jsxs)("div", { style: containerStyle, children: [(state.activeComponent === 'Report Builder' ||
165
195
  state.activeComponent === 'SQL Editor') && ((0, jsx_runtime_1.jsx)(ChartQueryBuilder_1.default, { activeComponent: state.activeComponent, destinationDashboard: state.selectedDashboard ??
166
196
  dashboards?.filter((d) => d.name !== constants_1.SAVED_QUERIES_DASHBOARD)?.[0]
@@ -234,6 +264,8 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
234
264
  setClient(client, true);
235
265
  }, onSelectedEditEnvironment: () => {
236
266
  setEditEnvironmentModalIsOpen(true);
267
+ }, onCreateNewEnvironment: () => {
268
+ setShowCreateEnvironmentModal(true);
237
269
  }, theme: state.theme, parentRef: envSelectPopoverRef, isLoading: clientLoading }) }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, ref: dashboardSelectPopoverRef, children: (0, jsx_runtime_1.jsx)(components_1.DashboardSelectPopover, { dashboards: dashboards?.filter((d) => d.name !== constants_1.SAVED_QUERIES_DASHBOARD)?.length
238
270
  ? dashboards
239
271
  .map((elem) => {
@@ -267,6 +299,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
267
299
  type: 'SET_ACTIVE_COMPONENT',
268
300
  payload: 'CodePreview',
269
301
  });
302
+ eventTracking?.addBreadcrumb?.({
303
+ message: 'Opened embed preview in DashboardManager',
304
+ category: 'navigation',
305
+ level: 'info',
306
+ timestamp: Date.now(),
307
+ });
270
308
  }, label: "Embed Preview" }), (0, jsx_runtime_1.jsx)(PopoverPrimitive_1.Popover, { content: (0, jsx_runtime_1.jsxs)("div", { style: {
271
309
  display: 'flex',
272
310
  flexDirection: 'column',
@@ -280,6 +318,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
280
318
  type: 'SET_ACTIVE_COMPONENT',
281
319
  payload: 'Report Builder',
282
320
  });
321
+ eventTracking?.addBreadcrumb?.({
322
+ message: 'Opened report builder in DashboardManager',
323
+ category: 'navigation',
324
+ level: 'info',
325
+ timestamp: Date.now(),
326
+ });
283
327
  }, label: "Report Builder \u2197" }), (0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { onClick: () => {
284
328
  if (!state.selectedDashboard) {
285
329
  return;
@@ -288,6 +332,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
288
332
  type: 'SET_ACTIVE_COMPONENT',
289
333
  payload: 'SQL Editor',
290
334
  });
335
+ eventTracking?.addBreadcrumb?.({
336
+ message: 'Opened SQL editor in DashboardManager',
337
+ category: 'navigation',
338
+ level: 'info',
339
+ timestamp: Date.now(),
340
+ });
291
341
  }, label: "SQL Editor \u2197" }), (0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { onClick: () => {
292
342
  if (!state.selectedDashboard) {
293
343
  return;
@@ -296,6 +346,12 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
296
346
  type: 'SET_ACTIVE_COMPONENT',
297
347
  payload: 'SavedQueries',
298
348
  });
349
+ eventTracking?.addBreadcrumb?.({
350
+ message: 'Opened saved queries in DashboardManager',
351
+ category: 'navigation',
352
+ level: 'info',
353
+ timestamp: Date.now(),
354
+ });
299
355
  }, label: "Saved Queries \u2197" })] }), trigger: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive
300
356
  // onClick={() => {
301
357
  // if (!state.selectedDashboard) {
@@ -342,8 +398,10 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
342
398
  justifyContent: 'center',
343
399
  width: 260,
344
400
  }, children: [(0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#565656", height: 26, width: 26, children: [(0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M2.25 13.5a8.25 8.25 0 0 1 8.25-8.25.75.75 0 0 1 .75.75v6.75H18a.75.75 0 0 1 .75.75 8.25 8.25 0 0 1-16.5 0Z", clipRule: "evenodd" }), (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M12.75 3a.75.75 0 0 1 .75-.75 8.25 8.25 0 0 1 8.25 8.25.75.75 0 0 1-.75.75h-7.5a.75.75 0 0 1-.75-.75V3Z", clipRule: "evenodd" })] }), (0, jsx_runtime_1.jsx)("div", { style: {
345
- fontSize: 16,
401
+ fontSize: state.theme?.fontSize,
346
402
  fontWeight: 500,
403
+ fontFamily: state.theme?.fontFamily,
404
+ fontSizeAdjust: 0.5,
347
405
  color: '#565656',
348
406
  paddingTop: 8,
349
407
  paddingBottom: 8,
@@ -357,6 +415,15 @@ function DashboardManager({ navigateToVirtualTableManager: navigateToVirtualTabl
357
415
  dashboardsLoading ||
358
416
  dashboards?.filter((d) => d.name !== constants_1.SAVED_QUERIES_DASHBOARD)
359
417
  .length ? ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%', position: 'relative' }, children: (0, jsx_runtime_1.jsx)(InternalDashboard_1.InternalDashboard, { name: state.selectedDashboard ?? '', containerStyle: { padding: 25, width: '100%' }, onClickReport: handleClickReport, hoverActions: hoverActions, onUserFiltersUpdated: setUserFilters, parentLoading: clientLoading || dashboardsLoading, onManageDashboard: () => {
418
+ eventTracking?.addBreadcrumb?.({
419
+ message: 'Opened manage dashboard in DashboardManager',
420
+ data: {
421
+ dashboard: state.selectedDashboard,
422
+ },
423
+ category: 'navigation',
424
+ level: 'info',
425
+ timestamp: Date.now(),
426
+ });
360
427
  setEditFilterModalIsOpen(true);
361
428
  } }) })) : null] }), !clientLoading && !dashboardsLoading && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(EditEnvironmentModal_1.EditEnvironmentModal, { isOpen: editEnvironmentModalIsOpen, setIsOpen: setEditEnvironmentModalIsOpen, onSave: async () => {
362
429
  await reloadDashboard(state.selectedDashboard ?? undefined);
@@ -6,7 +6,8 @@ interface EnvSelectPopoverProps {
6
6
  onSelectedEditEnvironment?: (environment: string) => void;
7
7
  parentRef: React.RefObject<HTMLDivElement>;
8
8
  isLoading?: boolean;
9
+ onCreateNewEnvironment?: () => void;
9
10
  }
10
- export default function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnvironment, parentRef, isLoading, }: EnvSelectPopoverProps): import("react/jsx-runtime").JSX.Element;
11
+ export default function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnvironment, parentRef, isLoading, onCreateNewEnvironment, }: EnvSelectPopoverProps): import("react/jsx-runtime").JSX.Element;
11
12
  export {};
12
13
  //# sourceMappingURL=EnvSelectPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnvSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/public_components/EnvSelectPopover.tsx"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,yBAAyB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,yBAAyB,EACzB,SAAS,EACT,SAAS,GACV,EAAE,qBAAqB,2CA4NvB"}
1
+ {"version":3,"file":"EnvSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/public_components/EnvSelectPopover.tsx"],"names":[],"mappings":"AAMA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;IACX,yBAAyB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,yBAAyB,EACzB,SAAS,EACT,SAAS,EACT,sBAAsB,GACvB,EAAE,qBAAqB,2CAsQvB"}
@@ -10,8 +10,9 @@ const AdminProvider_1 = require("../AdminProvider");
10
10
  const OrgSelect_1 = require("../components/OrgSelect");
11
11
  const MiniButtonPrimitive_1 = __importDefault(require("../primitives/MiniButtonPrimitive"));
12
12
  const UiComponents_1 = require("../components/UiComponents");
13
- function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnvironment, parentRef, isLoading, }) {
14
- const { state, dispatch } = (0, AdminProvider_1.useAdmin)();
13
+ const QuillMultiSelectWithCombo_1 = require("../components/QuillMultiSelectWithCombo");
14
+ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnvironment, parentRef, isLoading, onCreateNewEnvironment, }) {
15
+ const { state, dispatch, eventTracking } = (0, AdminProvider_1.useAdmin)();
15
16
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
16
17
  const [searchQuery, setSearchQuery] = (0, react_1.useState)('');
17
18
  const filteredClients = (0, react_1.useMemo)(() => {
@@ -25,6 +26,15 @@ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnv
25
26
  dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
26
27
  dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
27
28
  }
29
+ eventTracking?.addBreadcrumb?.({
30
+ message: 'Set client in EnvSelectPopover',
31
+ data: {
32
+ clientId: selectedClient._id || selectedClient.id,
33
+ },
34
+ category: 'navigation',
35
+ level: 'info',
36
+ timestamp: Date.now(),
37
+ });
28
38
  setClient(selectedClient);
29
39
  setIsOpen(false);
30
40
  };
@@ -84,24 +94,50 @@ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnv
84
94
  marginBottom: '4px',
85
95
  fontWeight: '600',
86
96
  color: theme.secondaryTextColor,
97
+ fontFamily: theme.fontFamily,
87
98
  }, children: "Environment" }), (0, jsx_runtime_1.jsx)(OrgSelect_1.Popover, { parentRef: parentRef, label: client?.name ?? 'Select environment', isOpen: isOpen, onClose: () => setIsOpen(false), style: {
88
99
  boxSizing: 'border-box',
89
100
  fontSize: 14,
90
101
  maxHeight: '50vh',
91
- }, setIsOpen: setIsOpen, onClick: () => { }, children: !isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(OrgSelect_1.ListboxTextInput, { id: "quill-search-bar", placeholder: "Search", value: searchQuery, onChange: setSearchQuery }), (0, jsx_runtime_1.jsx)("div", { style: { height: 9, width: 230, borderTop: '1px solid #e7e7e7' } }), (0, jsx_runtime_1.jsxs)("div", { style: { paddingTop: 8, paddingBottom: 8 }, children: [filteredClients.map((item) => ((0, jsx_runtime_1.jsx)(OrgSelect_1.ListboxRow, { setSelected: client._id !== item._id
102
+ }, setIsOpen: setIsOpen, onClick: () => { }, children: !isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(QuillMultiSelectWithCombo_1.ListboxTextInput, { id: "quill-search-bar", placeholder: "Search", value: searchQuery, onChange: (e) => {
103
+ setSearchQuery(e);
104
+ }, width: 180 }), (0, jsx_runtime_1.jsx)("div", { style: {
105
+ height: 9,
106
+ width: 230,
107
+ borderTop: `1px solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
108
+ } }), (0, jsx_runtime_1.jsxs)("div", { style: { paddingTop: 8, paddingBottom: 8 }, children: [filteredClients.map((item) => ((0, jsx_runtime_1.jsx)(OrgSelect_1.ListboxRow, { setSelected: client._id !== item._id
92
109
  ? () => handleItemClick(item)
93
110
  : undefined, item: item.name, isSelected: client._id === item._id, hoverActions: onSelectedEditEnvironment
94
111
  ? (item) => ((0, jsx_runtime_1.jsx)(MiniButtonPrimitive_1.default, { label: "Manage", onClick: () => {
95
112
  onSelectedEditEnvironment(item);
113
+ eventTracking?.addBreadcrumb?.({
114
+ message: 'Opened manage environment in EnvSelectPopover',
115
+ data: {
116
+ environment: item,
117
+ },
118
+ category: 'navigation',
119
+ level: 'info',
120
+ timestamp: Date.now(),
121
+ });
96
122
  setIsOpen(false);
97
123
  }, style: {
98
124
  marginRight: -8,
99
125
  marginTop: 'auto',
100
126
  marginBottom: 'auto',
127
+ fontFamily: theme.fontFamily,
128
+ color: theme.secondaryTextColor,
129
+ backgroundColor: theme.backgroundColor,
101
130
  } }))
102
- : undefined }, item._id))), (0, jsx_runtime_1.jsx)("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: (0, jsx_runtime_1.jsxs)("a", { href: '/onboard', style: {
131
+ : undefined }, item._id))), (0, jsx_runtime_1.jsx)("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: (0, jsx_runtime_1.jsxs)("a", { onClick: () => {
132
+ eventTracking?.addBreadcrumb?.({
133
+ message: 'Opened create new environment in EnvSelectPopover',
134
+ category: 'navigation',
135
+ level: 'info',
136
+ timestamp: Date.now(),
137
+ });
138
+ onCreateNewEnvironment?.();
139
+ }, style: {
103
140
  height: 42,
104
- color: '#384151',
105
141
  width: 216,
106
142
  borderRadius: 6,
107
143
  textAlign: 'left',
@@ -115,15 +151,19 @@ function EnvSelectPopover({ clients, setClient, client, theme, onSelectedEditEnv
115
151
  textOverflow: 'ellipsis',
116
152
  whiteSpace: 'nowrap',
117
153
  overflow: 'hidden',
154
+ fontFamily: theme.fontFamily,
118
155
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
119
156
  .quill-list-select > a {
120
- background-color: white;
157
+ background-color: ${state.theme?.backgroundColor};
158
+ color: ${theme?.primaryTextColor};
121
159
  }
122
160
  .quill-list-selected > a {
123
- background-color: rgba(56, 65, 81, 0.04);
161
+ background-color: ${state.theme?.hoverBackgroundColor};
162
+ color: ${theme?.hoverTextColor};
124
163
  }
125
164
  .quill-list-select:hover > a {
126
- background-color: rgba(56, 65, 81, 0.04);
165
+ background-color: ${state.theme?.hoverBackgroundColor};
166
+ color: ${theme?.hoverTextColor};
127
167
  }` }), (0, jsx_runtime_1.jsxs)("div", { style: {
128
168
  textOverflow: 'ellipsis',
129
169
  whiteSpace: 'nowrap',
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualTableManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/VirtualTableManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AA0C5E,eAAO,MAAM,mBAAmB,aAAc,GAAG,EAAE,aAalD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,GACb,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CA08BA"}
1
+ {"version":3,"file":"VirtualTableManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/VirtualTableManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AA2C5E,eAAO,MAAM,mBAAmB,GAAI,UAAU,GAAG,EAAE,aAalD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,GACb,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CAukCA"}
@@ -30,6 +30,7 @@ const tenants_1 = require("../utils/tenants");
30
30
  const useDatabaseSchema_1 = require("../hooks/useDatabaseSchema");
31
31
  const InputLabel_1 = __importDefault(require("../components/InputLabel"));
32
32
  const useDashboardManager_1 = require("../hooks/useDashboardManager");
33
+ const CreateEnvironmentModal_1 = __importDefault(require("../modals/CreateEnvironmentModal"));
33
34
  const getDuplicateColumns = (columns) => {
34
35
  if (!columns) {
35
36
  return [];
@@ -68,8 +69,10 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
68
69
  const [initialVirtualTable, setInitialVirtualTable] = (0, react_2.useState)(undefined);
69
70
  const [submittingVirtualTable, setSubmittingVirtualTable] = (0, react_2.useState)(false);
70
71
  const [noCustomerField, setNoCustomerField] = (0, react_2.useState)(false);
72
+ const [showCreateEnvironmentModal, setShowCreateEnvironmentModal] = (0, react_2.useState)(false);
71
73
  const parentRef = (0, react_2.useRef)(null);
72
- const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, } = (0, AdminProvider_1.useAdmin)();
74
+ const envHeaderRef = (0, react_2.useRef)(null);
75
+ const { state, dispatch, clientLoading, setClient, getToken, quillFetchWithToken, eventTracking, } = (0, AdminProvider_1.useAdmin)();
73
76
  const closeEditModal = () => {
74
77
  setEditModalIsOpen(false);
75
78
  setEditName('');
@@ -85,6 +88,16 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
85
88
  setEditError(table.broken ? (table.error ?? 'Invalid query') : undefined);
86
89
  setCustomFieldInfo(table.customFieldInfo);
87
90
  !suppressModal && setEditModalIsOpen(true);
91
+ eventTracking?.addBreadcrumb?.({
92
+ message: 'Clicked table cell in VirtualTableManager',
93
+ data: {
94
+ table: table.name,
95
+ suppressModal: suppressModal,
96
+ },
97
+ category: 'interaction',
98
+ level: 'info',
99
+ timestamp: Date.now(),
100
+ });
88
101
  };
89
102
  const reloadTables = async (tables) => {
90
103
  const tempClient = {
@@ -261,6 +274,17 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
261
274
  setEditQueryView(false);
262
275
  }
263
276
  catch (e) {
277
+ eventTracking?.logError?.({
278
+ type: 'bug', // TODO: determine type
279
+ severity: 'high',
280
+ message: 'Error submitting virtual table',
281
+ errorMessage: e.message,
282
+ errorStack: e.stack,
283
+ errorData: {
284
+ caller: 'VirtualTableManager',
285
+ function: 'handleModalSubmit',
286
+ },
287
+ });
264
288
  console.error(e);
265
289
  }
266
290
  };
@@ -288,6 +312,15 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
288
312
  alert(`This table is referenced in the following dashboard filter${filtersIsPlural}.\n\n${referencedFilterInfo.join('\n')} \n\nPlease delete those filters before deleting this table.`);
289
313
  return;
290
314
  }
315
+ eventTracking?.addBreadcrumb?.({
316
+ message: 'Confirmed delete table in VirtualTableManager',
317
+ data: {
318
+ table: name,
319
+ },
320
+ category: 'interaction',
321
+ level: 'info',
322
+ timestamp: Date.now(),
323
+ });
291
324
  const response = await (0, dataEditor_1.deleteVirtualTable)(id, state, getToken);
292
325
  await reloadTables();
293
326
  return response;
@@ -302,13 +335,16 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
302
335
  break;
303
336
  }
304
337
  };
338
+ if (showCreateEnvironmentModal) {
339
+ return ((0, jsx_runtime_1.jsx)(CreateEnvironmentModal_1.default, { showCreateEnvironmentModal: showCreateEnvironmentModal, setShowCreateEnvironmentModal: setShowCreateEnvironmentModal }));
340
+ }
305
341
  return ((0, jsx_runtime_1.jsx)("div", { style: { ...containerStyle }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
306
342
  minHeight: '100%',
307
343
  display: 'flex',
308
344
  flexDirection: 'column',
309
345
  paddingTop: '0px',
310
346
  position: 'relative',
311
- }, ref: parentRef, children: [(state.databaseTypeMismatch.show || !editQueryView) && ((0, jsx_runtime_1.jsx)("div", { style: {
347
+ }, ref: parentRef, children: [(state.databaseTypeMismatch.show || !editQueryView) && ((0, jsx_runtime_1.jsx)("div", { ref: envHeaderRef, style: {
312
348
  // width: 'calc(100vw - 30px)',
313
349
  display: 'flex',
314
350
  position: 'sticky',
@@ -342,11 +378,19 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
342
378
  setClient(client, true);
343
379
  }, onSelectedEditEnvironment: () => {
344
380
  setEditEnvironmentModalIsOpen(true);
381
+ }, onCreateNewEnvironment: () => {
382
+ setShowCreateEnvironmentModal(true);
345
383
  }, theme: state.theme, parentRef: parentRef, isLoading: clientLoading }) }), !editQueryView && !state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsxs)("div", { style: {
346
384
  display: 'flex',
347
385
  flexDirection: 'row',
348
386
  gap: 8,
349
387
  }, children: [(0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { onClick: () => {
388
+ eventTracking?.addBreadcrumb?.({
389
+ message: 'Clicked refresh tables button in VirtualTableManager',
390
+ category: 'interaction',
391
+ level: 'info',
392
+ timestamp: Date.now(),
393
+ });
350
394
  reloadTables(tables);
351
395
  }, label: "Refresh Tables" }), (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { onClick: () => {
352
396
  setEditName('');
@@ -354,12 +398,19 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
354
398
  setEditVirtualTableId('');
355
399
  setInitialVirtualTable(undefined);
356
400
  setEditQueryView(true);
401
+ eventTracking?.addBreadcrumb?.({
402
+ message: 'Clicked add virtual table button in VirtualTableManager',
403
+ category: 'interaction',
404
+ level: 'info',
405
+ timestamp: Date.now(),
406
+ });
357
407
  }, label: "Add Virtual Table +" })] }))] }) })), clientLoading || areTablesLoading ? ((0, jsx_runtime_1.jsx)("div", { style: {
358
408
  display: 'grid',
359
409
  gridGap: 24,
360
410
  gridTemplateColumns: 'repeat(auto-fill,minmax(460px, 1fr))',
361
411
  padding: 25,
362
412
  width: '100%',
413
+ ...containerStyle,
363
414
  }, children: Array.from({ length: 12 }).map((_, i) => ((0, jsx_runtime_1.jsx)("div", { style: {
364
415
  height: '180px',
365
416
  width: '540px',
@@ -371,14 +422,31 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
371
422
  overflow: 'hidden',
372
423
  }, children: (0, jsx_runtime_1.jsxs)("svg", { width: "100%", height: "100%", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", children: [(0, jsx_runtime_1.jsx)("rect", { width: "100%", height: "100%", fill: '#F9F9FA' }), (0, jsx_runtime_1.jsx)("defs", { fill: '#F9F9FA', children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: "skeletonGradient", x1: "0%", y1: "0%", x2: "10%", y2: "0%", gradientUnits: "userSpaceOnUse", children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("stop", { offset: "50%", stopColor: "#FEFEFE" }), (0, jsx_runtime_1.jsx)("stop", { offset: "100%", stopColor: "rgba(255,255,255,0)" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x1", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "x2", from: "-50%", to: "150%", dur: "2s", repeatCount: "indefinite" })] }) }), (0, jsx_runtime_1.jsx)("rect", { width: "50%", height: "100%", fill: "url(#skeletonGradient)", children: (0, jsx_runtime_1.jsx)("animate", { attributeName: "x", from: "-100%", to: "100%", dur: "2s", repeatCount: "indefinite" }) })] }) }) }, i))) }, 'edit-view-query')) : state.databaseTypeMismatch.show ? ((0, jsx_runtime_1.jsx)(DatabaseMismatchCard_1.default, { environmentName: state.client.name, environmentDatabaseType: state.client.databaseType, backendDatabaseType: state.databaseTypeMismatch.backendDatabaseType })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [!editQueryView ? (tables && tables.length === 0 ? ((0, jsx_runtime_1.jsx)(EmptyVirtualTablesComponent_1.default, { onClick: () => {
373
424
  setEditQueryView(true);
425
+ eventTracking?.addBreadcrumb?.({
426
+ message: 'Clicked EmptyVirtualTablesComponent in VirtualTableManager',
427
+ category: 'interaction',
428
+ level: 'info',
429
+ timestamp: Date.now(),
430
+ });
374
431
  } })) : ((0, jsx_runtime_1.jsx)("div", { style: {
375
432
  display: 'grid',
376
433
  gridGap: 24,
377
434
  gridTemplateColumns: 'repeat(auto-fill,minmax(460px, 1fr))',
378
435
  padding: 25,
436
+ height: '100%',
437
+ maxHeight: envHeaderRef.current
438
+ ? `calc(100vh - ${envHeaderRef.current?.getBoundingClientRect().bottom ?? 0}px)`
439
+ : '100%',
440
+ overflow: 'scroll',
379
441
  }, children: tables && tables?.length ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [tables.map((table) => ((0, jsx_runtime_1.jsx)(Admin_1.TableCell, { table: table, clickTableCellHeader: clickTableCell, clickTableCellBody: () => {
380
442
  clickTableCell(table, true);
381
443
  setEditQueryView(true);
444
+ eventTracking?.addBreadcrumb?.({
445
+ message: 'Clicked table body in VirtualTableManager',
446
+ category: 'interaction',
447
+ level: 'info',
448
+ timestamp: Date.now(),
449
+ });
382
450
  }, isLoading: loadingTables[table._id], reloadAction: (table) => reloadTables([table]), hoverActions: (table) => ((0, jsx_runtime_1.jsxs)("div", { style: {
383
451
  display: 'flex',
384
452
  flexDirection: 'row',
@@ -394,8 +462,18 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
394
462
  display: 'flex',
395
463
  flexDirection: 'row',
396
464
  alignItems: 'center',
465
+ border: `0 solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
397
466
  }, onClick: (event) => {
398
467
  event.stopPropagation();
468
+ eventTracking?.addBreadcrumb?.({
469
+ message: 'Clicked edit query button in VirtualTableManager Table Cell',
470
+ data: {
471
+ table: table.name,
472
+ },
473
+ category: 'interaction',
474
+ level: 'info',
475
+ timestamp: Date.now(),
476
+ });
399
477
  clickTableCell(table, true);
400
478
  setEditQueryView(true);
401
479
  }, className: "secondary-button-quill", children: [(0, jsx_runtime_1.jsx)("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", height: 12, width: 12, style: {
@@ -412,8 +490,18 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
412
490
  display: 'flex',
413
491
  flexDirection: 'row',
414
492
  alignItems: 'center',
493
+ border: `0 solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
415
494
  }, onClick: (event) => {
416
495
  event.stopPropagation();
496
+ eventTracking?.addBreadcrumb?.({
497
+ message: 'Clicked table settings in VirtualTableManager Table Cell',
498
+ data: {
499
+ table: table.name,
500
+ },
501
+ category: 'interaction',
502
+ level: 'info',
503
+ timestamp: Date.now(),
504
+ });
417
505
  clickTableCell(table);
418
506
  }, className: "secondary-button-quill", children: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", height: 16, width: 16, style: {
419
507
  marginLeft: 'auto',
@@ -435,8 +523,18 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
435
523
  display: 'flex',
436
524
  flexDirection: 'row',
437
525
  alignItems: 'center',
526
+ border: `0 solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
438
527
  }, className: "secondary-button-quill", onClick: (event) => {
439
528
  event.stopPropagation();
529
+ eventTracking?.addBreadcrumb?.({
530
+ message: 'Clicked refresh table button in VirtualTableManager Table Cell',
531
+ data: {
532
+ table: table.name,
533
+ },
534
+ category: 'interaction',
535
+ level: 'info',
536
+ timestamp: Date.now(),
537
+ });
440
538
  reloadTables([table]);
441
539
  }, children: [(0, jsx_runtime_1.jsx)("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 16 16", strokeWidth: 1.5, height: 16, width: 16, style: {
442
540
  marginLeft: 'auto',
@@ -445,6 +543,7 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
445
543
  height: 32,
446
544
  width: 32,
447
545
  color: state.theme?.secondaryTextColor,
546
+ border: `0 solid ${state.theme?.borderColor ?? '#e7e7e7'}`,
448
547
  borderRadius: 6,
449
548
  outline: 'none',
450
549
  cursor: 'pointer',
@@ -454,6 +553,15 @@ function VirtualTableManager({ containerStyle, virtualTable, }) {
454
553
  alignItems: 'center',
455
554
  }, onClick: (event) => {
456
555
  event.stopPropagation();
556
+ eventTracking?.addBreadcrumb?.({
557
+ message: 'Clicked delete table button in VirtualTableManager Table Cell',
558
+ data: {
559
+ table: table.name,
560
+ },
561
+ category: 'interaction',
562
+ level: 'info',
563
+ timestamp: Date.now(),
564
+ });
457
565
  deleteVirtualTable(table._id, table.name, table.name);
458
566
  }, className: "secondary-button-quill", children: [(0, jsx_runtime_1.jsx)("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: 14, width: 14, style: {
459
567
  marginLeft: 'auto',
@@ -490,7 +598,7 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
490
598
  const [tableData, setTableData] = (0, react_2.useState)(undefined);
491
599
  const [errorInfo, setErrorInfo] = (0, react_2.useState)({ show: false, message: '' });
492
600
  const clientIsSingleTenant = (0, react_2.useMemo)(() => (0, tenants_1.onlySingleDatabaseTenant)(state.client), [state.client]);
493
- const { getToken } = (0, AdminProvider_1.useAdmin)();
601
+ const { getToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
494
602
  (0, react_2.useEffect)(() => {
495
603
  setCustomFieldQuery(customFieldInfo?.query || '');
496
604
  setCustomFieldType(customFieldInfo?.type || 'eav');
@@ -526,7 +634,8 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
526
634
  marginTop: '0px',
527
635
  marginBottom: '0px',
528
636
  fontWeight: 'bold',
529
- color: '#384151',
637
+ color: state.theme?.primaryTextColor,
638
+ fontFamily: state.theme?.fontFamily,
530
639
  }, children: viewName ? 'Edit Virtual Table' : 'Add Virtual Table' }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedDeleteButton, { onClick: closeEditModal, style: undefined })] }), (0, jsx_runtime_1.jsx)(InputLabel_1.default, { children: "Name" }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { ref: (input) => editModalIsOpen && !viewName && input?.focus(), placeholder: "Enter view display name...", onChange: (e) => setName(e.target.value), value: name ? name : '' }), (0, jsx_runtime_1.jsx)("br", {}), viewOwnerTenantFields.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(InputLabel_1.default, { tooltip: "Dashboards may only query from virtual tables that share an owner with them. Virtual tables are required to return each of their owners' foreign keys as part of the query.", children: "Owners" }), (0, jsx_runtime_1.jsx)("div", { style: {
531
640
  flexDirection: 'row',
532
641
  display: 'flex',
@@ -538,7 +647,8 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
538
647
  .map((tenantField) => ((0, jsx_runtime_1.jsx)("div", { style: {
539
648
  fontWeight: 300,
540
649
  fontSize: 12,
541
- color: Admin_1.defaultTheme?.primaryTextColor,
650
+ fontFamily: state.theme?.fontFamily,
651
+ color: state.theme?.primaryTextColor,
542
652
  padding: 2,
543
653
  paddingLeft: 4,
544
654
  paddingRight: 4,
@@ -567,7 +677,8 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
567
677
  fontWeight: '600',
568
678
  fontSize: '14px',
569
679
  marginBottom: '6px',
570
- color: '#212121',
680
+ color: state.theme?.secondaryTextColor,
681
+ fontFamily: state.theme?.fontFamily,
571
682
  }, children: "Custom fields" }), (0, jsx_runtime_1.jsx)(TogglePrimitive_1.default, { value: useCustomField, onClick: () => {
572
683
  setUseCustomField((useCustomField) => !useCustomField);
573
684
  }, style: {
@@ -577,19 +688,22 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
577
688
  fontSize: '14px',
578
689
  marginBottom: '6px',
579
690
  marginTop: '20px',
580
- color: '#212121',
691
+ color: state.theme?.secondaryTextColor,
692
+ fontFamily: state.theme?.fontFamily,
581
693
  }, children: "Custom field type" }), (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { theme: state.theme, value: customFieldType?.toLowerCase(), onChange: (e) => {
582
694
  setCustomFieldType(e);
583
695
  }, left: { label: 'EAV', value: 'eav' }, right: { label: 'JSON', value: 'json' } }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("h3", { style: {
584
696
  fontWeight: '600',
585
697
  fontSize: '14px',
586
698
  marginBottom: '6px',
587
- color: '#212121',
699
+ color: state.theme?.secondaryTextColor,
700
+ fontFamily: state.theme?.fontFamily,
588
701
  }, children: "Custom field query" }), (0, jsx_runtime_1.jsx)("h3", { style: {
589
702
  fontWeight: '400',
590
703
  fontSize: '14px',
591
704
  marginBottom: '20px',
592
- color: '#212121',
705
+ color: state.theme?.secondaryTextColor,
706
+ fontFamily: state.theme?.fontFamily,
593
707
  }, children: customFieldType === 'eav'
594
708
  ? `A table of custom fields. It must have these columns: ref_table, ref_id, ref_table_id_field, field, value, type${clientIsSingleTenant ? '' : `, ${state.client.customerFieldName.replaceAll('"', '')}`}.`
595
709
  : `A table of custom fields. It must have these columns: ref_table, ref_column, field${clientIsSingleTenant ? '' : `, ${state.client.customerFieldName.replaceAll('"', '')}`}.` }), (0, jsx_runtime_1.jsx)(SqlTextEditor_1.default, { value: customFieldQuery, setValue: (e) => {
@@ -606,7 +720,7 @@ function EditAddViewModal({ viewName, viewQuery, viewOwnerTenantFields, viewId,
606
720
  }
607
721
  setErrorInfo({ show: false, message: '' });
608
722
  setRunQueryButtonLoading(true);
609
- const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, customFieldQuery, state.client.databaseType, state.queryEndpoint, getToken);
723
+ const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, customFieldQuery, state.client.databaseType, state.queryEndpoint, getToken, eventTracking, state.queryHeaders);
610
724
  if (!getSqlResults.success) {
611
725
  setErrorInfo({
612
726
  show: true,