@quillsql/admin 1.6.3 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/dist/cjs/Admin.d.ts +14 -8
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +134 -25
  4. package/dist/cjs/AdminProvider.d.ts +26 -5
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +174 -85
  7. package/dist/cjs/api/ConnectionClient.d.ts +26 -12
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +198 -31
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  11. package/dist/cjs/assets/XIcon.d.ts.map +1 -1
  12. package/dist/cjs/components/CardSection.d.ts.map +1 -1
  13. package/dist/cjs/components/CardSection.js +4 -2
  14. package/dist/cjs/components/ClipboardButton.d.ts.map +1 -1
  15. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  16. package/dist/cjs/components/DashboardSelectPopover.js +46 -7
  17. package/dist/cjs/components/DatabaseSelector.d.ts +3 -1
  18. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  19. package/dist/cjs/components/DatabaseSelector.js +3 -2
  20. package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
  21. package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +31 -7
  22. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
  23. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
  24. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  25. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  26. package/dist/cjs/components/DropDownMenuWithLabel.js +8 -1
  27. package/dist/cjs/components/DynamicBanner.d.ts +3 -2
  28. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
  29. package/dist/cjs/components/DynamicBanner.js +7 -2
  30. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  31. package/dist/cjs/components/EmptyDashboardComponent/index.js +3 -2
  32. package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
  33. package/dist/cjs/components/EmptyVirtualTablesComponent.js +4 -1
  34. package/dist/cjs/components/FormTooltip.d.ts.map +1 -1
  35. package/dist/cjs/components/FormTooltip.js +4 -1
  36. package/dist/cjs/components/InputLabel.d.ts.map +1 -1
  37. package/dist/cjs/components/InputLabel.js +4 -2
  38. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  39. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  40. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  41. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  42. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -14
  43. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  44. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  45. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +128 -35
  46. package/dist/cjs/components/OrgSelect.d.ts +0 -6
  47. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  48. package/dist/cjs/components/OrgSelect.js +79 -47
  49. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +8 -2
  50. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillMultiSelectWithCombo.js +351 -167
  52. package/dist/cjs/components/QuillPopover.d.ts.map +1 -1
  53. package/dist/cjs/components/QuillPopover.js +4 -5
  54. package/dist/cjs/components/QuillSelect.js +9 -9
  55. package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
  56. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  57. package/dist/cjs/components/QuillSelectWithCombo.js +47 -21
  58. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
  59. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  60. package/dist/cjs/components/SqlTextEditor.js +15 -2
  61. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
  62. package/dist/cjs/components/Tenants/EditTenant.js +51 -8
  63. package/dist/cjs/components/UiComponents.d.ts +16 -43
  64. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  65. package/dist/cjs/components/UiComponents.js +162 -33
  66. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  67. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +163 -51
  68. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  69. package/dist/cjs/forms/client_onboard/ConnectSchema.js +36 -2
  70. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  71. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  72. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +60 -22
  73. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +2 -1
  74. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +2 -1
  75. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  76. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +101 -15
  77. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
  78. package/dist/cjs/hooks/useDatabaseSchema.js +18 -2
  79. package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
  80. package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
  81. package/dist/cjs/hooks/useLongLoading.js +67 -0
  82. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  83. package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
  84. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  85. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
  86. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
  87. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
  88. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  89. package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
  90. package/dist/cjs/modals/CodePreview.js +7 -2
  91. package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
  92. package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
  93. package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
  94. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
  95. package/dist/cjs/modals/EditEnvironmentModal.js +74 -17
  96. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  97. package/dist/cjs/modals/EditFiltersModal.js +19 -15
  98. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  99. package/dist/cjs/modals/NewDashboardModal.js +54 -28
  100. package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
  101. package/dist/cjs/modals/PromoteReportModal.js +15 -4
  102. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  103. package/dist/cjs/modals/PromoteViewModal.js +13 -2
  104. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  105. package/dist/cjs/primitives/ButtonPrimitive.js +10 -6
  106. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
  107. package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
  108. package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
  109. package/dist/cjs/primitives/HeaderPrimitive.js +11 -7
  110. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
  111. package/dist/cjs/primitives/PopoverPrimitive.js +19 -6
  112. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  113. package/dist/cjs/primitives/SecondaryButtonPrimitive.js +5 -3
  114. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
  115. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
  116. package/dist/cjs/public_components/ChartQueryBuilder.js +17 -7
  117. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  118. package/dist/cjs/public_components/CreateEnvironment.js +68 -30
  119. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  120. package/dist/cjs/public_components/DashboardManager.js +71 -4
  121. package/dist/cjs/public_components/EnvSelectPopover.d.ts +2 -1
  122. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
  123. package/dist/cjs/public_components/EnvSelectPopover.js +48 -8
  124. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
  125. package/dist/cjs/public_components/VirtualTableManager.js +124 -10
  126. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +41 -2
  127. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  128. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  129. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  130. package/dist/cjs/utils/columnProcessing.js +7 -1
  131. package/dist/cjs/utils/constants.d.ts +1 -0
  132. package/dist/cjs/utils/constants.d.ts.map +1 -1
  133. package/dist/cjs/utils/constants.js +5 -1
  134. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  135. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  136. package/dist/cjs/utils/dataFetcher.js +0 -1
  137. package/dist/cjs/utils/databases.d.ts +6 -1
  138. package/dist/cjs/utils/databases.d.ts.map +1 -1
  139. package/dist/cjs/utils/databases.js +23 -5
  140. package/dist/cjs/utils/delay.d.ts.map +1 -1
  141. package/dist/cjs/utils/filter.d.ts +17 -21
  142. package/dist/cjs/utils/filter.d.ts.map +1 -1
  143. package/dist/cjs/utils/filter.js +6 -6
  144. package/dist/cjs/utils/report.d.ts +5 -5
  145. package/dist/cjs/utils/report.d.ts.map +1 -1
  146. package/dist/cjs/utils/schema.d.ts +6 -3
  147. package/dist/cjs/utils/schema.d.ts.map +1 -1
  148. package/dist/cjs/utils/schema.js +42 -3
  149. package/dist/cjs/utils/table.d.ts.map +1 -1
  150. package/dist/cjs/utils/tenants.d.ts.map +1 -1
  151. package/dist/cjs/utils/ui.d.ts.map +1 -1
  152. package/dist/esm/Admin.d.ts +14 -8
  153. package/dist/esm/Admin.d.ts.map +1 -1
  154. package/dist/esm/Admin.js +135 -26
  155. package/dist/esm/AdminProvider.d.ts +26 -5
  156. package/dist/esm/AdminProvider.d.ts.map +1 -1
  157. package/dist/esm/AdminProvider.js +177 -88
  158. package/dist/esm/api/ConnectionClient.d.ts +26 -12
  159. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  160. package/dist/esm/api/ConnectionClient.js +196 -31
  161. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  162. package/dist/esm/assets/XIcon.d.ts.map +1 -1
  163. package/dist/esm/components/CardSection.d.ts.map +1 -1
  164. package/dist/esm/components/CardSection.js +4 -2
  165. package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
  166. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  167. package/dist/esm/components/DashboardSelectPopover.js +47 -8
  168. package/dist/esm/components/DatabaseSelector.d.ts +3 -1
  169. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  170. package/dist/esm/components/DatabaseSelector.js +3 -2
  171. package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
  172. package/dist/esm/components/DateRangePicker/SingleDatePicker.js +31 -7
  173. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
  174. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
  175. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  176. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  177. package/dist/esm/components/DropDownMenuWithLabel.js +9 -2
  178. package/dist/esm/components/DynamicBanner.d.ts +3 -2
  179. package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
  180. package/dist/esm/components/DynamicBanner.js +7 -2
  181. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  182. package/dist/esm/components/EmptyDashboardComponent/index.js +3 -2
  183. package/dist/esm/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
  184. package/dist/esm/components/EmptyVirtualTablesComponent.js +4 -1
  185. package/dist/esm/components/FormTooltip.d.ts.map +1 -1
  186. package/dist/esm/components/FormTooltip.js +4 -1
  187. package/dist/esm/components/InputLabel.d.ts.map +1 -1
  188. package/dist/esm/components/InputLabel.js +4 -2
  189. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  190. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  191. package/dist/esm/components/InternalDashboard/DashboardFilter.js +1 -1
  192. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  193. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  194. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -11
  195. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  196. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  197. package/dist/esm/components/InternalDashboard/InternalDashboard.js +129 -36
  198. package/dist/esm/components/OrgSelect.d.ts +0 -6
  199. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  200. package/dist/esm/components/OrgSelect.js +79 -45
  201. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +8 -2
  202. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  203. package/dist/esm/components/QuillMultiSelectWithCombo.js +351 -167
  204. package/dist/esm/components/QuillPopover.d.ts.map +1 -1
  205. package/dist/esm/components/QuillPopover.js +4 -5
  206. package/dist/esm/components/QuillSelect.js +9 -9
  207. package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
  208. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  209. package/dist/esm/components/QuillSelectWithCombo.js +47 -21
  210. package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
  211. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  212. package/dist/esm/components/SqlTextEditor.js +15 -2
  213. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
  214. package/dist/esm/components/Tenants/EditTenant.js +51 -8
  215. package/dist/esm/components/UiComponents.d.ts +16 -43
  216. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  217. package/dist/esm/components/UiComponents.js +127 -29
  218. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  219. package/dist/esm/forms/client_onboard/ConnectDatabase.js +163 -51
  220. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  221. package/dist/esm/forms/client_onboard/ConnectSchema.js +36 -2
  222. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  223. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  224. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +61 -23
  225. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +2 -1
  226. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +2 -1
  227. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  228. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +103 -17
  229. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
  230. package/dist/esm/hooks/useDatabaseSchema.js +19 -3
  231. package/dist/esm/hooks/useLongLoading.d.ts +13 -0
  232. package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
  233. package/dist/esm/hooks/useLongLoading.js +64 -0
  234. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  235. package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
  236. package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  237. package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
  238. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
  239. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
  240. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  241. package/dist/esm/modals/CodePreview.d.ts.map +1 -1
  242. package/dist/esm/modals/CodePreview.js +7 -2
  243. package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
  244. package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
  245. package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
  246. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
  247. package/dist/esm/modals/EditEnvironmentModal.js +74 -17
  248. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  249. package/dist/esm/modals/EditFiltersModal.js +21 -17
  250. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  251. package/dist/esm/modals/NewDashboardModal.js +55 -29
  252. package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
  253. package/dist/esm/modals/PromoteReportModal.js +15 -4
  254. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  255. package/dist/esm/modals/PromoteViewModal.js +13 -2
  256. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  257. package/dist/esm/primitives/ButtonPrimitive.js +10 -6
  258. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
  259. package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
  260. package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
  261. package/dist/esm/primitives/HeaderPrimitive.js +11 -7
  262. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
  263. package/dist/esm/primitives/PopoverPrimitive.js +19 -6
  264. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  265. package/dist/esm/primitives/SecondaryButtonPrimitive.js +5 -3
  266. package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
  267. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
  268. package/dist/esm/public_components/ChartQueryBuilder.js +18 -8
  269. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  270. package/dist/esm/public_components/CreateEnvironment.js +68 -30
  271. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  272. package/dist/esm/public_components/DashboardManager.js +72 -5
  273. package/dist/esm/public_components/EnvSelectPopover.d.ts +2 -1
  274. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
  275. package/dist/esm/public_components/EnvSelectPopover.js +49 -9
  276. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
  277. package/dist/esm/public_components/VirtualTableManager.js +125 -11
  278. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +41 -2
  279. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  280. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  281. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  282. package/dist/esm/utils/columnProcessing.js +7 -2
  283. package/dist/esm/utils/constants.d.ts +1 -0
  284. package/dist/esm/utils/constants.d.ts.map +1 -1
  285. package/dist/esm/utils/constants.js +4 -0
  286. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  287. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  288. package/dist/esm/utils/dataFetcher.js +0 -1
  289. package/dist/esm/utils/databases.d.ts +6 -1
  290. package/dist/esm/utils/databases.d.ts.map +1 -1
  291. package/dist/esm/utils/databases.js +23 -5
  292. package/dist/esm/utils/delay.d.ts.map +1 -1
  293. package/dist/esm/utils/filter.d.ts +17 -21
  294. package/dist/esm/utils/filter.d.ts.map +1 -1
  295. package/dist/esm/utils/filter.js +5 -5
  296. package/dist/esm/utils/report.d.ts +5 -5
  297. package/dist/esm/utils/report.d.ts.map +1 -1
  298. package/dist/esm/utils/schema.d.ts +6 -3
  299. package/dist/esm/utils/schema.d.ts.map +1 -1
  300. package/dist/esm/utils/schema.js +42 -3
  301. package/dist/esm/utils/table.d.ts.map +1 -1
  302. package/dist/esm/utils/tenants.d.ts.map +1 -1
  303. package/dist/esm/utils/ui.d.ts.map +1 -1
  304. package/package.json +1 -1
