@quillsql/admin 1.6.1 → 1.6.3

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 (678) hide show
  1. package/dist/cjs/Admin.d.ts +41 -87
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +358 -456
  4. package/dist/cjs/AdminProvider.d.ts +108 -50
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +390 -208
  7. package/dist/cjs/api/ConnectionClient.d.ts +20 -38
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +291 -321
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  11. package/dist/cjs/components/Banner/index.d.ts +0 -1
  12. package/dist/cjs/components/Banner/index.d.ts.map +1 -1
  13. package/dist/cjs/components/Banner/index.js +1 -1
  14. package/dist/cjs/components/CardSection.js +1 -1
  15. package/dist/cjs/components/CardTitle.js +1 -1
  16. package/dist/cjs/components/ClipboardButton.d.ts +8 -0
  17. package/dist/cjs/components/ClipboardButton.d.ts.map +1 -0
  18. package/dist/cjs/components/ClipboardButton.js +74 -0
  19. package/dist/cjs/components/DashboardSelectPopover.d.ts +8 -5
  20. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  21. package/dist/cjs/components/DashboardSelectPopover.js +74 -185
  22. package/dist/cjs/components/DatabaseMismatchCard.d.ts +3 -3
  23. package/dist/cjs/components/DatabaseMismatchCard.d.ts.map +1 -1
  24. package/dist/cjs/components/DatabaseMismatchCard.js +3 -3
  25. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  26. package/dist/cjs/components/DatabaseSelector.js +10 -2
  27. package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts +10 -0
  28. package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -0
  29. package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +263 -0
  30. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts +18 -0
  31. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -0
  32. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +288 -0
  33. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts +91 -0
  34. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -0
  35. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.js +898 -0
  36. package/dist/cjs/components/DeleteButton.d.ts +0 -1
  37. package/dist/cjs/components/DeleteButton.d.ts.map +1 -1
  38. package/dist/cjs/components/DeleteButton.js +1 -1
  39. package/dist/cjs/components/DropDownMenu.js +1 -1
  40. package/dist/cjs/components/DropDownMenuWithLabel.d.ts +4 -3
  41. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  42. package/dist/cjs/components/DropDownMenuWithLabel.js +56 -29
  43. package/dist/cjs/components/DynamicBanner.d.ts +2 -5
  44. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
  45. package/dist/cjs/components/DynamicBanner.js +3 -3
  46. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts +0 -1
  47. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  48. package/dist/cjs/components/EmptyDashboardComponent/index.js +6 -5
  49. package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts +4 -0
  50. package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts.map +1 -0
  51. package/dist/cjs/components/EmptyVirtualTablesComponent.js +41 -0
  52. package/dist/cjs/components/ExternalLink.d.ts +4 -0
  53. package/dist/cjs/components/ExternalLink.d.ts.map +1 -0
  54. package/dist/cjs/components/ExternalLink.js +15 -0
  55. package/dist/cjs/components/FormTooltip.d.ts +8 -0
  56. package/dist/cjs/components/FormTooltip.d.ts.map +1 -0
  57. package/dist/cjs/components/FormTooltip.js +89 -0
  58. package/dist/cjs/components/InputLabel.d.ts +4 -1
  59. package/dist/cjs/components/InputLabel.d.ts.map +1 -1
  60. package/dist/cjs/components/InputLabel.js +13 -8
  61. package/dist/cjs/components/InternalDashboard/ChartSkeleton.d.ts +11 -0
  62. package/dist/cjs/components/InternalDashboard/ChartSkeleton.d.ts.map +1 -0
  63. package/dist/cjs/components/InternalDashboard/ChartSkeleton.js +21 -0
  64. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +20 -0
  65. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -0
  66. package/dist/cjs/components/InternalDashboard/DashboardFilter.js +104 -0
  67. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts +7 -0
  68. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -0
  69. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.js +22 -0
  70. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts +37 -0
  71. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -0
  72. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +275 -0
  73. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts +85 -0
  74. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -0
  75. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.js +534 -0
  76. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts +17 -0
  77. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -0
  78. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +1947 -0
  79. package/dist/cjs/components/OrgSelect.d.ts +9 -13
  80. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  81. package/dist/cjs/components/OrgSelect.js +136 -119
  82. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +30 -0
  83. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -0
  84. package/dist/cjs/components/QuillMultiSelectWithCombo.js +504 -0
  85. package/dist/cjs/components/QuillPopover.d.ts +11 -0
  86. package/dist/cjs/components/QuillPopover.d.ts.map +1 -0
  87. package/dist/cjs/components/QuillPopover.js +180 -0
  88. package/dist/cjs/components/QuillSelect.d.ts +1 -1
  89. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  90. package/dist/cjs/components/QuillSelect.js +38 -16
  91. package/dist/cjs/components/QuillSelectWithCombo.d.ts +22 -0
  92. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -0
  93. package/dist/cjs/components/QuillSelectWithCombo.js +327 -0
  94. package/dist/cjs/components/QuillTab.d.ts +12 -0
  95. package/dist/cjs/components/QuillTab.d.ts.map +1 -0
  96. package/dist/cjs/components/QuillTab.js +84 -0
  97. package/dist/cjs/components/QuillToolTipPortal.d.ts +11 -0
  98. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -0
  99. package/dist/cjs/components/QuillToolTipPortal.js +108 -0
  100. package/dist/cjs/components/SegmentedControl.d.ts +8 -2
  101. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -1
  102. package/dist/cjs/components/SegmentedControl.js +11 -12
  103. package/dist/cjs/components/SqlTextEditor.d.ts +2 -5
  104. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  105. package/dist/cjs/components/SqlTextEditor.js +20 -19
  106. package/dist/cjs/components/StepDisplay.d.ts.map +1 -1
  107. package/dist/cjs/components/StepDisplay.js +2 -2
  108. package/dist/cjs/components/Tenants/EditTenant.d.ts +41 -0
  109. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -0
  110. package/dist/cjs/components/Tenants/EditTenant.js +760 -0
  111. package/dist/cjs/components/UiComponents.d.ts +35 -6
  112. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  113. package/dist/cjs/components/UiComponents.js +226 -28
  114. package/dist/cjs/components/VirtualTableTile.d.ts +7 -0
  115. package/dist/cjs/components/VirtualTableTile.d.ts.map +1 -0
  116. package/dist/cjs/components/VirtualTableTile.js +51 -0
  117. package/dist/cjs/components/index.d.ts +5 -5
  118. package/dist/cjs/components/index.d.ts.map +1 -1
  119. package/dist/cjs/components/index.js +1 -1
  120. package/dist/cjs/constants/dataTypes.d.ts.map +1 -1
  121. package/dist/cjs/constants/dataTypes.js +2 -0
  122. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +15 -6
  123. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  124. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +209 -96
  125. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +13 -9
  126. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  127. package/dist/cjs/forms/client_onboard/ConnectSchema.js +158 -236
  128. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +47 -0
  129. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -0
  130. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +396 -0
  131. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts +2 -0
  132. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts.map +1 -0
  133. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.js +571 -0
  134. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.d.ts +2 -0
  135. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.d.ts.map +1 -0
  136. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +459 -0
  137. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts +2 -0
  138. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts.map +1 -0
  139. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +385 -0
  140. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts +20 -0
  141. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -0
  142. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +294 -0
  143. package/dist/cjs/hooks/useDashboardManager.d.ts +16 -0
  144. package/dist/cjs/hooks/useDashboardManager.d.ts.map +1 -0
  145. package/dist/cjs/hooks/useDashboardManager.js +113 -0
  146. package/dist/cjs/hooks/useDatabaseSchema.d.ts +5 -0
  147. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -0
  148. package/dist/cjs/hooks/useDatabaseSchema.js +54 -0
  149. package/dist/cjs/hooks/useItemBeingEdited.d.ts +1 -2
  150. package/dist/cjs/hooks/useItemBeingEdited.d.ts.map +1 -1
  151. package/dist/cjs/hooks/useItemBeingEdited.js +2 -14
  152. package/dist/cjs/hooks/useOnClickOutside.d.ts +4 -1
  153. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  154. package/dist/cjs/hooks/useOnClickOutside.js +50 -7
  155. package/dist/cjs/hooks/useTenants.d.ts +13 -0
  156. package/dist/cjs/hooks/useTenants.d.ts.map +1 -0
  157. package/dist/cjs/hooks/useTenants.js +174 -0
  158. package/dist/cjs/hooks/useThrottle.d.ts +2 -0
  159. package/dist/cjs/hooks/useThrottle.d.ts.map +1 -0
  160. package/dist/cjs/hooks/useThrottle.js +14 -0
  161. package/dist/cjs/icons/CheckCircleIcon.d.ts +5 -0
  162. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -0
  163. package/dist/cjs/icons/CheckCircleIcon.js +5 -0
  164. package/dist/cjs/icons/DownChevronIcon.d.ts +2 -0
  165. package/dist/cjs/icons/DownChevronIcon.d.ts.map +1 -0
  166. package/dist/cjs/icons/DownChevronIcon.js +7 -0
  167. package/dist/cjs/icons/ExclamationFilledIcon.d.ts +5 -0
  168. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -0
  169. package/dist/cjs/icons/ExclamationFilledIcon.js +5 -0
  170. package/dist/cjs/icons/ExteriorLinkIcon.d.ts +5 -0
  171. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -0
  172. package/dist/cjs/icons/ExteriorLinkIcon.js +5 -0
  173. package/dist/cjs/icons/GlobeIcon.d.ts +5 -0
  174. package/dist/cjs/icons/GlobeIcon.d.ts.map +1 -0
  175. package/dist/cjs/icons/GlobeIcon.js +15 -0
  176. package/dist/cjs/icons/InformationCircleIcon.d.ts +4 -0
  177. package/dist/cjs/icons/InformationCircleIcon.d.ts.map +1 -0
  178. package/dist/cjs/icons/InformationCircleIcon.js +7 -0
  179. package/dist/cjs/icons/LeftChevronIcon.d.ts +2 -0
  180. package/dist/cjs/icons/LeftChevronIcon.d.ts.map +1 -0
  181. package/dist/cjs/icons/LeftChevronIcon.js +7 -0
  182. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts +5 -0
  183. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -0
  184. package/dist/cjs/icons/QuestionMarkCircleIcon.js +5 -0
  185. package/dist/cjs/icons/RightChevronIcon.d.ts +2 -0
  186. package/dist/cjs/icons/RightChevronIcon.d.ts.map +1 -0
  187. package/dist/cjs/icons/RightChevronIcon.js +7 -0
  188. package/dist/cjs/icons/XMarkIcon.d.ts +0 -1
  189. package/dist/cjs/icons/XMarkIcon.d.ts.map +1 -1
  190. package/dist/cjs/icons/XMarkIcon.js +1 -1
  191. package/dist/cjs/index.d.ts +2 -3
  192. package/dist/cjs/index.d.ts.map +1 -1
  193. package/dist/cjs/index.js +6 -7
  194. package/dist/cjs/modals/CodePreview.d.ts +6 -0
  195. package/dist/cjs/modals/CodePreview.d.ts.map +1 -0
  196. package/dist/cjs/modals/CodePreview.js +151 -0
  197. package/dist/cjs/modals/EditEnvironmentModal.d.ts +15 -0
  198. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -0
  199. package/dist/cjs/modals/EditEnvironmentModal.js +551 -0
  200. package/dist/cjs/modals/EditFiltersModal.d.ts +14 -10
  201. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  202. package/dist/cjs/modals/EditFiltersModal.js +1219 -263
  203. package/dist/cjs/modals/NewDashboardModal.d.ts +6 -8
  204. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  205. package/dist/cjs/modals/NewDashboardModal.js +147 -146
  206. package/dist/cjs/modals/PromoteDashboardModal.d.ts +16 -0
  207. package/dist/cjs/modals/PromoteDashboardModal.d.ts.map +1 -0
  208. package/dist/cjs/modals/PromoteDashboardModal.js +56 -0
  209. package/dist/cjs/modals/PromoteReportModal.d.ts +15 -0
  210. package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -0
  211. package/dist/cjs/modals/PromoteReportModal.js +128 -0
  212. package/dist/cjs/modals/PromoteViewModal.d.ts +5 -5
  213. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  214. package/dist/cjs/modals/PromoteViewModal.js +58 -94
  215. package/dist/cjs/modals/ReorderDashboardModal.d.ts +1 -2
  216. package/dist/cjs/modals/ReorderDashboardModal.d.ts.map +1 -1
  217. package/dist/cjs/modals/ReorderDashboardModal.js +34 -20
  218. package/dist/cjs/modals/SavedQueriesModal.d.ts +7 -0
  219. package/dist/cjs/modals/SavedQueriesModal.d.ts.map +1 -0
  220. package/dist/cjs/modals/SavedQueriesModal.js +128 -0
  221. package/dist/cjs/modals/index.d.ts +0 -1
  222. package/dist/cjs/modals/index.d.ts.map +1 -1
  223. package/dist/cjs/modals/index.js +1 -3
  224. package/dist/cjs/primitives/ButtonPrimitive.d.ts +3 -1
  225. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  226. package/dist/cjs/primitives/ButtonPrimitive.js +24 -16
  227. package/dist/cjs/primitives/CheckboxPrimitive.d.ts +12 -0
  228. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -0
  229. package/dist/cjs/primitives/CheckboxPrimitive.js +29 -0
  230. package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
  231. package/dist/cjs/primitives/HeaderPrimitive.js +1 -1
  232. package/dist/cjs/primitives/MiniButtonPrimitive.d.ts +7 -0
  233. package/dist/cjs/primitives/MiniButtonPrimitive.d.ts.map +1 -0
  234. package/dist/cjs/primitives/MiniButtonPrimitive.js +56 -0
  235. package/dist/cjs/primitives/ModalPrimitive.d.ts +2 -10
  236. package/dist/cjs/primitives/ModalPrimitive.d.ts.map +1 -1
  237. package/dist/cjs/primitives/ModalPrimitive.js +6 -6
  238. package/dist/cjs/primitives/PlaceholderPrimitive.d.ts +5 -0
  239. package/dist/cjs/primitives/PlaceholderPrimitive.d.ts.map +1 -0
  240. package/dist/cjs/primitives/PlaceholderPrimitive.js +18 -0
  241. package/dist/cjs/primitives/PopoverPrimitive.d.ts +8 -0
  242. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -0
  243. package/dist/cjs/primitives/PopoverPrimitive.js +53 -0
  244. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts +3 -1
  245. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  246. package/dist/cjs/primitives/SecondaryButtonPrimitive.js +13 -10
  247. package/dist/cjs/primitives/TextInputPrimitive.d.ts +7 -2
  248. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  249. package/dist/cjs/primitives/TextInputPrimitive.js +109 -14
  250. package/dist/cjs/primitives/TogglePrimitive.d.ts +6 -3
  251. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
  252. package/dist/cjs/primitives/TogglePrimitive.js +10 -7
  253. package/dist/cjs/primitives/index.d.ts +1 -1
  254. package/dist/cjs/primitives/index.d.ts.map +1 -1
  255. package/dist/cjs/primitives/index.js +3 -3
  256. package/dist/cjs/public_components/ChartQueryBuilder.d.ts +9 -0
  257. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -0
  258. package/dist/cjs/public_components/ChartQueryBuilder.js +131 -0
  259. package/dist/cjs/public_components/CreateEnvironment.d.ts +1 -1
  260. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  261. package/dist/cjs/public_components/CreateEnvironment.js +168 -81
  262. package/dist/cjs/public_components/DashboardManager.d.ts +2 -2
  263. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  264. package/dist/cjs/public_components/DashboardManager.js +346 -187
  265. package/dist/cjs/public_components/EnvSelectPopover.d.ts +12 -0
  266. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -0
  267. package/dist/cjs/public_components/EnvSelectPopover.js +144 -0
  268. package/dist/cjs/public_components/{SQLViewManager.d.ts → VirtualTableManager.d.ts} +3 -2
  269. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -0
  270. package/dist/cjs/public_components/VirtualTableManager.js +731 -0
  271. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.d.ts +2 -0
  272. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.d.ts.map +1 -0
  273. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +685 -0
  274. package/dist/cjs/utils/astProcessing.d.ts +14 -1
  275. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  276. package/dist/cjs/utils/astProcessing.js +72 -8
  277. package/dist/cjs/utils/astProcessing.uspec.js +7 -3
  278. package/dist/cjs/utils/columnProcessing.d.ts +12 -0
  279. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  280. package/dist/cjs/utils/columnProcessing.js +173 -7
  281. package/dist/cjs/utils/constants.d.ts +4 -21
  282. package/dist/cjs/utils/constants.d.ts.map +1 -1
  283. package/dist/cjs/utils/constants.js +20 -11
  284. package/dist/cjs/utils/dataEditor.d.ts +4 -3
  285. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  286. package/dist/cjs/utils/dataEditor.js +69 -121
  287. package/dist/cjs/utils/dataFetcher.d.ts +20 -2
  288. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  289. package/dist/cjs/utils/dataFetcher.js +46 -56
  290. package/dist/cjs/utils/databases.d.ts +20 -8
  291. package/dist/cjs/utils/databases.d.ts.map +1 -1
  292. package/dist/cjs/utils/databases.js +63 -24
  293. package/dist/cjs/utils/filter.d.ts +222 -0
  294. package/dist/cjs/utils/filter.d.ts.map +1 -0
  295. package/dist/cjs/utils/filter.js +347 -0
  296. package/dist/cjs/utils/monacoAutocomplete.d.ts +2 -1
  297. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +1 -1
  298. package/dist/cjs/utils/monacoAutocomplete.js +149 -44
  299. package/dist/cjs/utils/report.d.ts +120 -0
  300. package/dist/cjs/utils/report.d.ts.map +1 -0
  301. package/dist/cjs/utils/report.js +109 -0
  302. package/dist/cjs/utils/schema.d.ts +41 -29
  303. package/dist/cjs/utils/schema.d.ts.map +1 -1
  304. package/dist/cjs/utils/schema.js +137 -91
  305. package/dist/cjs/utils/table.d.ts +70 -4
  306. package/dist/cjs/utils/table.d.ts.map +1 -1
  307. package/dist/cjs/utils/tenants.d.ts +48 -0
  308. package/dist/cjs/utils/tenants.d.ts.map +1 -0
  309. package/dist/cjs/utils/tenants.js +37 -0
  310. package/dist/cjs/utils/textProcessing.js +1 -2
  311. package/dist/cjs/utils/ui.d.ts +2 -0
  312. package/dist/cjs/utils/ui.d.ts.map +1 -0
  313. package/dist/cjs/utils/ui.js +18 -0
  314. package/dist/cjs/utils/validation.d.ts +2 -0
  315. package/dist/cjs/utils/validation.d.ts.map +1 -0
  316. package/dist/cjs/utils/validation.js +77 -0
  317. package/dist/cjs/utils/validation.uspec.d.ts +2 -0
  318. package/dist/cjs/utils/validation.uspec.d.ts.map +1 -0
  319. package/dist/cjs/utils/validation.uspec.js +53 -0
  320. package/dist/esm/Admin.d.ts +41 -87
  321. package/dist/esm/Admin.d.ts.map +1 -1
  322. package/dist/esm/Admin.js +355 -422
  323. package/dist/esm/AdminProvider.d.ts +108 -50
  324. package/dist/esm/AdminProvider.d.ts.map +1 -1
  325. package/dist/esm/AdminProvider.js +390 -209
  326. package/dist/esm/api/ConnectionClient.d.ts +20 -38
  327. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  328. package/dist/esm/api/ConnectionClient.js +280 -306
  329. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  330. package/dist/esm/components/Banner/index.d.ts +0 -1
  331. package/dist/esm/components/Banner/index.d.ts.map +1 -1
  332. package/dist/esm/components/ClipboardButton.d.ts +8 -0
  333. package/dist/esm/components/ClipboardButton.d.ts.map +1 -0
  334. package/dist/esm/components/ClipboardButton.js +69 -0
  335. package/dist/esm/components/DashboardSelectPopover.d.ts +8 -5
  336. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  337. package/dist/esm/components/DashboardSelectPopover.js +72 -186
  338. package/dist/esm/components/DatabaseMismatchCard.d.ts +3 -3
  339. package/dist/esm/components/DatabaseMismatchCard.d.ts.map +1 -1
  340. package/dist/esm/components/DatabaseMismatchCard.js +2 -2
  341. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  342. package/dist/esm/components/DatabaseSelector.js +9 -1
  343. package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts +10 -0
  344. package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -0
  345. package/dist/esm/components/DateRangePicker/SingleDatePicker.js +227 -0
  346. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts +18 -0
  347. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -0
  348. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +282 -0
  349. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts +91 -0
  350. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -0
  351. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.js +883 -0
  352. package/dist/esm/components/DeleteButton.d.ts +0 -1
  353. package/dist/esm/components/DeleteButton.d.ts.map +1 -1
  354. package/dist/esm/components/DropDownMenuWithLabel.d.ts +4 -3
  355. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  356. package/dist/esm/components/DropDownMenuWithLabel.js +37 -23
  357. package/dist/esm/components/DynamicBanner.d.ts +2 -5
  358. package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
  359. package/dist/esm/components/DynamicBanner.js +2 -2
  360. package/dist/esm/components/EmptyDashboardComponent/index.d.ts +0 -1
  361. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  362. package/dist/esm/components/EmptyDashboardComponent/index.js +5 -4
  363. package/dist/esm/components/EmptyVirtualTablesComponent.d.ts +4 -0
  364. package/dist/esm/components/EmptyVirtualTablesComponent.d.ts.map +1 -0
  365. package/dist/esm/components/EmptyVirtualTablesComponent.js +38 -0
  366. package/dist/esm/components/ExternalLink.d.ts +4 -0
  367. package/dist/esm/components/ExternalLink.d.ts.map +1 -0
  368. package/dist/esm/components/ExternalLink.js +9 -0
  369. package/dist/esm/components/FormTooltip.d.ts +8 -0
  370. package/dist/esm/components/FormTooltip.d.ts.map +1 -0
  371. package/dist/esm/components/FormTooltip.js +84 -0
  372. package/dist/esm/components/InputLabel.d.ts +4 -1
  373. package/dist/esm/components/InputLabel.d.ts.map +1 -1
  374. package/dist/esm/components/InputLabel.js +10 -8
  375. package/dist/esm/components/InternalDashboard/ChartSkeleton.d.ts +11 -0
  376. package/dist/esm/components/InternalDashboard/ChartSkeleton.d.ts.map +1 -0
  377. package/dist/esm/components/InternalDashboard/ChartSkeleton.js +16 -0
  378. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +20 -0
  379. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -0
  380. package/dist/esm/components/InternalDashboard/DashboardFilter.js +101 -0
  381. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts +7 -0
  382. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -0
  383. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.js +15 -0
  384. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts +37 -0
  385. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -0
  386. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +269 -0
  387. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts +85 -0
  388. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -0
  389. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.js +520 -0
  390. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts +17 -0
  391. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -0
  392. package/dist/esm/components/InternalDashboard/InternalDashboard.js +1940 -0
  393. package/dist/esm/components/OrgSelect.d.ts +9 -13
  394. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  395. package/dist/esm/components/OrgSelect.js +134 -117
  396. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +30 -0
  397. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -0
  398. package/dist/esm/components/QuillMultiSelectWithCombo.js +466 -0
  399. package/dist/esm/components/QuillPopover.d.ts +11 -0
  400. package/dist/esm/components/QuillPopover.d.ts.map +1 -0
  401. package/dist/esm/components/QuillPopover.js +144 -0
  402. package/dist/esm/components/QuillSelect.d.ts +1 -1
  403. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  404. package/dist/esm/components/QuillSelect.js +39 -16
  405. package/dist/esm/components/QuillSelectWithCombo.d.ts +22 -0
  406. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -0
  407. package/dist/esm/components/QuillSelectWithCombo.js +291 -0
  408. package/dist/esm/components/QuillTab.d.ts +12 -0
  409. package/dist/esm/components/QuillTab.d.ts.map +1 -0
  410. package/dist/esm/components/QuillTab.js +81 -0
  411. package/dist/esm/components/QuillToolTipPortal.d.ts +11 -0
  412. package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -0
  413. package/dist/esm/components/QuillToolTipPortal.js +104 -0
  414. package/dist/esm/components/SegmentedControl.d.ts +8 -2
  415. package/dist/esm/components/SegmentedControl.d.ts.map +1 -1
  416. package/dist/esm/components/SegmentedControl.js +10 -10
  417. package/dist/esm/components/SqlTextEditor.d.ts +2 -5
  418. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  419. package/dist/esm/components/SqlTextEditor.js +21 -20
  420. package/dist/esm/components/StepDisplay.d.ts.map +1 -1
  421. package/dist/esm/components/StepDisplay.js +1 -1
  422. package/dist/esm/components/Tenants/EditTenant.d.ts +41 -0
  423. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -0
  424. package/dist/esm/components/Tenants/EditTenant.js +754 -0
  425. package/dist/esm/components/UiComponents.d.ts +35 -6
  426. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  427. package/dist/esm/components/UiComponents.js +220 -26
  428. package/dist/esm/components/VirtualTableTile.d.ts +7 -0
  429. package/dist/esm/components/VirtualTableTile.d.ts.map +1 -0
  430. package/dist/esm/components/VirtualTableTile.js +48 -0
  431. package/dist/esm/components/index.d.ts +5 -5
  432. package/dist/esm/components/index.d.ts.map +1 -1
  433. package/dist/esm/components/index.js +5 -5
  434. package/dist/esm/constants/dataTypes.d.ts.map +1 -1
  435. package/dist/esm/constants/dataTypes.js +2 -0
  436. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +15 -6
  437. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  438. package/dist/esm/forms/client_onboard/ConnectDatabase.js +211 -98
  439. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +13 -9
  440. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  441. package/dist/esm/forms/client_onboard/ConnectSchema.js +160 -238
  442. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +47 -0
  443. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -0
  444. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +388 -0
  445. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts +2 -0
  446. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts.map +1 -0
  447. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.js +566 -0
  448. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.d.ts +2 -0
  449. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.d.ts.map +1 -0
  450. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +454 -0
  451. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts +2 -0
  452. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts.map +1 -0
  453. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +380 -0
  454. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts +20 -0
  455. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -0
  456. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +288 -0
  457. package/dist/esm/hooks/useDashboardManager.d.ts +16 -0
  458. package/dist/esm/hooks/useDashboardManager.d.ts.map +1 -0
  459. package/dist/esm/hooks/useDashboardManager.js +109 -0
  460. package/dist/esm/hooks/useDatabaseSchema.d.ts +5 -0
  461. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -0
  462. package/dist/esm/hooks/useDatabaseSchema.js +50 -0
  463. package/dist/esm/hooks/useItemBeingEdited.d.ts +1 -2
  464. package/dist/esm/hooks/useItemBeingEdited.d.ts.map +1 -1
  465. package/dist/esm/hooks/useItemBeingEdited.js +3 -15
  466. package/dist/esm/hooks/useOnClickOutside.d.ts +4 -1
  467. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  468. package/dist/esm/hooks/useOnClickOutside.js +49 -8
  469. package/dist/esm/hooks/useTenants.d.ts +13 -0
  470. package/dist/esm/hooks/useTenants.d.ts.map +1 -0
  471. package/dist/esm/hooks/useTenants.js +170 -0
  472. package/dist/esm/hooks/useThrottle.d.ts +2 -0
  473. package/dist/esm/hooks/useThrottle.d.ts.map +1 -0
  474. package/dist/esm/hooks/useThrottle.js +11 -0
  475. package/dist/esm/icons/CheckCircleIcon.d.ts +5 -0
  476. package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -0
  477. package/dist/esm/icons/CheckCircleIcon.js +3 -0
  478. package/dist/esm/icons/DownChevronIcon.d.ts +2 -0
  479. package/dist/esm/icons/DownChevronIcon.d.ts.map +1 -0
  480. package/dist/esm/icons/DownChevronIcon.js +4 -0
  481. package/dist/esm/icons/ExclamationFilledIcon.d.ts +5 -0
  482. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -0
  483. package/dist/esm/icons/ExclamationFilledIcon.js +3 -0
  484. package/dist/esm/icons/ExteriorLinkIcon.d.ts +5 -0
  485. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -0
  486. package/dist/esm/icons/ExteriorLinkIcon.js +3 -0
  487. package/dist/esm/icons/GlobeIcon.d.ts +5 -0
  488. package/dist/esm/icons/GlobeIcon.d.ts.map +1 -0
  489. package/dist/esm/icons/GlobeIcon.js +12 -0
  490. package/dist/esm/icons/InformationCircleIcon.d.ts +4 -0
  491. package/dist/esm/icons/InformationCircleIcon.d.ts.map +1 -0
  492. package/dist/esm/icons/InformationCircleIcon.js +4 -0
  493. package/dist/esm/icons/LeftChevronIcon.d.ts +2 -0
  494. package/dist/esm/icons/LeftChevronIcon.d.ts.map +1 -0
  495. package/dist/esm/icons/LeftChevronIcon.js +4 -0
  496. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts +5 -0
  497. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -0
  498. package/dist/esm/icons/QuestionMarkCircleIcon.js +3 -0
  499. package/dist/esm/icons/RightChevronIcon.d.ts +2 -0
  500. package/dist/esm/icons/RightChevronIcon.d.ts.map +1 -0
  501. package/dist/esm/icons/RightChevronIcon.js +4 -0
  502. package/dist/esm/icons/XMarkIcon.d.ts +0 -1
  503. package/dist/esm/icons/XMarkIcon.d.ts.map +1 -1
  504. package/dist/esm/index.d.ts +2 -3
  505. package/dist/esm/index.d.ts.map +1 -1
  506. package/dist/esm/index.js +3 -3
  507. package/dist/esm/modals/CodePreview.d.ts +6 -0
  508. package/dist/esm/modals/CodePreview.d.ts.map +1 -0
  509. package/dist/esm/modals/CodePreview.js +145 -0
  510. package/dist/esm/modals/EditEnvironmentModal.d.ts +15 -0
  511. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -0
  512. package/dist/esm/modals/EditEnvironmentModal.js +545 -0
  513. package/dist/esm/modals/EditFiltersModal.d.ts +14 -10
  514. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  515. package/dist/esm/modals/EditFiltersModal.js +1226 -264
  516. package/dist/esm/modals/NewDashboardModal.d.ts +6 -8
  517. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  518. package/dist/esm/modals/NewDashboardModal.js +148 -146
  519. package/dist/esm/modals/PromoteDashboardModal.d.ts +16 -0
  520. package/dist/esm/modals/PromoteDashboardModal.d.ts.map +1 -0
  521. package/dist/esm/modals/PromoteDashboardModal.js +53 -0
  522. package/dist/esm/modals/PromoteReportModal.d.ts +15 -0
  523. package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -0
  524. package/dist/esm/modals/PromoteReportModal.js +125 -0
  525. package/dist/esm/modals/PromoteViewModal.d.ts +5 -5
  526. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  527. package/dist/esm/modals/PromoteViewModal.js +58 -94
  528. package/dist/esm/modals/ReorderDashboardModal.d.ts +1 -2
  529. package/dist/esm/modals/ReorderDashboardModal.d.ts.map +1 -1
  530. package/dist/esm/modals/ReorderDashboardModal.js +34 -20
  531. package/dist/esm/modals/SavedQueriesModal.d.ts +7 -0
  532. package/dist/esm/modals/SavedQueriesModal.d.ts.map +1 -0
  533. package/dist/esm/modals/SavedQueriesModal.js +125 -0
  534. package/dist/esm/modals/index.d.ts +0 -1
  535. package/dist/esm/modals/index.d.ts.map +1 -1
  536. package/dist/esm/modals/index.js +0 -1
  537. package/dist/esm/primitives/ButtonPrimitive.d.ts +3 -1
  538. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  539. package/dist/esm/primitives/ButtonPrimitive.js +25 -17
  540. package/dist/esm/primitives/CheckboxPrimitive.d.ts +12 -0
  541. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -0
  542. package/dist/esm/primitives/CheckboxPrimitive.js +27 -0
  543. package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
  544. package/dist/esm/primitives/HeaderPrimitive.js +1 -1
  545. package/dist/esm/primitives/MiniButtonPrimitive.d.ts +7 -0
  546. package/dist/esm/primitives/MiniButtonPrimitive.d.ts.map +1 -0
  547. package/dist/esm/primitives/MiniButtonPrimitive.js +54 -0
  548. package/dist/esm/primitives/ModalPrimitive.d.ts +2 -10
  549. package/dist/esm/primitives/ModalPrimitive.d.ts.map +1 -1
  550. package/dist/esm/primitives/ModalPrimitive.js +7 -7
  551. package/dist/esm/primitives/PlaceholderPrimitive.d.ts +5 -0
  552. package/dist/esm/primitives/PlaceholderPrimitive.d.ts.map +1 -0
  553. package/dist/esm/primitives/PlaceholderPrimitive.js +15 -0
  554. package/dist/esm/primitives/PopoverPrimitive.d.ts +8 -0
  555. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -0
  556. package/dist/esm/primitives/PopoverPrimitive.js +49 -0
  557. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts +3 -1
  558. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  559. package/dist/esm/primitives/SecondaryButtonPrimitive.js +14 -11
  560. package/dist/esm/primitives/TextInputPrimitive.d.ts +7 -2
  561. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  562. package/dist/esm/primitives/TextInputPrimitive.js +77 -12
  563. package/dist/esm/primitives/TogglePrimitive.d.ts +6 -3
  564. package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
  565. package/dist/esm/primitives/TogglePrimitive.js +10 -7
  566. package/dist/esm/primitives/index.d.ts +1 -1
  567. package/dist/esm/primitives/index.d.ts.map +1 -1
  568. package/dist/esm/primitives/index.js +1 -1
  569. package/dist/esm/public_components/ChartQueryBuilder.d.ts +9 -0
  570. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -0
  571. package/dist/esm/public_components/ChartQueryBuilder.js +125 -0
  572. package/dist/esm/public_components/CreateEnvironment.d.ts +1 -1
  573. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  574. package/dist/esm/public_components/CreateEnvironment.js +152 -75
  575. package/dist/esm/public_components/DashboardManager.d.ts +2 -2
  576. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  577. package/dist/esm/public_components/DashboardManager.js +350 -191
  578. package/dist/esm/public_components/EnvSelectPopover.d.ts +12 -0
  579. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -0
  580. package/dist/esm/public_components/EnvSelectPopover.js +138 -0
  581. package/dist/esm/public_components/{SQLViewManager.d.ts → VirtualTableManager.d.ts} +3 -2
  582. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -0
  583. package/dist/esm/public_components/VirtualTableManager.js +723 -0
  584. package/dist/esm/public_components/__tests__/CreateEnvironment.test.d.ts +2 -0
  585. package/dist/esm/public_components/__tests__/CreateEnvironment.test.d.ts.map +1 -0
  586. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +680 -0
  587. package/dist/esm/utils/astProcessing.d.ts +14 -1
  588. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  589. package/dist/esm/utils/astProcessing.js +67 -6
  590. package/dist/esm/utils/astProcessing.uspec.js +8 -4
  591. package/dist/esm/utils/columnProcessing.d.ts +12 -0
  592. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  593. package/dist/esm/utils/columnProcessing.js +167 -4
  594. package/dist/esm/utils/constants.d.ts +4 -21
  595. package/dist/esm/utils/constants.d.ts.map +1 -1
  596. package/dist/esm/utils/constants.js +18 -9
  597. package/dist/esm/utils/dataEditor.d.ts +4 -3
  598. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  599. package/dist/esm/utils/dataEditor.js +65 -117
  600. package/dist/esm/utils/dataFetcher.d.ts +20 -2
  601. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  602. package/dist/esm/utils/dataFetcher.js +44 -53
  603. package/dist/esm/utils/databases.d.ts +20 -8
  604. package/dist/esm/utils/databases.d.ts.map +1 -1
  605. package/dist/esm/utils/databases.js +60 -21
  606. package/dist/esm/utils/filter.d.ts +222 -0
  607. package/dist/esm/utils/filter.d.ts.map +1 -0
  608. package/dist/esm/utils/filter.js +343 -0
  609. package/dist/esm/utils/monacoAutocomplete.d.ts +2 -1
  610. package/dist/esm/utils/monacoAutocomplete.d.ts.map +1 -1
  611. package/dist/esm/utils/monacoAutocomplete.js +146 -41
  612. package/dist/esm/utils/report.d.ts +120 -0
  613. package/dist/esm/utils/report.d.ts.map +1 -0
  614. package/dist/esm/utils/report.js +106 -0
  615. package/dist/esm/utils/schema.d.ts +41 -29
  616. package/dist/esm/utils/schema.d.ts.map +1 -1
  617. package/dist/esm/utils/schema.js +133 -88
  618. package/dist/esm/utils/table.d.ts +70 -4
  619. package/dist/esm/utils/table.d.ts.map +1 -1
  620. package/dist/esm/utils/tenants.d.ts +48 -0
  621. package/dist/esm/utils/tenants.d.ts.map +1 -0
  622. package/dist/esm/utils/tenants.js +31 -0
  623. package/dist/esm/utils/ui.d.ts +2 -0
  624. package/dist/esm/utils/ui.d.ts.map +1 -0
  625. package/dist/esm/utils/ui.js +14 -0
  626. package/dist/esm/utils/validation.d.ts +2 -0
  627. package/dist/esm/utils/validation.d.ts.map +1 -0
  628. package/dist/esm/utils/validation.js +74 -0
  629. package/dist/esm/utils/validation.uspec.d.ts +2 -0
  630. package/dist/esm/utils/validation.uspec.d.ts.map +1 -0
  631. package/dist/esm/utils/validation.uspec.js +51 -0
  632. package/package.json +22 -9
  633. package/dist/cjs/components/EnvSelectPopover.d.ts +0 -13
  634. package/dist/cjs/components/EnvSelectPopover.d.ts.map +0 -1
  635. package/dist/cjs/components/EnvSelectPopover.js +0 -224
  636. package/dist/cjs/components/SqlViewTile.d.ts +0 -8
  637. package/dist/cjs/components/SqlViewTile.d.ts.map +0 -1
  638. package/dist/cjs/components/SqlViewTile.js +0 -69
  639. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts +0 -24
  640. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +0 -1
  641. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +0 -250
  642. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +0 -29
  643. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +0 -1
  644. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +0 -228
  645. package/dist/cjs/modals/PromoteDashModal.d.ts +0 -17
  646. package/dist/cjs/modals/PromoteDashModal.d.ts.map +0 -1
  647. package/dist/cjs/modals/PromoteDashModal.js +0 -133
  648. package/dist/cjs/primitives/SelectPrimitive.d.ts +0 -16
  649. package/dist/cjs/primitives/SelectPrimitive.d.ts.map +0 -1
  650. package/dist/cjs/primitives/SelectPrimitive.js +0 -43
  651. package/dist/cjs/public_components/DashboardBuilder.d.ts +0 -7
  652. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +0 -1
  653. package/dist/cjs/public_components/DashboardBuilder.js +0 -220
  654. package/dist/cjs/public_components/SQLViewManager.d.ts.map +0 -1
  655. package/dist/cjs/public_components/SQLViewManager.js +0 -563
  656. package/dist/esm/components/EnvSelectPopover.d.ts +0 -13
  657. package/dist/esm/components/EnvSelectPopover.d.ts.map +0 -1
  658. package/dist/esm/components/EnvSelectPopover.js +0 -221
  659. package/dist/esm/components/SqlViewTile.d.ts +0 -8
  660. package/dist/esm/components/SqlViewTile.d.ts.map +0 -1
  661. package/dist/esm/components/SqlViewTile.js +0 -40
  662. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts +0 -24
  663. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +0 -1
  664. package/dist/esm/forms/client_onboard/CreateSqlViews.js +0 -242
  665. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +0 -29
  666. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +0 -1
  667. package/dist/esm/forms/sql_views/CreateEditSqlView.js +0 -222
  668. package/dist/esm/modals/PromoteDashModal.d.ts +0 -17
  669. package/dist/esm/modals/PromoteDashModal.d.ts.map +0 -1
  670. package/dist/esm/modals/PromoteDashModal.js +0 -130
  671. package/dist/esm/primitives/SelectPrimitive.d.ts +0 -16
  672. package/dist/esm/primitives/SelectPrimitive.d.ts.map +0 -1
  673. package/dist/esm/primitives/SelectPrimitive.js +0 -41
  674. package/dist/esm/public_components/DashboardBuilder.d.ts +0 -7
  675. package/dist/esm/public_components/DashboardBuilder.d.ts.map +0 -1
  676. package/dist/esm/public_components/DashboardBuilder.js +0 -214
  677. package/dist/esm/public_components/SQLViewManager.d.ts.map +0 -1
  678. package/dist/esm/public_components/SQLViewManager.js +0 -555
