@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
package/dist/esm/Admin.js CHANGED
@@ -1,175 +1,35 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { createElement as _createElement } from "react";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
3
  import { useState, useEffect, useRef, useCallback } from 'react';
3
- import { QuillProvider, useQuill, ChartEditor, ReportBuilder, } from '@quillsql/react';
4
- import prismTheme from 'prism-react-renderer/themes/nightOwlLight';
5
- import Highlight, { defaultProps } from 'prism-react-renderer';
6
- import { DashboardManager } from './components';
7
- import { AdminProvider, useAdmin } from './AdminProvider';
8
- import { HeaderPrimitive, ModalPrimitive, SelectPrimitive, TextInputPrimitive, } from './primitives';
9
- import { MemoizedButton, MemoizedSecondaryButton, } from './components/UiComponents';
10
- import DashboardBuilder from './public_components/DashboardBuilder';
11
- import SQLViewManager from './public_components/SQLViewManager';
12
- import { QUILL_SERVER } from './utils/constants';
4
+ import {
5
+ // QuillProvider,
6
+ ChartEditor, ReportBuilder, useQuill, } from '@quillsql/react';
7
+ import { Highlight, themes } from 'prism-react-renderer';
8
+ // import { DashboardManager } from './components';
9
+ import {
10
+ // AdminProvider,
11
+ useAdmin, } from './AdminProvider';
12
+ // import {
13
+ // HeaderPrimitive,
14
+ // ModalPrimitive,
15
+ // TextInputPrimitive,
16
+ // } from './primitives';
17
+ import { LoadingSpinner, MemoizedButton,
18
+ // MemoizedSecondaryButton,
19
+ // TextInputComponentProps,
20
+ } from './components/UiComponents';
21
+ // import ChartQueryBuilder from './public_components/ChartQueryBuilder';
22
+ // import VirtualTableManager from './public_components/VirtualTableManager';
13
23
  import { MemoizedModal } from './components/UiComponents';
14
24
  import { SQLEditor } from '@quillsql/react';
