@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
@@ -17,10 +17,16 @@ const QuillMultiSelectWithCombo_1 = require("../../components/QuillMultiSelectWi
17
17
  const CardSection_1 = __importDefault(require("../../components/CardSection"));
18
18
  // import InputLabel from '../../components/InputLabel';
19
19
  const AdminProvider_1 = require("../../AdminProvider");
20
+ const dataFetcher_1 = require("../../utils/dataFetcher");
21
+ const useLongLoading_1 = require("../../hooks/useLongLoading");
20
22
  function ConnectDatabase({ containerStyle, header1Style, header2Style, environmentDetails, setEnvironmentDetails, fetchSchemasLoading, onConnectDatabase, }) {
21
- const { state, getToken } = (0, AdminProvider_1.useAdmin)();
23
+ const { state, getToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
22
24
  const [error, setError] = (0, react_1.useState)(undefined);
23
25
  const [isConnecting, setIsConnecting] = (0, react_1.useState)(false);
26
+ (0, useLongLoading_1.useLongLoading)(isConnecting, {
27
+ origin: 'ConnectDatabase',
28
+ loadDescription: 'Connecting to database',
29
+ });
24
30
  const [clientId, setClientId] = (0, react_1.useState)(environmentDetails.client.clientId);
25
31
  const [fileLabel, setFileLabel] = (0, react_1.useState)('No file chosen');
26
32
  const [allSchemas, setAllSchemas] = (0, react_1.useState)([]);
@@ -54,7 +60,12 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
54
60
  // Redact sensitive information
55
61
  const savedConnectionDetails = { ...databaseConnectionDetails };
56
62
  savedConnectionDetails.connectionString = '';
57
- savedConnectionDetails.password = '';
63
+ if (databaseConnectionDetails.type === 'Databricks') {
64
+ savedConnectionDetails.token = '';
65
+ }
66
+ else {
67
+ savedConnectionDetails.password = '';
68
+ }
58
69
  sessionStorage.setItem('connectionDetails', JSON.stringify(savedConnectionDetails));
59
70
  }, [databaseConnectionDetails]);
60
71
  const handleFileChange = (e) => {
@@ -76,6 +87,17 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
76
87
  }
77
88
  catch (err) {
78
89
  console.log('Error parsing JSON file', err);
90
+ eventTracking?.logError?.({
91
+ type: 'bug', // TODO: determine type
92
+ severity: 'high',
93
+ message: 'Error parsing JSON file',
94
+ errorMessage: err.message,
95
+ errorStack: err.stack,
96
+ errorData: {
97
+ caller: 'ConnectDatabase',
98
+ function: 'handleFileChange',
99
+ },
100
+ });
79
101
  setFileLabel('Error parsing JSON file');
80
102
  }
81
103
  };
@@ -86,6 +108,7 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
86
108
  return false;
87
109
  }
88
110
  const typedDetails = databaseConnectionDetails;
111
+ const databricksDetails = databaseConnectionDetails;
89
112
  switch (databaseConnectionDetails.type) {
90
113
  case 'PostgreSQL':
91
114
  case 'MySQL':
@@ -100,6 +123,10 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
100
123
  !(typedDetails.port ||
101
124
  (typedDetails.warehouse &&
102
125
  typedDetails.type === 'Snowflake')));
126
+ case 'Databricks':
127
+ return (!databricksDetails.host ||
128
+ !databricksDetails.path ||
129
+ !databricksDetails.token);
103
130
  case 'BigQuery':
104
131
  return !databaseConnectionDetails.jsonString;
105
132
  default:
@@ -126,11 +153,22 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
126
153
  }
127
154
  try {
128
155
  setIsConnecting(true);
129
- await (0, ConnectionClient_1.setSchemaNames)(state.queryEndpoint, clientId, selectedSchemas, getToken);
130
- const databaseSchema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.queryEndpoint, clientId, getToken, selectedSchemas).then((res) => res.columnsByTable);
156
+ await (0, ConnectionClient_1.setSchemaNames)(state.queryEndpoint, clientId, selectedSchemas, getToken, state.queryHeaders);
157
+ const databaseSchema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.isSelfHosted, state.queryEndpoint, clientId, databaseConnectionDetails.type, getToken, selectedSchemas, state.queryHeaders).then((res) => res.columnsByTable);
131
158
  setEnvironmentDetails(databaseConnectionDetails, databaseSchema, selectedSchemas, clientId);