@@ -20,6 +20,7 @@ const columnProcessing_1 = require("../../utils/columnProcessing");
20
20
  const AdminProvider_1 = require("../../AdminProvider");
21
21
  const constants_1 = require("../../utils/constants");
22
22
  const prism_react_renderer_1 = require("prism-react-renderer");
23
+ const useLongLoading_1 = require("../../hooks/useLongLoading");
23
24
  function CreateVirtualTables({ containerStyle, header1Style, header2Style, environmentDetails, databaseSchema, completeOnboarding, client, state, tenantInit, isLoading, sqlTables, setSqlTables, }) {
24
25
  const [queryInfo, setQueryInfo] = (0, react_2.useState)({
25
26
  name: '',
@@ -33,11 +34,24 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
33
34
  const [openModalButtonLoading, setOpenModalButtonLoading] = (0, react_2.useState)(false);
34
35
  const [askAIButtonLoading, setAskAIButtonLoading] = (0, react_2.useState)(false);
35
36
  const [runQueryButtonLoading, setRunQueryButtonLoading] = (0, react_2.useState)(false);
37
+ (0, useLongLoading_1.useLongLoading)(openModalButtonLoading, {
38
+ origin: 'CreateVirtualTables',
39
+ loadDescription: 'Opening virtual table modal',
40
+ });
41
+ (0, useLongLoading_1.useLongLoading)(askAIButtonLoading, {
42
+ origin: 'CreateVirtualTables',
43
+ loadDescription: 'Asking AI',
44
+ });
45
+ (0, useLongLoading_1.useLongLoading)(runQueryButtonLoading, {
46
+ origin: 'CreateVirtualTables',
47
+ loadDescription: 'Running query',
48
+ });
36
49
  const [failingTenant, setFailingTenant] = (0, react_2.useState)(undefined);
50
+ const [failingTenantErrorType, setFailingTenantErrorType] = (0, react_2.useState)(undefined);
37
51
  const [tableSearchQuery, setTableSearchQuery] = (0, react_2.useState)('');
38
52
  const [displayedTableData, setDisplayedTableData] = (0, react_2.useState)(databaseSchema);
39
53
  const middleColumn = (0, react_2.useRef)(null);
40
- const { getToken, quillFetchWithToken } = (0, AdminProvider_1.useAdmin)();
54
+ const { getToken, quillFetchWithToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
41
55
  (0, react_2.useEffect)(() => {
42
56
  const scrollToBottom = () => {
43
57
  // Scroll to the bottom of the container (or page)
@@ -66,6 +80,7 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
66
80
  }) ?? [], client.clientId, tenantField === constants_1.SINGLE_TENANT || override ? [] : [tenantField], state.queryEndpoint, state.queryHeaders, getToken);
67
81
  if (results.failingTenant) {
68
82
  setFailingTenant(results.failingTenant);
83
+ setFailingTenantErrorType(results.failingTenantErrorType);
69
84
  return;
70
85
  }
71
86
  if (results.success && results.tables) {
@@ -160,7 +175,7 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
160
175
  whiteSpace: 'normal',
161
176
  }, displayBelow: true, children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Ask AI', isLoading: askAIButtonLoading, onClick: async () => {
162
177
  setAskAIButtonLoading(true);
163
- const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.queryEndpoint, aiPrompt, client.clientId, getToken, client.schemaNames);
178
+ const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.isSelfHosted, databaseSchema, state.queryEndpoint, aiPrompt, client.clientId, getToken, client.schemaNames, state.queryHeaders);
164
179
  setQueryInfo({ name: queryInfo.name, query: results });
165
180
  setAskAIButtonLoading(false);
166
181
  }, style: { width: '90px' }, disabled: aiPrompt.trim().length > 500 }) })] }), (0, jsx_runtime_1.jsx)("div", { "data-testid": "quill-sql-text-editor", children: (0, jsx_runtime_1.jsx)(SqlTextEditor_1.default, { value: queryInfo.query, setValue: (e) => {
@@ -169,7 +184,7 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
169
184
  paddingLeft: 16,
170
185
  paddingRight: 16,
171
186
  marginTop: 2,
172
- }, schema: displayedTableData, databaseType: environmentDetails?.type, resizable: false }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
187
+ }, schema: databaseSchema, databaseType: environmentDetails?.type, resizable: false }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
173
188
  display: 'flex',
174
189
  flexDirection: 'row',
175
190
  paddingTop: 12,
@@ -178,7 +193,7 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
178
193
  height: 70,
179
194
  }, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Run query', isLoading: runQueryButtonLoading, onClick: async () => {