15
- import { hasColumnAlias } from './utils/table';
16
- // chartColors: ["#6269E9", "#E14F62"],
25
+ import QuillTab from './components/QuillTab';
26
+ import { parseQuillReportToQuillReportInternal } from './utils/report';
27
+ import { useDashboardManager } from './hooks/useDashboardManager';
28
+ import PromoteReportModal from './modals/PromoteReportModal';
29
+ import { CheckboxPrimitive, HeaderPrimitive, ModalPrimitive, } from './primitives';
30
+ import { QuillSelectComponentWithCombo } from './components/QuillSelectWithCombo';
31
+ import { quillFetch } from './utils/dataFetcher';
17
32
  export const defaultTheme = {
18
- fontFamily: 'Inter; Helvetica',
19
- backgroundColor: '#FFFFFF',
20
- primaryTextColor: '#364153',
21
- secondaryTextColor: '#6C727F',
22
- chartLabelFontFamily: 'Inter; Helvetica',
23
- chartLabelColor: '#666666',
24
- chartTickColor: '#CCCCCC',
25
- chartColors: ['#6269E9', '#E14F62', '#55B5A6', '#E9A23B', '#D0ACCF'],
26
- borderColor: '#E5E7EB',
27
- primaryButtonColor: '#364153',
28
- borderWidth: 1,
29
- labelFontWeight: 500,
30
- fontSize: 14,
31
- };
32
- export default function Portal({ publicKey, queryEndpoint, theme = defaultTheme, queryHeaders, withCredentials, environment, organizationId, TextInputComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, ModalComponent, SelectComponent, OrganizationSelectComponent, UserManagementComponent, HeaderComponent, }) {
33
- return (_jsx(AdminProvider, { publicKey: publicKey, children: _jsx(Navigation, { theme: theme, publicKey: publicKey, queryEndpoint: queryEndpoint, queryHeaders: queryHeaders, withCredentials: withCredentials,
34
- // @ts-ignore
35
- TextInputComponent: TextInputComponent || TextInputPrimitive, ButtonComponent: ButtonComponent,
36
- // @ts-ignore
37
- HeaderComponent: HeaderComponent || HeaderPrimitive, SecondaryButtonComponent: SecondaryButtonComponent,
38
- // @ts-ignore
39
- ModalComponent: ModalComponent || ModalPrimitive, environment: environment, OrganizationSelectComponent: OrganizationSelectComponent, UserManagementComponent: UserManagementComponent,
40
- // @ts-ignore
41
- SelectComponent: SelectComponent || SelectPrimitive }) }));
42
- }
43
- function Navigation({ TextInputComponent, ButtonComponent, SecondaryButtonComponent, ModalComponent, SelectComponent, OrganizationSelectComponent, UserManagementComponent, HeaderComponent, publicKey, queryEndpoint, queryHeaders, environment, withCredentials, }) {
44
- const { state, dispatch } = useAdmin();
45
- // MMTODO: Idk if this is needed
46
- // useEffect(() => {
47
- // setEnvironmentContext(environment);
48
- // }, [environment]);
49
- if (!state.client) {
50
- return null;
51
- }
52
- const renderComponentBasedOnName = () => {
53
- switch (state.activeComponent) {
54
- case 'Dashboards':
55
- return (_jsx(DashboardManager
56
- // @ts-ignore
57
- , {
58
- // @ts-ignore
59
- TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, ModalComponent: ModalComponent, SelectComponent: SelectComponent, HeaderComponent: HeaderComponent, setReportId: (id) => dispatch({ type: 'SET_REPORT_ID', payload: id }), queryEndpoint: queryEndpoint, queryHeaders: queryHeaders, withCredentials: withCredentials }));
60
- case 'SQL editor':
61
- return _jsx(DashboardBuilder, {});
62
- case 'SQL views':
63
- return _jsx(SQLViewManager, {});
64
- default:
65
- return (_jsx(DashboardManager
66
- // @ts-ignore
67
- , {
68
- // @ts-ignore
69
- TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, ModalComponent: ModalComponent, SelectComponent: SelectComponent, HeaderComponent: HeaderComponent, setReportId: (id) => dispatch({ type: 'SET_REPORT_ID', payload: id }), queryEndpoint: queryEndpoint, queryHeaders: queryHeaders, withCredentials: withCredentials }));
70
- }
71
- };
72
- return (_jsxs("div", { style: {
73
- display: 'flex',
74
- flexDirection: 'column',
75
- height: '100vh',
76
- width: '100vw',
77
- }, children: [_jsxs("nav", { style: {
78
- zIndex: 2,
79
- height: '70px',
80
- width: '100%',
81
- display: 'flex',
82
- flexDirection: 'row',
83
- justifyContent: 'space-between',
84
- alignItems: 'center',
85
- backgroundColor: 'white',
86
- padding: '0',
87
- position: 'fixed',
88
- top: 0,
89
- left: 0,
90
- right: 0,
91
- borderBottomWidth: 1,
92
- borderTopWidth: 0,
93
- borderLeftWidth: 0,
94
- borderRightWidth: 0,
95
- borderStyle: 'solid',
96
- borderColor: theme.borderColor,
97
- }, children: [_jsx("div", { style: {
98
- paddingTop: '18px',
99
- paddingLeft: '14px',
100
- paddingBottom: '18px',
101
- width: 230,
102
- }, children: _jsxs("svg", { width: "45", height: "18", viewBox: "0 0 45 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("g", { clipPath: "url(#clip0_2489_282)", children: _jsx("path", { d: "M18.634 17.3008H9.196C7.97867 17.3008 6.84933 17.1248 5.808 16.7728C4.78133 16.4061 3.894 15.8781 3.146 15.1888C2.398 14.4994 1.81133 13.6634 1.386 12.6808C0.960667 11.6981 0.748 10.5761 0.748 9.31478C0.748 8.14145 0.960667 7.06345 1.386 6.08078C1.826 5.09811 2.42 4.25478 3.168 3.55078C3.916 2.84678 4.796 2.30411 5.808 1.92278C6.82 1.52678 7.90533 1.32878 9.064 1.32878C10.2227 1.32878 11.308 1.52678 12.32 1.92278C13.332 2.31878 14.212 2.86878 14.96 3.57278C15.708 4.27678 16.2947 5.12011 16.72 6.10278C17.16 7.07078 17.38 8.14145 17.38 9.31478C17.38 9.87211 17.314 10.4148 17.182 10.9428C17.0647 11.4708 16.8813 11.9694 16.632 12.4388C16.3827 12.9081 16.06 13.3334 15.664 13.7148C15.268 14.0814 14.806 14.3821 14.278 14.6168V14.6608H18.634V17.3008ZM4.312 9.31478C4.312 9.98945 4.43667 10.6201 4.686 11.2068C4.93533 11.7934 5.27267 12.3068 5.698 12.7468C6.138 13.1721 6.644 13.5094 7.216 13.7588C7.788 14.0081 8.404 14.1328 9.064 14.1328C9.724 14.1328 10.34 14.0081 10.912 13.7588C11.484 13.5094 11.9827 13.1721 12.408 12.7468C12.848 12.3068 13.1927 11.7934 13.442 11.2068C13.6913 10.6201 13.816 9.98945 13.816 9.31478C13.816 8.64011 13.6913 8.00945 13.442 7.42278C13.1927 6.83611 12.848 6.33011 12.408 5.90478C11.9827 5.46478 11.484 5.12011 10.912 4.87078C10.34 4.62145 9.724 4.49678 9.064 4.49678C8.404 4.49678 7.788 4.62145 7.216 4.87078C6.644 5.12011 6.138 5.46478 5.698 5.90478C5.27267 6.33011 4.93533 6.83611 4.686 7.42278C4.43667 8.00945 4.312 8.64011 4.312 9.31478ZM29.3164 17.3008H26.1484V15.8488H26.1044C25.987 16.0541 25.833 16.2594 25.6424 16.4648C25.4664 16.6701 25.2464 16.8534 24.9824 17.0148C24.7184 17.1761 24.4177 17.3081 24.0804 17.4108C23.743 17.5134 23.3764 17.5648 22.9804 17.5648C22.1444 17.5648 21.4624 17.4401 20.9344 17.1908C20.421 16.9268 20.0177 16.5674 19.7244 16.1128C19.4457 15.6581 19.255 15.1228 19.1524 14.5068C19.0644 13.8908 19.0204 13.2234 19.0204 12.5048V6.60878H22.3204V11.8448C22.3204 12.1528 22.3277 12.4754 22.3424 12.8128C22.3717 13.1354 22.4377 13.4361 22.5404 13.7148C22.6577 13.9934 22.8264 14.2208 23.0464 14.3968C23.281 14.5728 23.611 14.6608 24.0364 14.6608C24.4617 14.6608 24.8064 14.5874 25.0704 14.4408C25.3344 14.2794 25.5324 14.0741 25.6644 13.8248C25.811 13.5608 25.9064 13.2674 25.9504 12.9448C25.9944 12.6221 26.0164 12.2848 26.0164 11.9328V6.60878H29.3164V17.3008ZM30.8172 6.60878H34.1172V17.3008H30.8172V6.60878ZM30.5532 3.24278C30.5532 2.71478 30.7365 2.26745 31.1032 1.90078C31.4845 1.51945 31.9392 1.32878 32.4672 1.32878C32.9952 1.32878 33.4425 1.51945 33.8092 1.90078C34.1905 2.26745 34.3812 2.71478 34.3812 3.24278C34.3812 3.77078 34.1905 4.22545 33.8092 4.60678C33.4425 4.97345 32.9952 5.15678 32.4672 5.15678C31.9392 5.15678 31.4845 4.97345 31.1032 4.60678C30.7365 4.22545 30.5532 3.77078 30.5532 3.24278ZM35.652 0.66878H38.952V17.3008H35.652V0.66878ZM40.4869 0.66878H43.7869V17.3008H40.4869V0.66878Z", fill: "#212121" }) }), _jsx("defs", { children: _jsx("clipPath", { id: "clip0_2489_282", children: _jsx("rect", { width: "45", height: "18", fill: "white" }) }) })] }) }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row' }, children: [_jsx("button", { style: {
103
- color: '#212121',
104
- backgroundColor: state.activeComponent === 'Dashboards'
105
- ? '#2121210A'
106
- : 'transparent',
107
- padding: '8px 12px',
108
- height: '38px',
109
- marginBottom: '4px',
110
- fontWeight: 'bold',
111
- fontSize: '0.875rem',
112
- borderRadius: '4px',
113
- transition: 'background-color 0.3s',
114
- border: 'none',
115
- outline: 'none',
116
- },
117
- // onClick={() => setActiveComponent("Dashboards")}
118
- onClick: () => dispatch({ type: 'SET_ACTIVE_COMPONENT', payload: 'Dashboards' }), children: "Dashboards" }), _jsx("button", { style: {
119
- color: '#212121',
120
- backgroundColor: state.activeComponent === 'SQL editor'
121
- ? '#2121210A'
122
- : 'transparent',
123
- padding: '8px 12px',
124
- height: '38px',
125
- marginBottom: '4px',
126
- fontWeight: 'bold',
127
- fontSize: '0.875rem',
128
- borderRadius: '4px',
129
- transition: 'background-color 0.3s',
130
- border: 'none',
131
- outline: 'none',
132
- },
133
- // onClick={() => setActiveComponent("SQL editor")}
134
- onClick: () => dispatch({ type: 'SET_ACTIVE_COMPONENT', payload: 'SQL editor' }), children: "SQL editor" }), _jsx("button", { style: {
135
- color: '#212121',
136
- backgroundColor: state.activeComponent === 'SQL views'
137
- ? '#2121210A'
138
- : 'transparent',
139
- padding: '8px 12px',
140
- height: '38px',
141
- marginBottom: '4px',
142
- fontWeight: 'bold',
143
- fontSize: '0.875rem',
144
- borderRadius: '4px',
145
- transition: 'background-color 0.3s',
146
- border: 'none',
147
- outline: 'none',
148
- },
149
- // onClick={() => setActiveComponent("SQL views")}
150
- onClick: () => dispatch({ type: 'SET_ACTIVE_COMPONENT', payload: 'SQL views' }), children: "SQL views" })] }), _jsx("div", { style: {
151
- display: 'flex',
152
- flexDirection: 'row',
153
- minHeight: '50px',
154
- justifyContent: 'flex-end',
155
- alignItems: 'center',
156
- paddingRight: '8px',
157
- width: 230,
158
- }, children: UserManagementComponent && _jsx(UserManagementComponent, {}) })] }), _jsx("div", { style: {
159
- display: 'flex',
160
- flexDirection: 'column',
161
- height: '100%',
162
- width: '100%',
163
- // marginTop: activeComponent !== 'Report' ? '70px' : undefined
164
- }, children: _jsx(QuillProvider
165
- // organizationId={'2'}
166
- // publicKey={client?._id}
167
- , {
168
- // organizationId={'2'}
169
- // publicKey={client?._id}
170
- organizationId: state.organizationId, queryEndpoint: queryEndpoint || '', withCredentials: withCredentials, queryHeaders: queryHeaders || {}, publicKey: state.client._id, environment: state.environment, theme: theme, children: renderComponentBasedOnName() }) })] }));
171
- }
172
- export const theme = {
173
33
  fontFamily: 'Inter; Helvetica',
174
34
  backgroundColor: '#FFFFFF',
175
35
  primaryTextColor: '#364153',
@@ -186,35 +46,6 @@ export const theme = {
186
46
  primaryButtonTextColor: '#FFFFFF',
187
47
  hoverBackgroundColor: '#F4F4F5',
188
48
  };
189
- export function convertPostgresColumn(column) {
190
- let format;
191
- switch (column.dataTypeID) {
192
- case 20: // int8
193
- case 21: // int2
194
- case 23: // int4
195
- format = 'whole_number';
196
- break;
197
- case 700: // float4
198
- case 701: // float8
199
- case 1700: // numeric
200
- format = 'two_decimal_places';
201
- break;
202
- case 1082: // date
203
- case 1083: // time
204
- case 1184: // timestamptz
205
- case 1114: // timestamp
206
- format = 'MMM_dd_yyyy';
207
- break;
208
- case 1043: // varchar
209
- default:
210
- format = 'string';
211
- }
212
- return {
213
- label: column.name,
214
- field: column.name,
215
- format: format,
216
- };
217
- }
218
49
  export function getPostgresBasicType(column) {
219
50
  let format;
220
51
  // first check if column.dataTypeID exists
@@ -256,6 +87,12 @@ export function getPostgresBasicType(column) {
256
87
  case 'timestamp':
257
88
  format = 'date';
258
89
  break;
90
+ // case 'json':
91
+ // case 'jsonb':
92
+ // case 'json[]':
93
+ // case 'jsonb[]':
94
+ // format = 'object';
95
+ // break;
259
96
  case 'varchar':
260
97
  default:
261
98
  format = 'string';
@@ -263,41 +100,165 @@ export function getPostgresBasicType(column) {
263
100
  }
264
101
  return format;
265
102
  }
266
- export function TableCell({ table, clickTableCell, }) {
267
- const handleClickTableCell = () => {
268
- clickTableCell(table);
269
- };
270
- return (_jsxs("div", { onClick: handleClickTableCell, style: {
271
- marginBottom: '54px',
103
+ export function TableCell({ table, clickTableCellHeader, clickTableCellBody, hoverActions, isLoading, reloadAction, }) {
104
+ const { state } = useAdmin();
105
+ return (_jsxs("div", { className: `table-cell-${table._id}`, style: {
272
106
  flex: 1,
273
- minWidth: '540px',
274
- maxWidth: '540px',
275
- cursor: 'pointer',
276
- }, children: [_jsx("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: _jsx("h3", { style: { color: '#384151' }, children: table.displayName }) }), _jsx(Highlight, { ...defaultProps, theme: prismTheme, code: table?.viewQuery || '', language: "sql", children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsx("pre", { className: className, style: {
107
+ // width: '460px',
108
+ borderRadius: 8,
109
+ border: '1px solid #E5E7EB',
110
+ boxShadow: '0px 2px 8px 0px rgba(56, 65, 81, 0.08)',
111
+ position: 'relative',
112
+ }, children: [_jsxs("div", { style: {
113
+ display: 'flex',
114
+ flexDirection: 'column',
115
+ justifyContent: 'space-between',
116
+ padding: '0.5em 0.5em 0.5em 1em',
117
+ borderBottom: '1px solid #E5E7EB',
118
+ borderTopLeftRadius: 8,
119
+ borderTopRightRadius: 8,
120
+ cursor: 'pointer',
121
+ }, onClick: () => {
122
+ clickTableCellHeader(table);
123
+ }, children: [_jsxs("div", { style: {
124
+ display: 'flex',
125
+ flexDirection: 'row',
126
+ alignItems: 'center',
127
+ justifyContent: 'space-between',
128
+ cursor: 'pointer',
129
+ }, children: [_jsx("h3", { style: {
130
+ fontFamily: defaultTheme?.fontFamily,
131
+ color: defaultTheme?.primaryTextColor,
132
+ boxSizing: 'content-box',
133
+ fontSize: 16,
134
+ height: 32,
135
+ alignContent: 'center',
136
+ marginTop: 'auto',
137
+ marginBottom: 'auto',
138
+ fontWeight: '500',
139
+ textOverflow: 'ellipsis',
140
+ padding: 0,
141
+ whiteSpace: 'nowrap',
142
+ display: 'block',
143
+ maxWidth: '100%',
144
+ overflow: 'hidden',
145
+ }, children: table.name }), table.broken ? (_jsxs("div", { style: {
146
+ display: 'flex',
147
+ flexDirection: 'row',
148
+ alignItems: 'center',
149
+ justifyContent: 'center',
150
+ gap: 2,
151
+ color: customError(table.error).severity === 'error'
152
+ ? '#CA3A31'
153
+ : '#FFA500',
154
+ }, children: [_jsx("h3", { style: {
155
+ fontSize: 14,
156
+ }, children: customError(table.error).error }), isLoading ? (_jsx("div", { style: {
157
+ width: 32,
158
+ height: 32,
159
+ display: 'flex',
160
+ justifyContent: 'center',
161
+ alignItems: 'center',
162
+ }, children: _jsx(LoadingSpinner, {}) })) : (_jsxs("button", { style: {
163
+ height: 32,
164
+ width: 32,
165
+ color: defaultTheme?.secondaryTextColor,
166
+ borderRadius: 6,
167
+ outline: 'none',
168
+ cursor: 'pointer',
169
+ fontSize: 14,
170
+ display: 'flex',
171
+ flexDirection: 'row',
172
+ alignItems: 'center',
173
+ }, className: "secondary-button-quill", onClick: (event) => {
174
+ event.stopPropagation();
175
+ reloadAction && reloadAction(table);
176
+ }, children: [_jsx("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 16 16", strokeWidth: 1.5, height: 16, width: 16, style: {
177
+ marginLeft: 'auto',
178
+ marginRight: 'auto',
179
+ }, children: _jsx("path", { fillRule: "evenodd", d: "M13.836 2.477a.75.75 0 0 1 .75.75v3.182a.75.75 0 0 1-.75.75h-3.182a.75.75 0 0 1 0-1.5h1.37l-.84-.841a4.5 4.5 0 0 0-7.08.932.75.75 0 0 1-1.3-.75 6 6 0 0 1 9.44-1.242l.842.84V3.227a.75.75 0 0 1 .75-.75Zm-.911 7.5A.75.75 0 0 1 13.199 11a6 6 0 0 1-9.44 1.241l-.84-.84v1.371a.75.75 0 0 1-1.5 0V9.591a.75.75 0 0 1 .75-.75H5.35a.75.75 0 0 1 0 1.5H3.98l.841.841a4.5 4.5 0 0 0 7.08-.932.75.75 0 0 1 1.025-.273Z", clipRule: "evenodd" }) })] }))] })) : (_jsxs(_Fragment, { children: [isLoading && (_jsx("div", { style: {
180
+ width: 32,
181
+ height: 32,
182
+ display: 'flex',
183
+ justifyContent: 'center',
184
+ alignItems: 'center',
185
+ }, className: `table-cell-${table._id}-loading`, children: _jsx(LoadingSpinner, {}) })), hoverActions && (_jsx("div", { className: `table-cell-${table._id}-actions`, children: hoverActions(table) }))] }))] }), (table.ownerTenantFields?.length ?? 0) > 0 && (_jsx("div", { style: {
186
+ flexDirection: 'row',
187
+ display: 'flex',
188
+ gap: 4,
189
+ }, children: table.ownerTenantFields
190
+ ?.map((tenantField) => {
191
+ return (state.client?.allTenantTypes?.find((t) => t.tenantField === tenantField)?.name || tenantField);
192
+ })
193
+ .map((tenantField) => (_jsx("div", { style: {
194
+ fontWeight: 300,
195
+ fontSize: 10,
196
+ color: defaultTheme?.primaryTextColor,
197
+ padding: 2,
198
+ paddingLeft: 4,
199
+ paddingRight: 4,
200
+ border: '1px solid #E5E7EB',
201
+ borderRadius: 32,
202
+ }, children: tenantField }, tenantField))) }))] }), _jsx(Highlight, { theme: themes.nightOwlLight, code: table?.viewQuery || '', language: "sql", children: ({ className, tokens, style, getLineProps, getTokenProps }) => (_jsx("pre", { className: className, onClick: () => {
203
+ clickTableCellBody(table);
204
+ }, style: {
277
205
  ...style,
278
206
  textAlign: 'left',
279
- margin: '1em 0',
280
- padding: '0.5em',
207
+ padding: '1em',
281
208
  overflow: 'auto',
282
- maxHeight: 120,
283
- maxWidth: 520,
284
- // lineHeight: "1.3em",
285
- // height: "1.3em",
286
- }, children: tokens.map((line, i) => (_jsx("div", { ...getLineProps({ line, key: i }), children: line.map((token, key) => (_jsx("span", { ...getTokenProps({ token, key }) }, key))) }, i))) })) })] }, table._id));
209
+ height: (table.ownerTenantFields?.length ?? 0) > 0 ? 132 : 153,
210
+ width: '100%',
211
+ borderBottomLeftRadius: 8,
212
+ borderBottomRightRadius: 8,
213
+ cursor: 'pointer',
214
+ }, children: tokens.map((line, i) => (_createElement("div", { ...getLineProps({ line }), key: i, style: {
215
+ wordWrap: 'normal',
216
+ whiteSpace: 'normal',
217
+ } }, line.map((token, key) => (_jsx("span", { ...getTokenProps({ token }) }, key)))))) })) }), hoverActions && (_jsx("style", { children: `
218
+ .table-cell-${table._id}-actions {
219
+ display: none;
220
+ pointer-events: none;
221
+ }
222
+ .table-cell-${table._id}-loading {
223
+ display: block;
224
+ }
225
+ .table-cell-${table._id}:hover .table-cell-${table._id}-loading {
226
+ display: none !important;
227
+ }
228
+ .table-cell-${table._id}:hover .table-cell-${table._id}-actions {
229
+ display: block;
230
+ pointer-events: all;
231
+ }
232
+ ` }))] }));
287
233
  }
