@quillsql/admin 1.7.0 → 1.7.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 (719) hide show
  1. package/dist/index.cjs +28479 -0
  2. package/dist/index.d.cts +78 -0
  3. package/dist/index.d.ts +78 -0
  4. package/dist/index.js +28539 -0
  5. package/package.json +11 -10
  6. package/dist/cjs/Admin.d.ts +0 -72
  7. package/dist/cjs/Admin.d.ts.map +0 -1
  8. package/dist/cjs/Admin.js +0 -655
  9. package/dist/cjs/AdminProvider.d.ts +0 -199
  10. package/dist/cjs/AdminProvider.d.ts.map +0 -1
  11. package/dist/cjs/AdminProvider.js +0 -574
  12. package/dist/cjs/api/ConnectionClient.d.ts +0 -41
  13. package/dist/cjs/api/ConnectionClient.d.ts.map +0 -1
  14. package/dist/cjs/api/ConnectionClient.js +0 -575
  15. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts +0 -5
  16. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +0 -1
  17. package/dist/cjs/assets/ArrowDownHeadIcon.js +0 -5
  18. package/dist/cjs/assets/XIcon.d.ts +0 -5
  19. package/dist/cjs/assets/XIcon.d.ts.map +0 -1
  20. package/dist/cjs/assets/XIcon.js +0 -5
  21. package/dist/cjs/assets/index.d.ts +0 -3
  22. package/dist/cjs/assets/index.d.ts.map +0 -1
  23. package/dist/cjs/assets/index.js +0 -10
  24. package/dist/cjs/components/Banner/index.d.ts +0 -2
  25. package/dist/cjs/components/Banner/index.d.ts.map +0 -1
  26. package/dist/cjs/components/Banner/index.js +0 -33
  27. package/dist/cjs/components/CardSection.d.ts +0 -3
  28. package/dist/cjs/components/CardSection.d.ts.map +0 -1
  29. package/dist/cjs/components/CardSection.js +0 -14
  30. package/dist/cjs/components/CardTitle.d.ts +0 -3
  31. package/dist/cjs/components/CardTitle.d.ts.map +0 -1
  32. package/dist/cjs/components/CardTitle.js +0 -14
  33. package/dist/cjs/components/ClipboardButton.d.ts +0 -8
  34. package/dist/cjs/components/ClipboardButton.d.ts.map +0 -1
  35. package/dist/cjs/components/ClipboardButton.js +0 -74
  36. package/dist/cjs/components/DashboardSelectPopover.d.ts +0 -14
  37. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +0 -1
  38. package/dist/cjs/components/DashboardSelectPopover.js +0 -123
  39. package/dist/cjs/components/DatabaseMismatchCard.d.ts +0 -6
  40. package/dist/cjs/components/DatabaseMismatchCard.d.ts.map +0 -1
  41. package/dist/cjs/components/DatabaseMismatchCard.js +0 -18
  42. package/dist/cjs/components/DatabaseSelector.d.ts +0 -14
  43. package/dist/cjs/components/DatabaseSelector.d.ts.map +0 -1
  44. package/dist/cjs/components/DatabaseSelector.js +0 -34
  45. package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts +0 -10
  46. package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts.map +0 -1
  47. package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +0 -287
  48. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts +0 -18
  49. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +0 -1
  50. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +0 -312
  51. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts +0 -91
  52. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +0 -1
  53. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.js +0 -898
  54. package/dist/cjs/components/DeleteButton.d.ts +0 -2
  55. package/dist/cjs/components/DeleteButton.d.ts.map +0 -1
  56. package/dist/cjs/components/DeleteButton.js +0 -13
  57. package/dist/cjs/components/DropDownMenu.d.ts +0 -10
  58. package/dist/cjs/components/DropDownMenu.d.ts.map +0 -1
  59. package/dist/cjs/components/DropDownMenu.js +0 -42
  60. package/dist/cjs/components/DropDownMenuWithLabel.d.ts +0 -14
  61. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +0 -1
  62. package/dist/cjs/components/DropDownMenuWithLabel.js +0 -136
  63. package/dist/cjs/components/DynamicBanner.d.ts +0 -9
  64. package/dist/cjs/components/DynamicBanner.d.ts.map +0 -1
  65. package/dist/cjs/components/DynamicBanner.js +0 -27
  66. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts +0 -2
  67. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +0 -1
  68. package/dist/cjs/components/EmptyDashboardComponent/index.js +0 -49
  69. package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts +0 -4
  70. package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts.map +0 -1
  71. package/dist/cjs/components/EmptyVirtualTablesComponent.js +0 -44
  72. package/dist/cjs/components/ExternalLink.d.ts +0 -4
  73. package/dist/cjs/components/ExternalLink.d.ts.map +0 -1
  74. package/dist/cjs/components/ExternalLink.js +0 -15
  75. package/dist/cjs/components/FormTooltip.d.ts +0 -8
  76. package/dist/cjs/components/FormTooltip.d.ts.map +0 -1
  77. package/dist/cjs/components/FormTooltip.js +0 -92
  78. package/dist/cjs/components/InputLabel.d.ts +0 -6
  79. package/dist/cjs/components/InputLabel.d.ts.map +0 -1
  80. package/dist/cjs/components/InputLabel.js +0 -20
  81. package/dist/cjs/components/InternalDashboard/ChartSkeleton.d.ts +0 -11
  82. package/dist/cjs/components/InternalDashboard/ChartSkeleton.d.ts.map +0 -1
  83. package/dist/cjs/components/InternalDashboard/ChartSkeleton.js +0 -21
  84. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +0 -20
  85. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +0 -1
  86. package/dist/cjs/components/InternalDashboard/DashboardFilter.js +0 -104
  87. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts +0 -7
  88. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +0 -1
  89. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.js +0 -22
  90. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts +0 -37
  91. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +0 -1
  92. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +0 -294
  93. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts +0 -85
  94. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +0 -1
  95. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.js +0 -534
  96. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts +0 -17
  97. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +0 -1
  98. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +0 -2040
  99. package/dist/cjs/components/OrgSelect.d.ts +0 -25
  100. package/dist/cjs/components/OrgSelect.d.ts.map +0 -1
  101. package/dist/cjs/components/OrgSelect.js +0 -275
  102. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +0 -36
  103. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +0 -1
  104. package/dist/cjs/components/QuillMultiSelectWithCombo.js +0 -688
  105. package/dist/cjs/components/QuillPopover.d.ts +0 -11
  106. package/dist/cjs/components/QuillPopover.d.ts.map +0 -1
  107. package/dist/cjs/components/QuillPopover.js +0 -179
  108. package/dist/cjs/components/QuillSelect.d.ts +0 -3
  109. package/dist/cjs/components/QuillSelect.d.ts.map +0 -1
  110. package/dist/cjs/components/QuillSelect.js +0 -159
  111. package/dist/cjs/components/QuillSelectWithCombo.d.ts +0 -23
  112. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +0 -1
  113. package/dist/cjs/components/QuillSelectWithCombo.js +0 -353
  114. package/dist/cjs/components/QuillTab.d.ts +0 -12
  115. package/dist/cjs/components/QuillTab.d.ts.map +0 -1
  116. package/dist/cjs/components/QuillTab.js +0 -84
  117. package/dist/cjs/components/QuillToolTipPortal.d.ts +0 -11
  118. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +0 -1
  119. package/dist/cjs/components/QuillToolTipPortal.js +0 -108
  120. package/dist/cjs/components/SegmentedControl.d.ts +0 -15
  121. package/dist/cjs/components/SegmentedControl.d.ts.map +0 -1
  122. package/dist/cjs/components/SegmentedControl.js +0 -59
  123. package/dist/cjs/components/SqlTextEditor.d.ts +0 -12
  124. package/dist/cjs/components/SqlTextEditor.d.ts.map +0 -1
  125. package/dist/cjs/components/SqlTextEditor.js +0 -106
  126. package/dist/cjs/components/StepDisplay.d.ts +0 -10
  127. package/dist/cjs/components/StepDisplay.d.ts.map +0 -1
  128. package/dist/cjs/components/StepDisplay.js +0 -18
  129. package/dist/cjs/components/Tenants/EditTenant.d.ts +0 -41
  130. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +0 -1
  131. package/dist/cjs/components/Tenants/EditTenant.js +0 -803
  132. package/dist/cjs/components/UiComponents.d.ts +0 -110
  133. package/dist/cjs/components/UiComponents.d.ts.map +0 -1
  134. package/dist/cjs/components/UiComponents.js +0 -561
  135. package/dist/cjs/components/VirtualTableTile.d.ts +0 -7
  136. package/dist/cjs/components/VirtualTableTile.d.ts.map +0 -1
  137. package/dist/cjs/components/VirtualTableTile.js +0 -51
  138. package/dist/cjs/components/index.d.ts +0 -6
  139. package/dist/cjs/components/index.d.ts.map +0 -1
  140. package/dist/cjs/components/index.js +0 -16
  141. package/dist/cjs/constants/dataTypes.d.ts +0 -2
  142. package/dist/cjs/constants/dataTypes.d.ts.map +0 -1
  143. package/dist/cjs/constants/dataTypes.js +0 -23
  144. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +0 -21
  145. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +0 -1
  146. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +0 -418
  147. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +0 -20
  148. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +0 -1
  149. package/dist/cjs/forms/client_onboard/ConnectSchema.js +0 -207
  150. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +0 -48
  151. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +0 -1
  152. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +0 -434
  153. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts +0 -2
  154. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts.map +0 -1
  155. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.js +0 -571
  156. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.d.ts +0 -2
  157. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.d.ts.map +0 -1
  158. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +0 -460
  159. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts +0 -2
  160. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts.map +0 -1
  161. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +0 -386
  162. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts +0 -20
  163. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +0 -1
  164. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +0 -380
  165. package/dist/cjs/hooks/useDashboardManager.d.ts +0 -16
  166. package/dist/cjs/hooks/useDashboardManager.d.ts.map +0 -1
  167. package/dist/cjs/hooks/useDashboardManager.js +0 -113
  168. package/dist/cjs/hooks/useDatabaseSchema.d.ts +0 -5
  169. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +0 -1
  170. package/dist/cjs/hooks/useDatabaseSchema.js +0 -70
  171. package/dist/cjs/hooks/useItemBeingEdited.d.ts +0 -3
  172. package/dist/cjs/hooks/useItemBeingEdited.d.ts.map +0 -1
  173. package/dist/cjs/hooks/useItemBeingEdited.js +0 -18
  174. package/dist/cjs/hooks/useLongLoading.d.ts +0 -13
  175. package/dist/cjs/hooks/useLongLoading.d.ts.map +0 -1
  176. package/dist/cjs/hooks/useLongLoading.js +0 -67
  177. package/dist/cjs/hooks/useOnClickOutside.d.ts +0 -6
  178. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +0 -1
  179. package/dist/cjs/hooks/useOnClickOutside.js +0 -63
  180. package/dist/cjs/hooks/useTenants.d.ts +0 -13
  181. package/dist/cjs/hooks/useTenants.d.ts.map +0 -1
  182. package/dist/cjs/hooks/useTenants.js +0 -174
  183. package/dist/cjs/hooks/useThrottle.d.ts +0 -2
  184. package/dist/cjs/hooks/useThrottle.d.ts.map +0 -1
  185. package/dist/cjs/hooks/useThrottle.js +0 -14
  186. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts +0 -5
  187. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +0 -1
  188. package/dist/cjs/icons/ArrowDownHeadIcon.js +0 -5
  189. package/dist/cjs/icons/CheckCircleIcon.d.ts +0 -5
  190. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +0 -1
  191. package/dist/cjs/icons/CheckCircleIcon.js +0 -5
  192. package/dist/cjs/icons/DownChevronIcon.d.ts +0 -2
  193. package/dist/cjs/icons/DownChevronIcon.d.ts.map +0 -1
  194. package/dist/cjs/icons/DownChevronIcon.js +0 -7
  195. package/dist/cjs/icons/ExclamationFilledIcon.d.ts +0 -5
  196. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +0 -1
  197. package/dist/cjs/icons/ExclamationFilledIcon.js +0 -5
  198. package/dist/cjs/icons/ExteriorLinkIcon.d.ts +0 -5
  199. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +0 -1
  200. package/dist/cjs/icons/ExteriorLinkIcon.js +0 -5
  201. package/dist/cjs/icons/GlobeIcon.d.ts +0 -5
  202. package/dist/cjs/icons/GlobeIcon.d.ts.map +0 -1
  203. package/dist/cjs/icons/GlobeIcon.js +0 -15
  204. package/dist/cjs/icons/InformationCircleIcon.d.ts +0 -4
  205. package/dist/cjs/icons/InformationCircleIcon.d.ts.map +0 -1
  206. package/dist/cjs/icons/InformationCircleIcon.js +0 -7
  207. package/dist/cjs/icons/LeftChevronIcon.d.ts +0 -2
  208. package/dist/cjs/icons/LeftChevronIcon.d.ts.map +0 -1
  209. package/dist/cjs/icons/LeftChevronIcon.js +0 -7
  210. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts +0 -5
  211. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +0 -1
  212. package/dist/cjs/icons/QuestionMarkCircleIcon.js +0 -5
  213. package/dist/cjs/icons/RightChevronIcon.d.ts +0 -2
  214. package/dist/cjs/icons/RightChevronIcon.d.ts.map +0 -1
  215. package/dist/cjs/icons/RightChevronIcon.js +0 -7
  216. package/dist/cjs/icons/XMarkIcon.d.ts +0 -2
  217. package/dist/cjs/icons/XMarkIcon.d.ts.map +0 -1
  218. package/dist/cjs/icons/XMarkIcon.js +0 -14
  219. package/dist/cjs/icons/index.d.ts +0 -2
  220. package/dist/cjs/icons/index.d.ts.map +0 -1
  221. package/dist/cjs/icons/index.js +0 -8
  222. package/dist/cjs/index.d.ts +0 -6
  223. package/dist/cjs/index.d.ts.map +0 -1
  224. package/dist/cjs/index.js +0 -17
  225. package/dist/cjs/modals/CodePreview.d.ts +0 -6
  226. package/dist/cjs/modals/CodePreview.d.ts.map +0 -1
  227. package/dist/cjs/modals/CodePreview.js +0 -156
  228. package/dist/cjs/modals/CreateEnvironmentModal.d.ts +0 -5
  229. package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +0 -1
  230. package/dist/cjs/modals/CreateEnvironmentModal.js +0 -21
  231. package/dist/cjs/modals/EditEnvironmentModal.d.ts +0 -15
  232. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +0 -1
  233. package/dist/cjs/modals/EditEnvironmentModal.js +0 -608
  234. package/dist/cjs/modals/EditFiltersModal.d.ts +0 -21
  235. package/dist/cjs/modals/EditFiltersModal.d.ts.map +0 -1
  236. package/dist/cjs/modals/EditFiltersModal.js +0 -1315
  237. package/dist/cjs/modals/NewDashboardModal.d.ts +0 -15
  238. package/dist/cjs/modals/NewDashboardModal.d.ts.map +0 -1
  239. package/dist/cjs/modals/NewDashboardModal.js +0 -327
  240. package/dist/cjs/modals/PromoteDashboardModal.d.ts +0 -16
  241. package/dist/cjs/modals/PromoteDashboardModal.d.ts.map +0 -1
  242. package/dist/cjs/modals/PromoteDashboardModal.js +0 -56
  243. package/dist/cjs/modals/PromoteReportModal.d.ts +0 -15
  244. package/dist/cjs/modals/PromoteReportModal.d.ts.map +0 -1
  245. package/dist/cjs/modals/PromoteReportModal.js +0 -139
  246. package/dist/cjs/modals/PromoteViewModal.d.ts +0 -14
  247. package/dist/cjs/modals/PromoteViewModal.d.ts.map +0 -1
  248. package/dist/cjs/modals/PromoteViewModal.js +0 -93
  249. package/dist/cjs/modals/ReorderDashboardModal.d.ts +0 -10
  250. package/dist/cjs/modals/ReorderDashboardModal.d.ts.map +0 -1
  251. package/dist/cjs/modals/ReorderDashboardModal.js +0 -253
  252. package/dist/cjs/modals/SavedQueriesModal.d.ts +0 -7
  253. package/dist/cjs/modals/SavedQueriesModal.d.ts.map +0 -1
  254. package/dist/cjs/modals/SavedQueriesModal.js +0 -128
  255. package/dist/cjs/modals/index.d.ts +0 -3
  256. package/dist/cjs/modals/index.d.ts.map +0 -1
  257. package/dist/cjs/modals/index.js +0 -10
  258. package/dist/cjs/primitives/ButtonPrimitive.d.ts +0 -16
  259. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +0 -1
  260. package/dist/cjs/primitives/ButtonPrimitive.js +0 -63
  261. package/dist/cjs/primitives/CheckboxPrimitive.d.ts +0 -12
  262. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +0 -1
  263. package/dist/cjs/primitives/CheckboxPrimitive.js +0 -31
  264. package/dist/cjs/primitives/HeaderPrimitive.d.ts +0 -9
  265. package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +0 -1
  266. package/dist/cjs/primitives/HeaderPrimitive.js +0 -15
  267. package/dist/cjs/primitives/MiniButtonPrimitive.d.ts +0 -7
  268. package/dist/cjs/primitives/MiniButtonPrimitive.d.ts.map +0 -1
  269. package/dist/cjs/primitives/MiniButtonPrimitive.js +0 -56
  270. package/dist/cjs/primitives/ModalPrimitive.d.ts +0 -4
  271. package/dist/cjs/primitives/ModalPrimitive.d.ts.map +0 -1
  272. package/dist/cjs/primitives/ModalPrimitive.js +0 -48
  273. package/dist/cjs/primitives/PlaceholderPrimitive.d.ts +0 -5
  274. package/dist/cjs/primitives/PlaceholderPrimitive.d.ts.map +0 -1
  275. package/dist/cjs/primitives/PlaceholderPrimitive.js +0 -18
  276. package/dist/cjs/primitives/PopoverPrimitive.d.ts +0 -8
  277. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +0 -1
  278. package/dist/cjs/primitives/PopoverPrimitive.js +0 -66
  279. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts +0 -12
  280. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +0 -1
  281. package/dist/cjs/primitives/SecondaryButtonPrimitive.js +0 -29
  282. package/dist/cjs/primitives/TextInputPrimitive.d.ts +0 -19
  283. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +0 -1
  284. package/dist/cjs/primitives/TextInputPrimitive.js +0 -136
  285. package/dist/cjs/primitives/TogglePrimitive.d.ts +0 -9
  286. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +0 -1
  287. package/dist/cjs/primitives/TogglePrimitive.js +0 -50
  288. package/dist/cjs/primitives/index.d.ts +0 -7
  289. package/dist/cjs/primitives/index.d.ts.map +0 -1
  290. package/dist/cjs/primitives/index.js +0 -18
  291. package/dist/cjs/public_components/ChartQueryBuilder.d.ts +0 -9
  292. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +0 -1
  293. package/dist/cjs/public_components/ChartQueryBuilder.js +0 -141
  294. package/dist/cjs/public_components/CreateEnvironment.d.ts +0 -7
  295. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +0 -1
  296. package/dist/cjs/public_components/CreateEnvironment.js +0 -295
  297. package/dist/cjs/public_components/DashboardManager.d.ts +0 -6
  298. package/dist/cjs/public_components/DashboardManager.d.ts.map +0 -1
  299. package/dist/cjs/public_components/DashboardManager.js +0 -521
  300. package/dist/cjs/public_components/EnvSelectPopover.d.ts +0 -13
  301. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +0 -1
  302. package/dist/cjs/public_components/EnvSelectPopover.js +0 -184
  303. package/dist/cjs/public_components/VirtualTableManager.d.ts +0 -7
  304. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +0 -1
  305. package/dist/cjs/public_components/VirtualTableManager.js +0 -845
  306. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.d.ts +0 -2
  307. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.d.ts.map +0 -1
  308. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +0 -724
  309. package/dist/cjs/utils/astProcessing.d.ts +0 -15
  310. package/dist/cjs/utils/astProcessing.d.ts.map +0 -1
  311. package/dist/cjs/utils/astProcessing.js +0 -105
  312. package/dist/cjs/utils/astProcessing.uspec.d.ts +0 -2
  313. package/dist/cjs/utils/astProcessing.uspec.d.ts.map +0 -1
  314. package/dist/cjs/utils/astProcessing.uspec.js +0 -30
  315. package/dist/cjs/utils/columnProcessing.d.ts +0 -16
  316. package/dist/cjs/utils/columnProcessing.d.ts.map +0 -1
  317. package/dist/cjs/utils/columnProcessing.js +0 -214
  318. package/dist/cjs/utils/constants.d.ts +0 -10
  319. package/dist/cjs/utils/constants.d.ts.map +0 -1
  320. package/dist/cjs/utils/constants.js +0 -28
  321. package/dist/cjs/utils/dataEditor.d.ts +0 -5
  322. package/dist/cjs/utils/dataEditor.d.ts.map +0 -1
  323. package/dist/cjs/utils/dataEditor.js +0 -94
  324. package/dist/cjs/utils/dataFetcher.d.ts +0 -21
  325. package/dist/cjs/utils/dataFetcher.d.ts.map +0 -1
  326. package/dist/cjs/utils/dataFetcher.js +0 -57
  327. package/dist/cjs/utils/databases.d.ts +0 -61
  328. package/dist/cjs/utils/databases.d.ts.map +0 -1
  329. package/dist/cjs/utils/databases.js +0 -155
  330. package/dist/cjs/utils/delay.d.ts +0 -2
  331. package/dist/cjs/utils/delay.d.ts.map +0 -1
  332. package/dist/cjs/utils/delay.js +0 -7
  333. package/dist/cjs/utils/filter.d.ts +0 -218
  334. package/dist/cjs/utils/filter.d.ts.map +0 -1
  335. package/dist/cjs/utils/filter.js +0 -347
  336. package/dist/cjs/utils/monacoAutocomplete.d.ts +0 -22
  337. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +0 -1
  338. package/dist/cjs/utils/monacoAutocomplete.js +0 -355
  339. package/dist/cjs/utils/report.d.ts +0 -120
  340. package/dist/cjs/utils/report.d.ts.map +0 -1
  341. package/dist/cjs/utils/report.js +0 -109
  342. package/dist/cjs/utils/schema.d.ts +0 -48
  343. package/dist/cjs/utils/schema.d.ts.map +0 -1
  344. package/dist/cjs/utils/schema.js +0 -216
  345. package/dist/cjs/utils/table.d.ts +0 -85
  346. package/dist/cjs/utils/table.d.ts.map +0 -1
  347. package/dist/cjs/utils/table.js +0 -15
  348. package/dist/cjs/utils/tenants.d.ts +0 -48
  349. package/dist/cjs/utils/tenants.d.ts.map +0 -1
  350. package/dist/cjs/utils/tenants.js +0 -37
  351. package/dist/cjs/utils/textProcessing.d.ts +0 -2
  352. package/dist/cjs/utils/textProcessing.d.ts.map +0 -1
  353. package/dist/cjs/utils/textProcessing.js +0 -8
  354. package/dist/cjs/utils/ui.d.ts +0 -2
  355. package/dist/cjs/utils/ui.d.ts.map +0 -1
  356. package/dist/cjs/utils/ui.js +0 -18
  357. package/dist/cjs/utils/validation.d.ts +0 -2
  358. package/dist/cjs/utils/validation.d.ts.map +0 -1
  359. package/dist/cjs/utils/validation.js +0 -77
  360. package/dist/cjs/utils/validation.uspec.d.ts +0 -2
  361. package/dist/cjs/utils/validation.uspec.d.ts.map +0 -1
  362. package/dist/cjs/utils/validation.uspec.js +0 -53
  363. package/dist/esm/Admin.d.ts +0 -72
  364. package/dist/esm/Admin.d.ts.map +0 -1
  365. package/dist/esm/Admin.js +0 -652
  366. package/dist/esm/AdminProvider.d.ts +0 -199
  367. package/dist/esm/AdminProvider.d.ts.map +0 -1
  368. package/dist/esm/AdminProvider.js +0 -566
  369. package/dist/esm/api/ConnectionClient.d.ts +0 -41
  370. package/dist/esm/api/ConnectionClient.d.ts.map +0 -1
  371. package/dist/esm/api/ConnectionClient.js +0 -560
  372. package/dist/esm/assets/ArrowDownHeadIcon.d.ts +0 -5
  373. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +0 -1
  374. package/dist/esm/assets/ArrowDownHeadIcon.js +0 -3
  375. package/dist/esm/assets/XIcon.d.ts +0 -5
  376. package/dist/esm/assets/XIcon.d.ts.map +0 -1
  377. package/dist/esm/assets/XIcon.js +0 -3
  378. package/dist/esm/assets/index.d.ts +0 -3
  379. package/dist/esm/assets/index.d.ts.map +0 -1
  380. package/dist/esm/assets/index.js +0 -2
  381. package/dist/esm/components/Banner/index.d.ts +0 -2
  382. package/dist/esm/components/Banner/index.d.ts.map +0 -1
  383. package/dist/esm/components/Banner/index.js +0 -27
  384. package/dist/esm/components/CardSection.d.ts +0 -3
  385. package/dist/esm/components/CardSection.d.ts.map +0 -1
  386. package/dist/esm/components/CardSection.js +0 -11
  387. package/dist/esm/components/CardTitle.d.ts +0 -3
  388. package/dist/esm/components/CardTitle.d.ts.map +0 -1
  389. package/dist/esm/components/CardTitle.js +0 -11
  390. package/dist/esm/components/ClipboardButton.d.ts +0 -8
  391. package/dist/esm/components/ClipboardButton.d.ts.map +0 -1
  392. package/dist/esm/components/ClipboardButton.js +0 -69
  393. package/dist/esm/components/DashboardSelectPopover.d.ts +0 -14
  394. package/dist/esm/components/DashboardSelectPopover.d.ts.map +0 -1
  395. package/dist/esm/components/DashboardSelectPopover.js +0 -117
  396. package/dist/esm/components/DatabaseMismatchCard.d.ts +0 -6
  397. package/dist/esm/components/DatabaseMismatchCard.d.ts.map +0 -1
  398. package/dist/esm/components/DatabaseMismatchCard.js +0 -15
  399. package/dist/esm/components/DatabaseSelector.d.ts +0 -14
  400. package/dist/esm/components/DatabaseSelector.d.ts.map +0 -1
  401. package/dist/esm/components/DatabaseSelector.js +0 -31
  402. package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts +0 -10
  403. package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts.map +0 -1
  404. package/dist/esm/components/DateRangePicker/SingleDatePicker.js +0 -251
  405. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts +0 -18
  406. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +0 -1
  407. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +0 -306
  408. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts +0 -91
  409. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +0 -1
  410. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.js +0 -883
  411. package/dist/esm/components/DeleteButton.d.ts +0 -2
  412. package/dist/esm/components/DeleteButton.d.ts.map +0 -1
  413. package/dist/esm/components/DeleteButton.js +0 -10
  414. package/dist/esm/components/DropDownMenu.d.ts +0 -10
  415. package/dist/esm/components/DropDownMenu.d.ts.map +0 -1
  416. package/dist/esm/components/DropDownMenu.js +0 -39
  417. package/dist/esm/components/DropDownMenuWithLabel.d.ts +0 -14
  418. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +0 -1
  419. package/dist/esm/components/DropDownMenuWithLabel.js +0 -97
  420. package/dist/esm/components/DynamicBanner.d.ts +0 -9
  421. package/dist/esm/components/DynamicBanner.d.ts.map +0 -1
  422. package/dist/esm/components/DynamicBanner.js +0 -21
  423. package/dist/esm/components/EmptyDashboardComponent/index.d.ts +0 -2
  424. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +0 -1
  425. package/dist/esm/components/EmptyDashboardComponent/index.js +0 -46
  426. package/dist/esm/components/EmptyVirtualTablesComponent.d.ts +0 -4
  427. package/dist/esm/components/EmptyVirtualTablesComponent.d.ts.map +0 -1
  428. package/dist/esm/components/EmptyVirtualTablesComponent.js +0 -41
  429. package/dist/esm/components/ExternalLink.d.ts +0 -4
  430. package/dist/esm/components/ExternalLink.d.ts.map +0 -1
  431. package/dist/esm/components/ExternalLink.js +0 -9
  432. package/dist/esm/components/FormTooltip.d.ts +0 -8
  433. package/dist/esm/components/FormTooltip.d.ts.map +0 -1
  434. package/dist/esm/components/FormTooltip.js +0 -87
  435. package/dist/esm/components/InputLabel.d.ts +0 -6
  436. package/dist/esm/components/InputLabel.d.ts.map +0 -1
  437. package/dist/esm/components/InputLabel.js +0 -14
  438. package/dist/esm/components/InternalDashboard/ChartSkeleton.d.ts +0 -11
  439. package/dist/esm/components/InternalDashboard/ChartSkeleton.d.ts.map +0 -1
  440. package/dist/esm/components/InternalDashboard/ChartSkeleton.js +0 -16
  441. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +0 -20
  442. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +0 -1
  443. package/dist/esm/components/InternalDashboard/DashboardFilter.js +0 -101
  444. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts +0 -7
  445. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +0 -1
  446. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.js +0 -15
  447. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts +0 -37
  448. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +0 -1
  449. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +0 -291
  450. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts +0 -85
  451. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +0 -1
  452. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.js +0 -520
  453. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts +0 -17
  454. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +0 -1
  455. package/dist/esm/components/InternalDashboard/InternalDashboard.js +0 -2033
  456. package/dist/esm/components/OrgSelect.d.ts +0 -25
  457. package/dist/esm/components/OrgSelect.d.ts.map +0 -1
  458. package/dist/esm/components/OrgSelect.js +0 -267
  459. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +0 -36
  460. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +0 -1
  461. package/dist/esm/components/QuillMultiSelectWithCombo.js +0 -650
  462. package/dist/esm/components/QuillPopover.d.ts +0 -11
  463. package/dist/esm/components/QuillPopover.d.ts.map +0 -1
  464. package/dist/esm/components/QuillPopover.js +0 -143
  465. package/dist/esm/components/QuillSelect.d.ts +0 -3
  466. package/dist/esm/components/QuillSelect.d.ts.map +0 -1
  467. package/dist/esm/components/QuillSelect.js +0 -153
  468. package/dist/esm/components/QuillSelectWithCombo.d.ts +0 -23
  469. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +0 -1
  470. package/dist/esm/components/QuillSelectWithCombo.js +0 -317
  471. package/dist/esm/components/QuillTab.d.ts +0 -12
  472. package/dist/esm/components/QuillTab.d.ts.map +0 -1
  473. package/dist/esm/components/QuillTab.js +0 -81
  474. package/dist/esm/components/QuillToolTipPortal.d.ts +0 -11
  475. package/dist/esm/components/QuillToolTipPortal.d.ts.map +0 -1
  476. package/dist/esm/components/QuillToolTipPortal.js +0 -104
  477. package/dist/esm/components/SegmentedControl.d.ts +0 -15
  478. package/dist/esm/components/SegmentedControl.d.ts.map +0 -1
  479. package/dist/esm/components/SegmentedControl.js +0 -56
  480. package/dist/esm/components/SqlTextEditor.d.ts +0 -12
  481. package/dist/esm/components/SqlTextEditor.d.ts.map +0 -1
  482. package/dist/esm/components/SqlTextEditor.js +0 -100
  483. package/dist/esm/components/StepDisplay.d.ts +0 -10
  484. package/dist/esm/components/StepDisplay.d.ts.map +0 -1
  485. package/dist/esm/components/StepDisplay.js +0 -15
  486. package/dist/esm/components/Tenants/EditTenant.d.ts +0 -41
  487. package/dist/esm/components/Tenants/EditTenant.d.ts.map +0 -1
  488. package/dist/esm/components/Tenants/EditTenant.js +0 -797
  489. package/dist/esm/components/UiComponents.d.ts +0 -110
  490. package/dist/esm/components/UiComponents.d.ts.map +0 -1
  491. package/dist/esm/components/UiComponents.js +0 -510
  492. package/dist/esm/components/VirtualTableTile.d.ts +0 -7
  493. package/dist/esm/components/VirtualTableTile.d.ts.map +0 -1
  494. package/dist/esm/components/VirtualTableTile.js +0 -48
  495. package/dist/esm/components/index.d.ts +0 -6
  496. package/dist/esm/components/index.d.ts.map +0 -1
  497. package/dist/esm/components/index.js +0 -5
  498. package/dist/esm/constants/dataTypes.d.ts +0 -2
  499. package/dist/esm/constants/dataTypes.d.ts.map +0 -1
  500. package/dist/esm/constants/dataTypes.js +0 -20
  501. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +0 -21
  502. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +0 -1
  503. package/dist/esm/forms/client_onboard/ConnectDatabase.js +0 -412
  504. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +0 -20
  505. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +0 -1
  506. package/dist/esm/forms/client_onboard/ConnectSchema.js +0 -201
  507. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +0 -48
  508. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +0 -1
  509. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +0 -426
  510. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts +0 -2
  511. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.d.ts.map +0 -1
  512. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.js +0 -566
  513. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.d.ts +0 -2
  514. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.d.ts.map +0 -1
  515. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +0 -455
  516. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts +0 -2
  517. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.d.ts.map +0 -1
  518. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +0 -381
  519. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts +0 -20
  520. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +0 -1
  521. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +0 -374
  522. package/dist/esm/hooks/useDashboardManager.d.ts +0 -16
  523. package/dist/esm/hooks/useDashboardManager.d.ts.map +0 -1
  524. package/dist/esm/hooks/useDashboardManager.js +0 -109
  525. package/dist/esm/hooks/useDatabaseSchema.d.ts +0 -5
  526. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +0 -1
  527. package/dist/esm/hooks/useDatabaseSchema.js +0 -66
  528. package/dist/esm/hooks/useItemBeingEdited.d.ts +0 -3
  529. package/dist/esm/hooks/useItemBeingEdited.d.ts.map +0 -1
  530. package/dist/esm/hooks/useItemBeingEdited.js +0 -13
  531. package/dist/esm/hooks/useLongLoading.d.ts +0 -13
  532. package/dist/esm/hooks/useLongLoading.d.ts.map +0 -1
  533. package/dist/esm/hooks/useLongLoading.js +0 -64
  534. package/dist/esm/hooks/useOnClickOutside.d.ts +0 -6
  535. package/dist/esm/hooks/useOnClickOutside.d.ts.map +0 -1
  536. package/dist/esm/hooks/useOnClickOutside.js +0 -59
  537. package/dist/esm/hooks/useTenants.d.ts +0 -13
  538. package/dist/esm/hooks/useTenants.d.ts.map +0 -1
  539. package/dist/esm/hooks/useTenants.js +0 -170
  540. package/dist/esm/hooks/useThrottle.d.ts +0 -2
  541. package/dist/esm/hooks/useThrottle.d.ts.map +0 -1
  542. package/dist/esm/hooks/useThrottle.js +0 -11
  543. package/dist/esm/icons/ArrowDownHeadIcon.d.ts +0 -5
  544. package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +0 -1
  545. package/dist/esm/icons/ArrowDownHeadIcon.js +0 -3
  546. package/dist/esm/icons/CheckCircleIcon.d.ts +0 -5
  547. package/dist/esm/icons/CheckCircleIcon.d.ts.map +0 -1
  548. package/dist/esm/icons/CheckCircleIcon.js +0 -3
  549. package/dist/esm/icons/DownChevronIcon.d.ts +0 -2
  550. package/dist/esm/icons/DownChevronIcon.d.ts.map +0 -1
  551. package/dist/esm/icons/DownChevronIcon.js +0 -4
  552. package/dist/esm/icons/ExclamationFilledIcon.d.ts +0 -5
  553. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +0 -1
  554. package/dist/esm/icons/ExclamationFilledIcon.js +0 -3
  555. package/dist/esm/icons/ExteriorLinkIcon.d.ts +0 -5
  556. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +0 -1
  557. package/dist/esm/icons/ExteriorLinkIcon.js +0 -3
  558. package/dist/esm/icons/GlobeIcon.d.ts +0 -5
  559. package/dist/esm/icons/GlobeIcon.d.ts.map +0 -1
  560. package/dist/esm/icons/GlobeIcon.js +0 -12
  561. package/dist/esm/icons/InformationCircleIcon.d.ts +0 -4
  562. package/dist/esm/icons/InformationCircleIcon.d.ts.map +0 -1
  563. package/dist/esm/icons/InformationCircleIcon.js +0 -4
  564. package/dist/esm/icons/LeftChevronIcon.d.ts +0 -2
  565. package/dist/esm/icons/LeftChevronIcon.d.ts.map +0 -1
  566. package/dist/esm/icons/LeftChevronIcon.js +0 -4
  567. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts +0 -5
  568. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +0 -1
  569. package/dist/esm/icons/QuestionMarkCircleIcon.js +0 -3
  570. package/dist/esm/icons/RightChevronIcon.d.ts +0 -2
  571. package/dist/esm/icons/RightChevronIcon.d.ts.map +0 -1
  572. package/dist/esm/icons/RightChevronIcon.js +0 -4
  573. package/dist/esm/icons/XMarkIcon.d.ts +0 -2
  574. package/dist/esm/icons/XMarkIcon.d.ts.map +0 -1
  575. package/dist/esm/icons/XMarkIcon.js +0 -11
  576. package/dist/esm/icons/index.d.ts +0 -2
  577. package/dist/esm/icons/index.d.ts.map +0 -1
  578. package/dist/esm/icons/index.js +0 -1
  579. package/dist/esm/index.d.ts +0 -6
  580. package/dist/esm/index.d.ts.map +0 -1
  581. package/dist/esm/index.js +0 -6
  582. package/dist/esm/modals/CodePreview.d.ts +0 -6
  583. package/dist/esm/modals/CodePreview.d.ts.map +0 -1
  584. package/dist/esm/modals/CodePreview.js +0 -150
  585. package/dist/esm/modals/CreateEnvironmentModal.d.ts +0 -5
  586. package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +0 -1
  587. package/dist/esm/modals/CreateEnvironmentModal.js +0 -15
  588. package/dist/esm/modals/EditEnvironmentModal.d.ts +0 -15
  589. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +0 -1
  590. package/dist/esm/modals/EditEnvironmentModal.js +0 -602
  591. package/dist/esm/modals/EditFiltersModal.d.ts +0 -21
  592. package/dist/esm/modals/EditFiltersModal.d.ts.map +0 -1
  593. package/dist/esm/modals/EditFiltersModal.js +0 -1314
  594. package/dist/esm/modals/NewDashboardModal.d.ts +0 -15
  595. package/dist/esm/modals/NewDashboardModal.d.ts.map +0 -1
  596. package/dist/esm/modals/NewDashboardModal.js +0 -321
  597. package/dist/esm/modals/PromoteDashboardModal.d.ts +0 -16
  598. package/dist/esm/modals/PromoteDashboardModal.d.ts.map +0 -1
  599. package/dist/esm/modals/PromoteDashboardModal.js +0 -53
  600. package/dist/esm/modals/PromoteReportModal.d.ts +0 -15
  601. package/dist/esm/modals/PromoteReportModal.d.ts.map +0 -1
  602. package/dist/esm/modals/PromoteReportModal.js +0 -136
  603. package/dist/esm/modals/PromoteViewModal.d.ts +0 -14
  604. package/dist/esm/modals/PromoteViewModal.d.ts.map +0 -1
  605. package/dist/esm/modals/PromoteViewModal.js +0 -90
  606. package/dist/esm/modals/ReorderDashboardModal.d.ts +0 -10
  607. package/dist/esm/modals/ReorderDashboardModal.d.ts.map +0 -1
  608. package/dist/esm/modals/ReorderDashboardModal.js +0 -250
  609. package/dist/esm/modals/SavedQueriesModal.d.ts +0 -7
  610. package/dist/esm/modals/SavedQueriesModal.d.ts.map +0 -1
  611. package/dist/esm/modals/SavedQueriesModal.js +0 -125
  612. package/dist/esm/modals/index.d.ts +0 -3
  613. package/dist/esm/modals/index.d.ts.map +0 -1
  614. package/dist/esm/modals/index.js +0 -2
  615. package/dist/esm/primitives/ButtonPrimitive.d.ts +0 -16
  616. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +0 -1
  617. package/dist/esm/primitives/ButtonPrimitive.js +0 -61
  618. package/dist/esm/primitives/CheckboxPrimitive.d.ts +0 -12
  619. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +0 -1
  620. package/dist/esm/primitives/CheckboxPrimitive.js +0 -29
  621. package/dist/esm/primitives/HeaderPrimitive.d.ts +0 -9
  622. package/dist/esm/primitives/HeaderPrimitive.d.ts.map +0 -1
  623. package/dist/esm/primitives/HeaderPrimitive.js +0 -13
  624. package/dist/esm/primitives/MiniButtonPrimitive.d.ts +0 -7
  625. package/dist/esm/primitives/MiniButtonPrimitive.d.ts.map +0 -1
  626. package/dist/esm/primitives/MiniButtonPrimitive.js +0 -54
  627. package/dist/esm/primitives/ModalPrimitive.d.ts +0 -4
  628. package/dist/esm/primitives/ModalPrimitive.d.ts.map +0 -1
  629. package/dist/esm/primitives/ModalPrimitive.js +0 -46
  630. package/dist/esm/primitives/PlaceholderPrimitive.d.ts +0 -5
  631. package/dist/esm/primitives/PlaceholderPrimitive.d.ts.map +0 -1
  632. package/dist/esm/primitives/PlaceholderPrimitive.js +0 -15
  633. package/dist/esm/primitives/PopoverPrimitive.d.ts +0 -8
  634. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +0 -1
  635. package/dist/esm/primitives/PopoverPrimitive.js +0 -62
  636. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts +0 -12
  637. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +0 -1
  638. package/dist/esm/primitives/SecondaryButtonPrimitive.js +0 -27
  639. package/dist/esm/primitives/TextInputPrimitive.d.ts +0 -19
  640. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +0 -1
  641. package/dist/esm/primitives/TextInputPrimitive.js +0 -101
  642. package/dist/esm/primitives/TogglePrimitive.d.ts +0 -9
  643. package/dist/esm/primitives/TogglePrimitive.d.ts.map +0 -1
  644. package/dist/esm/primitives/TogglePrimitive.js +0 -48
  645. package/dist/esm/primitives/index.d.ts +0 -7
  646. package/dist/esm/primitives/index.d.ts.map +0 -1
  647. package/dist/esm/primitives/index.js +0 -6
  648. package/dist/esm/public_components/ChartQueryBuilder.d.ts +0 -9
  649. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +0 -1
  650. package/dist/esm/public_components/ChartQueryBuilder.js +0 -135
  651. package/dist/esm/public_components/CreateEnvironment.d.ts +0 -7
  652. package/dist/esm/public_components/CreateEnvironment.d.ts.map +0 -1
  653. package/dist/esm/public_components/CreateEnvironment.js +0 -256
  654. package/dist/esm/public_components/DashboardManager.d.ts +0 -6
  655. package/dist/esm/public_components/DashboardManager.d.ts.map +0 -1
  656. package/dist/esm/public_components/DashboardManager.js +0 -515
  657. package/dist/esm/public_components/EnvSelectPopover.d.ts +0 -13
  658. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +0 -1
  659. package/dist/esm/public_components/EnvSelectPopover.js +0 -178
  660. package/dist/esm/public_components/VirtualTableManager.d.ts +0 -7
  661. package/dist/esm/public_components/VirtualTableManager.d.ts.map +0 -1
  662. package/dist/esm/public_components/VirtualTableManager.js +0 -837
  663. package/dist/esm/public_components/__tests__/CreateEnvironment.test.d.ts +0 -2
  664. package/dist/esm/public_components/__tests__/CreateEnvironment.test.d.ts.map +0 -1
  665. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +0 -719
  666. package/dist/esm/utils/astProcessing.d.ts +0 -15
  667. package/dist/esm/utils/astProcessing.d.ts.map +0 -1
  668. package/dist/esm/utils/astProcessing.js +0 -98
  669. package/dist/esm/utils/astProcessing.uspec.d.ts +0 -2
  670. package/dist/esm/utils/astProcessing.uspec.d.ts.map +0 -1
  671. package/dist/esm/utils/astProcessing.uspec.js +0 -28
  672. package/dist/esm/utils/columnProcessing.d.ts +0 -16
  673. package/dist/esm/utils/columnProcessing.d.ts.map +0 -1
  674. package/dist/esm/utils/columnProcessing.js +0 -205
  675. package/dist/esm/utils/constants.d.ts +0 -10
  676. package/dist/esm/utils/constants.d.ts.map +0 -1
  677. package/dist/esm/utils/constants.js +0 -25
  678. package/dist/esm/utils/dataEditor.d.ts +0 -5
  679. package/dist/esm/utils/dataEditor.d.ts.map +0 -1
  680. package/dist/esm/utils/dataEditor.js +0 -88
  681. package/dist/esm/utils/dataFetcher.d.ts +0 -21
  682. package/dist/esm/utils/dataFetcher.d.ts.map +0 -1
  683. package/dist/esm/utils/dataFetcher.js +0 -53
  684. package/dist/esm/utils/databases.d.ts +0 -61
  685. package/dist/esm/utils/databases.d.ts.map +0 -1
  686. package/dist/esm/utils/databases.js +0 -150
  687. package/dist/esm/utils/delay.d.ts +0 -2
  688. package/dist/esm/utils/delay.d.ts.map +0 -1
  689. package/dist/esm/utils/delay.js +0 -3
  690. package/dist/esm/utils/filter.d.ts +0 -218
  691. package/dist/esm/utils/filter.d.ts.map +0 -1
  692. package/dist/esm/utils/filter.js +0 -343
  693. package/dist/esm/utils/monacoAutocomplete.d.ts +0 -22
  694. package/dist/esm/utils/monacoAutocomplete.d.ts.map +0 -1
  695. package/dist/esm/utils/monacoAutocomplete.js +0 -350
  696. package/dist/esm/utils/report.d.ts +0 -120
  697. package/dist/esm/utils/report.d.ts.map +0 -1
  698. package/dist/esm/utils/report.js +0 -106
  699. package/dist/esm/utils/schema.d.ts +0 -48
  700. package/dist/esm/utils/schema.d.ts.map +0 -1
  701. package/dist/esm/utils/schema.js +0 -210
  702. package/dist/esm/utils/table.d.ts +0 -85
  703. package/dist/esm/utils/table.d.ts.map +0 -1
  704. package/dist/esm/utils/table.js +0 -11
  705. package/dist/esm/utils/tenants.d.ts +0 -48
  706. package/dist/esm/utils/tenants.d.ts.map +0 -1
  707. package/dist/esm/utils/tenants.js +0 -31
  708. package/dist/esm/utils/textProcessing.d.ts +0 -2
  709. package/dist/esm/utils/textProcessing.d.ts.map +0 -1
  710. package/dist/esm/utils/textProcessing.js +0 -5
  711. package/dist/esm/utils/ui.d.ts +0 -2
  712. package/dist/esm/utils/ui.d.ts.map +0 -1
  713. package/dist/esm/utils/ui.js +0 -14
  714. package/dist/esm/utils/validation.d.ts +0 -2
  715. package/dist/esm/utils/validation.d.ts.map +0 -1
  716. package/dist/esm/utils/validation.js +0 -74
  717. package/dist/esm/utils/validation.uspec.d.ts +0 -2
  718. package/dist/esm/utils/validation.uspec.d.ts.map +0 -1
  719. package/dist/esm/utils/validation.uspec.js +0 -51
