@quillsql/admin 1.6.0 → 1.6.2

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