132
159
  }
133
160
  catch (e) {
161
+ eventTracking?.logError?.({
162
+ type: 'bug', // TODO: determine type
163
+ severity: 'high',
164
+ message: 'Error setting up database',
165
+ errorMessage: e.message,
166
+ errorStack: e.stack,
167
+ errorData: {
168
+ caller: 'ConnectDatabase',
169
+ function: 'nextStep',
170
+ },
171
+ });
134
172
  setError(e.message);
135
173
  }
136
174
  finally {
@@ -139,11 +177,38 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
139
177
  }, 1000);
140
178
  }
141
179
  };
180
+ const getSchemaNames = async () => {
181
+ setIsConnecting(true);
182
+ const tempClientId = clientId ?? state.client?.clientId;
183
+ const { data, status, queries } = await (0, dataFetcher_1.quillFetch)({
184
+ client: {
185
+ queryEndpoint: state.queryEndpoint,
186
+ queryHeaders: state.queryHeaders,
187
+ withCredentials: !!state.withCredentials,
188
+ clientId: tempClientId,
189
+ },
190
+ task: 'get-schema-names',
191
+ metadata: {
192
+ databaseType: databaseConnectionDetails.type,
193
+ newClientId: clientId,
194
+ },
195
+ getToken: getToken,
196
+ });
197
+ if (status !== 'success') {
198
+ setIsConnecting(false);
199
+ setError('Error fetching schemas');
200
+ return;
201
+ }
202
+ const schemas = queries?.queryResults?.[0]?.rows?.map((row) => row['schema_name'] || row['SCHEMA_NAME']);
203
+ setClientId(data?.clientId);
204
+ setAllSchemas(schemas);
205
+ setIsConnecting(false);
206
+ };
142
207
  const testConnectionAndFormClient = async () => {
143
208
  setError(undefined);
144
209
  const connectionString = (0, databases_1.formConnectionString)(databaseConnectionDetails);
145
210
  setIsConnecting(true);
146
- const result = await (0, ConnectionClient_1.testConnectionString)(state.queryEndpoint, connectionString, databaseConnectionDetails.type, getToken, clientId);
211
+ const result = await (0, ConnectionClient_1.testConnectionString)(state.queryEndpoint, connectionString, databaseConnectionDetails.type, getToken, clientId, state.queryHeaders);
147
212
  if (result.success) {
148
213
  try {
149
214
  setConnectionDetails({
@@ -161,6 +226,17 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
161
226
  onConnectDatabase?.(result.clientId);
162
227
  }
163
228
  catch (e) {
229
+ eventTracking?.logError?.({
230
+ type: 'bug', // TODO: determine type
231
+ severity: 'high',
232
+ message: 'Error connecting to database',
233
+ errorMessage: e.message,
234
+ errorStack: e.stack,
235
+ errorData: {
236
+ caller: 'ConnectDatabase',
237
+ function: 'testConnectionAndFormClient',
238
+ },
239
+ });
164
240
  setError("Couldn't connect to database");
165
241
  }
166
242
  finally {
@@ -176,50 +252,75 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
176
252
  display: 'flex',
177
253
  flexDirection: 'row',
178
254
  justifyContent: 'space-between',
179
- }, children: [(0, jsx_runtime_1.jsx)("h1", { style: header1Style, children: "Connect Database" }), clientId && !!selectedSchemas?.length && ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", width: "24px", height: "24px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm3.857-9.809a.75.75 0 0 0-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 1 0-1.06 1.061l2.5 2.5a.75.75 0 0 0 1.137-.089l4-5.5Z", clipRule: "evenodd" }) }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 12 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600, color: '#565656' }, children: "Database type" }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 10, userSelect: 'none' }, children: databases_1.DATABASE_DEFAULT_INFO.map((database) => {
180
- return ((0, jsx_runtime_1.jsx)(DatabaseSelector_1.default, { onDatabaseSelect: onDatabaseSelect, databaseType: databaseConnectionDetails?.type || '', containerStyle: { marginBottom: '12px' }, label: database.label, value: database.value, imageUrl: database.imageUrl }, database.label));
181
- }) })] }), databaseConnectionDetails && ((0, jsx_runtime_1.jsxs)("div", { children: [databaseConnectionDetails.type !== 'BigQuery' ? ((0, jsx_runtime_1.jsxs)("div", { children: [['MySQL', 'PostgreSQL'].includes(databaseConnectionDetails.type) && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 16, marginBottom: 24 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
182
- ...header2Style,
183
- fontWeight: 600,
184
- marginBottom: 8,
185
- }, children: "Connection Method" }), (0, jsx_runtime_1.jsx)(QuillTab_1.default, { width: "486px", modeToggleOptions: credentialTabOptions, toggleMode: credentialTab, setToggleMode: setCredentialTab })] })), credentialTab === 'Database Credentials' ? ((0, jsx_runtime_1.jsx)("div", { id: "database-details-form", children: (0, jsx_runtime_1.jsx)("div", { style: {
186
- display: 'grid',
187
- gridTemplateColumns: 'repeat(3, 1fr)',
188
- gap: '20px',
189
- justifyContent: 'space-between',
190
- marginTop: '16px',
191
- }, children:
192
- // get a list of types in the databaseConnectionDetails object and create a form for each
193
- Object.entries(databaseConnectionDetails).map(([key, value]) => {
194
- if (key !== 'connectionString' && key !== 'type')
195
- return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": `quill-input-${key}`, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
196
- ...header2Style,
197
- fontWeight: '600',
198
- }, children: key
199
- .split(/(?=[A-Z])/)
200
- .map((word) => word.charAt(0).toUpperCase() +
201
- word.slice(1))
202
- .join(' ') }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
203
- setConnectionDetails({
204
- ...databaseConnectionDetails,
205
- [key]: e.target.value,
206
- connectionString: '',
207
- });
208
- }, value: value, disabled: key === 'type', password: key === 'password' ? true : false })] }, key));
209
- }) }) })) : ((0, jsx_runtime_1.jsxs)("div", { "data-testid": "quill-input-connectionString", children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Connection String" }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
210
- updateConnectionString(e.target.value);
211
- }, value: databaseConnectionDetails.connectionString })] }))] })) : ((0, jsx_runtime_1.jsx)("div", { style: { minWidth: 790 }, children: (0, jsx_runtime_1.jsx)("div", { id: "database-details-form-bq", style: {
212
- display: 'grid',
213
- gridTemplateColumns: 'repeat(1, 1fr)',
214
- gap: '20px',
215
- justifyContent: 'space-between',
216
- marginTop: '16px',
217
- }, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: '600' }, children: "Service Account Json" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("input", { title: "Upload JSON", type: "file", accept: ".json", onChange: handleFileChange, style: { display: 'none' }, id: "fileInput", "data-testid": "quill-input-fileInput", ref: myInputRef }), (0, jsx_runtime_1.jsxs)("div", { style: {
218
- display: 'flex',
219
- flexDirection: 'row',
220
- gap: 12,
221
- alignItems: 'center',
222
- }, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { onClick: handleButtonClick, label: 'Upload JSON' }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "quill-file-label", style: { ...header2Style, fontWeight: '600' }, children: fileLabel })] })] })] }) }) })), (0, jsx_runtime_1.jsxs)("div", { style: {
255
+ }, children: [(0, jsx_runtime_1.jsx)("h1", { style: header1Style, children: "Connect Database" }), clientId && !!selectedSchemas?.length && ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", width: "24px", height: "24px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm3.857-9.809a.75.75 0 0 0-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 1 0-1.06 1.061l2.5 2.5a.75.75 0 0 0 1.137-.089l4-5.5Z", clipRule: "evenodd" }) }))] }), !state.isSelfHosted && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 12 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Database type" }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 10, userSelect: 'none' }, children: databases_1.DATABASE_DEFAULT_INFO.map((database) => {
256
+ return ((0, jsx_runtime_1.jsx)(DatabaseSelector_1.default, { onDatabaseSelect: onDatabaseSelect, databaseType: databaseConnectionDetails?.type || '', containerStyle: {
257
+ marginBottom: '12px',
258
+ ...(state.isSelfHosted && {
259
+ cursor: 'not-allowed',
260
+ pointerEvents: 'none',
261
+ }),
262
+ ...(state.isSelfHosted &&
263
+ database.value.toLowerCase() !==
264
+ environmentDetails.connection.type.toLowerCase() && {
265
+ backgroundColor: '#f5f5f5',
266
+ }),
267
+ }, label: database.label, value: database.value, imageUrl: database.imageUrl, theme: state.theme }, database.label));
268
+ }) })] })), databaseConnectionDetails && ((0, jsx_runtime_1.jsxs)("div", { children: [!state.isSelfHosted && ((0, jsx_runtime_1.jsx)("div", { children: databaseConnectionDetails.type !== 'BigQuery' ? ((0, jsx_runtime_1.jsxs)("div", { children: [['MySQL', 'PostgreSQL'].includes(databaseConnectionDetails.type) && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 16, marginBottom: 24 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
269
+ ...header2Style,
270
+ fontWeight: 600,
271
+ marginBottom: 8,
272
+ }, children: "Connection Method" }), (0, jsx_runtime_1.jsx)(QuillTab_1.default, { width: "486px", modeToggleOptions: credentialTabOptions, toggleMode: credentialTab, setToggleMode: setCredentialTab })] })), credentialTab === 'Database Credentials' ? ((0, jsx_runtime_1.jsx)("div", { id: "database-details-form", children: (0, jsx_runtime_1.jsx)("div", { style: {
273
+ display: 'grid',
274
+ gridTemplateColumns: 'repeat(3, 1fr)',
275
+ gap: '20px',
276
+ justifyContent: 'space-between',
277
+ marginTop: '16px',
278
+ }, children:
279
+ // get a list of types in the databaseConnectionDetails object and create a form for each
280
+ Object.entries(databaseConnectionDetails).map(([key, value]) => {
281
+ if (key !== 'connectionString' && key !== 'type')
282
+ return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": `quill-input-${key}`, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
283
+ ...header2Style,
284
+ fontWeight: '600',
285
+ }, children: key
286
+ .split(/(?=[A-Z])/)
287
+ .map((word) => word.charAt(0).toUpperCase() +
288
+ word.slice(1))
289
+ .join(' ') }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
290
+ setConnectionDetails({
291
+ ...databaseConnectionDetails,
292
+ [key]: e.target.value,
293
+ connectionString: '',
294
+ });
295
+ }, value: value, disabled: key === 'type', password: key === 'password' ? true : false })] }, key));
296
+ }) }) })) : ((0, jsx_runtime_1.jsxs)("div", { "data-testid": "quill-input-connectionString", children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Connection String" }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
297
+ updateConnectionString(e.target.value);
298
+ }, value: databaseConnectionDetails.connectionString })] }))] })) : ((0, jsx_runtime_1.jsx)("div", { style: { minWidth: 790 }, children: (0, jsx_runtime_1.jsx)("div", { id: "database-details-form-bq", style: {
299
+ display: 'grid',
300
+ gridTemplateColumns: 'repeat(1, 1fr)',
301
+ gap: '20px',
302
+ justifyContent: 'space-between',
303
+ marginTop: '16px',
304
+ }, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: '600' }, children: "Service Account Json" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("input", { title: "Upload JSON", type: "file", accept: ".json", onChange: handleFileChange, style: { display: 'none' }, id: "fileInput", "data-testid": "quill-input-fileInput", ref: myInputRef }), (0, jsx_runtime_1.jsxs)("div", { style: {
305
+ display: 'flex',
306
+ flexDirection: 'row',
307
+ gap: 12,
308
+ alignItems: 'center',
309
+ }, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { onClick: handleButtonClick, label: 'Upload JSON' }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "quill-file-label", style: { ...header2Style, fontWeight: '600' }, children: fileLabel })] })] })] }) }) })) })), state.isSelfHosted ? ((0, jsx_runtime_1.jsxs)("div", { style: {
310
+ borderRadius: 6,
311
+ padding: 12,
312
+ background: '#f5f5f5',
313
+ marginBottom: 18,
314
+ marginTop: 18,
315
+ fontSize: 14,
316
+ }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Self-hosted Database Connection" }), (0, jsx_runtime_1.jsx)("div", { style: {
317
+ display: 'flex',
318
+ flexDirection: 'row',
319
+ alignItems: 'center',
320
+ gap: 4,
321
+ color: state.theme?.secondaryTextColor,
322
+ fontFamily: state.theme?.fontFamily,
323
+ }, children: `Using the database credentials passed into the Quill Server SDK at this endpoint: ${state.queryEndpoint}.` })] })) : ((0, jsx_runtime_1.jsxs)("div", { style: {
223
324
  borderRadius: 6,
224
325
  padding: 12,
225
326
  background: '#f5f5f5',
@@ -231,6 +332,8 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
231
332
  flexDirection: 'row',
232
333
  alignItems: 'center',
233
334
  gap: 4,
335
+ color: state.theme?.secondaryTextColor,
336
+ fontFamily: state.theme?.fontFamily,
234
337
  }, children: ["Ensure Quill's IP is allowed to connect to your database", ' ', (0, jsx_runtime_1.jsx)(ExternalLink_1.default, { href: databaseConnectionDetails.type.toLowerCase() === 'bigquery'
235
338
  ? 'https://cloud.google.com/access-context-manager/docs/overview#ip-address'
236
339
  : databaseConnectionDetails.type.toLowerCase() === 'mysql'
@@ -246,18 +349,26 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
246
349
  ? 'https://clickhouse.com/docs/cloud/security/setting-ip-filters/'
247
350
  : 'https://www.postgresql.org/docs/current/auth-pg-hba-conf.html' })] }), (0, jsx_runtime_1.jsx)(ClipboardButton_1.default, { text: "34.133.137.225", containerStyle: {
248
351
  marginTop: 12,
249
- } })] }), (0, jsx_runtime_1.jsx)("div", { style: {
352
+ } })] })), (0, jsx_runtime_1.jsx)("div", { style: {
250
353
  width: '100%',
251
354
  display: 'flex',
252
355
  justifyContent: 'space-between',
253
356
  alignItems: 'center',
254
357
  marginTop: '24px',
255
- }, "data-testid": "quill-connect-button", children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Connect', onClick: testConnectionAndFormClient, disabled: isButtonDisabled, isLoading: isConnecting }) })] })), (0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: !!error, onClose: () => setError(undefined), style: {
358
+ }, "data-testid": "quill-connect-button", children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Connect', onClick: () => {
359
+ if (state.isSelfHosted) {
360
+ getSchemaNames();
361
+ }
362
+ else {
363
+ testConnectionAndFormClient();
364
+ }
365
+ }, disabled: isButtonDisabled && !state.isSelfHosted, isLoading: isConnecting }) })] })), (0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: !!error, onClose: () => setError(undefined), style: {
256
366
  width: 420,
257
367
  }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
258
368
  display: 'flex',
259
369
  flexDirection: 'column',
260
370
  gap: 20,
371
+ fontFamily: state.theme?.fontFamily,
261
372
  width: '100%',
262
373
  }, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: "Failed to Connect" }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 5 }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