@@ -1,1314 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useRef, useState } from 'react';
3
- import { useAdmin } from '../AdminProvider';
4
- import { useDashboardInternal, useDashboards, } from '@quillsql/react';
5
- import { SAVED_QUERIES_DASHBOARD,
6
- // DateRangeOption,
7
- // InitialDateRangeOptions,
8
- SINGLE_TENANT,
9
- // defaultDateRange,
10
- } from '../utils/constants';
11
- import { getPostgresBasicType } from '../Admin';
12
- import InputLabel from '../components/InputLabel';
13
- import CardSection from '../components/CardSection';
14
- import { SegmentedControl } from '../components/SegmentedControl';
15
- import { convertFieldTypeToJSType } from '../utils/columnProcessing';
16
- import { validateDashboard } from '../utils/validation';
17
- import { OverflowContainer, } from '../components/UiComponents';
18
- import { QuillSelectComponentWithCombo } from '../components/QuillSelectWithCombo';
19
- import DownChevronIcon from '../icons/DownChevronIcon';
20
- import RightChevronIcon from '../icons/RightChevronIcon';
21
- import TextInputPrimitive from '../primitives/TextInputPrimitive';
22
- import { SingleDatePicker } from '../components/DateRangePicker/SingleDatePicker';
23
- import { set } from 'date-fns';
24
- import { QuillYearlessDateRangePicker } from '../components/DateRangePicker/YearlessDateRangePicker';
25
- import ExclamationFilledIcon from '../icons/ExclamationFilledIcon';
26
- import { QuillToolTipPortal } from '../components/QuillToolTipPortal';
27
- import { convertPresetOptionsToSelectableList } from '../components/DateRangePicker/dateRangePickerUtils';
28
- import { QuillPopover } from '../components/QuillPopover';
29
- const intervalTypeOptions = [
30
- // {
31
- // label: 'Week',
32
- // value: 'week'
33
- // },
34
- {
35
- label: 'Last',
36
- value: 'relative',
37
- },
38
- {
39
- label: 'Custom Term',
40
- value: 'repeating',
41
- },
42
- {
43
- label: 'Static',
44
- value: 'static',
45
- },
46
- ];
47
- export function EditFiltersModal({ isOpen, selectedDashboardName, setIsOpen, onSave, ModalComponent, TextInputComponent, ButtonComponent, HeaderComponent, SelectComponent, dashNames, SecondaryButtonComponent, ErrorComponent, openPromoteModal, }) {
48
- const { state } = useAdmin();
49
- const { dashboards, deleteDashboard, updateDashboard } = useDashboards();
50
- const { data: selectedDashboard } = useDashboardInternal(selectedDashboardName);
51
- const [isDateComparison, setIsDateComparison] = useState(false);
52
- const [currentDashboardName, setCurrentDashboardName] = useState(selectedDashboardName);
53
- const [newFilters, setNewFilters] = useState([]);
54
- const [initialRange, setInitialRange] = useState(selectedDashboard?.dateFilter?.primaryRange ?? {
55
- label: 'Last 30 days',
56
- value: 'LAST_30_DAYS',
57
- });
58
- const [showDateFilter, setShowDateFilter] = useState(false);
59
- const [newDateFilter, setNewDateFilter] = useState();
60
- const [validationError, setValidationError] = useState([]);
61
- const [filterNameMap, setFilterNameMap] = useState({});
62
- const [showCustomIntervals, setShowCustomIntervals] = useState(false);
63
- const [displaySubIntervals, setDisplaySubIntervals] = useState([]);
64
- const assignDefaultInterval = (label, set, loopStart, loopEnd) => {
65
- if (!newDateFilter)
66
- return;
67
- if (set) {
68
- setNewDateFilter({
69
- ...newDateFilter,
70
- defaultPresetRanges: [
71
- ...(newDateFilter?.defaultPresetRanges ?? []).filter((r) => r?.label !== label),
72
- { label, loopStart, loopEnd },
73
- ],
74
- });
75
- }
76
- else {
77
- setNewDateFilter({
78
- ...newDateFilter,
79
- defaultPresetRanges: newDateFilter?.defaultPresetRanges?.filter((r) => r?.label !== label) ?? [],
80
- });
81
- }
82
- };
83
- const getDefaultInterval = (label) => {
84
- return newDateFilter?.defaultPresetRanges?.find((r) => r?.label === label);
85
- };
86
- const emptyInterval = {
87
- week: { type: 'week' },
88
- relative: { type: 'relative', value: 1, unit: 'days' },
89
- repeating: {
90
- type: 'repeating',
91
- label: 'Quarter',
92
- loopDate: { day: 1, month: 1 },
93
- subIntervals: [
94
- {
95
- type: 'static',
96
- startDate: { day: 1, month: 1 },
97
- endDate: { day: 31, month: 3 },
98
- },
99
- {
100
- type: 'static',
101
- startDate: { day: 1, month: 4 },
102
- endDate: { day: 30, month: 6 },
103
- },
104
- {
105
- type: 'static',
106
- startDate: { day: 1, month: 7 },
107
- endDate: { day: 30, month: 9 },
108
- },
109
- {
110
- type: 'static',
111
- startDate: { day: 1, month: 10 },
112
- endDate: { day: 31, month: 12 },
113
- },
114
- ],
115
- },
116
- static: {
117
- type: 'static',
118
- label: 'January',
119
- startDate: { day: 1, month: 1 },
120
- endDate: { day: 31, month: 1 },
121
- },
122
- };
123
- const subIntervalIssues = useMemo(() => {
124
- // Helper to check if two days are adjacent (the second follows the first)
125
- const areAdjacent = (day1, day2) => {
126
- // Create dates in leap year 2024 for proper handling
127
- const date1 = new Date(2024, day1.month - 1, day1.day);
128
- const date2 = new Date(2024, day2.month - 1, day2.day);
129
- // Add one day to first date and check if it equals the second date
130
- const nextDay = new Date(date1);
131
- nextDay.setDate(nextDay.getDate() + 1);
132
- // Compare the dates ignoring time
133
- return (nextDay.getDate() === date2.getDate() &&
134
- nextDay.getMonth() === date2.getMonth());
135
- };
136
- return (newDateFilter?.presetOptions?.reduce((acc, interval, index) => {
137
- if (interval?.type !== 'repeating' || !interval.subIntervals?.length)
138
- return acc;
139
- acc[index] = interval.subIntervals?.map((subInterval) => {
140
- if (!subInterval)
141
- return 'Sub-interval is empty';
142
- // if (!subInterval.label) return "Sub-interval must have a label";
143
- if (!subInterval.startDate ||
144
- !subInterval.startDate.day ||
145
- !subInterval.startDate.month)
146
- return 'Sub-interval must have a start date';
147
- if (!subInterval.endDate ||
148
- !subInterval.endDate.day ||
149
- !subInterval.endDate.month)
150
- return 'Sub-interval must have an end date';
151
- // Verify sub-interval doesn't overlap with other sub-intervals
152
- // Use 2024 (leap year) for proper date handling
153
- const subIntervalStart = new Date(2024, subInterval.startDate.month - 1, subInterval.startDate.day);
154
- const subIntervalEnd = new Date(2024, subInterval.endDate.month - 1, subInterval.endDate.day);
155
- const overlappingSubIntervals = interval.subIntervals?.filter((otherSubInterval) => {
156
- if (!otherSubInterval || otherSubInterval === subInterval)
157
- return false;
158
- // Check for proper adjacency with February end transitions
159
- if (subInterval.endDate.month === 2 &&
160
- (subInterval.endDate.day === 28 ||
161
- subInterval.endDate.day === 29) &&
162
- otherSubInterval.startDate?.month === 3 &&
163
- otherSubInterval.startDate?.day === 1) {
164
- if (areAdjacent(subInterval.endDate, otherSubInterval.startDate)) {
165
- return false; // They're adjacent, not overlapping
166
- }
167
- }
168
- // Otherwise do normal overlap check
169
- const otherSubIntervalStart = new Date(2024, (otherSubInterval.startDate?.month ?? 1) - 1, otherSubInterval.startDate?.day ?? 1);
170
- const otherSubIntervalEnd = new Date(2024, (otherSubInterval.endDate?.month ?? 1) - 1, otherSubInterval.endDate?.day ?? 1);
171
- // Check for overlap - intervals overlap if one starts before the other ends
172
- return (subIntervalStart <= otherSubIntervalEnd &&
173
- subIntervalEnd >= otherSubIntervalStart);
174
- }) ?? [];
175
- if (overlappingSubIntervals.length)
176
- return 'Sub-intervals overlap';
177
- return undefined;
178
- });
179
- return acc;
180
- }, {}) ?? {});
181
- }, [newDateFilter]);
182
- const intervalIssues = useMemo(() => {
183
- const ucFirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);
184
- // Helper function to get the next day in month/day format
185
- const getNextDay = (month, day) => {
186
- const date = new Date(2024, month - 1, day + 1); // Use leap year to handle Feb correctly
187
- return {
188
- month: date.getMonth() + 1,
189
- day: date.getDate(),
190
- };
191
- };
192
- // Helper to compare if two date objects are the same day
193
- const isSameDay = (date1, date2) => {
194
- return date1.month === date2.month && date1.day === date2.day;
195
- };
196
- // Helper to check if two days are adjacent (the second follows the first)
197
- const areAdjacent = (day1, day2) => {
198
- // Normal case: check if next day of day1 is day2
199
- const nextDay = getNextDay(day1.month, day1.day);
200
- if (isSameDay(nextDay, day2))
201
- return true;
202
- // Special case for February to March transition
203
- // This handles both leap years (Feb 29 -> Mar 1) and non-leap years (Feb 28 -> Mar 1)
204
- if (day1.month === 2 &&
205
- (day1.day === 28 || day1.day === 29) &&
206
- day2.month === 3 &&
207
- day2.day === 1) {
208
- return true;
209
- }
210
- // Handle month transitions for months with 30 days
211
- if ([4, 6, 9, 11].includes(day1.month) &&
212
- day1.day === 30 &&
213
- day2.day === 1 &&
214
- day2.month === day1.month + 1) {
215
- return true;
216
- }
217
- // Handle month transitions for months with 31 days
218
- if ([1, 3, 5, 7, 8, 10, 12].includes(day1.month) &&
219
- day1.day === 31 &&
220
- day2.day === 1 &&
221
- (day2.month === day1.month + 1 ||
222
- (day1.month === 12 && day2.month === 1))) {
223
- return true;
224
- }
225
- return false;
226
- };
227
- return newDateFilter?.presetOptions?.map((interval, index) => {
228
- if (!interval)
229
- return 'Option is empty';
230
- if (!interval.type)
231
- return 'Option must have a type';
232
- if ((interval.type === 'repeating' || interval.type === 'static') &&
233
- !interval.label)
234
- return `${ucFirst(interval.type)} intervals must have a label`;
235
- // If interval label matches one of the default intervals, it must not
236
- if ([
237
- 'Week',
238
- 'Month',
239
- 'Year',
240
- 'Last 7 days',
241
- 'Last 30 days',
242
- 'Last 90 days',
243
- 'Last 6 months',
244
- ].includes(interval.label ?? '')) {
245
- return 'Cannot use a default interval label';
246
- }
247
- if (interval.type === 'repeating' || interval.type === 'static')
248
- if (newDateFilter?.presetOptions?.filter((o, i) => o?.label === interval.label && i !== index).length)
249
- return 'Duplicate label';
250
- if (interval.type === 'week' &&
251
- newDateFilter?.presetOptions?.filter((o, i) => o?.type === 'week' && i !== index).length)
252
- return 'Only one week interval allowed';
253
- if (interval.type === 'relative' &&
254
- (newDateFilter?.presetOptions?.filter((o) => o?.type === 'relative' &&
255
- o.unit === interval.unit &&
256
- o.value === interval.value)?.length ?? 0) > 1)
257
- return 'Duplicate relative interval';
258
- if (interval.type === 'static') {
259
- if (!interval.startDate ||
260
- !interval.startDate.day ||
261
- !interval.startDate.month)
262
- return 'Must have a start date';
263
- if (!interval.endDate ||
264
- !interval.endDate.day ||
265
- !interval.endDate.month)
266
- return 'Must have an end date';
267
- }
268
- if (interval.type === 'relative') {
269
- if (!interval.value)
270
- return 'Must have a value';
271
- if (typeof interval.value !== 'number' &&
272
- isNaN(parseInt(interval.value)))
273
- return 'Value must be an integer';
274
- if (typeof interval.value !== 'number' && parseInt(interval.value) <= 0)
275
- return 'Value must be positive';
276
- if (!interval.unit)
277
- return 'Must have a unit';
278
- }
279
- if (interval.type === 'repeating') {
280
- if (!interval.loopDate ||
281
- !interval.loopDate.day ||
282
- !interval.loopDate.month)
283
- return 'Must have a loop date';
284
- if (!interval.subIntervals?.length)
285
- return 'Must have sub-intervals';
286
- if (subIntervalIssues[index]?.some((issue) => !!issue))
287
- return 'Sub-intervals have issues';
288
- // Verify subintervals don't overlap with each other
289
- const subIntervals = interval.subIntervals?.filter((si) => !!si) || [];
290
- // First, sort them by start date for validation
291
- const sortedIntervals = [...subIntervals].sort((a, b) => {
292
- const aDate = new Date(2024, a.startDate.month - 1, a.startDate.day);
293
- const bDate = new Date(2024, b.startDate.month - 1, b.startDate.day);
294
- return aDate.getTime() - bDate.getTime();
295
- });
296
- // Find the interval that starts on the loop date
297
- const loopDate = interval.loopDate;
298
- const startingIntervalIndex = sortedIntervals.findIndex((si) => si?.startDate?.month === loopDate.month &&
299
- si?.startDate?.day === loopDate.day);
300
- if (startingIntervalIndex === -1)
301
- return 'No sub-interval starts on the loop date';
302
- // Reorder the array to start with the loop date interval
303
- const orderedIntervals = [
304
- ...sortedIntervals.slice(startingIntervalIndex),
305
- ...sortedIntervals.slice(0, startingIntervalIndex),
306
- ];
307
- // Check for contiguity and completeness
308
- for (let i = 0; i < orderedIntervals.length - 1; i++) {
309
- const current = orderedIntervals[i];
310
- const next = orderedIntervals[i + 1];
311
- if (!areAdjacent(current.endDate, next.startDate)) {
312
- return `Gap between ${current.label} and ${next.label}`;
313
- }
314
- }
315
- // Check if the last interval connects back to the first one
316
- const last = orderedIntervals[orderedIntervals.length - 1];
317
- const first = orderedIntervals[0];
318
- if (!areAdjacent(last.endDate, first.startDate)) {
319
- if (!(areAdjacent({ month: 12, day: 31 }, first.startDate) &&
320
- areAdjacent(last.endDate, { month: 1, day: 1 }))) {
321
- return `Gap between ${last.label} and ${first.label}`;
322
- }
323
- }
324
- }
325
- });
326
- }, [newDateFilter, subIntervalIssues]);
327
- const filteredTables = useMemo(() => {
328
- return state.tables.filter((table) => {
329
- return (selectedDashboard?.tenantKeys?.[0] === SINGLE_TENANT ||
330
- table.ownerTenantFields?.length === 0 ||
331
- table.ownerTenantFields?.includes(selectedDashboard?.tenantKeys?.[0] ?? ''));
332
- });
333
- }, [state.tables, selectedDashboard?.tenantKeys]);
334
- const months = useRef([
335
- 'January',
336
- 'February',
337
- 'March',
338
- 'April',
339
- 'May',
340
- 'June',
341
- 'July',
342
- 'August',
343
- 'September',
344
- 'October',
345
- 'November',
346
- 'December',
347
- ]);
348
- const monthlyInterval = useMemo(() => getDefaultInterval('Monthly'), [newDateFilter?.defaultPresetRanges]);
349
- const yearlyInterval = useMemo(() => getDefaultInterval('Yearly'), [newDateFilter?.defaultPresetRanges]);
350
- useEffect(() => {
351
- if (!selectedDashboard) {
352
- return;
353
- }
354
- setValidationError([]);
355
- setCurrentDashboardName(selectedDashboard.name);
356
- setIsDateComparison(selectedDashboard?.dateFilter?.comparison ?? false);
357
- setNewFilters(selectedDashboard?.filters ?? []);
358
- setNewDateFilter(selectedDashboard.dateFilter);
359
- setDisplaySubIntervals(selectedDashboard.dateFilter?.presetOptions?.map(() => false) ?? []);
360
- setShowDateFilter(!!selectedDashboard.dateFilter);
361
- setInitialRange(selectedDashboard.dateFilter?.primaryRange ?? {
362
- label: 'Last 30 days',
363
- value: 'LAST_30_DAYS',
364
- });
365
- setFilterNameMap(selectedDashboard.filters.reduce((acc, filter) => {
366
- acc[filter.label] = filter.label;
367
- return acc;
368
- }, {}));
369
- }, [selectedDashboard]);
370
- const selectablePresetOptions = useMemo(() => {
371
- return convertPresetOptionsToSelectableList((newDateFilter?.presetOptions?.filter((option, index) => !!option && !intervalIssues?.[index]) ?? []), newDateFilter?.defaultPresetRanges ?? []);
372
- }, [
373
- newDateFilter?.presetOptions,
374
- newDateFilter?.defaultPresetRanges,
375
- intervalIssues,
376
- ]);
377
- const dashboardValidationError = useMemo(() => {
378
- if (!currentDashboardName)
379
- return 'Dashboard name cannot be empty';
380
- if (newFilters?.some((f) => !f.label || !f.table || !f.field))
381
- return 'Filters must have a label, table, and field';
382
- if ((newFilters ?? [])
383
- .concat(newDateFilter ? [newDateFilter] : [])
384
- ?.map((f) => f.label)
385
- .filter((label, index, self) => self.indexOf(label) !== index).length)
386
- return 'Filters must have unique labels';
387
- if (newDateFilter && (!newDateFilter?.label || !initialRange))
388
- return 'Date filter must have a label and range';
389
- if (intervalIssues?.some((i) => i))
390
- return 'Date filter presets have issues';
391
- if (!selectablePresetOptions?.find((option) => option.value === initialRange.value))
392
- return 'Date filter must have a valid initial range';
393
- if (newDateFilter?.defaultPresetRanges?.some((range) => range?.label === 'Yearly' && !range.loopStart))
394
- return 'Yearly intervals must have a backwards cutoff date';
395
- if (newDateFilter?.defaultPresetRanges?.some((range) => range?.label === 'Monthly' && !range.loopStart))
396
- return 'Monthly intervals must have a backwards cutoff date';
397
- // Ensure loopEnd is after loopStart
398
- if (newDateFilter?.defaultPresetRanges?.some((range) => range?.label === 'Yearly' &&
399
- range?.loopEnd &&
400
- range?.loopStart &&
401
- range.loopEnd <= range.loopStart))
402
- return 'Yearly intervals must have an end date that occurs after the start date';
403
- if (newDateFilter?.defaultPresetRanges?.some((range) => range?.label === 'Monthly' &&
404
- range?.loopEnd &&
405
- range?.loopStart &&
406
- range.loopEnd <= range.loopStart))
407
- return 'Monthly intervals must have an end date that occurs after the start date';
408
- }, [
409
- currentDashboardName,
410
- newFilters,
411
- newDateFilter,
412
- initialRange,
413
- intervalIssues,
414
- selectablePresetOptions,
415
- ]);
416
- const handleAddFilter = async () => {
417
- setNewFilters([...newFilters, { label: '' }]);
418
- };
419
- const normalizeFieldName = (fieldName) => {
420
- return (fieldName
421
- ?.split('_')
422
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
423
- .join(' ') ?? '');
424
- };
425
- const handleSubmitDashboardChanges = async () => {
426
- const validationErrorMessages = validateDashboard(newFilters, dashNames, currentDashboardName, newDateFilter ? { ...newDateFilter, comparison: isDateComparison } : null, selectedDashboard);
427
- if (validationErrorMessages.length !== 0) {
428
- setValidationError(validationErrorMessages);
429
- return;
430
- }
431
- const updatedFilters = newFilters.map((filter) => {
432
- const table = filteredTables.find((table) => table?.name === filter?.table);
433
- const column = table?.columns.find((col) => col.field === filter?.field);
434
- const filterType = column ? getPostgresBasicType(column) : 'string';
435
- return {
436
- table: filter.table,
437
- field: filter.field,
438
- labelField: filter.field,
439
- label: filter.label,
440
- oldLabel: Object.entries(filterNameMap).find(([oldLabel, newLabel]) => newLabel === filter.label && oldLabel !== filter.label)?.[0],
441
- filterType,
442
- stringFilterType: filter.stringFilterType,
443
- };
444
- });
445
- await updateDashboard(selectedDashboardName, {
446
- newName: currentDashboardName,
447
- filters: updatedFilters.map((filter) => {
448
- return {
449
- ...filter,
450
- filterType: filter.filterType,
451
- dashboardName: currentDashboardName,
452
- options: [],
453
- };
454
- }),
455
- dateFilter: newDateFilter
456
- ? {
457
- ...newDateFilter,
458
- comparison: isDateComparison,
459
- primaryRange: initialRange,
460
- presetOptions: newDateFilter.presetOptions
461
- ?.map((interval) => {
462
- if (!interval)
463
- return undefined;
464
- if (interval.type === 'repeating') {
465
- return {
466
- ...interval,
467
- subIntervals: interval.subIntervals?.map((subInterval) => {
468
- if (!subInterval)
469
- return undefined;
470
- return {
471
- ...subInterval,
472
- startDate: subInterval.startDate,
473
- endDate: subInterval.endDate,
474
- };
475
- }),
476
- };
477
- }
478
- if (interval.type === 'static') {
479
- return {
480
- ...interval,
481
- startDate: interval.startDate,
482
- endDate: interval.endDate,
483
- };
484
- }
485
- if (interval.type === 'relative') {
486
- return {
487
- ...interval,
488
- value: typeof interval.value === 'string'
489
- ? parseInt(interval.value)
490
- : interval.value,
491
- };
492
- }
493
- return interval;
494
- })
495
- .filter((interval) => !!interval),
496
- }
497
- : undefined,
498
- // sectionOrder,
499
- });
500
- await onSave(currentDashboardName);
501
- setIsOpen(false);
502
- };
503
- const handleDeleteFilter = (filter) => {
504
- // When a filter is deleted, we don't have any easy method of removing its entry in
505
- // the filterMap on the actual dashboard item. We'll just leave it there for now.
506
- delete filterNameMap[filter.label];
507
- setNewFilters(newFilters.filter((f) => f !== filter));
508
- };
509
- const handleDeleteDateFilter = () => {
510
- setShowDateFilter(false);
511
- setNewDateFilter(undefined);
512
- };
513
- const handleAddDateFilter = () => {
514
- setShowDateFilter(true);
515
- setNewDateFilter({
516
- label: 'Date',
517
- defaultPresetRanges: [
518
- { label: 'This week' },
519
- { label: 'This month' },
520
- { label: 'This year' },
521
- { label: 'Last 7 days' },
522
- { label: 'Last 30 days' },
523
- { label: 'Last 90 days' },
524
- { label: 'Last 6 months' },
525
- ],
526
- });
527
- };
528
- const handleAddInterval = () => {
529
- setNewDateFilter({
530
- ...newDateFilter,
531
- presetOptions: [
532
- ...(newDateFilter?.presetOptions ?? []),
533
- emptyInterval['static'],
534
- ],
535
- });
536
- setDisplaySubIntervals([...displaySubIntervals, false]);
537
- };
538
- const handleDeleteInterval = (index) => {
539
- const updatedOptions = newDateFilter?.presetOptions?.filter((_, i) => i !== index) ?? [];
540
- setNewDateFilter({
541
- ...newDateFilter,
542
- presetOptions: updatedOptions,
543
- });
544
- setDisplaySubIntervals(displaySubIntervals.filter((_, i) => i !== index));
545
- };
546
- const handleAddSubInterval = (index) => {
547
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => index === i
548
- ? {
549
- ...o,
550
- subIntervals: [
551
- ...(o.subIntervals ?? []),
552
- emptyInterval['static'],
553
- ],
554
- }
555
- : o) ?? [];
556
- setNewDateFilter({
557
- ...newDateFilter,
558
- presetOptions: updatedOptions,
559
- });
560
- };
561
- const handleDeleteSubInterval = (index, subIndex) => {
562
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => index === i
563
- ? {
564
- ...o,
565
- subIntervals: o.subIntervals?.filter((_, j) => j !== subIndex),
566
- }
567
- : o) ?? [];
568
- setNewDateFilter({
569
- ...newDateFilter,
570
- presetOptions: updatedOptions,
571
- });
572
- };
573
- const handleDeleteDashboard = async () => {
574
- if (confirm('Are you sure? This action cannot be undone.')) {
575
- await deleteDashboard(selectedDashboardName);
576
- onSave((dashboards?.filter((d) => d.name !== SAVED_QUERIES_DASHBOARD &&
577
- d.name !== selectedDashboardName)?.[0]?.name ??
578
- (state.client?.defaultDashboard?.name &&
579
- state.client?.defaultDashboard?.name !== selectedDashboardName))
580
- ? state.client?.defaultDashboard?.name
581
- : null);
582
- setIsOpen(false);
583
- setNewFilters([]);
584
- }
585
- };
586
- return (_jsx(ModalComponent, { isOpen: isOpen, onClose: () => {
587
- setValidationError([]);
588
- setIsOpen(false);
589
- setIsDateComparison(selectedDashboard?.dateFilter?.comparison ?? false);
590
- setNewFilters(selectedDashboard?.filters ?? []);
591
- setNewDateFilter(selectedDashboard?.dateFilter ?? undefined);
592
- setCurrentDashboardName(selectedDashboardName);
593
- setShowDateFilter(!!selectedDashboard?.dateFilter);
594
- }, style: {
595
- minWidth: '814px',
596
- }, children: _jsx(OverflowContainer, { children: _jsx("div", { children: _jsxs("div", { style: {
597
- display: 'flex',
598
- gap: 16,
599
- flexDirection: 'column',
600
- width: '100%',
601
- height: '100%',
602
- maxHeight: '100%',
603
- // overflowY: 'auto',
604
- }, children: [_jsx(HeaderComponent, { label: "Manage dashboard" }), _jsxs("div", { children: [_jsx(InputLabel, { children: "Name" }), _jsx("div", { style: { maxWidth: 230 }, children: _jsx(TextInputComponent, { width: "230px", value: currentDashboardName, onChange: (e) => setCurrentDashboardName(e.target.value) }) })] }), (state.client?.allTenantTypes?.length ?? 1) <= 1 ? null : (_jsxs("div", { children: [_jsx(InputLabel, { tooltip: "Data coming into this dashboard is filtered by this singular tenant. Reports may only reference virtual tables owned by this tenant (or owned by no tenants). This is only selectable while creating a new dashboard", children: "Dashboard Owner" }), _jsx("div", { style: { maxWidth: 230 }, children: _jsx(SelectComponent, { onChange: () => { }, value: selectedDashboard?.tenantKeys?.[0] ?? '', options: state.client?.allTenantTypes?.map((tenant) => {
605
- return {
606
- label: tenant.name,
607
- value: tenant.tenantField,
608
- };
609
- }), disabled: true }) })] })), _jsxs("div", { children: [_jsxs("div", { style: {
610
- display: 'flex',
611
- flexDirection: 'column',
612
- gap: '10px',
613
- }, children: [_jsx(CardSection, { children: "Date Filter" }), showDateFilter && (_jsxs(_Fragment, { children: [_jsxs("div", { style: {
614
- display: 'flex',
615
- flexDirection: 'row',
616
- gap: '10px',
617
- }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(InputLabel, { children: "Label" }), _jsx("div", { style: {
618
- display: 'flex',
619
- flexDirection: 'row',
620
- alignItems: 'center',
621
- }, children: _jsx(TextInputComponent, { value: newDateFilter?.label || '', width: "230px", onChange: (e) => {
622
- setNewDateFilter({
623
- ...newDateFilter,
624
- label: e.target.value,
625
- });
626
- } }) })] }), _jsx("div", { style: {
627
- display: 'flex',
628
- flexDirection: 'row',
629
- gap: '10px',
630
- }, children: _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx(InputLabel, { children: "Initial Range" }), _jsx(SelectComponent, { value: initialRange.value, onChange: (e) => {
631
- setInitialRange(
632
- // InitialDateRangeOptions.find(
633
- // (table) => table.value === e,
634
- // ) ?? initialRange,
635
- selectablePresetOptions.find((option) => option.value === e) ??
636
- initialRange);
637
- }, options: selectablePresetOptions, theme: state.theme, hideEmptyOption: true })] }) }), _jsx("div", { style: {
638
- display: 'flex',
639
- flexDirection: 'row',
640
- gap: '10px',
641
- width: '100%',
642
- }, children: _jsx("div", { style: {
643
- display: 'flex',
644
- flexDirection: 'column',
645
- width: '100%',
646
- justifyContent: 'flex-end',
647
- }, children: _jsxs("div", { style: {
648
- display: 'flex',
649
- flexDirection: 'row',
650
- gap: 10,
651
- width: '100%',
652
- }, children: [_jsx("div", { style: {
653
- display: 'flex',
654
- flexDirection: 'column',
655
- justifyContent: 'center',
656
- height: '100%',
657
- minWidth: 200,
658
- maxWidth: 200,
659
- width: 200,
660
- } }), _jsx("div", { style: {
661
- width: '100%',
662
- display: 'flex',
663
- justifyContent: 'flex-end',
664
- }, children: _jsx("div", { onClick: () => handleDeleteDateFilter(), style: {
665
- height: 38,
666
- width: 38,
667
- alignItems: 'center',
668
- justifyContent: 'flex-end',
669
- display: 'flex',
670
- cursor: 'pointer',
671
- }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#4C5462", width: "20", height: "20", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z", clipRule: "evenodd" }) }) }) })] }) }) })] }), _jsx(QuillPopover, { style: {
672
- width: 230,
673
- marginTop: -8,
674
- display: 'none',
675
- }, children: _jsxs("div", { style: {
676
- display: 'flex',
677
- flexDirection: 'column',
678
- fontFamily: state.theme.fontFamily,
679
- gap: 8,
680
- }, children: [_jsx("h3", { style: {
681
- fontSize: 14,
682
- fontWeight: 600,
683
- color: state.theme.primaryTextColor,
684
- }, children: "Recurring" }), _jsxs("div", { style: {
685
- display: 'flex',
686
- flexDirection: 'row',
687
- gap: 8,
688
- alignItems: 'center',
689
- // justifyContent: 'space-between',
690
- marginTop: yearlyInterval ? -9.5 : 0,
691
- marginBottom: yearlyInterval ? 0 : 9.5,
692
- }, children: [_jsxs("div", { style: {
693
- display: 'flex',
694
- alignItems: 'center',
695
- gap: 8,
696
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!yearlyInterval, onChange: (e) => {
697
- assignDefaultInterval('Yearly', e.target.checked, new Date(new Date().getFullYear() - 1, 0, 1), new Date(new Date().getFullYear(), 11, 31));
698
- } }), _jsx("div", { children: "Yearly (2023, 2024, 2025, ...)" })] }), !!yearlyInterval && (_jsxs("div", { style: {
699
- display: 'flex',
700
- flexDirection: 'row',
701
- gap: 2,
702
- alignItems: 'center',
703
- marginLeft: 26,
704
- }, children: [_jsx(TextInputComponent, { value: yearlyInterval?.loopStart
705
- ?.getFullYear()
706
- .toString() ?? '', placeholder: "Start Year", onChange: (e) => {
707
- const year = parseInt(e.target.value);
708
- assignDefaultInterval('Yearly', true, new Date(year, 0, 1), yearlyInterval?.loopEnd);
709
- }, width: "78px", number: true, max: 9999, min: 0, step: 1 }), _jsx("div", { children: "-" }), _jsx(TextInputComponent, { value: yearlyInterval?.loopEnd
710
- ?.getFullYear()
711
- .toString() ?? '', placeholder: "End Year", onChange: (e) => {
712
- const year = parseInt(e.target.value);
713
- assignDefaultInterval('Yearly', true, yearlyInterval?.loopStart, new Date(year, 11, 31));
714
- }, width: "78px", number: true, max: 9999, min: 0, step: 1 })] }))] }), _jsxs("div", { style: {
715
- display: 'flex',
716
- flexDirection: 'row',
717
- gap: 8,
718
- alignItems: 'center',
719
- justifyContent: 'space-between',
720
- marginTop: monthlyInterval ? -6.5 : 3,
721
- marginBottom: monthlyInterval ? 0 : 9.5,
722
- width: '100%',
723
- }, children: [_jsxs("div", { style: {
724
- display: 'flex',
725
- alignItems: 'center',
726
- gap: 8,
727
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!monthlyInterval, onChange: (e) => {
728
- // Set date to current month - 12 months
729
- assignDefaultInterval('Monthly', e.target.checked, new Date(new Date().getFullYear() - 1, new Date().getMonth(), 1), new Date(new Date().getFullYear(), new Date().getMonth(), 1));
730
- } }), _jsx("div", { children: "Monthly (Jan 2025, Feb 2025, ...)" })] }), monthlyInterval && (_jsxs("div", { style: {
731
- display: 'flex',
732
- flexDirection: 'row',
733
- gap: 2,
734
- alignItems: 'center',
735
- }, children: [_jsx(QuillSelectComponentWithCombo, { value: monthlyInterval?.loopStart
736
- ?.getMonth()
737
- .toString() ?? '', onChange: (e) => {
738
- const month = parseInt(e.target.value);
739
- assignDefaultInterval('Monthly', true, new Date(monthlyInterval?.loopStart?.getFullYear() ??
740
- 2025, month, 1), monthlyInterval?.loopEnd);
741
- }, options: Array.from({ length: 12 }, (_, i) => ({
742
- label: months.current[i],
743
- value: i.toString(),
744
- })), width: 120, hideEmptyOption: true }), _jsx(TextInputPrimitive, { value: monthlyInterval?.loopStart
745
- ?.getFullYear()
746
- .toString() ?? '', placeholder: "Start Year", onChange: (e) => {
747
- const year = parseInt(e.target.value);
748
- assignDefaultInterval('Monthly', true, new Date(year, monthlyInterval?.loopStart?.getMonth() ??
749
- 0, 1), monthlyInterval?.loopEnd);
750
- }, width: "78px", number: true, max: 9999, min: 0, step: 1 }), _jsx("div", { children: "-" }), _jsx(QuillSelectComponentWithCombo, { value: monthlyInterval?.loopEnd
751
- ?.getMonth()
752
- .toString() ?? '', onChange: (e) => {
753
- const month = parseInt(e.target.value);
754
- assignDefaultInterval('Monthly', true, monthlyInterval?.loopStart, new Date(monthlyInterval?.loopEnd?.getFullYear() ??
755
- 2025, month, 1));
756
- }, options: Array.from({ length: 12 }, (_, i) => ({
757
- label: months.current[i],
758
- value: i.toString(),
759
- })), width: 120, hideEmptyOption: true }), _jsx(TextInputPrimitive, { value: monthlyInterval?.loopEnd
760
- ?.getFullYear()
761
- .toString() ?? '', placeholder: "End Year", onChange: (e) => {
762
- const year = parseInt(e.target.value);
763
- assignDefaultInterval('Monthly', true, monthlyInterval?.loopStart, new Date(year, monthlyInterval?.loopEnd?.getMonth() ?? 0, 1));
764
- }, width: "78px", number: true, max: 9999, min: 0, step: 1 })] }))] }), _jsx("h3", { style: {
765
- fontSize: 14,
766
- fontWeight: 600,
767
- color: state.theme.primaryTextColor,
768
- }, children: "Standard" }), _jsxs("div", { style: {
769
- display: 'flex',
770
- flexDirection: 'row',
771
- gap: 8,
772
- alignItems: 'center',
773
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!getDefaultInterval('This week'), onChange: (e) => {
774
- assignDefaultInterval('This week', e.target.checked);
775
- } }), "This week"] }), _jsxs("div", { style: {
776
- display: 'flex',
777
- flexDirection: 'row',
778
- gap: 8,
779
- alignItems: 'center',
780
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!getDefaultInterval('This month'), onChange: (e) => {
781
- assignDefaultInterval('This month', e.target.checked);
782
- } }), "This month"] }), _jsxs("div", { style: {
783
- display: 'flex',
784
- flexDirection: 'row',
785
- gap: 8,
786
- alignItems: 'center',
787
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!getDefaultInterval('This year'), onChange: (e) => {
788
- assignDefaultInterval('This year', e.target.checked);
789
- } }), "This year"] }), _jsxs("div", { style: {
790
- display: 'flex',
791
- flexDirection: 'row',
792
- gap: 8,
793
- alignItems: 'center',
794
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!getDefaultInterval('Last 7 days'), onChange: (e) => {
795
- assignDefaultInterval('Last 7 days', e.target.checked);
796
- } }), "Last 7 days"] }), _jsxs("div", { style: {
797
- display: 'flex',
798
- flexDirection: 'row',
799
- gap: 8,
800
- alignItems: 'center',
801
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!getDefaultInterval('Last 30 days'), onChange: (e) => {
802
- assignDefaultInterval('Last 30 days', e.target.checked);
803
- } }), "Last 30 days"] }), _jsxs("div", { style: {
804
- display: 'flex',
805
- flexDirection: 'row',
806
- gap: 8,
807
- alignItems: 'center',
808
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!getDefaultInterval('Last 90 days'), onChange: (e) => {
809
- assignDefaultInterval('Last 90 days', e.target.checked);
810
- } }), "Last 90 days"] }), _jsxs("div", { style: {
811
- display: 'flex',
812
- flexDirection: 'row',
813
- gap: 8,
814
- alignItems: 'center',
815
- }, children: [_jsx("input", { type: "checkbox", style: { width: 16, height: 16 }, checked: !!getDefaultInterval('Last 6 months'), onChange: (e) => {
816
- assignDefaultInterval('Last 6 months', e.target.checked);
817
- } }), "Last 6 months"] })] }) })] })), !showDateFilter && (_jsx("div", { style: { maxWidth: 230 }, children: _jsx(SecondaryButtonComponent, { onClick: handleAddDateFilter, label: "Add date filter +" }) })), newDateFilter && (_jsx(_Fragment, { children: _jsxs("div", { style: {
818
- // display: 'flex',
819
- display: 'none',
820
- flexDirection: 'row',
821
- gap: '4px',
822
- userSelect: 'none',
823
- cursor: 'pointer',
824
- width: 'fit-content',
825
- }, onClick: () => setShowCustomIntervals(!showCustomIntervals), children: [_jsx(InputLabel, { children: "Custom Date Filter Presets" }), showCustomIntervals ? (_jsx(DownChevronIcon, { style: {
826
- color: '#4C5462',
827
- marginBottom: -2,
828
- marginTop: 2,
829
- } })) : (_jsx(RightChevronIcon, { style: {
830
- color: '#4C5462',
831
- marginBottom: -2,
832
- marginTop: 2,
833
- } }))] }) })), showCustomIntervals && newDateFilter && (_jsxs(_Fragment, { children: [newDateFilter?.presetOptions?.map((interval, index) => !interval ? null : (_jsxs("div", { style: {
834
- display: 'flex',
835
- flexDirection: 'column',
836
- gap: '10px',
837
- }, children: [_jsxs("div", { style: {
838
- display: 'flex',
839
- flexDirection: 'row',
840
- gap: '10px',
841
- }, children: [_jsxs("div", { style: {
842
- display: 'flex',
843
- flexDirection: 'column',
844
- }, children: [index === 0 && _jsx(InputLabel, { children: "Label" }), _jsx(TextInputComponent, { value: interval.label ?? '', placeholder: interval.type === 'week'
845
- ? 'Week'
846
- : interval.type === 'relative'
847
- ? 'Last ' +
848
- (interval.value === 1
849
- ? ''
850
- : interval.value + ' ') +
851
- (interval.value === 1
852
- ? interval.unit.substring(0, interval.unit.length - 1)
853
- : interval.unit)
854
- : 'Label', width: "230px", onChange: (e) => {
855
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => {
856
- return index === i
857
- ? { ...o, label: e.target.value }
858
- : o;
859
- }) ?? [];
860
- setNewDateFilter({
861
- ...newDateFilter,
862
- presetOptions: updatedOptions,
863
- });
864
- } })] }), _jsxs("div", { style: {
865
- display: 'flex',
866
- flexDirection: 'column',
867
- }, children: [index === 0 && _jsx(InputLabel, { children: "Type" }), _jsx(SelectComponent, { value: interval.type, options: intervalTypeOptions, onChange: (e) => {
868
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => {
869
- return index === i
870
- ? emptyInterval[e]
871
- : o;
872
- }) ?? [];
873
- setNewDateFilter({
874
- ...newDateFilter,
875
- presetOptions: updatedOptions,
876
- });
877
- }, theme: state.theme, hideEmptyOption: true })] }), _jsxs("div", { style: {
878
- display: 'flex',
879
- flexDirection: 'column',
880
- }, children: [index === 0 && _jsx(InputLabel, { children: "Value" }), interval.type === 'week' && (_jsx("div", { style: { width: 200, visibility: 'hidden' } })), interval.type === 'relative' && (_jsxs("div", { style: {
881
- display: 'flex',
882
- flexDirection: 'row',
883
- gap: 10,
884
- }, children: [_jsx(TextInputComponent, { value: interval.value?.toString() ?? '0', width: "70px", onChange: (e) => {
885
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => {
886
- return index === i
887
- ? { ...o, value: e.target.value }
888
- : o;
889
- }) ?? [];
890
- setNewDateFilter({
891
- ...newDateFilter,
892
- presetOptions: updatedOptions,
893
- });
894
- }, style: {
895
- zIndex: 1,
896
- } }), _jsx(SelectComponent, { value: interval.unit ?? 'days', options: [
897
- {
898
- label: interval.value?.toString() === '1'
899
- ? 'day'
900
- : 'days',
901
- value: 'days',
902
- },
903
- {
904
- label: interval.value?.toString() === '1'
905
- ? 'week'
906
- : 'weeks',
907
- value: 'weeks',
908
- },
909
- {
910
- label: interval.value?.toString() === '1'
911
- ? 'month'
912
- : 'months',
913
- value: 'months',
914
- },
915
- {
916
- label: interval.value?.toString() === '1'
917
- ? 'year'
918
- : 'years',
919
- value: 'years',
920
- },
921
- ], onChange: (e) => {
922
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => {
923
- return index === i
924
- ? { ...o, unit: e }
925
- : o;
926
- }) ?? [];
927
- setNewDateFilter({
928
- ...newDateFilter,
929
- presetOptions: updatedOptions,
930
- });
931
- }, theme: state.theme, hideEmptyOption: true, style: {
932
- width: 120,
933
- maxWidth: 120,
934
- minWidth: 120,
935
- } })] })), interval.type === 'repeating' && (_jsx(SingleDatePicker, { selectedDate: interval.loopDate
936
- ? set(new Date(), {
937
- date: interval.loopDate.day,
938
- month: (interval.loopDate.month ?? 1) - 1,
939
- year: 2024,
940
- })
941
- : undefined, onChangeDate: (date) => {
942
- if (!date)
943
- return;
944
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => {
945
- return index === i
946
- ? {
947
- ...o,
948
- loopDate: {
949
- day: date.getDate(),
950
- month: date.getMonth() + 1,
951
- },
952
- }
953
- : o;
954
- }) ?? [];
955
- setNewDateFilter({
956
- ...newDateFilter,
957
- presetOptions: updatedOptions,
958
- });
959
- }, disabled: false, style: {
960
- width: 200,
961
- minWidth: 200,
962
- } })), interval.type === 'static' && (_jsx(QuillYearlessDateRangePicker, { dateRange: {
963
- startDate: interval.startDate
964
- ? set(new Date(), {
965
- date: interval.startDate.day,
966
- month: (interval.startDate.month ?? 1) - 1,
967
- year: 2024,
968
- })
969
- : undefined,
970
- endDate: interval.endDate
971
- ? set(new Date(), {
972
- date: interval.endDate.day,
973
- month: (interval.endDate.month ?? 1) - 1,
974
- year: 2024,
975
- })
976
- : undefined,
977
- }, onChangeDateRange: (value) => {
978
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => {
979
- return index === i
980
- ? {
981
- ...o,
982
- startDate: value.startDate
983
- ? {
984
- day: value.startDate.getDate(),
985
- month: value.startDate.getMonth() +
986
- 1,
987
- }
988
- : undefined,
989
- endDate: value.endDate
990
- ? {
991
- day: value.endDate.getDate(),
992
- month: value.endDate.getMonth() +
993
- 1,
994
- }
995
- : undefined,
996
- }
997
- : o;
998
- }) ?? [];
999
- setNewDateFilter({
1000
- ...newDateFilter,
1001
- presetOptions: updatedOptions,
1002
- });
1003
- } }))] }), _jsxs("div", { style: {
1004
- display: 'flex',
1005
- flexDirection: 'column',
1006
- height: '100%',
1007
- }, children: [index === 0 && (_jsx("div", { style: { visibility: 'hidden' }, children: _jsx(InputLabel, { children: "Inter" }) })), interval.type !==
1008
- 'repeating' ? null : displaySubIntervals[index] ? (_jsx(DownChevronIcon, { style: {
1009
- color: '#4C5462',
1010
- // center vertically
1011
- alignItems: 'center',
1012
- display: 'flex',
1013
- marginTop: 10,
1014
- }, onClick: () => {
1015
- const updatedDisplay = displaySubIntervals.map((d, i) => index === i ? !d : d);
1016
- setDisplaySubIntervals(updatedDisplay);
1017
- } })) : (_jsx(RightChevronIcon, { style: {
1018
- color: '#4C5462',
1019
- // center vertically
1020
- alignItems: 'center',
1021
- display: 'flex',
1022
- marginTop: 10,
1023
- }, onClick: () => {
1024
- const updatedDisplay = displaySubIntervals.map((d, i) => index === i ? !d : d);
1025
- setDisplaySubIntervals(updatedDisplay);
1026
- } }))] }), _jsxs("div", { style: {
1027
- flexGrow: 1,
1028
- display: 'flex',
1029
- flexDirection: 'row',
1030
- justifyContent: 'flex-end',
1031
- }, children: [_jsxs("div", { style: {
1032
- display: 'flex',
1033
- flexDirection: 'column',
1034
- marginLeft: 'auto',
1035
- justifySelf: 'flex-end',
1036
- }, children: [index === 0 && (_jsx("div", { style: { visibility: 'hidden' }, children: _jsx(InputLabel, { children: "Inter" }) })), _jsx(QuillToolTipPortal, { containerStyle: {
1037
- visibility: intervalIssues?.[index]
1038
- ? 'visible'
1039
- : 'hidden',
1040
- }, text: intervalIssues?.[index], children: _jsx(ExclamationFilledIcon, { height: 28, width: 28, style: {
1041
- color: '#dc143c',
1042
- marginTop: 6,
1043
- marginLeft: 'auto',
1044
- // Push to end of row
1045
- display: 'flex',
1046
- } }) })] }), _jsx("div", { style: {
1047
- display: 'flex',
1048
- justifyContent: 'flex-end',
1049
- }, children: _jsx("div", { onClick: () => handleDeleteInterval(index), style: {
1050
- height: 38,
1051
- width: 38,
1052
- alignItems: 'center',
1053
- justifyContent: 'flex-end',
1054
- display: 'flex',
1055
- cursor: 'pointer',
1056
- marginTop: index === 0 ? 25 : 2,
1057
- }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#4C5462", width: "20", height: "20", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z", clipRule: "evenodd" }) }) }) })] })] }), displaySubIntervals[index] &&
1058
- interval.type === 'repeating' && (_jsxs("div", { style: {
1059
- display: 'flex',
1060
- flexDirection: 'column',
1061
- gap: '10px',
1062
- marginLeft: 30,
1063
- width: 'calc(100% - 30px)',
1064
- }, children: [interval.subIntervals?.map((subInterval, subIndex) => !subInterval ? null : (_jsxs("div", { style: {
1065
- display: 'flex',
1066
- flexDirection: 'row',
1067
- gap: '10px',
1068
- width: '100%',
1069
- }, children: [_jsx(QuillYearlessDateRangePicker, { dateRange: {
1070
- startDate: subInterval.startDate
1071
- ? set(new Date(), {
1072
- date: subInterval.startDate
1073
- .day,
1074
- month: (subInterval.startDate
1075
- .month ?? 1) - 1,
1076
- year: 2024,
1077
- })
1078
- : undefined,
1079
- endDate: subInterval.endDate
1080
- ? set(new Date(), {
1081
- date: subInterval.endDate.day,
1082
- month: (subInterval.endDate
1083
- .month ?? 1) - 1,
1084
- year: 2024,
1085
- })
1086
- : undefined,
1087
- }, onChangeDateRange: (value) => {
1088
- const updatedOptions = newDateFilter?.presetOptions?.map((o, i) => {
1089
- return index === i
1090
- ? {
1091
- ...o,
1092
- subIntervals: o.subIntervals?.map((s, j) => subIndex === j
1093
- ? {
1094
- ...s,
1095
- startDate: value.startDate
1096
- ? {
1097
- day: value.startDate.getDate(),
1098
- month: value.startDate.getMonth() +
1099
- 1,
1100
- }
1101
- : undefined,
1102
- endDate: value.endDate
1103
- ? {
1104
- day: value.endDate.getDate(),
1105
- month: value.endDate.getMonth() +
1106
- 1,
1107
- }
1108
- : undefined,
1109
- }
1110
- : s),
1111
- }
1112
- : o;
1113
- }) ?? [];
1114
- setNewDateFilter({
1115
- ...newDateFilter,
1116
- presetOptions: updatedOptions,
1117
- });
1118
- }, style: {
1119
- marginLeft: 420,
1120
- } }), _jsxs("div", { style: {
1121
- flexGrow: 1,
1122
- display: 'flex',
1123
- flexDirection: 'row',
1124
- justifyContent: 'flex-end',
1125
- }, children: [_jsx("div", { style: {
1126
- display: 'flex',
1127
- flexDirection: 'column',
1128
- height: '100%',
1129
- marginLeft: 'auto',
1130
- justifySelf: 'flex-end',
1131
- }, children: _jsx(QuillToolTipPortal, { containerStyle: {
1132
- visibility: intervalIssues?.[index]
1133
- ? 'visible'
1134
- : 'hidden',
1135
- }, text: subIntervalIssues[index]?.[subIndex], children: _jsx(ExclamationFilledIcon, { height: 28, width: 28, style: {
1136
- color: '#dc143c',
1137
- marginTop: 6,
1138
- marginLeft: 'auto',
1139
- // Push to end of row
1140
- display: 'flex',
1141
- visibility: subIntervalIssues[index]?.[subIndex]
1142
- ? 'visible'
1143
- : 'hidden',
1144
- } }) }) }), _jsx("div", { style: {
1145
- display: 'flex',
1146
- justifyContent: 'flex-end',
1147
- }, children: _jsx("div", { onClick: () => handleDeleteSubInterval(index, subIndex), style: {
1148
- height: 38,
1149
- width: 38,
1150
- alignItems: 'center',
1151
- justifyContent: 'flex-end',
1152
- display: 'flex',
1153
- cursor: 'pointer',
1154
- marginTop: 2,
1155
- }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#4C5462", width: "20", height: "20", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z", clipRule: "evenodd" }) }) }) })] })] }, `sub-interval-${subIndex}`))), _jsx("div", { style: {
1156
- display: 'flex',
1157
- flexDirection: 'row',
1158
- gap: '10px',
1159
- justifyContent: 'flex-end',
1160
- width: 620,
1161
- borderTop: '1px solid #d7d7d7',
1162
- paddingTop: 10,
1163
- }, children: _jsx("div", { style: {
1164
- display: 'flex',
1165
- flexDirection: 'column',
1166
- }, children: _jsx(SecondaryButtonComponent, { onClick: () => handleAddSubInterval(index), label: "Add Sub-Interval +", style: {
1167
- width: 200,
1168
- } }) }) })] }))] }, `preset-option-${index}`))), _jsx("div", { style: {
1169
- display: 'flex',
1170
- flexDirection: 'row',
1171
- gap: '10px',
1172
- justifyContent: 'flex-end',
1173
- width: '100%',
1174
- }, children: _jsx("div", { style: {
1175
- display: 'flex',
1176
- flexDirection: 'column',
1177
- }, children: _jsx(SecondaryButtonComponent, { onClick: handleAddInterval, label: "Add Interval +" }) }) })] }))] }), _jsxs("div", { style: {
1178
- display: 'flex',
1179
- flexDirection: 'column',
1180
- gap: '10px',
1181
- }, children: [_jsx("div", { style: {
1182
- display: 'flex',
1183
- flexDirection: 'row',
1184
- alignItems: 'center',
1185
- justifyContent: 'space-between',
1186
- marginTop: 20,
1187
- }, children: _jsx(CardSection, { children: "Filters" }) }), newFilters.length > 0 && (_jsx("div", { style: {
1188
- display: 'flex',
1189
- flexDirection: 'column',
1190
- gap: '6px',
1191
- }, children: newFilters.map((filter, index) => (_jsxs("div", { style: {
1192
- display: 'flex',
1193
- flexDirection: 'row',
1194
- gap: '10px',
1195
- }, children: [_jsxs("div", { style: {
1196
- display: 'flex',
1197
- flexDirection: 'column',
1198
- // maxWidth: 300,
1199
- }, children: [index === 0 && _jsx(InputLabel, { children: "Label" }), _jsx(TextInputComponent, { value: filter?.label || '', width: "230px", onChange: (e) => {
1200
- const currentLabel = filter.label;
1201
- const updatedFilters = newFilters.map((otherFilter, i) => index === i
1202
- ? {
1203
- ...otherFilter,
1204
- label: e.target.value,
1205
- }
1206
- : otherFilter);
1207
- setNewFilters(updatedFilters);
1208
- // Find the value in the map that matches the current label
1209
- const oldLabel = Object.entries(filterNameMap).find(([, newLabel]) => newLabel === currentLabel)?.[0];
1210
- if (oldLabel) {
1211
- // Update the map to reflect the new label
1212
- setFilterNameMap({
1213
- ...filterNameMap,
1214
- [oldLabel]: e.target.value,
1215
- });
1216
- }
1217
- } })] }), _jsxs("div", { style: {
1218
- display: 'flex',
1219
- flexDirection: 'column',
1220
- // maxWidth: 250,
1221
- }, children: [index === 0 && _jsx(InputLabel, { children: "Table" }), _jsx(QuillSelectComponentWithCombo, { width: 200, value: filter.table || '', onChange: (event) => {
1222
- const e = event.target.value;
1223
- const updatedFilters = newFilters.map((otherFilter, i) => index === i
1224
- ? { ...otherFilter, table: e }
1225
- : otherFilter);
1226
- setNewFilters(updatedFilters);
1227
- }, options: filteredTables.map((table) => {
1228
- return { label: table.name, value: table.name };
1229
- }), hideEmptyOption: true })] }), _jsxs("div", { style: {
1230
- display: 'flex',
1231
- flexDirection: 'column',
1232
- maxWidth: 300,
1233
- }, children: [index === 0 && _jsx(InputLabel, { children: "Field" }), _jsx(QuillSelectComponentWithCombo, { width: 200, value: filter && filter.field ? filter.field : '', options: filter.table
1234
- ? filteredTables
1235
- .find((table) => table.name === filter.table)
1236
- ?.columns.filter((column) => {
1237
- return (convertFieldTypeToJSType(column.fieldType) === 'string');
1238
- })
1239
- .map((column) => {
1240
- return {
1241
- label: column.label || column.field,
1242
- value: column.field,
1243
- };
1244
- }) || []
1245
- : [], onChange: (event) => {
1246
- // Capitalize the label
1247
- const e = event.target.value;
1248
- const updatedFilters = newFilters.map((otherFilter, i) => index === i
1249
- ? {
1250
- ...otherFilter,
1251
- field: e,
1252
- label: filter.label === '' ||
1253
- filter.label ===
1254
- normalizeFieldName(filter.field)
1255
- ? normalizeFieldName(e)
1256
- : filter.label,
1257
- }
1258
- : otherFilter);
1259
- setNewFilters(updatedFilters);
1260
- }, hideEmptyOption: true, disabled: !filter.table })] }), _jsxs("div", { style: {
1261
- display: 'flex',
1262
- flexDirection: 'column',
1263
- width: '100%',
1264
- }, children: [index === 0 && (_jsx(InputLabel, { children: "Filter Type" })), _jsx("div", { style: {
1265
- display: 'flex',
1266
- flexDirection: 'column',
1267
- alignItems: 'center',
1268
- width: '100%',
1269
- }, children: _jsx("div", { style: {
1270
- display: 'flex',
1271
- flexDirection: 'row',
1272
- alignItems: 'center',
1273
- width: '100%',
1274
- gap: 10,
1275
- }, children: _jsx(SegmentedControl, { theme: state.theme, value: filter && filter.stringFilterType
1276
- ? filter.stringFilterType
1277
- : 'default', onChange: (e) => {
1278
- const updatedFilters = newFilters.map((otherFilter, i) => index === i
1279
- ? {
1280
- ...otherFilter,
1281
- stringFilterType: e,
1282
- }
1283
- : otherFilter);
1284
- setNewFilters(updatedFilters);
1285
- } }) }) })] }), _jsxs("div", { style: {
1286
- display: 'flex',
1287
- flexDirection: 'column',
1288
- width: '100%',
1289
- justifyContent: 'flex-end',
1290
- }, children: [index === 0 && _jsx(InputLabel, {}), _jsx("div", { onClick: () => handleDeleteFilter(filter), style: {
1291
- height: 38,
1292
- alignItems: 'center',
1293
- display: 'flex',
1294
- cursor: 'pointer',
1295
- width: '100%',
1296
- }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#4C5462", width: "20", height: "20", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z", clipRule: "evenodd" }) }) })] })] }, index))) })), _jsx("div", { children: _jsx(SecondaryButtonComponent, { onClick: handleAddFilter, label: "Add filter +" }) })] })] }), _jsx(CardSection, { children: "Promote Dashboard" }), _jsx("div", { style: {
1297
- marginTop: -4,
1298
- display: 'flex',
1299
- flexDirection: 'row',
1300
- marginRight: 'auto',
1301
- }, children: _jsx(SecondaryButtonComponent, { onClick: () => {
1302
- openPromoteModal();
1303
- }, label: "Choose Destination", style: {
1304
- width: 'fit-content',
1305
- } }) }), _jsx(CardSection, { children: "Danger Zone" }), _jsx("div", { style: { maxWidth: 230 }, children: _jsx(SecondaryButtonComponent, { onClick: handleDeleteDashboard, label: "Delete Dashboard" }) }), _jsx("div", { style: { height: 18 } }), _jsxs("div", { style: {
1306
- width: '100%',
1307
- display: 'flex',
1308
- flexDirection: 'row',
1309
- justifyContent: 'space-between',
1310
- alignItems: 'center',
1311
- }, children: [_jsx(ButtonComponent, { onClick: handleSubmitDashboardChanges, label: "Save changes", disabled: !!dashboardValidationError, tooltipText: dashboardValidationError }), validationError.length !== 0 && (_jsx(ErrorComponent, { errorMessage: validationError && validationError[0], containerStyle: {
1312
- marginLeft: 4,
1313
- } }))] })] }) }) }) }));
1314
- }