180
195
  setRunQueryButtonLoading(true);
181
- const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(client.clientId, queryInfo.query, environmentDetails.type, state.queryEndpoint, getToken);
196
+ const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(client.clientId, queryInfo.query, environmentDetails.type, state.queryEndpoint, getToken, eventTracking, client.queryHeaders);
182
197
  if (!getSqlResults.success) {
183
198
  setErrorInfo({ status: true, msg: getSqlResults.error });
184
199
  }
@@ -218,6 +233,7 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
218
233
  const duplicateColumns2 = (0, VirtualTableManager_1.getDuplicateColumns)(tableData?.fields);
219
234
  if (duplicateColumns2.length > 0) {
220
235
  alert(`Ambiguous column names found. Either use aliases or remove the column to make every column name unique: \n\n${duplicateColumns2.join('\n')}`);
236
+ setOpenModalButtonLoading(false);
221
237
  return;
222
238
  }
223
239
  const clientId = client?.publicKey || client?.clientId;
@@ -312,18 +328,21 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
312
328
  completeOnboarding();
313
329
  }, style: {
314
330
  // marginBottom: -8,
315
- }, isLoading: isLoading }) })) : null] })] }), (0, jsx_runtime_1.jsx)(TenantFieldModal, { isOpen: !!failingTenant, setClosed: () => setFailingTenant(undefined), tenant: failingTenant, onOverride: () => addVirtualTable(true) }), (0, jsx_runtime_1.jsx)(VirtualTableModal, { isOpen: virtualTableModalOpen, setIsOpen: setVirtualTableModalOpen, queryInfo: queryInfo, setQueryInfo: setQueryInfo, addVirtualTable: () => addVirtualTable(false) })] }));
331
+ }, isLoading: isLoading }) })) : null] })] }), (0, jsx_runtime_1.jsx)(TenantFieldModal, { isOpen: !!failingTenant, setClosed: () => setFailingTenant(undefined), tenant: failingTenant, onOverride: () => addVirtualTable(true), errorType: failingTenantErrorType }), (0, jsx_runtime_1.jsx)(VirtualTableModal, { isOpen: virtualTableModalOpen, setIsOpen: setVirtualTableModalOpen, queryInfo: queryInfo, setQueryInfo: setQueryInfo, addVirtualTable: () => addVirtualTable(false) })] }));
316
332
  }