234
+ const customError = (error) => {
235
+ if (error === 'connect ETIMEDOUT') {
236
+ return { severity: 'warning', error: 'Query timed out' };
237
+ }
238
+ else if (error === 'read ECONNRESET' || error === 'socket hang up') {
239
+ return { severity: 'warning', error: 'Connection lost' };
240
+ }
241
+ else {
242
+ return { severity: 'error', error: 'Query failed' };
243
+ }
244
+ };
288
245
  const FakeModal = ({ children }) => (_jsx("div", { style: { height: '100%' }, children: children }));
289
246
  const FakeSQLEditorModal = ({ children, isOpen, }) => {
290
247
  if (!isOpen)
291
248
  return null;
292
249
  return _jsx("div", { style: { height: '100%' }, children: children });
293
250
  };
294
- function QuillReport({ reportId, saveDashboardItem, isOpen, setIsOpen, isEditQueryOpen, SecondaryButtonComponent, ButtonComponent, deleteReport, handleSave, updateQuery, OrganizationSelectComponent, ModalComponent = MemoizedModal, NavigateToDashboardBuilder, }) {
295
- const { state, dispatch } = useAdmin();
296
- const { data, loading, error } = useQuill(reportId);
251
+ function QuillReportDetail({ reportId, isOpen, setIsOpen, deleteReport, handleSave, ModalComponent = MemoizedModal, fallbackData, }) {
252
+ const { state, dispatch, getToken } = useAdmin();
253
+ const { data, loading } = useQuill(reportId, {
254
+ rowsPerPage: 10,
255
+ rowsPerRequest: 100,
256
+ });
297
257
  const parentRef = useRef(null);
298
258
  const [modalWidth, setModalWidth] = useState(200);
299
259
  const [modalHeight, setModalHeight] = useState(200);
300
260
  const [isOpenChartBuilder, setIsOpenChartBuilder] = useState(false);
261
+ const [isPromoteReportModalOpen, setIsPromoteReportModalOpen] = useState(false);
301
262
  const handleResize = useCallback(() => {
302
263
  const screenSize = window.innerWidth;
303
264
  const isEditQuery = state.activeQuery && state.activeEditItem;
@@ -327,29 +288,32 @@ function QuillReport({ reportId, saveDashboardItem, isOpen, setIsOpen, isEditQue
327
288
  setIsOpenChartBuilder(isOpen);
328
289
  setIsOpen(isOpen);
329
290
  };
330
- if (!data || loading) {
291
+ if ((!data && !fallbackData) || loading) {
331
292
  return null;
332
293
  }
333
- return (_jsx("div", { ref: parentRef, children: _jsx(ModalComponent, { isOpen: isOpen, setIsOpen: handleSetIsOpen, title: data.name || 'Report Detail', width: modalWidth, height: modalHeight, children: _jsxs("div", { style: {
294
+ return (_jsx("div", { ref: parentRef, children: _jsx(ModalComponent, { isOpen: isOpen, setIsOpen: handleSetIsOpen, title: isOpenChartBuilder || (state.activeQuery && state.activeEditItem)
295
+ ? 'Editing ' + (data?.name || fallbackData?.name || 'Report Detail')
296
+ : data?.name || fallbackData?.name || 'Report Detail', width: modalWidth, height: modalHeight, children: _jsxs("div", { style: {
334
297
  width: '100%',
335
298
  height: 'calc(100% - 52px)', // full height minus header height
336
299
  display: 'flex',
337
300
  flexDirection: 'column',
338
301
  flexGrow: 1,
339
- }, children: [_jsxs("div", { style: {
302
+ }, children: [!isOpenChartBuilder &&
303
+ !(state.activeEditItem && state.activeQuery) && (_jsxs("div", { style: {
340
304
  display: 'flex',
341
305
  alignItems: 'center',
342
306
  gap: 16,
343
- padding: 15,
307
+ paddingLeft: 20,
344
308
  }, children: [_jsxs("button", { style: {
345
309
  height: 36,
346
- color: theme?.secondaryTextColor,
310
+ color: defaultTheme?.secondaryTextColor,
347
311
  border: '1px solid #e7e7e7',
348
312
  borderRadius: 6,
349
313
  outline: 'none',
350
314
  cursor: 'pointer',
351
- fontFamily: theme?.fontFamily,
352
- fontWeight: theme?.buttonFontWeight || 500,
315
+ fontFamily: defaultTheme?.fontFamily,
316
+ fontWeight: defaultTheme?.buttonFontWeight || 500,
353
317
  fontSize: 14,
354
318
  padding: '0px 12px',
355
319
  display: 'flex',
@@ -357,7 +321,7 @@ function QuillReport({ reportId, saveDashboardItem, isOpen, setIsOpen, isEditQue
357
321
  alignItems: 'center',
358
322
  gap: 5,
359
323
  }, onClick: () => {
360
- setIsOpenChartBuilder((showEditChart) => !showEditChart);
324
+ setIsOpenChartBuilder(true);
361
325
  dispatch({
362
326
  type: 'SET_ACTIVE_QUERY',
363
327
  payload: '',
@@ -365,20 +329,20 @@ function QuillReport({ reportId, saveDashboardItem, isOpen, setIsOpen, isEditQue
365
329
  dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
366
330
  }, className: "secondary-button-quill", children: [_jsx("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: 15, width: 15, children: [_jsx("path", { d: "M12 9a1 1 0 0 1-1-1V3c0-.552.45-1.007.997-.93a7.004 7.004 0 0 1 5.933 5.933c.078.547-.378.997-.93.997h-5Z" }), _jsx("path", { d: "M8.003 4.07C8.55 3.994 9 4.449 9 5v5a1 1 0 0 0 1 1h5c.552 0 1.008.45.93.997A7.001 7.001 0 0 1 2 11a7.002 7.002 0 0 1 6.003-6.93Z" })] }), "Edit chart"] }), _jsxs("button", { style: {
367
331
  height: 36,
368
- color: theme?.secondaryTextColor,
332
+ color: defaultTheme?.secondaryTextColor,
369
333
  border: '1px solid #e7e7e7',
370
334
  borderRadius: 6,
371
335
  outline: 'none',
372
336
  cursor: 'pointer',
373
- fontFamily: theme?.fontFamily,
374
- fontWeight: theme?.buttonFontWeight || 500,
337
+ fontFamily: defaultTheme?.fontFamily,
338
+ fontWeight: defaultTheme?.buttonFontWeight || 500,
375
339
  fontSize: 14,
376
340
  padding: '0px 12px',
377
341
  display: 'flex',
378
342
  flexDirection: 'row',
379
343
  alignItems: 'center',
380
344
  gap: 5,
381
- }, onClick: () => {
345
+ }, onClick: async () => {
382
346
  if (state.activeQuery && state.activeEditItem) {
383
347
  dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
384
348
  dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
@@ -386,212 +350,194 @@ function QuillReport({ reportId, saveDashboardItem, isOpen, setIsOpen, isEditQue
386
350
  }
387
351
  dispatch({
388
352
  type: 'SET_ACTIVE_QUERY',
389
- payload: data.queryString,
353
+ payload: data?.queryString || fallbackData?.queryString,
354
+ });
355
+ const editItem = data?.queryString
356
+ ? await parseQuillReportToQuillReportInternal(data, state.client, state.tables, getToken)
357
+ : fallbackData;
358
+ dispatch({
359
+ type: 'SET_ACTIVE_EDIT_ITEM',
360
+ payload: editItem,
390
361
  });
391
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: data });
392
362
  }, className: "secondary-button-quill", children: [_jsx("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", height: 12, width: 12, children: _jsx("path", { d: "M21.731 2.269a2.625 2.625 0 0 0-3.712 0l-1.157 1.157 3.712 3.712 1.157-1.157a2.625 2.625 0 0 0 0-3.712ZM19.513 8.199l-3.712-3.712-12.15 12.15a5.25 5.25 0 0 0-1.32 2.214l-.8 2.685a.75.75 0 0 0 .933.933l2.685-.8a5.25 5.25 0 0 0 2.214-1.32L19.513 8.2Z" }) }), "Edit query"] }), _jsxs("button", { style: {
393
363
  height: 36,
394
- color: theme?.secondaryTextColor,
364
+ color: defaultTheme?.secondaryTextColor,
365
+ border: '1px solid #e7e7e7',
366
+ borderRadius: 6,
367
+ outline: 'none',
368
+ cursor: 'pointer',
369
+ fontFamily: defaultTheme?.fontFamily,
370
+ fontWeight: defaultTheme?.buttonFontWeight || 500,
371
+ fontSize: 14,
372
+ padding: '0px 12px',
373
+ display: 'flex',
374
+ flexDirection: 'row',
375
+ alignItems: 'center',
376
+ gap: 4,
377
+ }, onClick: () => {
378
+ setIsPromoteReportModalOpen(true);
379
+ }, className: "secondary-button-quill", children: [_jsx("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", height: 14, width: 14, children: _jsx("path", { fillRule: "evenodd", d: "M11.47 2.47a.75.75 0 0 1 1.06 0l4.5 4.5a.75.75 0 0 1-1.06 1.06l-3.22-3.22V16.5a.75.75 0 0 1-1.5 0V4.81L8.03 8.03a.75.75 0 0 1-1.06-1.06l4.5-4.5ZM3 15.75a.75.75 0 0 1 .75.75v2.25a1.5 1.5 0 0 0 1.5 1.5h13.5a1.5 1.5 0 0 0 1.5-1.5V16.5a.75.75 0 0 1 1.5 0v2.25a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3V16.5a.75.75 0 0 1 .75-.75Z", clipRule: "evenodd" }) }), "Promote"] }), _jsxs("button", { style: {
380
+ height: 36,
381
+ color: defaultTheme?.secondaryTextColor,
395
382
  border: '1px solid #e7e7e7',
396
383
  borderRadius: 6,
397
384
  outline: 'none',
398
385
  cursor: 'pointer',
399
- fontFamily: theme?.fontFamily,
400
- fontWeight: theme?.buttonFontWeight || 500,
386
+ fontFamily: defaultTheme?.fontFamily,
387
+ fontWeight: defaultTheme?.buttonFontWeight || 500,
401
388
  fontSize: 14,
402
389
  padding: '0px 12px',
403
390
  display: 'flex',
404
391
  flexDirection: 'row',
405
392
  alignItems: 'center',
406
393
  gap: 4,
407
- }, onClick: deleteReport, className: "secondary-button-quill", children: [_jsx("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: 14, width: 14, children: _jsx("path", { fillRule: "evenodd", d: "M8.75 1A2.75 2.75 0 0 0 6 3.75v.443c-.795.077-1.584.176-2.365.298a.75.75 0 1 0 .23 1.482l.149-.022.841 10.518A2.75 2.75 0 0 0 7.596 19h4.807a2.75 2.75 0 0 0 2.742-2.53l.841-10.52.149.023a.75.75 0 0 0 .23-1.482A41.03 41.03 0 0 0 14 4.193V3.75A2.75 2.75 0 0 0 11.25 1h-2.5ZM10 4c.84 0 1.673.025 2.5.075V3.75c0-.69-.56-1.25-1.25-1.25h-2.5c-.69 0-1.25.56-1.25 1.25v.325C8.327 4.025 9.16 4 10 4ZM8.58 7.72a.75.75 0 0 0-1.5.06l.3 7.5a.75.75 0 1 0 1.5-.06l-.3-7.5Zm4.34.06a.75.75 0 1 0-1.5-.06l-.3 7.5a.75.75 0 1 0 1.5.06l.3-7.5Z", clipRule: "evenodd" }) }), "Delete"] })] }), _jsx("div", { style: {
394
+ }, onClick: async () => {
395
+ if (await deleteReport(reportId)) {
396
+ setIsOpen(false);
397
+ }
398
+ }, className: "secondary-button-quill", children: [_jsx("style", { children: `.secondary-button-quill { background: white } .secondary-button-quill:hover { background: #F4F4F5 }` }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", height: 14, width: 14, children: _jsx("path", { fillRule: "evenodd", d: "M8.75 1A2.75 2.75 0 0 0 6 3.75v.443c-.795.077-1.584.176-2.365.298a.75.75 0 1 0 .23 1.482l.149-.022.841 10.518A2.75 2.75 0 0 0 7.596 19h4.807a2.75 2.75 0 0 0 2.742-2.53l.841-10.52.149.023a.75.75 0 0 0 .23-1.482A41.03 41.03 0 0 0 14 4.193V3.75A2.75 2.75 0 0 0 11.25 1h-2.5ZM10 4c.84 0 1.673.025 2.5.075V3.75c0-.69-.56-1.25-1.25-1.25h-2.5c-.69 0-1.25.56-1.25 1.25v.325C8.327 4.025 9.16 4 10 4ZM8.58 7.72a.75.75 0 0 0-1.5.06l.3 7.5a.75.75 0 1 0 1.5-.06l-.3-7.5Zm4.34.06a.75.75 0 1 0-1.5-.06l-.3 7.5a.75.75 0 1 0 1.5.06l.3-7.5Z", clipRule: "evenodd" }) }), "Delete"] })] })), _jsx("div", { style: {
408
399
  display: 'flex',
409
400
  flexDirection: 'row',
410
- height: 'calc(100% - 66px)', // full height minus button container
401
+ height: 'calc(100% - 36px)', // full height minus button container
411
402
  flexGrow: 1,
412
- }, children: _jsx("div", { style: {
403
+ }, children: _jsxs("div", { style: {
413
404
  width: '100%',
414
405
  height: '100%',
415
406
  overflowX: 'hidden',
416
407
  overflowY: 'auto',
417
- }, children: state.activeEditItem && state.activeQuery ? (_jsx(QueryEditor, { onSave: handleSave })) : (_jsx(ChartEditor, { isOpen: isOpenChartBuilder, setIsOpen: setIsOpenChartBuilder, reportId: reportId, isAdmin: true, organizationName: state.organizations.find((org) => {
418
- return (org.id &&
419
- String(org.id) === String(state.organizationId));
420
- })?.name, onDelete: deleteReport, onAddToDashboardComplete: (report) => {
421
- const dashboard = state.dashboards.find((dash) => {
422
- return dash.name === report.dashboardName;
423
- });
424
- dispatch({
425
- type: 'SET_SELECTED_DASHBOARD',
426
- payload: dashboard,
427
- });
428
- handleSave();
429
- }, isHorizontalView: true, ModalComponent: FakeModal, ButtonComponent: MemoizedButton })) }) })] }) }) }));
408
+ }, children: [state.activeEditItem && state.activeQuery ? (_jsx(QueryEditor, { onSave: (report) => {
409
+ handleSave({ report, action: 'upsert' });
410
+ } })) : data ? (_jsx(ChartEditor, { isOpen: isOpenChartBuilder, setIsOpen: setIsOpenChartBuilder, reportId: reportId, isAdmin: true, onDelete: () => deleteReport(reportId), onAddToDashboardComplete: (report) => {
411
+ handleSave({ report: report, action: 'upsert' });
412
+ }, isHorizontalView: true, ModalComponent: FakeModal, ButtonComponent: MemoizedButton, onClickChartError: (errorResult) => {
413
+ if (state.navigateToVirtualTableBuilder) {
414
+ state.navigateToVirtualTableBuilder(errorResult);
415
+ setIsOpenChartBuilder(false);
416
+ setIsOpen(false);
417
+ dispatch({
418
+ type: 'SET_ACTIVE_QUERY',
419
+ payload: '',
420
+ });
421
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
422
+ }
423
+ }, destinationDashboard: data.dashboardName })) : null, _jsx(PromoteReportModal, { ModalComponent: ModalPrimitive, HeaderComponent: HeaderPrimitive, ButtonComponent: MemoizedButton, SelectComponent: QuillSelectComponentWithCombo, CheckboxComponent: CheckboxPrimitive, isOpen: isPromoteReportModalOpen, setIsOpen: setIsPromoteReportModalOpen, reportId: reportId, currentClientId: state.client._id, currentDashboardName: state.selectedDashboard || '' })] }) })] }) }) }));
430
424
  }
431
425
  function QueryEditor({ onSave }) {
432
426
  const { state, dispatch } = useAdmin();
433
- if (state.activeEditItem &&
434
- state.activeEditItem.referencedTables &&
435
- state.activeEditItem.referencedTables.length === 1 &&
427
+ const modeToggleOptions = [
428
+ { label: 'SQL Editor', value: 'SQL Editor' },
429
+ { label: 'Report Builder', value: 'Report Builder' },
430
+ ];
431
+ const initialToggleMode = state.activeEditItem &&
436
432
  state.activeQuery &&
437
433
  !state.activeQuery.match(/^\s*with\s/i) &&
438
- !hasColumnAlias(state.activeEditItem.columns, state.activeEditItem.referencedColumns[state.activeEditItem.referencedTables[0]] || undefined)) {
439
- return (_jsx(ReportBuilder, { isAdminEnabled: true,
440
- // initialTableName={state.tables.length > 0 && state.tables[0]!.name}
441
- reportId: state.activeEditItem._id, onSubmitEditReport: (report) => {
442
- const dashboard = state.dashboards.find((dash) => {
443
- return dash.name === report.dashboardName;
444
- });
445
- dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
446
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
447
- dispatch({
448
- type: 'SET_SELECTED_DASHBOARD',
449
- payload: dashboard,
450
- });
451
- onSave(); // refresh the dashboard in the background
452
- }, organizationName: state.organizations.find((org) => {
453
- return org.id && String(org.id) === String(state.organizationId);
454
- })?.name, isChartBuilderHorizontalView: true,
455
- // @ts-ignore
456
- ChartBuilderModalComponent: FakeSQLEditorModal, containerStyle: {
457
- height: '100%',
458
- width: '100%',
459
- } }));
460
- }
461
- return (_jsx(SQLEditor, { isChartBuilderHorizontalView: true, isChartBuilderEnabled: true, showAccessControlOptions: true, showDateFieldOptions: true, showTableFormatOptions: true, defaultQuery: state.activeQuery, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', report: state.activeQuery ? state.activeEditItem : undefined, onAddToDashboardComplete: (report) => {
462
- const dashboard = state.dashboards.find((dash) => {
463
- return dash.name === report.dashboardName;
464
- });
465
- dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
466
- dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
467
- dispatch({
468
- type: 'SET_SELECTED_DASHBOARD',
469
- payload: dashboard,
470
- });
471
- onSave(); // refresh the dashboard in the background
472
- }, containerStyle: {
434
+ !(state.activeEditItem.adminError || state.activeEditItem.error)
435
+ ? 'Report Builder'
436
+ : 'SQL Editor';
437
+ const [toggleMode, setToggleMode] = useState(initialToggleMode);
438
+ const [isChartBuilderOpen, setIsChartBuilderOpen] = useState(false);
439
+ const { setSelectedDashboard } = useDashboardManager();
440
+ return (_jsxs("div", { style: {
473
441
  height: '100%',
474
- width: '100%',
475
- }, organizationName: state.organizations.find((org) => {
476
- return org.id && String(org.id) === String(state.organizationId);
477
- })?.name,
478
- // @ts-ignore
479
- ModalComponent: FakeSQLEditorModal, ButtonComponent: MemoizedButton }));
442
+ display: 'flex',
443
+ flexDirection: 'column',
444
+ }, children: [!isChartBuilderOpen && (_jsx("div", { id: "quill-edit-banner", style: {
445
+ width: '100%',
446
+ display: 'flex',
447
+ flexDirection: 'row',
448
+ alignItems: 'center',
449
+ justifyContent: 'space-between',
450
+ borderBottom: '1px solid #e7e7e7',
451
+ padding: '10px',
452
+ }, children: _jsx("div", { style: { display: 'flex', marginTop: 'auto' }, children: _jsx("div", { style: {
453
+ display: 'flex',
454
+ flexDirection: 'row',
455
+ alignItems: 'center',
456
+ borderRadius: '0.25rem',
457
+ borderStyle: 'none',
458
+ outlineStyle: 'none',
459
+ background: '#F9FAFB',
460
+ padding: 4,
461
+ }, children: _jsx(QuillTab, { modeToggleOptions: modeToggleOptions, toggleMode: toggleMode, setToggleMode: setToggleMode, disabledTooltip: initialToggleMode === 'Report Builder'
462
+ ? undefined
463
+ : (state.activeEditItem?.error ??
464
+ state.activeEditItem?.adminError ??
465
+ 'The Report Builder only supports queries created in the Report Builder'), width: '250px' }) }) }) })), _jsx("div", { style: { flexGrow: 1, paddingBottom: 8, overflowY: 'auto' }, children: toggleMode === 'Report Builder' ? (_jsx(ReportBuilder, { isAdminEnabled: true, destinationDashboard: state.activeEditItem.dashboardName,
466
+ // initialTableName={state.tables.length > 0 && state.tables[0]!.name}
467
+ reportId: state.activeEditItem?.id, onSubmitEditReport: (report) => {
468
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
469
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
470
+ setSelectedDashboard(report.dashboardName);
471
+ onSave(report); // refresh the dashboard in the background
472
+ }, onDiscardChanges: () => {
473
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
474
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
475
+ setIsChartBuilderOpen(false);
476
+ }, onSaveChanges: () => {
477
+ setIsChartBuilderOpen(true);
478
+ }, onCloseChartBuilder: () => {
479
+ setIsChartBuilderOpen(false);
480
+ }, isChartBuilderHorizontalView: true,
481
+ // @ts-ignore
482
+ ChartBuilderModalComponent: FakeSQLEditorModal, containerStyle: {
483
+ height: '100%',
484
+ width: '100%',
485
+ }, isAIEnabled: state.client?.databaseType?.toLowerCase() === 'mssql'
486
+ ? false
487
+ : true })) : (_jsx(SQLEditor, { isChartBuilderHorizontalView: true, isAdminEnabled: true, defaultQuery: state.activeQuery, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', report: state.activeQuery ? state.activeEditItem : undefined, destinationDashboard: state.activeEditItem.dashboardName, onDiscardChanges: () => {
488
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
489
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
490
+ setIsChartBuilderOpen(false);
491
+ }, onSaveChanges: () => {
492
+ setIsChartBuilderOpen(true);
493
+ }, onCloseChartBuilder: () => {
494
+ setIsChartBuilderOpen(false);
495
+ }, runQueryOnMount: true, onAddToDashboardComplete: (report) => {
496
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
497
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
498
+ setSelectedDashboard(report.dashboardName);
499
+ onSave(report); // refresh the dashboard in the background
500
+ }, containerStyle: {
501
+ height: '100%',
502
+ width: '100%',
503
+ },
504
+ // @ts-ignore
505
+ ModalComponent: FakeSQLEditorModal, ButtonComponent: MemoizedButton, isChartBuilderEnabled: true })) })] }));
480
506
  }
481
- export function ReportWrapper({ SecondaryButtonComponent, ButtonComponent, ModalComponent, SelectComponent, OrganizationSelectComponent, organizationId, queryEndpoint, queryHeaders, withCredentials, isOpen, setIsOpen, reloadDashboard, }) {
482
- const { state, dispatch } = useAdmin();
483
- const [isEditQueryOpen, setIsEditQueryOpen] = useState(false);
484
- const updateQuery = async (dashboardItemId, query) => {
485
- if (!state.client || !dashboardItemId || !query) {
486
- return;
487
- }
488
- let responseData;
489
- if (queryEndpoint) {
490
- const response = await fetch(queryEndpoint, {
491
- method: 'POST',
492
- headers: {
493
- ...queryHeaders,
494
- 'Content-Type': 'application/json',
495
- },
496
- body: JSON.stringify({
497
- metadata: {
498
- task: 'edit_query',
499
- id: state.reportId,
500
- databaseType: state.client.databaseType,
501
- query,
502
- orgId: organizationId || '*',
503
- },
504
- }),
505
- credentials: withCredentials ? 'include' : 'omit',
506
- });
507
- responseData = await response.json();
508
- }
509
- else {
510
- const url = `${QUILL_SERVER}/updatequery/${state.client._id}/${organizationId}/`;
511
- const requestBody = {
512
- dashboardItemId,
513
- query,
514
- };
515
- const response = await fetch(url, {
516
- method: 'POST',
517
- headers: {
518
- 'Content-Type': 'application/json',
519
- Authorization: 'Bearer ',
520
- environment: state.environment,
521
- },
522
- body: JSON.stringify(requestBody),
523
- });
524
- responseData = await response.json();
525
- }
526
- if (responseData) {
527
- if (responseData.error) {
528
- alert(`Failed to save query. ${typeof responseData.error === 'string'
529
- ? responseData.error
530
- : responseData.error?.routine === 'errorMissingColumn'
531
- ? "A column was referenced that doesn't exist."
532
- : responseData.error?.routine
533
- ? responseData.error?.routine
534
- : 'Error parsing SQL query'}`);
535
- return;
536
- }
537
- setIsEditQueryOpen(false);
538
- }
507
+ export function ReportWrapper({ ModalComponent, isOpen, setIsOpen, reloadDashboard, }) {
508
+ const { state, getToken } = useAdmin();
509
+ const handleSave = (reportAction) => {
510
+ reloadDashboard(reportAction);
539
511
  };
540
- const deleteReport = async () => {
541
- if (!state.reportId) {
542
- return;
543
- }
544
- if (!state.client) {
545
- return;
546
- }
547
- if (!confirm('Are you sure?')) {
548
- return;
549
- }
550
- let responseData;
551
- if (queryEndpoint) {
552
- const response = await fetch(queryEndpoint, {
553
- method: 'POST',
554
- headers: {
555
- ...queryHeaders,
556
- 'Content-Type': 'application/json',
557
- },
558
- body: JSON.stringify({
559
- metadata: {
560
- orgId: organizationId || '*',
561
- task: 'delete',
562
- dashboardItemId: state.reportId,
563
- clientId: state.client._id,
564
- databaseType: state.client.databaseType,
565
- },
566
- }),
567
- credentials: withCredentials ? 'include' : 'omit', // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
568
- });
569
- responseData = await response.json(); // If the server returns JSON data
570
- }
571
- else {
572
- const url = `${QUILL_SERVER}/deletedash/${state.client._id}/${organizationId}/`;
573
- const requestBody = {
574
- dashboardItemId: state.reportId,
575
- databaseType: state.client.databaseType,
576
- };
577
- const response = await fetch(url, {
578
- method: 'POST',
579
- headers: {
580
- 'Content-Type': 'application/json',
581
- environment: state.environment,
582
- },
583
- body: JSON.stringify(requestBody),
584
- });
585
- // To get JSON data from the response:
586
- responseData = await response.json();
587
- }
588
- if (responseData) {
589
- dispatch({ type: 'SET_ACTIVE_COMPONENT', payload: 'Dashboards' });
590
- reloadDashboard();
591
- }
592
- };
593
- const handleSave = () => {
594
- reloadDashboard();
595
- };
596
- return (_jsx(QuillReport, { reportId: state.reportId, updateQuery: updateQuery, isOpen: isOpen, setIsOpen: setIsOpen, isEditQueryOpen: isEditQueryOpen, setIsEditQueryOpen: setIsEditQueryOpen, deleteReport: deleteReport, handleSave: handleSave, SecondaryButtonComponent: SecondaryButtonComponent, ButtonComponent: ButtonComponent, ModalComponent: ModalComponent, SelectComponent: SelectComponent, OrganizationSelectComponent: OrganizationSelectComponent }));
512
+ return (_jsx(QuillReportDetail, { reportId: state.reportId, isOpen: isOpen, setIsOpen: setIsOpen, deleteReport: async (reportId) => {
513
+ const success = await deleteReport(reportId, state, getToken);
514
+ if (success) {
515
+ handleSave({ report: { id: reportId }, action: 'delete' });
516
+ }
517
+ return success;
518
+ }, handleSave: handleSave, ModalComponent: ModalComponent, fallbackData: state.report }));
597
519
  }
520
+ export const deleteReport = async (reportId, state, getToken) => {
521
+ if (!state.client) {
522
+ return false;
523
+ }
524
+ if (!confirm('Are you sure?')) {
525
+ return false;
526
+ }
527
+ await quillFetch({
528
+ client: {
529
+ queryEndpoint: state.queryEndpoint,
530
+ queryHeaders: state.queryHeaders,
531
+ withCredentials: !!state.withCredentials,
532
+ clientId: state.client._id,
533
+ },
534
+ task: 'delete',
535
+ metadata: {
536
+ dashboardItemId: reportId,
537
+ clientId: state.client._id,
538
+ databaseType: state.client.databaseType,
539
+ },
540
+ getToken,
541
+ });
542
+ return true;
543
+ };