@quillsql/admin 1.6.4 → 1.7.1

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 (357) hide show
  1. package/dist/cjs/Admin.d.ts +3 -44
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +117 -28
  4. package/dist/cjs/AdminProvider.d.ts +9 -145
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +176 -97
  7. package/dist/cjs/api/ConnectionClient.d.ts +7 -4
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +66 -6
  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/Banner/index.js +2 -2
  13. package/dist/cjs/components/CardSection.js +2 -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 +29 -1
  17. package/dist/cjs/components/DatabaseSelector.d.ts +1 -1
  18. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  19. package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +2 -2
  20. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +2 -2
  21. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  22. package/dist/cjs/components/DropDownMenuWithLabel.js +2 -2
  23. package/dist/cjs/components/DynamicBanner.d.ts +1 -1
  24. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
  25. package/dist/cjs/components/EmptyDashboardComponent/index.js +2 -2
  26. package/dist/cjs/components/EmptyVirtualTablesComponent.js +2 -2
  27. package/dist/cjs/components/FormTooltip.js +2 -2
  28. package/dist/cjs/components/InputLabel.js +2 -2
  29. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  30. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  31. package/dist/cjs/components/InternalDashboard/DashboardFilter.js +2 -2
  32. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  33. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +2 -2
  34. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  35. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  36. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +118 -38
  37. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  38. package/dist/cjs/components/OrgSelect.js +51 -7
  39. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +5 -1
  40. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  41. package/dist/cjs/components/QuillMultiSelectWithCombo.js +331 -152
  42. package/dist/cjs/components/QuillPopover.js +2 -2
  43. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  44. package/dist/cjs/components/QuillSelect.js +2 -2
  45. package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
  46. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  47. package/dist/cjs/components/QuillSelectWithCombo.js +36 -8
  48. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
  49. package/dist/cjs/components/QuillToolTipPortal.js +2 -2
  50. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  51. package/dist/cjs/components/SqlTextEditor.js +15 -2
  52. package/dist/cjs/components/Tenants/EditTenant.d.ts +1 -1
  53. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
  54. package/dist/cjs/components/Tenants/EditTenant.js +52 -9
  55. package/dist/cjs/components/UiComponents.d.ts +1 -1
  56. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  57. package/dist/cjs/components/UiComponents.js +9 -8
  58. package/dist/cjs/components/VirtualTableTile.d.ts +1 -1
  59. package/dist/cjs/components/VirtualTableTile.d.ts.map +1 -1
  60. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +1 -1
  61. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  62. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +51 -3
  63. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +1 -1
  64. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  65. package/dist/cjs/forms/client_onboard/ConnectSchema.js +34 -2
  66. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +1 -8
  67. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  68. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +24 -39
  69. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.js +2 -2
  70. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +5 -5
  71. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +5 -5
  72. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts +1 -1
  73. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  74. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +98 -16
  75. package/dist/cjs/hooks/useAdmin.d.ts +16 -0
  76. package/dist/cjs/hooks/useAdmin.d.ts.map +1 -0
  77. package/dist/cjs/hooks/useAdmin.js +13 -0
  78. package/dist/cjs/hooks/useDashboardManager.js +2 -2
  79. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
  80. package/dist/cjs/hooks/useDatabaseSchema.js +13 -2
  81. package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
  82. package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
  83. package/dist/cjs/hooks/useLongLoading.js +67 -0
  84. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  85. package/dist/cjs/hooks/useTenants.d.ts +1 -1
  86. package/dist/cjs/hooks/useTenants.d.ts.map +1 -1
  87. package/dist/cjs/hooks/useTenants.js +2 -2
  88. package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
  89. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  90. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
  91. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
  92. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
  93. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  94. package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
  95. package/dist/cjs/modals/CodePreview.js +8 -3
  96. package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
  97. package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
  98. package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
  99. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
  100. package/dist/cjs/modals/EditEnvironmentModal.js +68 -16
  101. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  102. package/dist/cjs/modals/EditFiltersModal.js +14 -10
  103. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  104. package/dist/cjs/modals/NewDashboardModal.js +56 -30
  105. package/dist/cjs/modals/PromoteDashboardModal.js +2 -2
  106. package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
  107. package/dist/cjs/modals/PromoteReportModal.js +16 -5
  108. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  109. package/dist/cjs/modals/PromoteViewModal.js +14 -3
  110. package/dist/cjs/modals/ReorderDashboardModal.js +2 -2
  111. package/dist/cjs/modals/SavedQueriesModal.js +3 -3
  112. package/dist/cjs/modals/TenantFieldModal.d.ts +9 -0
  113. package/dist/cjs/modals/TenantFieldModal.d.ts.map +1 -0
  114. package/dist/cjs/modals/TenantFieldModal.js +54 -0
  115. package/dist/cjs/models/AdminContext.d.ts +158 -0
  116. package/dist/cjs/models/AdminContext.d.ts.map +1 -0
  117. package/dist/cjs/models/AdminContext.js +5 -0
  118. package/dist/cjs/models/Provider.d.ts +45 -0
  119. package/dist/cjs/models/Provider.d.ts.map +1 -0
  120. package/dist/cjs/models/Provider.js +21 -0
  121. package/dist/cjs/models/Tenant.d.ts +39 -0
  122. package/dist/cjs/models/Tenant.d.ts.map +1 -0
  123. package/dist/cjs/models/Tenant.js +2 -0
  124. package/dist/cjs/primitives/ButtonPrimitive.d.ts +1 -1
  125. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  126. package/dist/cjs/primitives/ButtonPrimitive.js +2 -2
  127. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
  128. package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
  129. package/dist/cjs/primitives/HeaderPrimitive.d.ts +1 -1
  130. package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
  131. package/dist/cjs/primitives/HeaderPrimitive.js +2 -2
  132. package/dist/cjs/primitives/MiniButtonPrimitive.js +2 -2
  133. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
  134. package/dist/cjs/primitives/PopoverPrimitive.js +18 -7
  135. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts +1 -1
  136. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  137. package/dist/cjs/primitives/SecondaryButtonPrimitive.js +2 -2
  138. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -1
  139. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  140. package/dist/cjs/primitives/TextInputPrimitive.js +2 -2
  141. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
  142. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
  143. package/dist/cjs/public_components/ChartQueryBuilder.js +11 -10
  144. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  145. package/dist/cjs/public_components/CreateEnvironment.js +50 -17
  146. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  147. package/dist/cjs/public_components/DashboardManager.js +70 -10
  148. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
  149. package/dist/cjs/public_components/EnvSelectPopover.js +32 -4
  150. package/dist/cjs/public_components/VirtualTableManager.d.ts +0 -1
  151. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
  152. package/dist/cjs/public_components/VirtualTableManager.js +99 -25
  153. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +43 -4
  154. package/dist/cjs/utils/astProcessing.d.ts +1 -1
  155. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  156. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  157. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  158. package/dist/cjs/utils/columnProcessing.js +23 -1
  159. package/dist/cjs/utils/dataEditor.d.ts +1 -1
  160. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  161. package/dist/cjs/utils/dataFetcher.d.ts +1 -1
  162. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  163. package/dist/cjs/utils/databases.d.ts +6 -1
  164. package/dist/cjs/utils/databases.d.ts.map +1 -1
  165. package/dist/cjs/utils/databases.js +18 -0
  166. package/dist/cjs/utils/delay.d.ts.map +1 -1
  167. package/dist/cjs/utils/filter.d.ts +17 -21
  168. package/dist/cjs/utils/filter.d.ts.map +1 -1
  169. package/dist/cjs/utils/filter.js +6 -6
  170. package/dist/cjs/utils/report.d.ts +5 -5
  171. package/dist/cjs/utils/report.d.ts.map +1 -1
  172. package/dist/cjs/utils/schema.d.ts +8 -5
  173. package/dist/cjs/utils/schema.d.ts.map +1 -1
  174. package/dist/cjs/utils/schema.js +42 -3
  175. package/dist/cjs/utils/table.d.ts.map +1 -1
  176. package/dist/cjs/utils/tenants.d.ts +2 -39
  177. package/dist/cjs/utils/tenants.d.ts.map +1 -1
  178. package/dist/cjs/utils/ui.d.ts.map +1 -1
  179. package/dist/esm/Admin.d.ts +3 -44
  180. package/dist/esm/Admin.d.ts.map +1 -1
  181. package/dist/esm/Admin.js +116 -29
  182. package/dist/esm/AdminProvider.d.ts +9 -145
  183. package/dist/esm/AdminProvider.d.ts.map +1 -1
  184. package/dist/esm/AdminProvider.js +177 -96
  185. package/dist/esm/api/ConnectionClient.d.ts +7 -4
  186. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  187. package/dist/esm/api/ConnectionClient.js +66 -6
  188. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  189. package/dist/esm/assets/XIcon.d.ts.map +1 -1
  190. package/dist/esm/components/Banner/index.js +1 -1
  191. package/dist/esm/components/CardSection.js +1 -1
  192. package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
  193. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  194. package/dist/esm/components/DashboardSelectPopover.js +29 -1
  195. package/dist/esm/components/DatabaseSelector.d.ts +1 -1
  196. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  197. package/dist/esm/components/DateRangePicker/SingleDatePicker.js +1 -1
  198. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +1 -1
  199. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  200. package/dist/esm/components/DropDownMenuWithLabel.js +1 -1
  201. package/dist/esm/components/DynamicBanner.d.ts +1 -1
  202. package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
  203. package/dist/esm/components/EmptyDashboardComponent/index.js +1 -1
  204. package/dist/esm/components/EmptyVirtualTablesComponent.js +1 -1
  205. package/dist/esm/components/FormTooltip.js +1 -1
  206. package/dist/esm/components/InputLabel.js +1 -1
  207. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  208. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  209. package/dist/esm/components/InternalDashboard/DashboardFilter.js +2 -2
  210. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  211. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +1 -1
  212. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  213. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  214. package/dist/esm/components/InternalDashboard/InternalDashboard.js +116 -36
  215. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  216. package/dist/esm/components/OrgSelect.js +49 -5
  217. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +5 -1
  218. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  219. package/dist/esm/components/QuillMultiSelectWithCombo.js +329 -150
  220. package/dist/esm/components/QuillPopover.js +1 -1
  221. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  222. package/dist/esm/components/QuillSelect.js +1 -1
  223. package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
  224. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  225. package/dist/esm/components/QuillSelectWithCombo.js +35 -7
  226. package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
  227. package/dist/esm/components/QuillToolTipPortal.js +1 -1
  228. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  229. package/dist/esm/components/SqlTextEditor.js +15 -2
  230. package/dist/esm/components/Tenants/EditTenant.d.ts +1 -1
  231. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
  232. package/dist/esm/components/Tenants/EditTenant.js +52 -9
  233. package/dist/esm/components/UiComponents.d.ts +1 -1
  234. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  235. package/dist/esm/components/UiComponents.js +2 -1
  236. package/dist/esm/components/VirtualTableTile.d.ts +1 -1
  237. package/dist/esm/components/VirtualTableTile.d.ts.map +1 -1
  238. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +1 -1
  239. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  240. package/dist/esm/forms/client_onboard/ConnectDatabase.js +51 -3
  241. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +1 -1
  242. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  243. package/dist/esm/forms/client_onboard/ConnectSchema.js +34 -2
  244. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +1 -8
  245. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  246. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +23 -37
  247. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.js +1 -1
  248. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +3 -3
  249. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +3 -3
  250. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts +1 -1
  251. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  252. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +96 -14
  253. package/dist/esm/hooks/useAdmin.d.ts +16 -0
  254. package/dist/esm/hooks/useAdmin.d.ts.map +1 -0
  255. package/dist/esm/hooks/useAdmin.js +9 -0
  256. package/dist/esm/hooks/useDashboardManager.js +1 -1
  257. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
  258. package/dist/esm/hooks/useDatabaseSchema.js +13 -2
  259. package/dist/esm/hooks/useLongLoading.d.ts +13 -0
  260. package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
  261. package/dist/esm/hooks/useLongLoading.js +64 -0
  262. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  263. package/dist/esm/hooks/useTenants.d.ts +1 -1
  264. package/dist/esm/hooks/useTenants.d.ts.map +1 -1
  265. package/dist/esm/hooks/useTenants.js +1 -1
  266. package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
  267. package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  268. package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
  269. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
  270. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
  271. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  272. package/dist/esm/modals/CodePreview.d.ts.map +1 -1
  273. package/dist/esm/modals/CodePreview.js +8 -3
  274. package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
  275. package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
  276. package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
  277. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
  278. package/dist/esm/modals/EditEnvironmentModal.js +68 -16
  279. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  280. package/dist/esm/modals/EditFiltersModal.js +14 -10
  281. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  282. package/dist/esm/modals/NewDashboardModal.js +56 -30
  283. package/dist/esm/modals/PromoteDashboardModal.js +1 -1
  284. package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
  285. package/dist/esm/modals/PromoteReportModal.js +16 -5
  286. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  287. package/dist/esm/modals/PromoteViewModal.js +14 -3
  288. package/dist/esm/modals/ReorderDashboardModal.js +1 -1
  289. package/dist/esm/modals/SavedQueriesModal.js +1 -1
  290. package/dist/esm/modals/TenantFieldModal.d.ts +9 -0
  291. package/dist/esm/modals/TenantFieldModal.d.ts.map +1 -0
  292. package/dist/esm/modals/TenantFieldModal.js +51 -0
  293. package/dist/esm/models/AdminContext.d.ts +158 -0
  294. package/dist/esm/models/AdminContext.d.ts.map +1 -0
  295. package/dist/esm/models/AdminContext.js +2 -0
  296. package/dist/esm/models/Provider.d.ts +45 -0
  297. package/dist/esm/models/Provider.d.ts.map +1 -0
  298. package/dist/esm/models/Provider.js +18 -0
  299. package/dist/esm/models/Tenant.d.ts +39 -0
  300. package/dist/esm/models/Tenant.d.ts.map +1 -0
  301. package/dist/esm/models/Tenant.js +1 -0
  302. package/dist/esm/primitives/ButtonPrimitive.d.ts +1 -1
  303. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  304. package/dist/esm/primitives/ButtonPrimitive.js +1 -1
  305. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
  306. package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
  307. package/dist/esm/primitives/HeaderPrimitive.d.ts +1 -1
  308. package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
  309. package/dist/esm/primitives/HeaderPrimitive.js +1 -1
  310. package/dist/esm/primitives/MiniButtonPrimitive.js +1 -1
  311. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
  312. package/dist/esm/primitives/PopoverPrimitive.js +17 -6
  313. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts +1 -1
  314. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  315. package/dist/esm/primitives/SecondaryButtonPrimitive.js +1 -1
  316. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -1
  317. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  318. package/dist/esm/primitives/TextInputPrimitive.js +1 -1
  319. package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
  320. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
  321. package/dist/esm/public_components/ChartQueryBuilder.js +11 -10
  322. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  323. package/dist/esm/public_components/CreateEnvironment.js +50 -17
  324. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  325. package/dist/esm/public_components/DashboardManager.js +68 -8
  326. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
  327. package/dist/esm/public_components/EnvSelectPopover.js +32 -4
  328. package/dist/esm/public_components/VirtualTableManager.d.ts +0 -1
  329. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
  330. package/dist/esm/public_components/VirtualTableManager.js +97 -21
  331. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +42 -3
  332. package/dist/esm/utils/astProcessing.d.ts +1 -1
  333. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  334. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  335. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  336. package/dist/esm/utils/columnProcessing.js +21 -1
  337. package/dist/esm/utils/dataEditor.d.ts +1 -1
  338. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  339. package/dist/esm/utils/dataFetcher.d.ts +1 -1
  340. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  341. package/dist/esm/utils/databases.d.ts +6 -1
  342. package/dist/esm/utils/databases.d.ts.map +1 -1
  343. package/dist/esm/utils/databases.js +18 -0
  344. package/dist/esm/utils/delay.d.ts.map +1 -1
  345. package/dist/esm/utils/filter.d.ts +17 -21
  346. package/dist/esm/utils/filter.d.ts.map +1 -1
  347. package/dist/esm/utils/filter.js +5 -5
  348. package/dist/esm/utils/report.d.ts +5 -5
  349. package/dist/esm/utils/report.d.ts.map +1 -1
  350. package/dist/esm/utils/schema.d.ts +8 -5
  351. package/dist/esm/utils/schema.d.ts.map +1 -1
  352. package/dist/esm/utils/schema.js +42 -3
  353. package/dist/esm/utils/table.d.ts.map +1 -1
  354. package/dist/esm/utils/tenants.d.ts +2 -39
  355. package/dist/esm/utils/tenants.d.ts.map +1 -1
  356. package/dist/esm/utils/ui.d.ts.map +1 -1
  357. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  export interface SelectComponentProps {
3
- value: string | null | undefined;
3
+ value: string | number | null | undefined;
4
4
  label?: string;
5
5
  width: number;
6
6
  options: {
7
- value: string;
7
+ value: string | number;
8
8
  label: string;
9
9
  }[];
10
10
  onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
@@ -14,9 +14,10 @@ export interface SelectComponentProps {
14
14
  badge?: string;
15
15
  mimicReactSelect?: boolean;
16
16
  testLabel?: string;
17
+ displayValue?: boolean;
17
18
  }
18
19
  /**
19
20
  * A robust select component that implements the new minimal Select interface.
20
21
  */
21
- export declare function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, disabled, badge, mimicReactSelect, testLabel, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, disabled, badge, mimicReactSelect, testLabel, displayValue, }: SelectComponentProps): import("react/jsx-runtime").JSX.Element;
22
23
  //# sourceMappingURL=QuillSelectWithCombo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AAIA,OAAO,KAMN,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,SAAS,GACV,EAAE,oBAAoB,2CAkatB"}