317
333
  function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQueryInfo, addVirtualTable, }) {
334
+ const { state: { theme }, } = (0, AdminProvider_1.useAdmin)();
318
335
  return ((0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: isOpen, onClose: () => {
319
336
  setIsOpen(false);
320
337
  }, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', width: '100%' }, children: [(0, jsx_runtime_1.jsx)("h1", { style: {
321
338
  fontSize: 24,
339
+ fontFamily: theme.fontFamily,
322
340
  fontWeight: 600,
323
341
  color: '#212121',
324
342
  paddingBottom: 20,
325
343
  }, children: "Add Virtual Table" }), (0, jsx_runtime_1.jsx)("h3", { style: {
326
344
  fontWeight: '600',
345
+ fontFamily: theme.fontFamily,
327
346
  fontSize: '14px',
328
347
  marginBottom: '6px',
329
348
  color: '#212121',
@@ -333,6 +352,7 @@ function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQueryInfo, addVirt
333
352
  setQueryInfo({ name: e.target.value, query: queryInfo.query });
334
353
  }, placeholder: "Name..." }), (0, jsx_runtime_1.jsx)("h3", { style: {
335
354
  fontWeight: '600',
355
+ fontFamily: theme.fontFamily,
336
356
  fontSize: '14px',
337
357
  marginBottom: '6px',
338
358
  marginTop: '12px',
@@ -364,32 +384,50 @@ function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQueryInfo, addVirt
364
384
  setIsOpen(false);
365
385
  } })] })] }) }));
366
386
  }
367
- function TenantFieldModal({ isOpen, setClosed, tenant, onOverride, }) {
387
+ function TenantFieldModal({ isOpen, setClosed, tenant, onOverride, errorType = 'missing', }) {
388
+ const { state: { theme }, } = (0, AdminProvider_1.useAdmin)();
368
389
  return ((0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: isOpen, onClose: () => setClosed(), children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', width: '500px' }, children: [(0, jsx_runtime_1.jsx)("h1", { style: {
369
390
  fontSize: 24,
370
391
  fontWeight: 600,
371
392
  color: '#212121',
372
393
  paddingBottom: 14,
373
- }, children: "Foreign Key Missing" }), (0, jsx_runtime_1.jsxs)("div", { style: { marginBottom: '12px' }, children: [(0, jsx_runtime_1.jsx)("span", { style: {
374
- color: '#212121',
375
- fontWeight: 600,
376
- backgroundColor: '#f7f7f7',
377
- padding: '2px 4px',
378
- borderRadius: 4,
379
- border: '1px solid #e0e0e0',
380
- }, children: tenant?.name }), "'s foreign key", ' ', (0, jsx_runtime_1.jsx)("span", { style: {
381
- color: 'red',
382
- fontWeight: 600,
383
- backgroundColor: '#f7f7f7',
384
- padding: '2px 4px',
385
- borderRadius: 4,
386
- border: '1px solid #e0e0e0',
387
- }, children: tenant?.tenantField.replaceAll('"', '') }), ' ', "is not present in the current query to allow for filtering.", onOverride ? ((0, jsx_runtime_1.jsxs)("span", { children: [' ', "Only override if this data is meant to be accessible by", ' ', (0, jsx_runtime_1.jsx)("strong", { children: "every tenant" }), " (this is rare)"] })) : ((0, jsx_runtime_1.jsxs)("span", { children: [' ', "If this tenant is not meant to filter this data, remove it from the owners dropdown"] }))] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
394
+ fontFamily: theme.fontFamily,
395
+ }, children: errorType === 'missing'
396
+ ? 'Foreign Key Missing'
397
+ : 'Foreign Key Type Mismatch' }), (0, jsx_runtime_1.jsx)("div", { style: { marginBottom: '12px', fontFamily: theme.fontFamily }, children: errorType === 'missing' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { style: {
398
+ color: '#212121',
399
+ fontWeight: 600,
400
+ backgroundColor: '#f7f7f7',
401
+ padding: '2px 4px',
402
+ borderRadius: 4,
403
+ border: '1px solid #e0e0e0',
404
+ }, children: tenant?.name }), "'s foreign key", ' ', (0, jsx_runtime_1.jsx)("span", { style: {
405
+ color: 'red',
406
+ fontWeight: 600,
407
+ backgroundColor: '#f7f7f7',
408
+ padding: '2px 4px',
409
+ borderRadius: 4,
410
+ border: '1px solid #e0e0e0',
411
+ }, children: tenant?.tenantField.replaceAll('"', '') }), ' ', "is not present in the current query to allow for filtering.", onOverride ? ((0, jsx_runtime_1.jsxs)("span", { children: [' ', "Only override if this data is meant to be accessible by", ' ', (0, jsx_runtime_1.jsx)("strong", { children: "every tenant" }), " (this is rare)"] })) : ((0, jsx_runtime_1.jsxs)("span", { children: [' ', "If this tenant is not meant to filter this data, remove it from the owners dropdown"] }))] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["The foreign key", ' ', (0, jsx_runtime_1.jsx)("span", { style: {
412
+ color: 'red',
413
+ fontWeight: 600,
414
+ backgroundColor: '#f7f7f7',
415
+ padding: '2px 4px',
416
+ borderRadius: 4,
417
+ border: '1px solid #e0e0e0',
418
+ }, children: tenant?.tenantField.replaceAll('"', '') }), ' ', "in your query has a type that does not match the tenant ID type for", ' ', (0, jsx_runtime_1.jsx)("span", { style: {
419
+ color: '#212121',
420
+ fontWeight: 600,
421
+ backgroundColor: '#f7f7f7',
422
+ padding: '2px 4px',
423
+ borderRadius: 4,
424
+ border: '1px solid #e0e0e0',
425
+ }, children: tenant?.name }), ". Please modify your query to ensure the foreign key type matches the tenant ID type."] })) }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsxs)("div", { style: {
388
426
  display: 'flex',
389
427
  flexDirection: 'row',
390
428
  gap: '12px',
391
429
  justifyContent: 'flex-end',
392
- }, children: [onOverride && ((0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { label: "Override", onClick: () => {
430
+ }, children: [onOverride && errorType === 'missing' && ((0, jsx_runtime_1.jsx)(primitives_1.SecondaryButtonPrimitive, { label: "Override", onClick: () => {
393
431
  onOverride();
394
432
  setClosed();
395
433
  } })), (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: "Got It", onClick: () => setClosed() })] })] }) }));