@@ -0,0 +1,685 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const react_2 = require("@testing-library/react");
9
+ require("@testing-library/jest-dom");
10
+ const CreateEnvironment_1 = __importDefault(require("../CreateEnvironment"));
11
+ const AdminProvider_1 = require("../../AdminProvider");
12
+ const dataFetcher_1 = require("../../utils/dataFetcher");
13
+ const dotenv_1 = __importDefault(require("dotenv"));
14
+ const path_1 = __importDefault(require("path"));
15
+ // Load environment variables from .env.local
16
+ dotenv_1.default.config({ path: path_1.default.resolve(__dirname, '../../../.env.local') });
17
+ // Mock necessary modules
18
+ jest.mock('../../AdminProvider');
19
+ jest.mock('@quillsql/react');
20
+ // Mock sessionStorage
21
+ const mockSessionStorage = {
22
+ getItem: jest.fn(),
23
+ setItem: jest.fn(),
24
+ removeItem: jest.fn(),
25
+ clear: jest.fn(),
26
+ length: 0,
27
+ key: jest.fn(),
28
+ };
29
+ Object.defineProperty(window, 'sessionStorage', {
30
+ value: mockSessionStorage,
31
+ writable: true,
32
+ });
33
+ // Mock SqlTextEditor
34
+ jest.mock('../../components/SqlTextEditor', () => ({
35
+ __esModule: true,
36
+ default: ({ value, setValue }) => ((0, jsx_runtime_1.jsx)("textarea", { "data-testid": "sql-editor", value: value, onChange: (e) => setValue(e.target.value) })),
37
+ }));
38
+ // Mock scrollIntoView
39
+ window.HTMLElement.prototype.scrollIntoView = jest.fn();
40
+ // avoid error thrown by jspdf
41
+ jest.mock('jspdf', () => ({
42
+ __esModule: true,
43
+ default: jest.fn(() => ({
44
+ text: jest.fn(),
45
+ save: jest.fn(),
46
+ })),
47
+ }));
48
+ // Mock ResizeObserver
49
+ global.ResizeObserver = class MockResizeObserver {
50
+ observe() { }
51
+ unobserve() { }
52
+ disconnect() { }
53
+ };
54
+ const testDatabases = [
55
+ {
56
+ databaseType: 'PostgreSQL',
57
+ databaseLabel: 'PostgreSQL',
58
+ databaseConnectionString: process.env.TEST_POSTGRES_CONNECTION_STRING,
59
+ databaseCredentials: null,
60
+ schemaName: 'public',
61
+ tenant: {
62
+ name: 'Test Tenant',
63
+ tenantField: 'customer_id',
64
+ tenantTable: 'public.customers',
65
+ idField: 'id',
66
+ nameField: 'name',
67
+ tagField: 'id',
68
+ defaultTenant: 'Acme',
69
+ },
70
+ virtualTableQuery: 'SELECT * FROM public.transactions;',
71
+ },
72
+ {
73
+ databaseType: 'PostgreSQL',
74
+ databaseLabel: 'PostgreSQL',
75
+ databaseConnectionString: null,
76
+ databaseCredentials: {
77
+ user: process.env.TEST_POSTGRES_USER,
78
+ password: process.env.TEST_POSTGRES_PASSWORD,
79
+ host: process.env.TEST_POSTGRES_HOST,
80
+ port: process.env.TEST_POSTGRES_PORT,
81
+ database: process.env.TEST_POSTGRES_DATABASE,
82
+ },
83
+ schemaName: 'public',
84
+ tenant: {
85
+ name: 'Test Tenant',
86
+ tenantField: 'customer_id',
87
+ tenantTable: 'public.customers',
88
+ idField: 'id',
89
+ nameField: 'name',
90
+ tagField: 'id',
91
+ defaultTenant: 'Acme',
92
+ },
93
+ virtualTableQuery: 'SELECT * FROM public.transactions;',
94
+ },
95
+ {
96
+ databaseType: 'MySQL',
97
+ databaseLabel: 'MySQL',
98
+ databaseConnectionString: null,
99
+ databaseCredentials: {
100
+ user: process.env.TEST_MYSQL_USER,
101
+ password: process.env.TEST_MYSQL_PASSWORD,
102
+ host: process.env.TEST_MYSQL_HOST,
103
+ port: process.env.TEST_MYSQL_PORT,
104
+ database: process.env.TEST_MYSQL_DATABASE,
105
+ },
106
+ schemaName: 'railway',
107
+ tenant: {
108
+ name: 'Test Tenant',
109
+ tenantField: 'customer_id',
110
+ tenantTable: 'railway.customers',
111
+ idField: 'id',
112
+ nameField: 'name',
113
+ tagField: 'id',
114
+ defaultTenant: 'Acme',
115
+ },
116
+ virtualTableQuery: 'SELECT * FROM railway.transactions;',
117
+ },
118
+ {
119
+ databaseType: 'MySQL',
120
+ databaseLabel: 'MySQL',
121
+ databaseConnectionString: process.env.TEST_MYSQL_CONNECTION_STRING,
122
+ databaseCredentials: {
123
+ user: null,
124
+ password: null,
125
+ host: null,
126
+ port: null,
127
+ database: null,
128
+ },
129
+ schemaName: 'railway',
130
+ tenant: {
131
+ name: 'Test Tenant',
132
+ tenantField: 'customer_id',
133
+ tenantTable: 'railway.customers',
134
+ idField: 'id',
135
+ nameField: 'name',
136
+ tagField: 'id',
137
+ defaultTenant: 'Acme',
138
+ },
139
+ virtualTableQuery: 'SELECT * FROM railway.transactions;',
140
+ },
141
+ {
142
+ databaseType: 'MSSQL',
143
+ databaseLabel: 'SQL Server',
144
+ databaseConnectionString: null,
145
+ databaseCredentials: {
146
+ user: process.env.TEST_MSSQL_USER,
147
+ password: process.env.TEST_MSSQL_PASSWORD,
148
+ host: process.env.TEST_MSSQL_HOST,
149
+ port: process.env.TEST_MSSQL_PORT,
150
+ database: process.env.TEST_MSSQL_DATABASE,
151
+ },
152
+ schemaName: 'dbo',
153
+ tenant: {
154
+ name: 'Test Tenant',
155
+ tenantField: 'customer_id',
156
+ tenantTable: 'dbo.customers',
157
+ idField: 'id',
158
+ nameField: 'name',
159
+ tagField: 'id',
160
+ defaultTenant: 'Acme',
161
+ },
162
+ virtualTableQuery: 'SELECT * FROM [dbo].[transactions];',
163
+ },
164
+ {
165
+ databaseType: 'ClickHouse',
166
+ databaseLabel: 'ClickHouse',
167
+ databaseConnectionString: null,
168
+ databaseCredentials: {
169
+ user: process.env.TEST_CLICKHOUSE_USER,
170
+ password: process.env.TEST_CLICKHOUSE_PASSWORD,
171
+ host: process.env.TEST_CLICKHOUSE_HOST,
172
+ port: process.env.TEST_CLICKHOUSE_PORT,
173
+ database: null,
174
+ },
175
+ schemaName: 'default',
176
+ tenant: {
177
+ name: 'Test Tenant',
178
+ tenantField: 'merchant_id',
179
+ tenantTable: 'default.merchants',
180
+ idField: 'id',
181
+ nameField: 'name',
182
+ tagField: 'id',
183
+ defaultTenant: 'Merchant A',
184
+ },
185
+ virtualTableQuery: 'SELECT * FROM "default"."transactions";',
186
+ },
187
+ {
188
+ databaseType: 'Snowflake',
189
+ databaseLabel: 'Snowflake',
190
+ databaseConnectionString: null,
191
+ databaseCredentials: {
192
+ user: process.env.TEST_SNOWFLAKE_USER,
193
+ password: process.env.TEST_SNOWFLAKE_PASSWORD,
194
+ host: process.env.TEST_SNOWFLAKE_HOST,
195
+ database: process.env.TEST_SNOWFLAKE_DATABASE,
196
+ warehouse: process.env.TEST_SNOWFLAKE_WAREHOUSE,
197
+ port: null,
198
+ },
199
+ schemaName: 'CSVS',
200
+ tenant: {
201
+ name: 'Test Tenant',
202
+ tenantField: 'COMPANY_ID',
203
+ tenantTable: 'CSVS.COMPANIES',
204
+ idField: 'ID',
205
+ nameField: 'NAME',
206
+ tagField: 'ID',
207
+ defaultTenant: 'Google',
208
+ },
209
+ virtualTableQuery: 'SELECT * FROM "CSVS"."CONTACTS";',
210
+ },
211
+ {
212
+ databaseType: 'BigQuery',
213
+ databaseLabel: 'BigQuery',
214
+ databaseConnectionString: null,
215
+ databaseCredentials: {
216
+ user: null,
217
+ password: null,
218
+ host: null,
219
+ port: null,
220
+ database: null,
221
+ warehouse: null,
222
+ },
223
+ jsonString: process.env.TEST_BIGQUERY_CONNECTION_JSON,
224
+ schemaName: 'transactions',
225
+ tenant: {
226
+ name: 'Test Tenant',
227
+ tenantField: 'customer_id',
228
+ tenantTable: 'transactions.customers',
229
+ idField: '_id_',
230
+ nameField: 'name',
231
+ tagField: '_id_',
232
+ defaultTenant: 'Acme',
233
+ },
234
+ virtualTableQuery: 'SELECT amount, customer_id FROM `transactions`.`transactions`;',
235
+ },
236
+ ];
237
+ describe('CreateEnvironment', () => {
238
+ const mockOnOnboardComplete = jest.fn();
239
+ let mockState;
240
+ let mockSetClient;
241
+ let mockDispatch;
242
+ // let mockQuillFetch: jest.Mock;
243
+ let clientId;
244
+ beforeEach(() => {
245
+ mockSetClient = jest.fn();
246
+ mockDispatch = jest.fn();
247
+ // mockQuillFetch = jest.fn((args) => quillFetch(args));
248
+ mockState = {
249
+ queryEndpoint: 'http://localhost:8080/cloud',
250
+ domainName: 'test-domain',
251
+ };
252
+ AdminProvider_1.useAdmin.mockReturnValue({
253
+ state: mockState,
254
+ setClient: mockSetClient,
255
+ dispatch: mockDispatch,
256
+ getToken: () => 'test-token',
257
+ quillFetchWithToken: (args) => {
258
+ return (0, dataFetcher_1.quillFetch)({ ...args, getToken: () => 'test-token' });
259
+ },
260
+ });
261
+ });
262
+ afterEach(async () => {
263
+ if (clientId) {
264
+ // wait for other stuff to finish
265
+ await new Promise((resolve) => setTimeout(resolve, 3000));
266
+ await (0, dataFetcher_1.quillFetch)({
267
+ task: 'delete-client',
268
+ metadata: {
269
+ clientId,
270
+ },
271
+ client: {
272
+ queryEndpoint: 'http://localhost:8080/cloud',
273
+ clientId,
274
+ withCredentials: false,
275
+ },
276
+ getToken: async () => '',
277
+ });
278
+ }
279
+ jest.clearAllMocks();
280
+ });
281
+ it.each(testDatabases)('completes onboarding with $databaseType database', async (database) => {
282
+ expect(process.env.TEST_MODE).toBe('true');
283
+ (0, react_2.render)((0, jsx_runtime_1.jsx)(CreateEnvironment_1.default, { onOnboardComplete: mockOnOnboardComplete }));
284
+ expect(react_2.screen.getByText(database.databaseLabel)).toBeInTheDocument();
285
+ // 1. Connect database
286
+ // Check before states
287
+ let element = react_2.screen.getByTestId('quill-client-id');
288
+ let envSteps = JSON.parse(element.getAttribute('data-create-env-steps') || '{}');
289
+ // createEnvSteps
290
+ expect(envSteps.connectDB.open).toBe(true);
291
+ expect(envSteps.connectSchema.open).toBe(false);
292
+ expect(envSteps.createVirtualTables.open).toBe(false);
293
+ // state
294
+ const state = JSON.parse(element.getAttribute('data-state') || '{}');
295
+ expect(state.queryEndpoint).not.toBeNull();
296
+ // Start inputting details
297
+ // Switch to database type
298
+ await (0, react_1.act)(async () => {
299
+ react_2.fireEvent.click(react_2.screen.getByText(new RegExp(database.databaseLabel, 'i')));
300
+ });
301
+ if (database.databaseConnectionString) {
302
+ // Fill in connection string
303
+ // Click on Connection String tab
304
+ await (0, react_1.act)(async () => {
305
+ react_2.fireEvent.click(react_2.screen.getByTestId('quill-tab-Connection String'));
306
+ });
307
+ // Should now show Connection String input
308
+ expect(react_2.screen.getAllByText('Connection String')[0]).toBeInTheDocument();
309
+ // Verify Connect button is disabled initially
310
+ expect(react_2.screen.getByTestId('quill-connect-button').querySelector('button')
311
+ .className).toContain('quill-button-disabled');
312
+ // Enter connection string
313
+ await (0, react_1.act)(async () => {
314
+ react_2.fireEvent.change(react_2.screen
315
+ .getByTestId('quill-input-connectionString')
316
+ .querySelector('input'), {
317
+ target: { value: database.databaseConnectionString },
318
+ });
319
+ });
320
+ // Verify Connect button is enabled
321
+ expect(react_2.screen.getByTestId('quill-connect-button').querySelector('button')
322
+ .className).not.toContain('quill-button-disabled');
323
+ }
324
+ else if (database.jsonString) {
325
+ // Mock file upload by directly setting the JSON string
326
+ await (0, react_1.act)(async () => {
327
+ const fileInput = react_2.screen.getByTestId('quill-input-fileInput');
328
+ const file = new File([database.jsonString], 'service-account.json', { type: 'application/json' });
329
+ Object.defineProperty(fileInput, 'files', {
330
+ value: [file],
331
+ });
332
+ react_2.fireEvent.change(fileInput);
333
+ });
334
+ // Verify the file label was updated
335
+ await (0, react_2.waitFor)(() => {
336
+ expect(react_2.screen.getByTestId('quill-file-label')).toHaveTextContent('service-account.json');
337
+ });
338
+ }
339
+ else {
340
+ // Verify Connect button is disabled
341
+ expect(react_2.screen.getByTestId('quill-connect-button').querySelector('button')
342
+ .className).toContain('quill-button-disabled');
343
+ if (database.databaseCredentials?.database) {
344
+ await (0, react_1.act)(async () => {
345
+ react_2.fireEvent.change(react_2.screen
346
+ .getByTestId('quill-input-databaseName')
347
+ .querySelector('input'), { target: { value: database.databaseCredentials.database } });
348
+ });
349
+ }
350
+ if (database.databaseCredentials?.host) {
351
+ await (0, react_1.act)(async () => {
352
+ react_2.fireEvent.change(react_2.screen.getByTestId('quill-input-host').querySelector('input'), { target: { value: database.databaseCredentials.host } });
353
+ });
354
+ }
355
+ if (database.databaseCredentials?.user) {
356
+ await (0, react_1.act)(async () => {
357
+ react_2.fireEvent.change(react_2.screen.getByTestId('quill-input-user').querySelector('input'), { target: { value: database.databaseCredentials.user } });
358
+ });
359
+ }
360
+ if (database.databaseCredentials?.password) {
361
+ await (0, react_1.act)(async () => {
362
+ react_2.fireEvent.change(react_2.screen
363
+ .getByTestId('quill-input-password')
364
+ .querySelector('input'), { target: { value: database.databaseCredentials.password } });
365
+ });
366
+ }
367
+ if (database.databaseCredentials?.port) {
368
+ await (0, react_1.act)(async () => {
369
+ react_2.fireEvent.change(react_2.screen.getByTestId('quill-input-port').querySelector('input'), { target: { value: database.databaseCredentials.port } });
370
+ });
371
+ }
372
+ if (database.databaseCredentials?.warehouse) {
373
+ await (0, react_1.act)(async () => {
374
+ react_2.fireEvent.change(react_2.screen
375
+ .getByTestId('quill-input-warehouse')
376
+ .querySelector('input'), { target: { value: database.databaseCredentials.warehouse } });
377
+ });
378
+ }
379
+ // Verify Connect button is enabled
380
+ expect(react_2.screen.getByTestId('quill-connect-button').querySelector('button')
381
+ .className).not.toContain('quill-button-disabled');
382
+ }
383
+ // Click connect
384
+ await (0, react_1.act)(async () => {
385
+ react_2.fireEvent.click(react_2.screen.getByText('Connect'));
386
+ });
387
+ await (0, react_2.waitFor)(() => {
388
+ expect(react_2.screen.getByText('Connection Successful')).toBeInTheDocument();
389
+ }, { timeout: 5000 });
390
+ // Verify setEnvironmentDetails was called by checking state changes
391
+ element = react_2.screen.getByTestId('quill-client-id');
392
+ let newClient = JSON.parse(element.getAttribute('data-new-client') || '{}');
393
+ expect(typeof newClient.clientId).toBe('string');
394
+ expect(newClient.clientId.length).toBeGreaterThan(0);
395
+ await (0, react_1.act)(async () => {
396
+ mockState.client = newClient;
397
+ });
398
+ // Wait for the state update to be reflected
399
+ await (0, react_2.waitFor)(() => {
400
+ const element = react_2.screen.getByTestId('quill-client-id');
401
+ const currentState = JSON.parse(element.getAttribute('data-state') || '{}');
402
+ return currentState.client?.id === newClient.clientId;
403
+ }, { timeout: 5000 });
404
+ // Click the select button to open the dropdown
405
+ await (0, react_1.act)(async () => {
406
+ expect(react_2.screen.getByTestId('quill-schema-select')).toBeInTheDocument();
407
+ const selectButton = react_2.screen
408
+ .getByTestId('quill-schema-select')
409
+ .querySelector('button');
410
+ react_2.fireEvent.click(selectButton);
411
+ });
412
+ // Wait for the dropdown to appear and select schema
413
+ await (0, react_2.waitFor)(() => {
414
+ expect(react_2.screen.getByText(database.schemaName)).toBeInTheDocument();
415
+ }, { timeout: 5000 });
416
+ await (0, react_1.act)(async () => {
417
+ // Click the schema option
418
+ const schemaOption = react_2.screen.getByText(database.schemaName);
419
+ react_2.fireEvent.click(schemaOption);
420
+ const selectButton = react_2.screen
421
+ .getByTestId('quill-schema-select')
422
+ .querySelector('button');
423
+ react_2.fireEvent.click(selectButton);
424
+ });
425
+ // Wait for all updates to complete
426
+ await (0, react_2.waitFor)(() => {
427
+ expect(react_2.screen.getByText(database.schemaName)).toBeInTheDocument();
428
+ }, { timeout: 5000 });
429
+ // Wait for the button to be enabled and click it
430
+ await (0, react_2.waitFor)(() => {
431
+ const looksGoodButton = react_2.screen
432
+ .getByTestId('quill-looks-good-button')
433
+ .querySelector('button');
434
+ expect(looksGoodButton.className).not.toContain('quill-button-disabled');
435
+ }, { timeout: 5000 });
436
+ // Click the Looks Good button
437
+ await (0, react_1.act)(async () => {
438
+ const looksGoodButton = react_2.screen
439
+ .getByTestId('quill-looks-good-button')
440
+ .querySelector('button');
441
+ react_2.fireEvent.click(looksGoodButton);
442
+ });
443
+ await (0, react_2.waitFor)(() => {
444
+ expect(react_2.screen.getByText('How do you represent your customers in your database?')).toBeInTheDocument();
445
+ }, { timeout: 10000 });
446
+ const environmentDetails = JSON.parse(element.getAttribute('data-environment-details') || '{}');
447
+ element = react_2.screen.getByTestId('quill-client-id');
448
+ newClient = JSON.parse(element.getAttribute('data-new-client') || '{}');
449
+ // Verify database schema was set
450
+ expect(environmentDetails.databaseSchema).toBeInstanceOf(Array);
451
+ // Client should have databaseType, schemaNames (non empty array), and domainName
452
+ expect(newClient.schemaNames).toBeInstanceOf(Array);
453
+ expect(newClient.schemaNames.length).toBeGreaterThan(0);
454
+ expect(newClient.databaseType).toBe(database.databaseType);
455
+ // 2. Connect schema
456
+ // Check before states
457
+ element = react_2.screen.getByTestId('quill-client-id');
458
+ envSteps = JSON.parse(element.getAttribute('data-create-env-steps') || '{}');
459
+ // createEnvSteps
460
+ expect(envSteps.connectSchema.open).toBe(true);
461
+ expect(envSteps.createVirtualTables.open).toBe(false);
462
+ expect(envSteps.connectDB.open).toBe(false);
463
+ // databaseSchema
464
+ let databaseSchema = JSON.parse(element.getAttribute('data-database-schema') || '{}');
465
+ expect(databaseSchema).toBeInstanceOf(Array);
466
+ expect(databaseSchema.length).toBeGreaterThan(0);
467
+ await (0, react_1.act)(async () => {
468
+ mockState.databaseSchema = {
469
+ schema: databaseSchema,
470
+ };
471
+ });
472
+ // connection.type
473
+ let connection = JSON.parse(element.getAttribute('data-connection') || '{}');
474
+ expect(connection.type).toBe(database.databaseType);
475
+ // discard changes button hidden
476
+ expect(react_2.screen.queryByText(/Discard Changes/i)).toBeNull();
477
+ // Create a row level tenant
478
+ // Fill in tenant name
479
+ await (0, react_1.act)(async () => {
480
+ const tenantNameInput = react_2.screen
481
+ .getByTestId('quill-input-tenant-name')
482
+ .querySelector('input');
483
+ react_2.fireEvent.change(tenantNameInput, {
484
+ target: { value: database.tenant.name },
485
+ });
486
+ });
487
+ // Fill in tenant table
488
+ await (0, react_1.act)(async () => {
489
+ const tableSelect = react_2.screen
490
+ .getByTestId('quill-select-tenant-table')
491
+ .querySelector('button');
492
+ react_2.fireEvent.click(tableSelect);
493
+ });
494
+ await (0, react_2.waitFor)(() => {
495
+ expect(react_2.screen.getByText(database.tenant.tenantTable)).toBeInTheDocument();
496
+ }, { timeout: 5000 });
497
+ await (0, react_1.act)(async () => {
498
+ react_2.fireEvent.click(react_2.screen.getByText(database.tenant.tenantTable));
499
+ });
500
+ // Fill in id field
501
+ await (0, react_1.act)(async () => {
502
+ const idFieldSelect = react_2.screen
503
+ .getByTestId('quill-select-tenant-id-field')
504
+ .querySelector('button');
505
+ expect(idFieldSelect).not.toBeDisabled();
506
+ react_2.fireEvent.click(idFieldSelect);
507
+ });
508
+ await (0, react_1.act)(async () => {
509
+ const container = react_2.screen.getByTestId('quill-select-portal-id-field');
510
+ const targetElement = (0, react_2.within)(container).getByText(database.tenant.idField);
511
+ react_2.fireEvent.click(targetElement);
512
+ });
513
+ // Fill in name field
514
+ await (0, react_1.act)(async () => {
515
+ const nameFieldSelect = react_2.screen
516
+ .getByTestId('quill-select-tenant-name-field')
517
+ .querySelector('button');
518
+ expect(nameFieldSelect).not.toBeDisabled();
519
+ react_2.fireEvent.click(nameFieldSelect);
520
+ });
521
+ await (0, react_1.act)(async () => {
522
+ const container = react_2.screen.getByTestId('quill-select-portal-name-field');
523
+ const targetElement = (0, react_2.within)(container).getByText(database.tenant.nameField);
524
+ react_2.fireEvent.click(targetElement);
525
+ });
526
+ // Fill in tenant field (foreign key)
527
+ await (0, react_1.act)(async () => {
528
+ const tenantFieldInput = react_2.screen
529
+ .getByTestId('quill-input-tenant-field')
530
+ .querySelector('input');
531
+ react_2.fireEvent.change(tenantFieldInput, {
532
+ target: { value: database.tenant.tenantField },
533
+ });
534
+ });
535
+ // Fill in tag
536
+ await (0, react_1.act)(async () => {
537
+ const flagFieldSelect = react_2.screen
538
+ .getByTestId('quill-select-tenant-flag-field')
539
+ .querySelector('button');
540
+ expect(flagFieldSelect).not.toBeDisabled();
541
+ react_2.fireEvent.click(flagFieldSelect);
542
+ });
543
+ await (0, react_1.act)(async () => {
544
+ const container = react_2.screen.getByTestId('quill-select-portal-flag-field');
545
+ const targetElement = (0, react_2.within)(container).getByText(database.tenant.tagField);
546
+ react_2.fireEvent.click(targetElement);
547
+ });
548
+ // Press save changes (should be enabled now)
549
+ // Click Save Changes button
550
+ await (0, react_1.act)(async () => {
551
+ const saveButton = react_2.screen
552
+ .getByTestId('quill-save-changes-button')
553
+ .querySelector('button');
554
+ expect(saveButton.className).not.toContain('quill-button-disabled');
555
+ react_2.fireEvent.click(saveButton);
556
+ });
557
+ // Wait for tenant IDs modal to appear and select default tenant
558
+ await (0, react_2.waitFor)(() => {
559
+ expect(react_2.screen.getByText('Tenant IDs')).toBeInTheDocument();
560
+ }, { timeout: 5000 });
561
+ // Looks good button disabled until default tenant set
562
+ // Set default tenant id
563
+ // Select default tenant ID
564
+ await (0, react_1.act)(async () => {
565
+ const defaultTenantSelect = react_2.screen
566
+ .getByTestId('quill-select-default-tenant-id-field')
567
+ .querySelector('button');
568
+ react_2.fireEvent.click(defaultTenantSelect);
569
+ });
570
+ await (0, react_2.waitFor)(() => {
571
+ expect(react_2.screen.getByText(database.tenant.defaultTenant)).toBeInTheDocument();
572
+ }, { timeout: 5000 });
573
+ await (0, react_1.act)(async () => {
574
+ const button = react_2.screen.getByText(database.tenant.defaultTenant);
575
+ react_2.fireEvent.click(button);
576
+ });
577
+ // Click Looks Good button
578
+ await (0, react_1.act)(async () => {
579
+ const looksGoodButton = react_2.screen.getByText('Looks Good');
580
+ react_2.fireEvent.click(looksGoodButton);
581
+ });
582
+ // Press looks good
583
+ // handleEditTenant called with submit true
584
+ // onSubmitEditTenant called
585
+ await (0, react_2.waitFor)(() => {
586
+ expect(react_2.screen.getByText('Create a cleaned schema that makes it easier to write queries.')).toBeInTheDocument();
587
+ }, { timeout: 5000 });
588
+ // tenantInit should be set
589
+ element = react_2.screen.getByTestId('quill-client-id');
590
+ const tenantInit = JSON.parse(element.getAttribute('data-tenant-init') || '{}');
591
+ expect(tenantInit).toBeInstanceOf(Object);
592
+ const ownerTenant = tenantInit.ownerTenant;
593
+ expect(ownerTenant).toBeInstanceOf(Object);
594
+ expect(ownerTenant.name).toBe(database.tenant.name);
595
+ expect(ownerTenant.tenantField).toBe(database.tenant.tenantField);
596
+ expect(ownerTenant.tenantFlagField).toBe(database.tenant.tagField);
597
+ expect(ownerTenant.tenantIdField).toBe(database.tenant.idField);
598
+ expect(ownerTenant.tenantLabelField).toBe(database.tenant.nameField);
599
+ // client should have ownerTenantFields and allTenantTypes set with tenantInit
600
+ newClient = JSON.parse(element.getAttribute('data-new-client') || '{}');
601
+ expect(newClient.ownerTenantFields).toBeInstanceOf(Array);
602
+ expect(newClient.allTenantTypes).toBeInstanceOf(Array);
603
+ expect(newClient.ownerTenantFields.length).toBeGreaterThan(0);
604
+ expect(newClient.allTenantTypes.length).toBeGreaterThan(0);
605
+ expect(newClient.ownerTenantFields).toContain(database.tenant.tenantField);
606
+ // Check create-tenant task was called with success true
607
+ // 3. Create virtual tables
608
+ // Check before states
609
+ element = react_2.screen.getByTestId('quill-client-id');
610
+ envSteps = JSON.parse(element.getAttribute('data-create-env-steps') || '{}');
611
+ // createEnvSteps
612
+ expect(envSteps.createVirtualTables.open).toBe(true);
613
+ expect(envSteps.connectSchema.open).toBe(false);
614
+ expect(envSteps.connectDB.open).toBe(false);
615
+ // databaseSchema
616
+ databaseSchema = JSON.parse(element.getAttribute('data-database-schema') || '{}');
617
+ expect(databaseSchema).toBeInstanceOf(Array);
618
+ expect(databaseSchema.length).toBeGreaterThan(0);
619
+ // connection.type
620
+ connection = JSON.parse(element.getAttribute('data-connection') || '{}');
621
+ expect(connection.type).toBe(database.databaseType);
622
+ // sqlTables empty at start
623
+ let sqlTables = JSON.parse(element.getAttribute('data-sql-tables') || '{}');
624
+ expect(sqlTables).toBeInstanceOf(Array);
625
+ expect(sqlTables.length).toBe(0);
626
+ // client should have schemaNames and clientId set
627
+ newClient = JSON.parse(element.getAttribute('data-new-client') || '{}');
628
+ expect(newClient.schemaNames).toBeInstanceOf(Array);
629
+ expect(newClient.schemaNames.length).toBeGreaterThan(0);
630
+ expect(newClient.clientId.length).toBeGreaterThan(0);
631
+ // Looks good button hidden until virtual tables created
632
+ expect(react_2.screen.queryByText(/Looks Good/i)).toBeNull();
633
+ // fill in a query and run it
634
+ // Enter and execute a query
635
+ const query = database.virtualTableQuery;
636
+ const sqlEditor = react_2.screen.getByTestId('sql-editor');
637
+ react_2.fireEvent.change(sqlEditor, {
638
+ target: { value: query },
639
+ });
640
+ // Click Run query button
641
+ await (0, react_1.act)(async () => {
642
+ react_2.fireEvent.click(react_2.screen.getByText('Run query'));
643
+ });
644
+ // if there is tableData, show virtual tables button
645
+ await (0, react_2.waitFor)(() => {
646
+ expect(react_2.screen.getByText('Add Virtual Table')).toBeInTheDocument();
647
+ }, { timeout: 5000 });
648
+ // click add virtual tables button
649
+ await (0, react_1.act)(async () => {
650
+ react_2.fireEvent.click(react_2.screen
651
+ .getByTestId('add-virtual-table-button')
652
+ .querySelector('button'));
653
+ });
654
+ // Wait for the modal and confirm
655
+ await (0, react_2.waitFor)(() => {
656
+ expect(react_2.screen.getByText('Confirm')).toBeInTheDocument();
657
+ }, { timeout: 5000 });
658
+ await (0, react_1.act)(async () => {
659
+ react_2.fireEvent.click(react_2.screen.getByText('Confirm'));
660
+ });
661
+ // createVirtualTable called
662
+ // sqlTables updated
663
+ // Looks good button enabled
664
+ await (0, react_2.waitFor)(() => {
665
+ expect(react_2.screen.getByText('Looks good')).toBeInTheDocument();
666
+ }, { timeout: 5000 });
667
+ element = react_2.screen.getByTestId('quill-client-id');
668
+ sqlTables = JSON.parse(element.getAttribute('data-sql-tables') || '{}');
669
+ expect(sqlTables).toBeInstanceOf(Array);
670
+ expect(sqlTables.length).toBeGreaterThan(0);
671
+ // Press looks good
672
+ // Click Looks good button
673
+ react_2.fireEvent.click(react_2.screen.getByText('Looks good'));
674
+ // Verify onboarding completion
675
+ // Call completeOnboarding
676
+ // quillFetch called with task finish-onboarding
677
+ // Client is set to response.data.client
678
+ // onOnboardComplete function called
679
+ await (0, react_2.waitFor)(() => {
680
+ expect(mockOnOnboardComplete).toHaveBeenCalled();
681
+ }, { timeout: 5000 });
682
+ // for cleanup
683
+ clientId = react_2.screen.getByTestId('quill-client-id').textContent;
684
+ }, 30000);
685
+ });