1
+ {"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AAIA,OAAO,KAMN,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,YAAY,GACb,EAAE,oBAAoB,2CA6ctB"}
@@ -3,13 +3,13 @@ import useOnClickOutside, { getEffectiveZIndex, } from '../hooks/useOnClickOutsi
3
3
  import { LoadingSpinner } from './UiComponents';
4
4
  import React, { useEffect, useMemo, useRef, useState, } from 'react';
5
5
  import { ListboxTextInput } from './QuillMultiSelectWithCombo';
6
- import { useAdmin } from '../AdminProvider';
6
+ import { useAdmin } from '../hooks/useAdmin';
7
7
  import { createPortal } from 'react-dom';
8
8
  import { getScrollableParent } from '../utils/ui';
9
9
  /**
10
10
  * A robust select component that implements the new minimal Select interface.
11
11
  */
12
- export function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, disabled, badge, mimicReactSelect, testLabel, }) {
12
+ export function QuillSelectComponentWithCombo({ options, value, width, onChange, label, isLoading, hideEmptyOption, disabled, badge, mimicReactSelect, testLabel, displayValue, }) {
13
13
  const theme = useAdmin().state.theme;
14
14
  const [showModal, setShowModal] = useState(false);
15
15
  const modalRef = useRef(null);
@@ -170,7 +170,7 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
170
170
  textOverflow: 'ellipsis',
171
171
  whiteSpace: 'nowrap',
172
172
  overflow: 'hidden',
173
- fontWeight: value?.length || isLoading ? undefined : 300,
173
+ fontWeight: isLoading ? undefined : 300,
174
174
  }, children: isLoading ? 'Loading...' : selectedLabel }), badge && (_jsx("span", { style: {
175
175
  color: 'white',
176
176
  backgroundColor: 'black',
@@ -273,11 +273,39 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
273
273
  background: ${theme?.hoverBackgroundColor};
274
274
  color: ${theme?.hoverTextColor};
275
275
  }
276
- ` }), _jsx("span", { style: {
277
- textOverflow: 'ellipsis',
278
- whiteSpace: 'nowrap',
276
+ ` }), _jsxs("div", { style: {
277
+ display: 'flex',
278
+ flexDirection: 'row',
279
+ flex: 1,
280
+ minWidth: 0,
279
281
  overflow: 'hidden',
280
- }, children: option.label ?? nullLabel })] }, option.value)))) : (_jsx("div", { style: {
282
+ gap: 8,
283
+ alignItems: 'center',
284
+ }, children: [_jsx("span", { style: {
285
+ textOverflow: 'ellipsis',
286
+ whiteSpace: 'nowrap',
287
+ overflow: 'hidden',
288
+ fontWeight: 400,
289
+ flex: 1,
290
+ minWidth: 0,
291
+ textAlign: 'left',
292
+ }, title: option.value !== null && option.value !== '-'
293
+ ? option.value.toString()
294
+ : undefined, children: option.label ?? nullLabel }), option.value !== null &&
295
+ option.value !== '-' &&
296
+ displayValue && (_jsx("span", { style: {
297
+ fontSize: 11,
298
+ color: theme?.secondaryTextColor,
299
+ textOverflow: 'ellipsis',
300
+ whiteSpace: 'nowrap',
301
+ overflow: 'hidden',
302
+ fontWeight: 400,
303
+ flexShrink: 1,
304
+ maxWidth: '30%',
305
+ minWidth: 0,
306
+ }, title: option.value.toString(), children: option.value.toString().length > 15
307
+ ? `${option.value.toString().substring(0, 15)}...`
308
+ : option.value.toString() }))] })] }, option.value)))) : (_jsx("div", { style: {
281
309
  width: '100%',
282
310
  alignItems: 'center',
283
311
  justifyContent: 'center',
@@ -1 +1 @@
1
- {"version":3,"file":"QuillToolTipPortal.d.ts","sourceRoot":"","sources":["../../../src/components/QuillToolTipPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,oEAO5B,uBAAuB,4CA2IzB,CAAC"}
1
+ {"version":3,"file":"QuillToolTipPortal.d.ts","sourceRoot":"","sources":["../../../src/components/QuillToolTipPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,GAAI,iEAOhC,uBAAuB,4CA2IzB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from 'react';
3
3
  import { createPortal } from 'react-dom';
4
- import { useAdmin } from '../AdminProvider';
4
+ import { useAdmin } from '../hooks/useAdmin';
5
5
  export const QuillToolTipPortal = ({ children, text, enabled = true, containerStyle = {}, textStyle = {}, mirror = false, }) => {
6
6
  const { state: { theme }, } = useAdmin();
7
7
  const [isOpen, setIsOpen] = useState(false);
@@ -1 +1 @@
1
- {"version":3,"file":"SqlTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/SqlTextEditor.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AAI1E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAuEhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,YAA2B,EAC3B,SAAgB,GACjB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAoEA"}
1
+ {"version":3,"file":"SqlTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/SqlTextEditor.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AAI1E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAqFhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,YAA2B,EAC3B,SAAgB,GACjB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAsEA"}
@@ -5,6 +5,7 @@ import MonacoEditor from '@monaco-editor/react';
5
5
  import { Resizable } from 're-resizable';
6
6
  import { generateSuggestionsByDatasource, generateSuggestionsBySchema, QUILL_LANGUAGE, } from '../utils/monacoAutocomplete';
7
7
  import { LoadingSpinner } from './UiComponents';
8
+ import { useAdmin } from '../hooks/useAdmin';
8
9
  function defineEditorTheme(monaco) {
9
10
  monaco.editor.defineTheme('onedark', {
10
11
  base: 'vs',
@@ -22,7 +23,7 @@ function defineEditorTheme(monaco) {
22
23
  },
23
24
  });
24
25
  }
25
- function setEditorTheme(_editor, monaco, schema, databaseType) {
26
+ function setEditorTheme(_editor, monaco, schema, databaseType, eventTracking) {
26
27
  try {
27
28
  monaco.editor.setTheme('onedark');
28
29
  monaco.languages.register({ id: 'quill' });
@@ -40,6 +41,17 @@ function setEditorTheme(_editor, monaco, schema, databaseType) {
40
41
  return provider;
41
42
  }
42
43
  catch (e) {
44
+ eventTracking?.logError?.({
45
+ type: 'bug',
46
+ severity: 'medium',
47
+ message: 'Error setting up editor',
48
+ errorMessage: e.message,
49
+ errorStack: e.stack,
50
+ errorData: {
51
+ caller: 'SqlTextEditor',
52
+ function: 'setEditorTheme',
53
+ },
54
+ });
43
55
  console.log('ERROR: ', e);
44
56
  return null;
45
57
  }
@@ -47,6 +59,7 @@ function setEditorTheme(_editor, monaco, schema, databaseType) {
47
59
  export default function SqlTextEditor({ containerStyle, value, setValue, setEditorMounted, schema, databaseType = 'postgresql', resizable = true, }) {
48
60
  const [editorKey, setEditorKey] = useState(0);
49
61
  const currentProvider = useRef(null);
62
+ const { eventTracking } = useAdmin();
50
63
  useEffect(() => {
51
64
  if (currentProvider.current) {
52
65
  currentProvider.current.dispose();
@@ -81,7 +94,7 @@ export default function SqlTextEditor({ containerStyle, value, setValue, setEdit
81
94
  }, onChange: (query) => {
82
95
  setValue(query);
83
96
  }, beforeMount: (monaco) => defineEditorTheme(monaco), onMount: (_editor, monaco) => {
84
- currentProvider.current = setEditorTheme(_editor, monaco, schema, databaseType);
97
+ currentProvider.current = setEditorTheme(_editor, monaco, schema, databaseType, eventTracking);
85
98
  setEditorMounted(true);
86
99
  } }, editorKey) }) }));
87
100
  }
@@ -1,5 +1,5 @@
1
1
  import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
- import { QuillTenant } from '../../utils/tenants';
2
+ import { QuillTenant } from '../../models/Tenant';
3
3
  import { TextInputPrimitiveProps } from '../../primitives/TextInputPrimitive';
4
4
  import { ButtonPrimitiveProps } from '../../primitives/ButtonPrimitive';
5
5
  import { ButtonComponentProps } from '@quillsql/react';
@@ -1 +1 @@
1
- {"version":3,"file":"EditTenant.d.ts","sourceRoot":"","sources":["../../../../src/components/Tenants/EditTenant.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,aAAa,EAKd,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAA2B,EACzB,uBAAuB,EACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,EACL,oBAAoB,EAIrB,MAAM,iBAAiB,CAAC;AAgDzB,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAClB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,EAC3D,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,oBAAoB,EAAE,CACpB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAC5B,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACrE,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,cAAc,EAAE,GAAG,CAAC;IACpB,kBAAkB,EACd,yBAAyB,CACvB,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAC1D,GACD,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,eAAe,EAAE,KAAK,CAAC,EAAE,CACvB,oBAAoB,GAAG;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CACF,CAAC;IACF,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAChC,oBAAoB,GAAG;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CACF,CAAC;IACF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,WAAW,EAAE,CAAC;QAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,CAAC,EAAE,WAAW,CAAC;KAC5B,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;CACvB,2CAixBA"}
1
+ {"version":3,"file":"EditTenant.d.ts","sourceRoot":"","sources":["../../../../src/components/Tenants/EditTenant.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,aAAa,EAKd,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAA2B,EACzB,uBAAuB,EACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,EACL,oBAAoB,EAIrB,MAAM,iBAAiB,CAAC;AAgDzB,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,kBAAkB,EAAE,CAClB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,EAC3D,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,oBAAoB,EAAE,CACpB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAC5B,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACrE,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,cAAc,EAAE,GAAG,CAAC;IACpB,kBAAkB,EACd,yBAAyB,CACvB,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAC1D,GACD,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,eAAe,EAAE,KAAK,CAAC,EAAE,CACvB,oBAAoB,GAAG;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CACF,CAAC;IACF,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAChC,oBAAoB,GAAG;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CACF,CAAC;IACF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,WAAW,EAAE,CAAC;QAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,CAAC,EAAE,WAAW,CAAC;KAC5B,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;CACvB,2CAwyBA"}
@@ -10,7 +10,7 @@ import InputLabel from '../InputLabel';
10
10
  import QuillTab from '../QuillTab';
11
11
  import { QuillSelectComponentWithCombo } from '../QuillSelectWithCombo';
12
12
  import CardSection from '../CardSection';
13
- import { useAdmin } from '../../AdminProvider';
13
+ import { useAdmin } from '../../hooks/useAdmin';
14
14
  import { isNumberType, isStringType, processColumnReference, } from '../../utils/columnProcessing';
15
15
  import SqlTextEditor from '../SqlTextEditor';
16
16
  import { Highlight, themes } from 'prism-react-renderer';
@@ -61,7 +61,7 @@ export function EditTenant({ tenant, setTenant, setCreateNewTenant, onSubmitEdit
61
61
  const [isEditingTenantQuery, setIsEditingTenantQuery] = useState(false);
62
62
  const [returnedTenantIds, setReturnedTenantIds] = useState([]);
63
63
  const [showFlagWarning, setShowFlagWarning] = useState(false);
64
- const { getToken, quillFetchWithToken } = useAdmin();
64
+ const { getToken, quillFetchWithToken, eventTracking } = useAdmin();
65
65
  const formIssue = useMemo(() => {
66
66
  if (!tenantName) {
67
67
  return 'Must have a unique name';
@@ -139,7 +139,7 @@ export function EditTenant({ tenant, setTenant, setCreateNewTenant, onSubmitEdit
139
139
  setCurrentTableObj(databaseTables?.find((table) => table.tableName === tenantTable));
140
140
  }
141
141
  else {
142
- const resp = await getVirtualTableData(client._id, tenantQuery, client.databaseType, queryEndpoint, getToken, client.queryHeaders);
142
+ const resp = await getVirtualTableData(client._id, tenantQuery, client.databaseType, queryEndpoint, getToken, eventTracking, client.queryHeaders);
143
143
  if (resp.status === 'error') {
144
144
  throw new Error(resp.error);
145
145
  }
@@ -159,7 +159,7 @@ export function EditTenant({ tenant, setTenant, setCreateNewTenant, onSubmitEdit
159
159
  fetchTables();
160
160
  }, [isSchemaLoading]);
161
161
  const setCustomSQLQuery = useCallback(async (query) => {
162
- const resp = await getVirtualTableData(client._id, query, client.databaseType, queryEndpoint, getToken, client.queryHeaders);
162
+ const resp = await getVirtualTableData(client._id, query, client.databaseType, queryEndpoint, getToken, eventTracking, client.queryHeaders);
163
163
  if (resp.status === 'error') {
164
164
  throw new Error(resp.error);
165
165
  }
@@ -220,7 +220,17 @@ export function EditTenant({ tenant, setTenant, setCreateNewTenant, onSubmitEdit
220
220
  return resp.queries.queryResults[0];
221
221
  }
222
222
  catch (e) {
223
- console.log('error', e);
223
+ eventTracking?.logError?.({
224
+ type: 'bug', // TODO: determine type
225
+ severity: 'high',
226
+ message: 'Error validating tenant mapping',
227
+ errorMessage: e.message,
228
+ errorStack: e.stack,
229
+ errorData: {
230
+ caller: 'EditTenant',
231
+ function: 'handleSubmitMappingEdit',
232
+ },
233
+ });
224
234
  throw e;
225
235
  }
226
236
  }
@@ -303,6 +313,17 @@ export function EditTenant({ tenant, setTenant, setCreateNewTenant, onSubmitEdit
303
313
  }
304
314
  catch (e) {
305
315
  console.log('error', e);
316
+ eventTracking?.logError?.({
317
+ type: 'bug',
318
+ severity: 'high',
319
+ message: 'Error editing tenant',
320
+ errorMessage: e.message,
321
+ errorStack: e.stack,
322
+ errorData: {
323
+ caller: 'EditTenant',
324
+ function: 'handleEditTenant',
325
+ },
326
+ });
306
327
  setErrorMessage(e.message);
307
328
  }
308
329
  };
@@ -438,7 +459,7 @@ export function EditTenant({ tenant, setTenant, setCreateNewTenant, onSubmitEdit
438
459
  }, disabled: !tenantDefaultId })] })] }) })] }));
439
460
  }
440
461
  function CustomSQLQueryModal({ customSQLQuery, setCustomSQLQuery, databaseTables, databaseType, ButtonComponent, SecondaryButtonComponent, onClose, }) {
441
- const { state } = useAdmin();
462
+ const { state, eventTracking } = useAdmin();
442
463
  const [localQuery, setLocalQuery] = useState(customSQLQuery);
443
464
  const [tableSearchQuery, setTableSearchQuery] = useState('');
444
465
  const [displayedTableData, setDisplayedTableData] = useState(databaseTables);
@@ -450,6 +471,17 @@ function CustomSQLQueryModal({ customSQLQuery, setCustomSQLQuery, databaseTables
450
471
  await setCustomSQLQuery(localQuery);
451
472
  }
452
473
  catch (e) {
474
+ eventTracking?.logError?.({
475
+ type: 'bug',
476
+ severity: 'high',
477
+ message: 'Error saving custom SQL query',
478
+ errorMessage: e.message,
479
+ errorStack: e.stack,
480
+ errorData: {
481
+ caller: 'CustomSQLQueryModal',
482
+ function: 'onSave',
483
+ },
484
+ });
453
485
  setErrorMessage(e.message);
454
486
  }
455
487
  setLoading(false);
@@ -459,7 +491,7 @@ function CustomSQLQueryModal({ customSQLQuery, setCustomSQLQuery, databaseTables
459
491
  if (!name) {
460
492
  return;
461
493
  }
462
- const newQuery = `SELECT * FROM ${processColumnReference(name, state.client.databaseType)};`;
494
+ const newQuery = `SELECT * FROM ${processColumnReference(name, databaseType.toLowerCase())};`;
463
495
  if (!localQuery || localQuery.length === 0) {
464
496
  setLocalQuery(newQuery);
465
497
  }
@@ -562,7 +594,7 @@ function MappingCard({ mappingField, SecondaryButtonComponent, setMappingToEdit,
562
594
  }, children: [_jsx(InputLabel, { children: mappingField }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: 12 }, children: [_jsx(SecondaryButtonComponent, { label: "Edit", onClick: () => setMappingToEdit(mappingField) }), _jsx(SecondaryButtonComponent, { label: "Delete", onClick: () => onDelete(mappingField) })] })] }) }));
563
595
  }
564
596
  function MappingForm({ currentMapping, client, toTenant, fromTenant, mappingQuery, handleSubmitMappingEdit, databaseTables, databaseType, ButtonComponent, SecondaryButtonComponent, onClose, }) {
565
- const { state } = useAdmin();
597
+ const { state, eventTracking } = useAdmin();
566
598
  const [loading, setLoading] = useState(false);
567
599
  const [mappingTo, setMappingTo] = useState(toTenant);
568
600
  useEffect(() => {
@@ -584,6 +616,17 @@ function MappingForm({ currentMapping, client, toTenant, fromTenant, mappingQuer
584
616
  }
585
617
  }
586
618
  catch (e) {
619
+ eventTracking?.logError?.({
620
+ type: 'bug', // TODO: determine type
621
+ severity: 'high',
622
+ message: 'Error saving tenant mapping',
623
+ errorMessage: e.message,
624
+ errorStack: e.stack,
625
+ errorData: {
626
+ caller: 'MappingForm',
627
+ function: 'onSave',
628
+ },
629
+ });
587
630
  setErrorMessage(e.message);
588
631
  }
589
632
  finally {
@@ -606,7 +649,7 @@ function MappingForm({ currentMapping, client, toTenant, fromTenant, mappingQuer
606
649
  if (!name) {
607
650
  return;
608
651
  }
609
- const newQuery = `SELECT * FROM ${processColumnReference(name, state.client.databaseType)};`;
652
+ const newQuery = `SELECT * FROM ${processColumnReference(name, databaseType.toLowerCase())};`;
610
653
  if (!localQuery || localQuery.length === 0) {
611
654
  setLocalQuery(newQuery);
612
655
  }
@@ -99,7 +99,7 @@ export declare const QuillToolTip: ({ children, text, enabled, containerStyle, t
99
99
  containerStyle?: CSSProperties;
100
100
  textStyle?: CSSProperties;
101
101
  displayBelow?: boolean;
102
- }) => string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | null | undefined;
102
+ }) => string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
103
103
  export declare const QuillPortal: ({ children, containerStyle, anchorRef, showModal, setShowModal, }: {
104
104
  children: ReactNode;
105
105
  containerStyle?: CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useContext, useEffect, useState, useRef, } from 'react';
3
- import { useAdmin } from '../AdminProvider';
3
+ import { useAdmin } from '../hooks/useAdmin';
4
4
  import { XIcon } from '../assets';
5
5
  import { ThemeContext } from '@quillsql/react';
6
6
  import useOnClickOutside, { getEffectiveZIndex, } from '../hooks/useOnClickOutside';
@@ -340,6 +340,7 @@ export const OverflowContainer = ({ children }) => {
340
340
  const containerStyle = {
341
341
  position: 'relative',
342
342
  overflowY: 'auto',
343
+ overscrollBehavior: 'none',
343
344
  };
344
345
  const shadowStyle = {
345
346
  position: 'sticky',
@@ -1,4 +1,4 @@
1
- import { QuillTheme } from '../Admin';
1
+ import { QuillTheme } from '../models/Provider';
2
2
  export default function VirtualTableTile({ query, name, theme, }: {
3
3
  query: string;
4
4
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualTableTile.d.ts","sourceRoot":"","sources":["../../../src/components/VirtualTableTile.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,IAAI,EACJ,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,2CAgFA"}
1
+ {"version":3,"file":"VirtualTableTile.d.ts","sourceRoot":"","sources":["../../../src/components/VirtualTableTile.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,IAAI,EACJ,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,2CAgFA"}
@@ -1,6 +1,6 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { ConnectionType } from '../../utils/databases';
3
- import { QuillProviderClient } from '../../Admin';
3
+ import { QuillProviderClient } from '../../models/Provider';
4
4
  import { ColumnsByTable } from '../../utils/table';
5
5
  export default function ConnectDatabase({ containerStyle, header1Style, header2Style, environmentDetails, setEnvironmentDetails, fetchSchemasLoading, onConnectDatabase, }: {
6
6
  containerStyle?: CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectDatabase.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectDatabase.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,aAAa,EAKd,MAAM,OAAO,CAAC;AAQf,OAAO,EAGL,cAAc,EASf,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,GAClB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE;QAClB,UAAU,EAAE,cAAc,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,mBAAmB,GAAG;YAAE,WAAW,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;KAC3B,CAAC;IACF,qBAAqB,EAAE,CACrB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;IACV,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,2CA2rBA"}
1
+ {"version":3,"file":"ConnectDatabase.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectDatabase.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,aAAa,EAKd,MAAM,OAAO,CAAC;AAQf,OAAO,EAGL,cAAc,EAUf,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,GAClB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE;QAClB,UAAU,EAAE,cAAc,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC,mBAAmB,GAAG;YAAE,WAAW,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;KAC3B,CAAC;IACF,qBAAqB,EAAE,CACrB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;IACV,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,2CA4uBA"}
@@ -10,12 +10,17 @@ import QuillTab from '../../components/QuillTab';
10
10
  import { QuillMultiSelectComponentWithCombo } from '../../components/QuillMultiSelectWithCombo';
11
11
  import CardSection from '../../components/CardSection';
12
12
  // import InputLabel from '../../components/InputLabel';
13
- import { useAdmin } from '../../AdminProvider';
13
+ import { useAdmin } from '../../hooks/useAdmin';
14
14
  import { quillFetch } from '../../utils/dataFetcher';
15
+ import { useLongLoading } from '../../hooks/useLongLoading';
15
16
  export default function ConnectDatabase({ containerStyle, header1Style, header2Style, environmentDetails, setEnvironmentDetails, fetchSchemasLoading, onConnectDatabase, }) {
16
- const { state, getToken } = useAdmin();
17
+ const { state, getToken, eventTracking } = useAdmin();
17
18
  const [error, setError] = useState(undefined);
18
19
  const [isConnecting, setIsConnecting] = useState(false);
20
+ useLongLoading(isConnecting, {
21
+ origin: 'ConnectDatabase',
22
+ loadDescription: 'Connecting to database',
23
+ });
19
24
  const [clientId, setClientId] = useState(environmentDetails.client.clientId);
20
25
  const [fileLabel, setFileLabel] = useState('No file chosen');
21
26
  const [allSchemas, setAllSchemas] = useState([]);
@@ -49,7 +54,12 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
49
54
  // Redact sensitive information
50
55
  const savedConnectionDetails = { ...databaseConnectionDetails };
51
56
  savedConnectionDetails.connectionString = '';
52
- savedConnectionDetails.password = '';
57
+ if (databaseConnectionDetails.type === 'Databricks') {
58
+ savedConnectionDetails.token = '';
59
+ }
60
+ else {
61
+ savedConnectionDetails.password = '';
62
+ }
53
63
  sessionStorage.setItem('connectionDetails', JSON.stringify(savedConnectionDetails));
54
64
  }, [databaseConnectionDetails]);
55
65
  const handleFileChange = (e) => {
@@ -71,6 +81,17 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
71
81
  }
72
82
  catch (err) {
73
83
  console.log('Error parsing JSON file', err);
84
+ eventTracking?.logError?.({
85
+ type: 'bug', // TODO: determine type
86
+ severity: 'high',
87
+ message: 'Error parsing JSON file',
88
+ errorMessage: err.message,
89
+ errorStack: err.stack,
90
+ errorData: {
91
+ caller: 'ConnectDatabase',
92
+ function: 'handleFileChange',
93
+ },
94
+ });
74
95
  setFileLabel('Error parsing JSON file');
75
96
  }
76
97
  };
@@ -81,6 +102,7 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
81
102
  return false;
82
103
  }
83
104
  const typedDetails = databaseConnectionDetails;
105
+ const databricksDetails = databaseConnectionDetails;
84
106
  switch (databaseConnectionDetails.type) {
85
107
  case 'PostgreSQL':
86
108
  case 'MySQL':
@@ -95,6 +117,10 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
95
117
  !(typedDetails.port ||
96
118
  (typedDetails.warehouse &&
97
119
  typedDetails.type === 'Snowflake')));
120
+ case 'Databricks':
121
+ return (!databricksDetails.host ||
122
+ !databricksDetails.path ||
123
+ !databricksDetails.token);
98
124
  case 'BigQuery':
99
125
  return !databaseConnectionDetails.jsonString;
100
126
  default:
@@ -126,6 +152,17 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
126
152
  setEnvironmentDetails(databaseConnectionDetails, databaseSchema, selectedSchemas, clientId);
127
153
  }
128
154
  catch (e) {
155
+ eventTracking?.logError?.({
156
+ type: 'bug', // TODO: determine type
157
+ severity: 'high',
158
+ message: 'Error setting up database',
159
+ errorMessage: e.message,
160
+ errorStack: e.stack,
161
+ errorData: {
162
+ caller: 'ConnectDatabase',
163
+ function: 'nextStep',
164
+ },
165
+ });
129
166
  setError(e.message);
130
167
  }
131
168
  finally {
@@ -183,6 +220,17 @@ export default function ConnectDatabase({ containerStyle, header1Style, header2S
183
220
  onConnectDatabase?.(result.clientId);
184
221
  }
185
222
  catch (e) {
223
+ eventTracking?.logError?.({
224
+ type: 'bug', // TODO: determine type
225
+ severity: 'high',
226
+ message: 'Error connecting to database',
227
+ errorMessage: e.message,
228
+ errorStack: e.stack,
229
+ errorData: {
230
+ caller: 'ConnectDatabase',
231
+ function: 'testConnectionAndFormClient',
232
+ },
233
+ });
186
234
  setError("Couldn't connect to database");
187
235
  }
188
236
  finally {
@@ -1,7 +1,7 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { ConnectionType } from '../../utils/databases';
3
3
  import { ColumnsByTable } from '../../utils/table';
4
- import { State } from '../../AdminProvider';
4
+ import { State } from '../../models/AdminContext';
5
5
  import { TenantInit } from '../../utils/schema';
6
6
  export default function ConnectSchema({ containerStyle, header1Style, databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSchemas, state, label, returnToConnectDatabase, }: {
7
7
  containerStyle?: CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,YAAY,EAEZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,KAAK,EACL,KAAK,EACL,uBAAuB,GACxB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC,2CA4SA"}
1
+ {"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,YAAY,EAEZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,KAAK,EACL,KAAK,EACL,uBAAuB,GACxB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC,2CA6UA"}
@@ -1,20 +1,25 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useState } from 'react';
3
3
  import { ButtonPrimitive, ModalPrimitive, SecondaryButtonPrimitive, TextInputPrimitive, } from '../../primitives';
4
- import { useAdmin } from '../../AdminProvider';
4
+ import { useAdmin } from '../../hooks/useAdmin';
5
5
  import { EditTenant } from '../../components/Tenants/EditTenant';
6
6
  import CardSection from '../../components/CardSection';
7
7
  import { useDatabaseSchema } from '../../hooks/useDatabaseSchema';
8
8
  import { MemoizedButton } from '../../components/UiComponents';
9
+ import { useLongLoading } from '../../hooks/useLongLoading';
9
10
  export default function ConnectSchema({ containerStyle, header1Style,
10
11
  // header2Style,
11
12
  databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSchemas, state, label, returnToConnectDatabase, }) {
12
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
14
  const [formError, setFormError] = useState(undefined);
14
15
  const [isSubmitTenantLoading, setSubmitTenantLoading] = useState(false);
16
+ useLongLoading(isSubmitTenantLoading, {
17
+ origin: 'ConnectSchema',
18
+ loadDescription: 'Submitting tenant',
19
+ });
15
20
  const [tenantToEdit, setTenantToEdit] = useState(tenantInit?.ownerTenant);
16
21
  const { schema, isLoading } = useDatabaseSchema();
17
- const { quillFetchWithToken } = useAdmin();
22
+ const { quillFetchWithToken, eventTracking } = useAdmin();
18
23
  const tenantRequest = async (tenant, mode, isOnboarding) => {
19
24
  return await quillFetchWithToken({
20
25
  client: {
@@ -70,6 +75,17 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
70
75
  }
71
76
  catch (e) {
72
77
  console.log('error', e);
78
+ eventTracking?.logError?.({
79
+ type: 'bug', // TODO: determine type
80
+ severity: 'high',
81
+ message: 'Error updating tenant',
82
+ errorMessage: e.message,
83
+ errorStack: e.stack,
84
+ errorData: {
85
+ caller: 'ConnectSchema',
86
+ function: 'onSubmitEditTenant',
87
+ },
88
+ });
73
89
  setFormError('Error updating tenant');
74
90
  }
75
91
  finally {
@@ -99,11 +115,27 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
99
115
  if (!results?.length) {
100
116
  setFormError(`No rows were returned from this ${tenant.tenantTableQuery ? 'query' : 'table'}`);
101
117
  }
118
+ const uniqueIds = new Set(results?.map((r) => r.id));
119
+ if (uniqueIds.size < results?.length) {
120
+ setFormError('Duplicate tenant IDs found in results. Each tenant must have a unique ID.');
121
+ return [];
122
+ }
102
123
  return results;
103
124
  }
104
125
  }
105
126
  catch (e) {
106
127
  console.log('error', e);
128
+ eventTracking?.logError?.({
129
+ type: 'bug', // TODO: determine type
130
+ severity: 'high',
131
+ message: 'Error validating tenant',
132
+ errorMessage: e.message,
133
+ errorStack: e.stack,
134
+ errorData: {
135
+ caller: 'ConnectSchema',
136
+ function: 'onValidateEditTenant',
137
+ },
138
+ });
107
139
  setFormError('Error validating tenant');
108
140
  return [];
109
141
  }
@@ -1,8 +1,7 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { ColumnsByTable } from '../../utils/table';
3
3
  import { ConnectionType } from '../../utils/databases';
4
- import { State } from '../../AdminProvider';
5
- import { QuillTenant } from '../../utils/tenants';
4
+ import { State } from '../../models/AdminContext';
6
5
  import { QuillProviderClient } from '@quillsql/react/dist/cjs/models/Client';
7
6
  import { TenantInit } from '../../utils/schema';
8
7
  export default function CreateVirtualTables({ containerStyle, header1Style, header2Style, environmentDetails, databaseSchema, completeOnboarding, client, state, tenantInit, isLoading, sqlTables, setSqlTables, }: {
@@ -38,10 +37,4 @@ export declare function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQue
38
37
  }) => void;
39
38
  addVirtualTable: (e: boolean) => Promise<void>;
40
39
  }): import("react/jsx-runtime").JSX.Element;
41
- export declare function TenantFieldModal({ isOpen, setClosed, tenant, onOverride, }: {
42
- isOpen: boolean;
43
- setClosed: () => void;
44
- tenant?: QuillTenant;
45
- onOverride?: () => void;
46
- }): import("react/jsx-runtime").JSX.Element;
47
40
  //# sourceMappingURL=CreateVirtualTables.d.ts.map