@@ -69,6 +69,7 @@ describe('ConnectSchema', () => {
69
69
  const mockGetToken = jest.fn();
70
70
  const mockQuillFetchWithToken = jest.fn();
71
71
  const mockState = {
72
+ isSelfHosted: false,
72
73
  queryEndpoint: 'http://test-endpoint',
73
74
  loading: true,
74
75
  publicKey: 'test-key',
@@ -95,7 +96,7 @@ describe('ConnectSchema', () => {
95
96
  theme: Admin_1.defaultTheme,
96
97
  organizationIdSet: false,
97
98
  dateFilter: {},
98
- domainName: '',
99
+ clerkOrgId: '',
99
100
  databaseTypeMismatch: { show: false, backendDatabaseType: '' },
100
101
  selectedTenantField: undefined,
101
102
  selectedTenantValues: undefined,
@@ -52,6 +52,7 @@ describe('CreateVirtualTables', () => {
52
52
  const mockGetToken = jest.fn();
53
53
  const mockQuillFetchWithToken = jest.fn();
54
54
  const mockState = {
55
+ isSelfHosted: false,
55
56
  queryEndpoint: 'http://test-endpoint',
56
57
  loading: true,
57
58
  publicKey: 'test-key',
@@ -79,7 +80,7 @@ describe('CreateVirtualTables', () => {
79
80
  theme: Admin_1.defaultTheme,
80
81
  organizationIdSet: false,
81
82
  dateFilter: {},
82
- domainName: '',
83
+ clerkOrgId: '',
83
84
  databaseTypeMismatch: { show: false, backendDatabaseType: '' },
84
85
  selectedTenantField: undefined,
85
86
  selectedTenantValues: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEditVirtualTable.d.ts","sourceRoot":"","sources":["../../../../src/forms/virtual_tables/CreateEditVirtualTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAOL,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAU,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAO/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,UAAU,2BAA2B;IACnC,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,mBAAmB,EAAE,CACnB,OAAO,EAAE,KAAK,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EAAE,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,GAAG,EAAE,EACf,QAAQ,CAAC,EAAE,OAAO,KACf,IAAI,CAAC;IACV,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,gBAA2C,EAC3C,eAAgC,EAChC,wBAAkD,EAClD,SAA6B,EAC7B,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,CAqgB3C"}
1
+ {"version":3,"file":"CreateEditVirtualTable.d.ts","sourceRoot":"","sources":["../../../../src/forms/virtual_tables/CreateEditVirtualTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAOL,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,cAAc,EACd,KAAK,IAAI,SAAS,EACnB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,UAAU,2BAA2B;IACnC,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,mBAAmB,EAAE,CACnB,OAAO,EAAE,KAAK,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EAAE,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,GAAG,EAAE,EACf,QAAQ,CAAC,EAAE,OAAO,KACf,IAAI,CAAC;IACV,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,gBAA2C,EAC3C,eAAgC,EAChC,wBAAkD,EAClD,SAA6B,EAC7B,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,CA6mB3C"}
@@ -30,6 +30,7 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
30
30
  client.ownerTenantFields?.filter((f) => f !== constants_1.SINGLE_TENANT) ??
31
31
  []);
32
32
  const [failingTenant, setFailingTenant] = (0, react_2.useState)(undefined);
33
+ const [failingTenantErrorType, setFailingTenantErrorType] = (0, react_2.useState)(undefined);
33
34
  const [isLoading, setIsLoading] = (0, react_2.useState)(false);
34
35
  const [tableSearchQuery, setTableSearchQuery] = (0, react_2.useState)('');
35
36
  const [editorMounted, setEditorMounted] = (0, react_2.useState)(false);
@@ -37,14 +38,37 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
37
38
  const [errorInfo, setErrorInfo] = (0, react_2.useState)({ show: false, message: '' });
38
39
  const [tableData, setTableData] = (0, react_2.useState)(undefined);
39
40
  const [runningQuery, setRunningQuery] = (0, react_2.useState)(false);
40
- const { state, getToken, quillFetchWithToken } = (0, AdminProvider_1.useAdmin)();
41
+ const { state, getToken, quillFetchWithToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
42
+ const containerRef = (0, react_2.useRef)(null);
41
43
  const addEditProcessVirtualTable = async (override = false) => {
42
- const failingTenant = virtualTableOwners?.find((field) => tableData &&
44
+ const missingTenantField = virtualTableOwners?.find((field) => tableData &&
43
45
  !tableData.fields.find((col) => col.name === field?.replaceAll('"', '')));
44
- if (!override && tableData && failingTenant) {
45
- const tenant = client.allTenantTypes?.find((t) => t.tenantField === failingTenant);
46
- setFailingTenant(tenant);
47
- return;
46
+ if (!override && tableData) {
47
+ if (missingTenantField) {
48
+ const tenant = client.allTenantTypes?.find((t) => t.tenantField === missingTenantField);
49
+ setFailingTenant(tenant);
50
+ setFailingTenantErrorType('missing');
51
+ return;
52
+ }
53
+ else {
54
+ // let typeMismatchedTenant: QuillTenant | undefined;
55
+ // check that the all tenant field type match
56
+ // loop through all virtualTableOwneers and check the field type
57
+ const typeMismatchedTenant = virtualTableOwners.find((owner) => {
58
+ const tenant = client.allTenantTypes?.find((t) => t.tenantField === owner);
59
+ const tableDataField = tableData.fields.find((col) => col.name === owner?.replaceAll('"', ''));
60
+ return ((tenant?.fieldType === 'string' &&
61
+ (0, columnProcessing_1.isNumberType)(tableDataField?.fieldType ?? '')) ||
62
+ (tenant?.fieldType === 'number' &&
63
+ (0, columnProcessing_1.isStringType)(tableDataField?.fieldType ?? '')));
64
+ });
65
+ if (typeMismatchedTenant) {
66
+ const tenant = client.allTenantTypes?.find((t) => t.tenantField === typeMismatchedTenant);
67
+ setFailingTenant(tenant);
68
+ setFailingTenantErrorType('type_mismatch');
69
+ return;
70
+ }
71
+ }
48
72
  }
49
73
  addEditVirtualTable(initialVirtualTable ? 'edit' : 'add', ranVirtualTableQuery, virtualTableOwners, name, initialVirtualTable ? initialVirtualTable._id : undefined, tableData?.fields || [], override);
50
74
  };
@@ -59,6 +83,12 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
59
83
  // Run query on mount
60
84
  (0, react_2.useEffect)(() => {
61
85
  if (initialVirtualTable) {
86
+ eventTracking?.addBreadcrumb?.({
87
+ message: 'Initial Query Run on CreateEditVirtualTable load',
88
+ category: 'network',
89
+ level: 'info',
90
+ timestamp: Date.now(),
91
+ });
62
92
  handleRunQuery(initialVirtualTable.viewQuery);
63
93
  }
64
94
  }, []);
@@ -66,7 +96,13 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
66
96
  setErrorInfo({ show: false, message: '' });
67
97
  setVirtualTableAddable(false);
68
98
  setAskAIButtonLoading(true);
69
- const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.queryEndpoint, aiPrompt, state.client._id, getToken, state.client.schemaNames);
99
+ eventTracking?.addBreadcrumb?.({
100
+ message: 'Used Ask AI in CreateEditVirtualTable',
101
+ category: 'network',
102
+ level: 'info',
103
+ timestamp: Date.now(),
104
+ });
105
+ const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.isSelfHosted, allTableData, state.queryEndpoint, aiPrompt, state.client._id, getToken, state.client.schemaNames, state.queryHeaders);
70
106
  setEditVirtualTableQuery(results);
71
107
  setAskAIButtonLoading(false);
72
108
  };
@@ -111,7 +147,7 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
111
147
  return;
112
148
  }
113
149
  setIsLoading(true);
114
- const resp = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, query, state.client.databaseType, state.queryEndpoint, getToken);
150
+ const resp = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, query, state.client.databaseType, state.queryEndpoint, getToken, eventTracking, state.queryHeaders);
115
151
  if (!resp.success) {
116
152
  setErrorInfo({ show: true, message: resp.error });
117
153
  setTableData(undefined);
@@ -175,13 +211,16 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
175
211
  setIsLoading(false);
176
212
  setRunningQuery(false);
177
213
  };
178
- return ((0, jsx_runtime_1.jsx)("div", { style: {
179
- ...containerStyle,
214
+ return ((0, jsx_runtime_1.jsx)("div", { ref: containerRef, style: {
180
215
  gap: 6,
181
- height: 'calc(100vh - 130px)',
216
+ height: containerRef.current
217
+ ? `calc(100vh - ${containerRef.current.getBoundingClientRect().top ?? 0}px - 80px)`
218
+ : '100%',
219
+ // overflow: 'scroll',
220
+ ...containerStyle,
182
221
  }, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', height: '100%', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(DynamicBanner_1.default, { header: initialVirtualTable
183
222
  ? `Edit "${initialVirtualTable.name}" Virtual Table`
184
- : 'Create Virtual Table', onExit: initialVirtualTable ? undefined : closeEditVirtualTable }), (0, jsx_runtime_1.jsxs)("div", { style: {
223
+ : 'Create Virtual Table', onExit: initialVirtualTable ? undefined : closeEditVirtualTable, theme: state.theme }), (0, jsx_runtime_1.jsxs)("div", { style: {
185
224
  width: '100%',
186
225
  display: 'flex',
187
226
  height: '100%',
@@ -245,10 +284,27 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
245
284
  flexDirection: 'row',
246
285
  justifyContent: 'space-between',
247
286
  }, children: [(0, jsx_runtime_1.jsx)(ButtonComponent, { label: 'Run query', onClick: () => {
287
+ eventTracking?.addBreadcrumb?.({
288
+ message: 'Clicked run query button in CreateEditVirtualTable',
289
+ category: 'interaction',
290
+ level: 'info',
291
+ timestamp: Date.now(),
292
+ });
248
293
  handleRunQuery();
249
294
  } }), !!dashboardOwnerTenants?.length && ((0, jsx_runtime_1.jsx)(QuillMultiSelectWithCombo_1.QuillMultiSelectComponentWithCombo, { label: 'Owner Tenants', width: 230, value: virtualTableOwners, options: dashboardOwnerTenants?.map((f) => {
250
295
  return { value: f.tenantField, label: f.name };
251
- }) ?? [], onChange: (e) => setVirtualTableOwners(e.target.value), allSelectedLabel: (0, jsx_runtime_1.jsx)("div", { children: "All tenants" }), noneSelectedLabel: (0, jsx_runtime_1.jsx)("div", { children: "No owners" }) }))] })), errorInfo.show ? ((0, jsx_runtime_1.jsx)("div", { style: {
296
+ }) ?? [], onChange: (e) => {
297
+ setVirtualTableOwners(e.target.value);
298
+ eventTracking?.addBreadcrumb?.({
299
+ message: 'Changed owner tenants in CreateEditVirtualTable',
300
+ category: 'interaction',
301
+ level: 'info',
302
+ timestamp: Date.now(),
303
+ data: {
304
+ ownerTenants: e.target.value,
305
+ },
306
+ });
307
+ }, allSelectedLabel: (0, jsx_runtime_1.jsx)("div", { children: "All tenants" }), noneSelectedLabel: (0, jsx_runtime_1.jsx)("div", { children: "No owners" }) }))] })), errorInfo.show ? ((0, jsx_runtime_1.jsx)("div", { style: {
252
308
  fontSize: 15,
253
309
  fontWeight: '400',
254
310
  width: '100%',
@@ -270,7 +326,37 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
270
326
  flexDirection: 'row',
271
327
  gap: 12,
272
328
  marginTop: 'auto',
273
- }, children: [(0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: closeEditVirtualTable, label: 'Discard changes' }), (0, jsx_runtime_1.jsx)(ButtonComponent, { label: `${initialVirtualTable ? 'Save changes' : 'Create virtual table'}`, onClick: () => {
329
+ }, children: [(0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
330
+ closeEditVirtualTable();
331
+ eventTracking?.addBreadcrumb?.({
332
+ message: 'Clicked discard changes button in CreateEditVirtualTable',
333
+ category: 'interaction',
334
+ level: 'info',
335
+ timestamp: Date.now(),
336
+ });
337
+ }, label: 'Discard changes' }), (0, jsx_runtime_1.jsx)(ButtonComponent, { label: `${initialVirtualTable ? 'Save changes' : 'Create virtual table'}`, onClick: () => {
338
+ if (initialVirtualTable) {
339
+ eventTracking?.addBreadcrumb?.({
340
+ message: 'Saved changes to existing virtual table',
341
+ data: {
342
+ virtualTable: initialVirtualTable.name,
343
+ },
344
+ category: 'interaction',
345
+ level: 'info',
346
+ timestamp: Date.now(),
347
+ });
348
+ }
349
+ else {
350
+ eventTracking?.addBreadcrumb?.({
351
+ message: 'Created new virtual table',
352
+ data: {
353
+ virtualTable: name,
354
+ },
355
+ category: 'interaction',
356
+ level: 'info',
357
+ timestamp: Date.now(),
358
+ });
359
+ }
274
360
  const duplicateColumns = (0, VirtualTableManager_1.getDuplicateColumns)(tableData?.fields);
275
361
  if (duplicateColumns.length > 0) {
276
362
  alert(`Ambiguous column names found. Either use aliases or remove the column to make every column name unique: \n\n${duplicateColumns.join('\n')}`);
@@ -290,5 +376,5 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
290
376
  display: 'flex',
291
377
  flexDirection: 'row',
292
378
  gap: 12,
293
- }, children: (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: closeEditVirtualTable, label: 'Discard changes' }) }))] })] }), (0, jsx_runtime_1.jsx)(CreateVirtualTables_1.TenantFieldModal, { isOpen: !!failingTenant, setClosed: () => setFailingTenant(undefined), tenant: failingTenant })] }) }));
379
+ }, children: (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: closeEditVirtualTable, label: 'Discard changes' }) }))] })] }), (0, jsx_runtime_1.jsx)(CreateVirtualTables_1.TenantFieldModal, { isOpen: !!failingTenant, setClosed: () => setFailingTenant(undefined), tenant: failingTenant, errorType: failingTenantErrorType })] }) }));
294
380
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDatabaseSchema.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDatabaseSchema.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB;;;CAuD7B,CAAC"}
1
+ {"version":3,"file":"useDatabaseSchema.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDatabaseSchema.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB;;;CA2E7B,CAAC"}
@@ -5,14 +5,19 @@ const AdminProvider_1 = require("../AdminProvider");
5
5
  const react_1 = require("react");