263
374
  color: 'red',
@@ -286,6 +397,7 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
286
397
  flexDirection: 'column',
287
398
  gap: 20,
288
399
  width: '100%',
400
+ fontFamily: state.theme?.fontFamily,
289
401
  }, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: "Connection Successful" }), (0, jsx_runtime_1.jsx)("h2", { style: {
290
402
  fontSize: 15,
291
403
  fontWeight: 500,
@@ -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,2CA0SA"}
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;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"}
@@ -12,15 +12,20 @@ const EditTenant_1 = require("../../components/Tenants/EditTenant");
12
12
  const CardSection_1 = __importDefault(require("../../components/CardSection"));
13
13
  const useDatabaseSchema_1 = require("../../hooks/useDatabaseSchema");
14
14
  const UiComponents_1 = require("../../components/UiComponents");
15
+ const useLongLoading_1 = require("../../hooks/useLongLoading");
15
16
  function ConnectSchema({ containerStyle, header1Style,
16
17
  // header2Style,
17
18
  databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSchemas, state, label, returnToConnectDatabase, }) {
18
19
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
20
  const [formError, setFormError] = (0, react_1.useState)(undefined);
20
21
  const [isSubmitTenantLoading, setSubmitTenantLoading] = (0, react_1.useState)(false);
22
+ (0, useLongLoading_1.useLongLoading)(isSubmitTenantLoading, {
23
+ origin: 'ConnectSchema',
24
+ loadDescription: 'Submitting tenant',
25
+ });
21
26
  const [tenantToEdit, setTenantToEdit] = (0, react_1.useState)(tenantInit?.ownerTenant);
22
27
  const { schema, isLoading } = (0, useDatabaseSchema_1.useDatabaseSchema)();
23
- const { quillFetchWithToken } = (0, AdminProvider_1.useAdmin)();
28
+ const { quillFetchWithToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
24
29
  const tenantRequest = async (tenant, mode, isOnboarding) => {
25
30
  return await quillFetchWithToken({
26
31
  client: {
@@ -76,6 +81,17 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
76
81
  }
77
82
  catch (e) {
78
83
  console.log('error', e);
84
+ eventTracking?.logError?.({
85
+ type: 'bug', // TODO: determine type
86
+ severity: 'high',
87
+ message: 'Error updating tenant',
88
+ errorMessage: e.message,
89
+ errorStack: e.stack,
90
+ errorData: {
91
+ caller: 'ConnectSchema',
92
+ function: 'onSubmitEditTenant',
93
+ },
94
+ });
79
95
  setFormError('Error updating tenant');
80
96
  }
81
97
  finally {
@@ -105,11 +121,27 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
105
121
  if (!results?.length) {
106
122
  setFormError(`No rows were returned from this ${tenant.tenantTableQuery ? 'query' : 'table'}`);
107
123
  }
124
+ const uniqueIds = new Set(results?.map((r) => r.id));
125
+ if (uniqueIds.size < results?.length) {
126
+ setFormError('Duplicate tenant IDs found in results. Each tenant must have a unique ID.');
127
+ return [];
128
+ }
108
129
  return results;
109
130
  }
110
131
  }
111
132
  catch (e) {
112
133
  console.log('error', e);
134
+ eventTracking?.logError?.({
135
+ type: 'bug', // TODO: determine type
136
+ severity: 'high',
137
+ message: 'Error validating tenant',
138
+ errorMessage: e.message,
139
+ errorStack: e.stack,
140
+ errorData: {
141
+ caller: 'ConnectSchema',
142
+ function: 'onValidateEditTenant',
143
+ },
144
+ });
113
145
  setFormError('Error validating tenant');
114
146
  return [];
115
147
  }
@@ -129,7 +161,8 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
129
161
  }, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
130
162
  fontSize: 15,
131
163
  fontWeight: 500,
132
- color: '#6e6e6e',
164
+ color: state.theme?.secondaryTextColor,
165
+ fontFamily: state.theme?.fontFamily,
133
166
  paddingBottom: 20,
134
167
  }, children: `How do you represent your customers in your database?` }), (0, jsx_runtime_1.jsx)(EditTenant_1.EditTenant, { tenant: tenantToEdit, setTenant: (tenant) => setTenantToEdit(tenant), setCreateNewTenant: () => { }, onSubmitEditTenant: onSubmitEditTenant, onValidateEditTenant: onValidateEditTenant, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, ButtonComponent: UiComponents_1.MemoizedButton, isSubmitTenantLoading: isSubmitTenantLoading, client: {
135
168
  id: clientId,
@@ -144,6 +177,7 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
144
177
  display: 'flex',
145
178
  flexDirection: 'column',
146
179
  gap: 20,
180
+ fontFamily: state.theme?.fontFamily,
147
181
  width: '100%',
148
182
  }, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: noTables ? 'Schema Issue' : 'Tenant Issue' }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 5 }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
149
183
  color: 'red',
@@ -38,10 +38,11 @@ export declare function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQue
38
38
  }) => void;
39
39
  addVirtualTable: (e: boolean) => Promise<void>;
40
40
  }): import("react/jsx-runtime").JSX.Element;
41
- export declare function TenantFieldModal({ isOpen, setClosed, tenant, onOverride, }: {
41
+ export declare function TenantFieldModal({ isOpen, setClosed, tenant, onOverride, errorType, }: {
42
42
  isOpen: boolean;
43
43
  setClosed: () => void;
44
44
  tenant?: QuillTenant;
45
45
  onOverride?: () => void;
46
+ errorType?: 'missing' | 'type_mismatch';
46
47
  }): import("react/jsx-runtime").JSX.Element;
47
48
  //# sourceMappingURL=CreateVirtualTables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateVirtualTables.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateVirtualTables.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AACnE,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAY3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,GACb,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,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;CAClE,2CAoiBA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,2CAqHA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,GACX,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,2CA8EA"}
1
+ {"version":3,"file":"CreateVirtualTables.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateVirtualTables.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AACnE,OAAO,EAAkB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,GACb,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,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;CAClE,2CA2jBA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,2CA2HA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,EACV,SAAqB,GACtB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC;CACzC,2CAwHA"}