6
6
  const ConnectionClient_1 = require("../api/ConnectionClient");
7
7
  const useDatabaseSchema = () => {
8
- const { state, dispatch, getToken } = (0, AdminProvider_1.useAdmin)();
8
+ const { state, dispatch, getToken, eventTracking } = (0, AdminProvider_1.useAdmin)();
9
9
  const [isLoading, setIsLoading] = (0, react_1.useState)(state.databaseSchema?.id !== state.client.id);
10
+ const idRef = (0, react_1.useRef)(null);
10
11
  (0, react_1.useEffect)(() => {
11
12
  const fetchSchema = async () => {
12
13
  if ((state.databaseSchema?.schema?.length ||
13
14
  state.databaseSchema?.loading) &&
14
15
  state.databaseSchema?.id === state.client.id)
15
16
  return;
17
+ if (idRef.current === state.client.id) {
18
+ return;
19
+ }
20
+ idRef.current = state.client.id;
16
21
  try {
17
22
  dispatch({
18
23
  type: 'SET_DATABASE_SCHEMA',
@@ -23,7 +28,7 @@ const useDatabaseSchema = () => {
23
28
  },
24
29
  });
25
30
  setIsLoading(true);
26
- const schema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.queryEndpoint, state.client.id, getToken);
31
+ const schema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.isSelfHosted, state.queryEndpoint, state.client.id, state.client.databaseType, getToken, state.client.schemaNames ?? [], state.queryHeaders);
27
32
  dispatch({
28
33
  type: 'SET_DATABASE_SCHEMA',
29
34
  payload: {
@@ -34,6 +39,17 @@ const useDatabaseSchema = () => {
34
39
  });
35
40
  }
36
41
  catch (e) {
42
+ eventTracking?.logError?.({
43
+ type: 'bug', // TODO: determine type
44
+ severity: 'high',
45
+ message: 'Error fetching schema',
46
+ errorMessage: e.message,
47
+ errorStack: e.stack,
48
+ errorData: {
49
+ caller: 'useDatabaseSchema',
50
+ function: 'fetchSchema',
51
+ },
52
+ });
37
53
  console.error(e);
38
54
  }
39
55
  finally {
@@ -0,0 +1,13 @@
1
+ type LongLoadingMeta = {
2
+ origin: string;
3
+ loadDescription: string;
4
+ expectedLoadTime?: number;
5
+ abnormalLoadTime?: number;
6
+ };
7
+ type LoadingState = {
8
+ isLongLoading: boolean;
9
+ isAbnormalLoading: boolean;
10
+ };
11
+ export declare function useLongLoading(isLoading: boolean, meta: LongLoadingMeta): LoadingState;
12
+ export {};
13
+ //# sourceMappingURL=useLongLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLongLoading.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLongLoading.tsx"],"names":[],"mappings":"AAGA,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,eAAe,GACpB,YAAY,CAoEd"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useLongLoading = useLongLoading;
4
+ const react_1 = require("react");
5
+ const AdminProvider_1 = require("../AdminProvider");
6
+ function useLongLoading(isLoading, meta) {
7
+ const { origin, expectedLoadTime = 5000, abnormalLoadTime = 15000, loadDescription, } = meta;
8
+ const [isLongLoading, setIsLongLoading] = (0, react_1.useState)(false);
9
+ const [isAbnormalLoading, setIsAbnormalLoading] = (0, react_1.useState)(false);
10
+ const { eventTracking } = (0, AdminProvider_1.useAdmin)();
11
+ (0, react_1.useEffect)(() => {
12
+ let longTimer = null;
13
+ let abnormalTimer = null;
14
+ if (isLoading) {
15
+ // Set timer for long loading
16
+ longTimer = setTimeout(() => {
17
+ setIsLongLoading(true);
18
+ eventTracking?.logError?.({
19
+ type: 'timeout',
20
+ severity: 'medium',
21
+ message: `${origin} loading is taking longer than expected`,
22
+ errorData: {
23
+ loadDescription,
24
+ expectedLoadTime,
25
+ currentTime: Date.now(),
26
+ },
27
+ });
28
+ // Set timer for abnormal loading
29
+ abnormalTimer = setTimeout(() => {
30
+ setIsAbnormalLoading(true);
31
+ eventTracking?.logError?.({
32
+ type: 'timeout',
33
+ severity: 'high',
34
+ message: `${origin} loading is taking abnormally long`,
35
+ errorData: {
36
+ loadDescription,
37
+ expectedLoadTime,
38
+ abnormalLoadTime,
39
+ currentTime: Date.now(),
40
+ },
41
+ });
42
+ }, abnormalLoadTime - expectedLoadTime);
43
+ }, expectedLoadTime);
44
+ }
45
+ else {
46
+ setIsLongLoading(false);
47
+ setIsAbnormalLoading(false);
48
+ }
49
+ return () => {
50
+ if (longTimer)
51
+ clearTimeout(longTimer);
52
+ if (abnormalTimer)
53
+ clearTimeout(abnormalTimer);
54
+ };
55
+ }, [
56
+ isLoading,
57
+ origin,
58
+ expectedLoadTime,
59
+ abnormalLoadTime,
60
+ loadDescription,
61
+ eventTracking,
62
+ ]);
63
+ return {
64
+ isLongLoading,
65
+ isAbnormalLoading,
66
+ };
67
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useOnClickOutside.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOnClickOutside.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,iBAAiB,QAChB,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,WAC3B;IAAE,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAA;CAAE,cACnB,OAAO,SA2BpB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,WAAW,KAAG,MAoBzD,CAAC;AAqBF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"useOnClickOutside.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOnClickOutside.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,iBAAiB,GACrB,KAAK,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EACpC,SAAS;IAAE,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAA;CAAE,EAC/B,YAAY,OAAO,SA2BpB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,MAoBzD,CAAC;AAqBF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useThrottle.d.ts","sourceRoot":"","sources":["../../../src/hooks/useThrottle.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAClC,KAAK,EAAE,MAAM,aAGI,GAAG,EAAE,UAOvB"}
1
+ {"version":3,"file":"useThrottle.d.ts","sourceRoot":"","sources":["../../../src/hooks/useThrottle.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAClC,KAAK,EAAE,MAAM,IAGL,GAAG,MAAM,GAAG,EAAE,UAOvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowDownHeadIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/ArrowDownHeadIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;6CActB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ArrowDownHeadIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/ArrowDownHeadIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,GAAI;;CAAY,4CActC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckCircleIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/CheckCircleIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe;;6CAepB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"CheckCircleIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/CheckCircleIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,GAAI;;CAAY,4CAepC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExclamationFilledIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/ExclamationFilledIcon.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB;;6CAa1B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"ExclamationFilledIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/ExclamationFilledIcon.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB,GAAI;;CAAY,4CAa1C,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExteriorLinkIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/ExteriorLinkIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,gBAAgB;;6CAcrB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"ExteriorLinkIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/ExteriorLinkIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,gBAAgB,GAAI;;CAAY,4CAcrC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"QuestionMarkCircleIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/QuestionMarkCircleIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB;;6CAgB3B,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"QuestionMarkCircleIcon.d.ts","sourceRoot":"","sources":["../../../src/icons/QuestionMarkCircleIcon.tsx"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB,GAAI;;CAAY,4CAgB3C,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodePreview.d.ts","sourceRoot":"","sources":["../../../src/modals/CodePreview.tsx"],"names":[],"mappings":"AAeA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAc,EACd,MAAM,EACN,SAAS,GACV,EAAE;IACD,cAAc,EAAE,GAAG,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,kDA4OA"}
1
+ {"version":3,"file":"CodePreview.d.ts","sourceRoot":"","sources":["../../../src/modals/CodePreview.tsx"],"names":[],"mappings":"AAeA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,cAAc,EACd,MAAM,EACN,SAAS,GACV,EAAE;IACD,cAAc,EAAE,GAAG,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,kDAoPA"}