@quillsql/admin 1.6.4 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/cjs/Admin.d.ts +11 -8
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +114 -7
  4. package/dist/cjs/AdminProvider.d.ts +24 -5
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +173 -85
  7. package/dist/cjs/api/ConnectionClient.d.ts +6 -3
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +66 -6
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  11. package/dist/cjs/assets/XIcon.d.ts.map +1 -1
  12. package/dist/cjs/components/ClipboardButton.d.ts.map +1 -1
  13. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  14. package/dist/cjs/components/DashboardSelectPopover.js +29 -1
  15. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  16. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  17. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  18. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  19. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  20. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  21. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +114 -34
  22. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  23. package/dist/cjs/components/OrgSelect.js +48 -4
  24. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +5 -1
  25. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  26. package/dist/cjs/components/QuillMultiSelectWithCombo.js +328 -149
  27. package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
  28. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  29. package/dist/cjs/components/QuillSelectWithCombo.js +34 -6
  30. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
  31. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  32. package/dist/cjs/components/SqlTextEditor.js +15 -2
  33. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
  34. package/dist/cjs/components/Tenants/EditTenant.js +51 -8
  35. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  36. package/dist/cjs/components/UiComponents.js +1 -0
  37. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  38. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +50 -2
  39. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  40. package/dist/cjs/forms/client_onboard/ConnectSchema.js +33 -1
  41. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  42. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  43. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +55 -21
  44. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +1 -1
  45. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +1 -1
  46. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  47. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +92 -10
  48. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
  49. package/dist/cjs/hooks/useDatabaseSchema.js +12 -1
  50. package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
  51. package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
  52. package/dist/cjs/hooks/useLongLoading.js +67 -0
  53. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  54. package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
  55. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  56. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
  57. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
  58. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
  59. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  60. package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
  61. package/dist/cjs/modals/CodePreview.js +7 -2
  62. package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
  63. package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
  64. package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
  65. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
  66. package/dist/cjs/modals/EditEnvironmentModal.js +67 -15
  67. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  68. package/dist/cjs/modals/EditFiltersModal.js +12 -8
  69. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  70. package/dist/cjs/modals/NewDashboardModal.js +54 -28
  71. package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
  72. package/dist/cjs/modals/PromoteReportModal.js +15 -4
  73. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  74. package/dist/cjs/modals/PromoteViewModal.js +13 -2
  75. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
  76. package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
  77. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
  78. package/dist/cjs/primitives/PopoverPrimitive.js +16 -5
  79. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
  80. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
  81. package/dist/cjs/public_components/ChartQueryBuilder.js +6 -6
  82. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  83. package/dist/cjs/public_components/CreateEnvironment.js +49 -16
  84. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  85. package/dist/cjs/public_components/DashboardManager.js +63 -5
  86. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
  87. package/dist/cjs/public_components/EnvSelectPopover.js +31 -3
  88. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
  89. package/dist/cjs/public_components/VirtualTableManager.js +95 -5
  90. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +41 -2
  91. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  92. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  93. package/dist/cjs/utils/columnProcessing.js +6 -1
  94. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  95. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  96. package/dist/cjs/utils/databases.d.ts +6 -1
  97. package/dist/cjs/utils/databases.d.ts.map +1 -1
  98. package/dist/cjs/utils/databases.js +18 -0
  99. package/dist/cjs/utils/delay.d.ts.map +1 -1
  100. package/dist/cjs/utils/filter.d.ts +17 -21
  101. package/dist/cjs/utils/filter.d.ts.map +1 -1
  102. package/dist/cjs/utils/filter.js +6 -6
  103. package/dist/cjs/utils/report.d.ts +5 -5
  104. package/dist/cjs/utils/report.d.ts.map +1 -1
  105. package/dist/cjs/utils/schema.d.ts +6 -3
  106. package/dist/cjs/utils/schema.d.ts.map +1 -1
  107. package/dist/cjs/utils/schema.js +42 -3
  108. package/dist/cjs/utils/table.d.ts.map +1 -1
  109. package/dist/cjs/utils/tenants.d.ts.map +1 -1
  110. package/dist/cjs/utils/ui.d.ts.map +1 -1
  111. package/dist/esm/Admin.d.ts +11 -8
  112. package/dist/esm/Admin.d.ts.map +1 -1
  113. package/dist/esm/Admin.js +115 -8
  114. package/dist/esm/AdminProvider.d.ts +24 -5
  115. package/dist/esm/AdminProvider.d.ts.map +1 -1
  116. package/dist/esm/AdminProvider.js +174 -86
  117. package/dist/esm/api/ConnectionClient.d.ts +6 -3
  118. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  119. package/dist/esm/api/ConnectionClient.js +66 -6
  120. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  121. package/dist/esm/assets/XIcon.d.ts.map +1 -1
  122. package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
  123. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  124. package/dist/esm/components/DashboardSelectPopover.js +29 -1
  125. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  126. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  127. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  128. package/dist/esm/components/InternalDashboard/DashboardFilter.js +1 -1
  129. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  130. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  131. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  132. package/dist/esm/components/InternalDashboard/InternalDashboard.js +115 -35
  133. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  134. package/dist/esm/components/OrgSelect.js +48 -4
  135. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +5 -1
  136. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  137. package/dist/esm/components/QuillMultiSelectWithCombo.js +328 -149
  138. package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
  139. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  140. package/dist/esm/components/QuillSelectWithCombo.js +34 -6
  141. package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
  142. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  143. package/dist/esm/components/SqlTextEditor.js +15 -2
  144. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
  145. package/dist/esm/components/Tenants/EditTenant.js +51 -8
  146. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  147. package/dist/esm/components/UiComponents.js +1 -0
  148. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  149. package/dist/esm/forms/client_onboard/ConnectDatabase.js +50 -2
  150. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  151. package/dist/esm/forms/client_onboard/ConnectSchema.js +33 -1
  152. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +2 -1
  153. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  154. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +56 -22
  155. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +1 -1
  156. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +1 -1
  157. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  158. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +93 -11
  159. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
  160. package/dist/esm/hooks/useDatabaseSchema.js +12 -1
  161. package/dist/esm/hooks/useLongLoading.d.ts +13 -0
  162. package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
  163. package/dist/esm/hooks/useLongLoading.js +64 -0
  164. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  165. package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
  166. package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  167. package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
  168. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
  169. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
  170. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  171. package/dist/esm/modals/CodePreview.d.ts.map +1 -1
  172. package/dist/esm/modals/CodePreview.js +7 -2
  173. package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
  174. package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
  175. package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
  176. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
  177. package/dist/esm/modals/EditEnvironmentModal.js +67 -15
  178. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  179. package/dist/esm/modals/EditFiltersModal.js +13 -9
  180. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  181. package/dist/esm/modals/NewDashboardModal.js +55 -29
  182. package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
  183. package/dist/esm/modals/PromoteReportModal.js +15 -4
  184. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  185. package/dist/esm/modals/PromoteViewModal.js +13 -2
  186. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
  187. package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
  188. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
  189. package/dist/esm/primitives/PopoverPrimitive.js +16 -5
  190. package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
  191. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
  192. package/dist/esm/public_components/ChartQueryBuilder.js +8 -8
  193. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  194. package/dist/esm/public_components/CreateEnvironment.js +49 -16
  195. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  196. package/dist/esm/public_components/DashboardManager.js +64 -6
  197. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
  198. package/dist/esm/public_components/EnvSelectPopover.js +31 -3
  199. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
  200. package/dist/esm/public_components/VirtualTableManager.js +95 -5
  201. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +41 -2
  202. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  203. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  204. package/dist/esm/utils/columnProcessing.js +6 -1
  205. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  206. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  207. package/dist/esm/utils/databases.d.ts +6 -1
  208. package/dist/esm/utils/databases.d.ts.map +1 -1
  209. package/dist/esm/utils/databases.js +18 -0
  210. package/dist/esm/utils/delay.d.ts.map +1 -1
  211. package/dist/esm/utils/filter.d.ts +17 -21
  212. package/dist/esm/utils/filter.d.ts.map +1 -1
  213. package/dist/esm/utils/filter.js +5 -5
  214. package/dist/esm/utils/report.d.ts +5 -5
  215. package/dist/esm/utils/report.d.ts.map +1 -1
  216. package/dist/esm/utils/schema.d.ts +6 -3
  217. package/dist/esm/utils/schema.d.ts.map +1 -1
  218. package/dist/esm/utils/schema.js +42 -3
  219. package/dist/esm/utils/table.d.ts.map +1 -1
  220. package/dist/esm/utils/tenants.d.ts.map +1 -1
  221. package/dist/esm/utils/ui.d.ts.map +1 -1
  222. package/package.json +1 -1
@@ -109,6 +109,12 @@ function reducer(state, action) {
109
109
  return { ...state, currentTenantIdentity: action.payload };
110
110
  case 'SET_QUERY_HEADERS':
111
111
  return { ...state, queryHeaders: action.payload };
112
+ case 'SET_PUBLIC_KEY':
113
+ return { ...state, publicKey: action.payload };
114
+ case 'SET_CLERK_ORG_ID':
115
+ return { ...state, clerkOrgId: action.payload };
116
+ case 'SET_ALL_STATE':
117
+ return { ...state, ...action.payload };
112
118
  default:
113
119
  return state;
114
120
  }
@@ -121,11 +127,12 @@ const useAdmin = () => {
121
127
  return { ...context, clientLoading: context.loading };
122
128
  };
123
129
  exports.useAdmin = useAdmin;
124
- function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUILL_SERVER}${constants_1.QUILL_QUERY_ENDPOINT}`, queryHeaders, withCredentials, domainName, onOnboardComplete, flagsList, getAuthorizationToken = async () => '', theme, }) {
125
- const [clientLoading, setClientLoading] = (0, react_1.useState)(false);
126
- const [currentFetchingClient, setCurrentFetchingClient] = (0, react_1.useState)(undefined);
130
+ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUILL_SERVER}${constants_1.QUILL_QUERY_ENDPOINT}`, queryHeaders, withCredentials, clerkOrgId, onOnboardComplete, flagsList, getAuthorizationToken = async () => '', theme, eventTracking = null, onRequestAddVirtualTable, }) {
131
+ const [clientLoading, setClientLoading] = (0, react_1.useState)(true);
132
+ const currentFetchingClientRef = (0, react_1.useRef)(undefined);
127
133
  const [schemaLoading, setSchemaLoading] = (0, react_1.useState)(false);
128
134
  const [error, setError] = (0, react_1.useState)(null);
135
+ const publicKeyRef = (0, react_1.useRef)(undefined);
129
136
  const parsedSessionStorageAdminState = (adminState) => {
130
137
  // We store things using JSON.strigify and then restore them with JSON.parse
131
138
  // But certain objects, such as Dates, don't stringify/parse correctly
@@ -146,11 +153,31 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
146
153
  };
147
154
  const initialState = (0, react_1.useMemo)(() => {
148
155
  const localState = JSON.parse(sessionStorage.getItem('quill-adminState') ?? 'null');
149
- if (localState?.domainName === domainName && domainName) {
156
+ if (clerkOrgId && localState?.clerkOrgId === clerkOrgId) {
150
157
  return parsedSessionStorageAdminState(localState);
151
158
  }
152
159
  sessionStorage.removeItem('quill-adminState');
153
160
  sessionStorage.removeItem('quill-client');
161
+ const populatedTheme = {
162
+ ...theme,
163
+ fontFamily: theme?.fontFamily ?? Admin_1.defaultTheme.fontFamily,
164
+ backgroundColor: theme?.backgroundColor ?? Admin_1.defaultTheme.backgroundColor,
165
+ primaryTextColor: theme?.primaryTextColor ?? Admin_1.defaultTheme.primaryTextColor,
166
+ secondaryTextColor: theme?.secondaryTextColor ?? Admin_1.defaultTheme.secondaryTextColor,
167
+ chartLabelFontFamily: theme?.chartLabelFontFamily ?? Admin_1.defaultTheme.chartLabelFontFamily,
168
+ chartLabelColor: theme?.chartLabelColor ?? Admin_1.defaultTheme.chartLabelColor,
169
+ chartTickColor: theme?.chartTickColor ?? Admin_1.defaultTheme.chartTickColor,
170
+ chartColors: theme?.chartColors ?? Admin_1.defaultTheme.chartColors,
171
+ borderColor: theme?.borderColor ?? Admin_1.defaultTheme.borderColor,
172
+ primaryButtonColor: theme?.primaryButtonColor ?? Admin_1.defaultTheme.primaryButtonColor,
173
+ borderWidth: theme?.borderWidth ?? Admin_1.defaultTheme.borderWidth,
174
+ buttonFontWeight: theme?.buttonFontWeight ?? Admin_1.defaultTheme.buttonFontWeight,
175
+ labelFontWeight: theme?.labelFontWeight ?? Admin_1.defaultTheme.labelFontWeight,
176
+ fontSize: theme?.fontSize ?? Admin_1.defaultTheme.fontSize,
177
+ primaryButtonTextColor: theme?.primaryButtonTextColor ??
178
+ Admin_1.defaultTheme.primaryButtonTextColor,
179
+ hoverBackgroundColor: theme?.hoverBackgroundColor ?? Admin_1.defaultTheme.hoverBackgroundColor,
180
+ };
154
181
  return {
155
182
  loading: true,
156
183
  publicKey: publicKey || '',
@@ -172,11 +199,13 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
172
199
  selectedDashboard: null,
173
200
  reportId: null,
174
201
  report: null,
175
- theme: theme ?? Admin_1.defaultTheme,
202
+ theme: populatedTheme,
176
203
  organizationIdSet: false,
177
204
  dateFilter: {},
178
- domainName: domainName || '',
205
+ clerkOrgId: clerkOrgId || '',
179
206
  databaseTypeMismatch: { show: false, backendDatabaseType: '' },
207
+ activeSavedQueryReportId: '',
208
+ databaseSchema: undefined,
180
209
  };
181
210
  }, []);
182
211
  const [state, dispatch] = (0, react_1.useReducer)(reducer, initialState);
@@ -201,9 +230,11 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
201
230
  ],
202
231
  };
203
232
  }, [state, flagsList, state.client]);
204
- const setClient = (client, setLoadingImmediately = false) => {
205
- if (setLoadingImmediately) {
233
+ const setClient = (client, fetchTenantInfo) => {
234
+ if (fetchTenantInfo) {
206
235
  setClientLoading(true);
236
+ fetchClient(client.clientId, false);
237
+ return;
207
238
  }
208
239
  dispatch({ type: 'SET_CLIENT_AND_TENANTS', payload: client });
209
240
  };
@@ -231,72 +262,74 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
231
262
  throw e;
232
263
  }
233
264
  console.error('Failed to fetch:', e);
265
+ eventTracking?.logError?.({
266
+ type: 'network',
267
+ severity: 'medium',
268
+ message: 'Failed to fetch data',
269
+ errorMessage: e.message,
270
+ errorStack: e.stack,
271
+ errorData: {
272
+ task: task,
273
+ },
274
+ });
234
275
  return { error: 'Failed to fetch data' };
235
276
  }
236
277
  }
237
- // queryHeaders prop can change dynamically, need to stay updated
238
- (0, react_1.useEffect)(() => {
239
- dispatch({ type: 'SET_QUERY_HEADERS', payload: queryHeaders });
240
- }, [queryHeaders]);
241
- (0, react_1.useEffect)(() => {
242
- const client = JSON.parse(sessionStorage.getItem('quill-client') || 'null');
243
- if (client?.id === publicKey) {
244
- dispatch({
245
- type: 'SET_CLIENT',
246
- payload: { ...client, _id: publicKey },
278
+ async function fetchClient(publicKey, fetchAllClients = false) {
279
+ setClientLoading(true);
280
+ currentFetchingClientRef.current = publicKey;
281
+ try {
282
+ const data = await quillFetchWithToken({
283
+ client: {
284
+ queryEndpoint,
285
+ queryHeaders: queryHeaders,
286
+ withCredentials: !!state.withCredentials,
287
+ clientId: publicKey,
288
+ },
289
+ task: 'client',
290
+ metadata: {
291
+ clientId: publicKey,
292
+ fetchDefaultDashboard: true,
293
+ },
294
+ adminMode: true,
247
295
  });
248
- }
249
- async function fetchClient(publicKey) {
250
- if (!publicKey) {
296
+ if (data.status === 'error') {
297
+ throw new Error(data.error);
298
+ }
299
+ const result = data.data || data;
300
+ if (!result.client) {
301
+ console.error('Client not found.');
251
302
  return;
252
303
  }
253
- setClientLoading(true);
254
- setCurrentFetchingClient(publicKey);
255
- try {
256
- const data = await quillFetchWithToken({
257
- client: {
258
- queryEndpoint,
259
- queryHeaders: queryHeaders,
260
- withCredentials: !!state.withCredentials,
261
- clientId: publicKey,
262
- },
263
- task: 'client',
264
- metadata: {
265
- clientId: publicKey,
266
- fetchDefaultDashboard: true,
267
- },
268
- adminMode: true,
304
+ const allClientTenantIds = await Promise.all(result.client.allTenantTypes?.map(async (tenant) => {
305
+ return await getClientTenantIds({
306
+ queryEndpoint,
307
+ queryHeaders: state.queryHeaders,
308
+ withCredentials: state.withCredentials,
309
+ tenant,
310
+ clientId: result.client._id,
311
+ getToken: getAuthorizationToken,
269
312
  });
270
- if (data.status === 'error') {
271
- throw new Error(data.error);
272
- }
273
- const result = data.data || data;
274
- if (!result.client) {
275
- console.error('Client not found.');
276
- return;
277
- }
278
- const allClientTenantIds = await Promise.all(result.client.allTenantTypes?.map(async (tenant) => {
279
- return await getClientTenantIds({
280
- queryEndpoint,
281
- queryHeaders: state.queryHeaders,
282
- withCredentials: state.withCredentials,
283
- tenant,
284
- clientId: result.client._id,
285
- getToken: getAuthorizationToken,
286
- });
287
- }) ?? []);
288
- const mappedTenantIds = allClientTenantIds.reduce((acc, curr) => {
289
- acc[curr.id] = curr.tenantIds;
290
- return acc;
291
- }, {});
292
- setClient({
293
- ...result.client,
294
- queryEndpoint: result.client.queryEndpoint ?? queryEndpoint,
295
- allTenantTypes: result.client.allTenantTypes?.map((tenant) => ({
296
- ...tenant,
297
- tenantIds: mappedTenantIds?.[tenant.id],
298
- })),
313
+ }) ?? []);
314
+ const mappedTenantIds = allClientTenantIds.reduce((acc, curr) => {
315
+ acc[curr.id] = curr.tenantIds;
316
+ return acc;
317
+ }, {});
318
+ if (result.client._id !== state.client?._id) {
319
+ dispatch({
320
+ type: 'SET_SELECTED_DASHBOARD_NAME',
321
+ payload: null,
299
322
  });
323
+ }
324
+ setClient({
325
+ ...result.client,
326
+ queryEndpoint: result.client.queryEndpoint ?? queryEndpoint,
327
+ allTenantTypes: result.client.allTenantTypes?.map((tenant) => ({
328
+ ...tenant,
329
+ tenantIds: mappedTenantIds?.[tenant.id],
330
+ })),
331
+ });
332
+ if (fetchAllClients) {
300
333
  const allClientsData = await quillFetchWithToken({
301
334
  client: {
302
335
  queryEndpoint,
@@ -331,21 +364,59 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
331
364
  payload: allClients,
332
365
  });
333
366
  }
334
- catch (error) {
335
- console.error('ERROR:', error);
336
- }
337
- finally {
338
- // We want this to trigger after the schema loading effect runs so the loading state doesn't flicker
339
- setTimeout(() => {
340
- setClientLoading(false);
341
- setCurrentFetchingClient(undefined);
342
- }, 200);
343
- }
344
367
  }
345
- if (currentFetchingClient === (state.client?.id ?? publicKey))
346
- return;
347
- fetchClient(state?.client?.id ?? publicKey);
348
- }, [publicKey, state?.client?.id]);
368
+ catch (error) {
369
+ console.error('ERROR:', error);
370
+ eventTracking?.logError?.({
371
+ type: 'bug', // TODO: determine type
372
+ severity: 'high',
373
+ message: 'Error fetching client',
374
+ errorMessage: error.message,
375
+ errorStack: error.stack,
376
+ errorData: {
377
+ caller: 'AdminProvider',
378
+ function: 'fetchClient',
379
+ },
380
+ });
381
+ }
382
+ finally {
383
+ // We want this to trigger after the schema loading effect runs so the loading state doesn't flicker
384
+ setTimeout(() => {
385
+ setClientLoading(false);
386
+ currentFetchingClientRef.current = undefined;
387
+ }, 200);
388
+ }
389
+ }
390
+ // queryHeaders prop can change dynamically, need to stay updated
391
+ (0, react_1.useEffect)(() => {
392
+ dispatch({ type: 'SET_QUERY_HEADERS', payload: queryHeaders });
393
+ }, [queryHeaders]);
394
+ (0, react_1.useEffect)(() => {
395
+ if (clerkOrgId) {
396
+ dispatch({ type: 'SET_CLERK_ORG_ID', payload: clerkOrgId });
397
+ }
398
+ }, [clerkOrgId]);
399
+ (0, react_1.useEffect)(() => {
400
+ if (publicKeyRef.current !== publicKey) {
401
+ dispatch({ type: 'SET_ALL_STATE', payload: initialState });
402
+ publicKeyRef.current = publicKey;
403
+ }
404
+ const client = JSON.parse(sessionStorage.getItem('quill-client') || 'null');
405
+ let overridePublicKey = null;
406
+ if (client && client.clerkOrgId === clerkOrgId) {
407
+ overridePublicKey = client.id || client._id || client.publicKey;
408
+ }
409
+ const fetchPublicKey = overridePublicKey || publicKey;
410
+ if (!fetchPublicKey) {
411
+ setClientLoading(false);
412
+ currentFetchingClientRef.current = undefined;
413
+ }
414
+ else {
415
+ if (currentFetchingClientRef.current === fetchPublicKey)
416
+ return;
417
+ fetchClient(fetchPublicKey, true);
418
+ }
419
+ }, [publicKey]);
349
420
  // Session storage
350
421
  (0, react_1.useEffect)(() => {
351
422
  // Overwrite the large collections to save performance
@@ -382,11 +453,22 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
382
453
  publicKey: clientId,
383
454
  clientId: clientId,
384
455
  withCredentials: state.withCredentials || false,
385
- }, 'svm', getAuthorizationToken, tenants);
456
+ }, 'svm', getAuthorizationToken, eventTracking, tenants);
386
457
  dispatch({ type: 'SET_TABLES', payload: schema });
387
458
  }
388
459
  catch (error) {
389
460
  console.error('ERROR:', error);
461
+ eventTracking?.logError?.({
462
+ type: 'bug', // TODO: determine type
463
+ severity: 'high',
464
+ message: 'Error fetching schema',
465
+ errorMessage: error.message,
466
+ errorStack: error.stack,
467
+ errorData: {
468
+ caller: 'AdminProvider',
469
+ function: 'fetchSchemaAndTables',
470
+ },
471
+ });
390
472
  }
391
473
  finally {
392
474
  setSchemaLoading(false);
@@ -407,9 +489,9 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
407
489
  ? state.selectedTenantValues?.map((value) => value.toString())
408
490
  : undefined;
409
491
  }, [state.selectedTenantValues, state.client?.id]);
410
- if (!state.client || !state.tables) {
411
- return null;
412
- }
492
+ // if (!state.client || !state.tables) {
493
+ // return null;
494
+ // }
413
495
  return ((0, jsx_runtime_1.jsxs)(AdminContext.Provider, { value: {
414
496
  state: stateWithFlagsList,
415
497
  dispatch,
@@ -417,7 +499,13 @@ function AdminProvider({ children, publicKey, queryEndpoint = `${constants_1.QUI
417
499
  setClient,
418
500
  getToken: getAuthorizationToken,
419
501
  quillFetchWithToken,
420
- }, children: [!state.client && !clientLoading && ((0, jsx_runtime_1.jsx)(CreateEnvironment_1.default, { onOnboardComplete: onOnboardComplete })), state.client && ((0, jsx_runtime_1.jsxs)(react_2.QuillProvider, { tenants: tenants, flags: flags, queryEndpoint: state.queryEndpoint, withCredentials: state.withCredentials, queryHeaders: state.queryHeaders, publicKey: state.client._id, theme: state.theme, isAdmin: true, getAuthorizationToken: getAuthorizationToken, children: [children, (0, jsx_runtime_1.jsx)(ErrorModal, { error: error, setError: setError })] })), (0, jsx_runtime_1.jsx)("style", { children: `/* For WebKit-based browsers (Chrome, Safari, Opera) */
502
+ onOnboardComplete,
503
+ onRequestAddVirtualTable,
504
+ eventTracking,
505
+ }, children: [!state.client && !clientLoading && ((0, jsx_runtime_1.jsx)(CreateEnvironment_1.default, { onOnboardComplete: (client) => {
506
+ fetchClient(client._id);
507
+ onOnboardComplete?.(client);
508
+ } })), state.client && ((0, jsx_runtime_1.jsxs)(react_2.QuillProvider, { tenants: tenants, flags: flags, queryEndpoint: state.queryEndpoint, withCredentials: state.withCredentials, queryHeaders: state.queryHeaders, publicKey: state.client._id, theme: state.theme, isAdmin: true, getAuthorizationToken: getAuthorizationToken, eventTracking: eventTracking, children: [children, (0, jsx_runtime_1.jsx)(ErrorModal, { error: error, setError: setError })] })), (0, jsx_runtime_1.jsx)("style", { children: `/* For WebKit-based browsers (Chrome, Safari, Opera) */
421
509
  ::-webkit-scrollbar {
422
510
  width: 0;
423
511
  height: 0;
@@ -1,5 +1,6 @@
1
+ import { EventTracking } from '@quillsql/react';
1
2
  import { DatabaseSchema } from '../utils/schema';
2
- import { Column, ColumnsByTable } from '../utils/table';
3
+ import { ColumnInternal, ColumnsByTable } from '../utils/table';
3
4
  import { QuillTenant } from '../utils/tenants';
4
5
  export declare function testConnectionString(queryEndpoint: string, connectionString: string, databaseType: string, getToken: () => Promise<string>, clientId?: string, queryHeaders?: HeadersInit): Promise<any>;
5
6
  export declare function getTablesBySchema(queryEndpoint: string, clientId: string, schema: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<string[] | undefined>;
@@ -15,13 +16,14 @@ export declare function getSchemaTables(schemas: string[], databaseType: string,
15
16
  export declare function getTableColumns(tables: {
16
17
  tableName: string;
17
18
  schemaName: string;
19
+ catalogName?: string;
18
20
  }[], databaseType: string, queryEndpoint: string, clientId: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<ColumnsByTable[]>;
19
21
  export declare function getTableColumnsBySchema(isSelfHosted: boolean, queryEndpoint: string, clientId: string, databaseType: string, getToken: () => Promise<string>, schemas: string[], queryHeaders?: HeadersInit): Promise<{
20
22
  columnsByTable: ColumnsByTable[];
21
23
  schema: DatabaseSchema;
22
24
  }>;
23
25
  export declare function getVirtualTables(queryEndpoint: string, tableSchemas: any, customerNameField: string, clientId: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<any>;
24
- export declare function getVirtualTableData(clientId: string, query: string, databaseType: string, queryEndpoint: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<any>;
26
+ export declare function getVirtualTableData(clientId: string, query: string, databaseType: string, queryEndpoint: string, getToken: () => Promise<string>, eventTracking: EventTracking | null, queryHeaders?: HeadersInit): Promise<any>;
25
27
  export declare function getAST(query: string, clientId: string, queryEndpoint: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<any>;
26
28
  export declare function getQueryFromAI(aiPrompt: string, columnsByTable: ColumnsByTable[], queryEndpoint: string, clientId: string, getToken: () => Promise<string>, queryHeaders?: HeadersInit): Promise<string>;
27
29
  export declare function getQueryFromAiWithConnection(isSelfHosted: boolean, databaseSchema: ColumnsByTable[], queryEndpoint: string, aiPrompt: string, clientId: string, getToken: () => Promise<string>, schemaNames?: string[], queryHeaders?: HeadersInit): Promise<string>;
@@ -30,9 +32,10 @@ export declare function createVirtualTable(viewInfo: {
30
32
  query: string;
31
33
  }, client: any, tableData: {
32
34
  rows: object[];
33
- fields: Column[];
35
+ fields: ColumnInternal[];
34
36
  } | undefined, currentTableNames: string[], clientId: string, ownerTenantFields: string[], queryEndpoint: string, queryHeaders: any, getToken: () => Promise<string>): Promise<{
35
37
  success: boolean;
36
38
  failingTenant?: QuillTenant;
39
+ failingTenantErrorType?: 'missing' | 'type_mismatch';
37
40
  } | any>;
38
41
  //# sourceMappingURL=ConnectionClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionClient.d.ts","sourceRoot":"","sources":["../../../src/api/ConnectionClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionClient.d.ts","sourceRoot":"","sources":["../../../src/api/ConnectionClient.ts"],"names":[],"mappings":"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"}
@@ -159,7 +159,11 @@ async function getSchemaTables(schemas, databaseType, queryEndpoint, clientId, g
159
159
  schemaMap[schema] = [];
160
160
  }
161
161
  schemaMap[schema].push(row['table_name'] || row['TABLE_NAME']);
162
- return { tableName: row['table_name'], schemaName: row['table_schema'] };
162
+ return {
163
+ tableName: row['table_name'] || row['TABLE_NAME'],
164
+ schemaName: row['table_schema'] || row['TABLE_SCHEMA'],
165
+ catalogName: row['table_catalog'] || row['TABLE_CATALOG'],
166
+ };
163
167
  });
164
168
  allTables.push(...tables);
165
169
  }
@@ -194,13 +198,13 @@ async function getTableColumns(tables, databaseType, queryEndpoint, clientId, ge
194
198
  columnName: row['columnName'],
195
199
  displayName: row['columnName'],
196
200
  fieldType: fieldType,
197
- dataTypeId: (0, columnProcessing_1.fieldTypeToDataTypeID)(fieldType),
201
+ dataTypeId: (0, columnProcessing_1.fieldTypeToDataTypeID)(fieldType?.toLowerCase()),
198
202
  field: row['columnName'],
199
203
  };
200
204
  });
201
205
  columnsByTable.push({
202
- tableName: `${table.schemaName}.${table.tableName}`,
203
- displayName: `${table.schemaName}.${table.tableName}`,
206
+ tableName: `${table.catalogName ? `${table.catalogName}.` : ''}${table.schemaName}.${table.tableName}`,
207
+ displayName: `${table.catalogName ? `${table.catalogName}.` : ''}${table.schemaName}.${table.tableName}`,
204
208
  columns,
205
209
  });
206
210
  }
@@ -235,7 +239,7 @@ async function getTableColumnsBySchema(isSelfHosted, queryEndpoint, clientId, da
235
239
  const formattedResults = results.data.columnsByTable.map((table) => {
236
240
  return {
237
241
  tableName: table.tableName,
238
- displayName: table.displayName,
242
+ displayName: table.displayName || table.tableName,
239
243
  columns: table.columns.map((column) => {
240
244
  return {
241
245
  columnName: column.columnName,
@@ -276,7 +280,7 @@ async function getVirtualTables(queryEndpoint, tableSchemas, customerNameField,
276
280
  return results.notSureWhatThisIs.sqlQueries;
277
281
  }
278
282
  // TODO: Check that works with self-hosted
279
- async function getVirtualTableData(clientId, query, databaseType, queryEndpoint, getToken, queryHeaders) {
283
+ async function getVirtualTableData(clientId, query, databaseType, queryEndpoint, getToken, eventTracking, queryHeaders) {
280
284
  let queryAst = undefined;
281
285
  try {
282
286
  const { data } = await (0, dataFetcher_1.quillFetch)({
@@ -303,6 +307,16 @@ async function getVirtualTableData(clientId, query, databaseType, queryEndpoint,
303
307
  }
304
308
  }
305
309
  catch (e) {
310
+ eventTracking?.logError?.({
311
+ type: 'network',
312
+ severity: 'medium',
313
+ message: 'Error getting AST',
314
+ errorMessage: e.message,
315
+ errorStack: e.stack,
316
+ errorData: {
317
+ function: 'getVirtualTableData',
318
+ },
319
+ });
306
320
  return {
307
321
  success: false,
308
322
  error: 'Invalid SQL Query',
@@ -468,6 +482,7 @@ async function createVirtualTable(viewInfo, client, tableData, currentTableNames
468
482
  },
469
483
  getToken,
470
484
  });
485
+ // Check for missing tenant field
471
486
  const missingField = ownerTenantFields.find((field) => tableData &&
472
487
  !tableData.fields.find((col) => col.name === field?.replaceAll('"', '')));
473
488
  const failingTenant = client.allTenantTypes.find((tenant) => tenant.tenantField === missingField);
@@ -475,8 +490,28 @@ async function createVirtualTable(viewInfo, client, tableData, currentTableNames
475
490
  return {
476
491
  success: false,
477
492
  failingTenant,
493
+ failingTenantErrorType: 'missing',
478
494
  };
479
495
  }
496
+ // Check for type mismatches
497
+ if (tableData) {
498
+ const typeMismatchedTenant = ownerTenantFields.find((owner) => {
499
+ const tenant = client.allTenantTypes?.find((t) => t.tenantField === owner);
500
+ const tableDataField = tableData.fields.find((col) => col.name === owner?.replaceAll('"', ''));
501
+ return ((tenant?.fieldType === 'string' &&
502
+ isNumberType(tableDataField?.fieldType ?? '')) ||
503
+ (tenant?.fieldType === 'number' &&
504
+ isStringType(tableDataField?.fieldType ?? '')));
505
+ });
506
+ if (typeMismatchedTenant) {
507
+ const tenant = client.allTenantTypes?.find((t) => t.tenantField === typeMismatchedTenant);
508
+ return {
509
+ success: false,
510
+ failingTenant: tenant,
511
+ failingTenantErrorType: 'type_mismatch',
512
+ };
513
+ }
514
+ }
480
515
  if (!queryAstRaw || queryAstRaw.success === false) {
481
516
  return {
482
517
  success: false,
@@ -513,3 +548,28 @@ async function createVirtualTable(viewInfo, client, tableData, currentTableNames
513
548
  });
514
549
  return { ...results.data, success: true };
515
550
  }
551
+ // Helper functions for type checking
552
+ function isNumberType(type) {
553
+ const numberTypes = [
554
+ 'int',
555
+ 'integer',
556
+ 'bigint',
557
+ 'smallint',
558
+ 'decimal',
559
+ 'numeric',
560
+ 'float',
561
+ 'double',
562
+ 'real',
563
+ ];
564
+ return numberTypes.some((t) => type.toLowerCase().includes(t));
565
+ }
566
+ function isStringType(type) {
567
+ const stringTypes = [
568
+ 'char',
569
+ 'varchar',
570
+ 'text',
571
+ 'string',
572
+ 'character varying',
573
+ ];
574
+ return stringTypes.some((t) => type.toLowerCase().includes(t));
575
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowDownHeadIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/ArrowDownHeadIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,iBAAiB;;6CActB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ArrowDownHeadIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/ArrowDownHeadIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,iBAAiB,GAAI;;CAAY,4CActC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"XIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/XIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,KAAK;;6CAcV,CAAC;AACF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"XIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/XIcon.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,KAAK,GAAI;;CAAY,4CAc1B,CAAC;AACF,eAAe,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardButton.d.ts","sourceRoot":"","sources":["../../../src/components/ClipboardButton.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAGvD,QAAA,MAAM,eAAe,qCAIlB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CAsHA,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ClipboardButton.d.ts","sourceRoot":"","sources":["../../../src/components/ClipboardButton.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAY,MAAM,OAAO,CAAC;AAGvD,QAAA,MAAM,eAAe,GAAI,kCAItB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CAsHA,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/components/DashboardSelectPopover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,UAAU,2BAA2B;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,EACL,wBAAwB,EACxB,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,EAAE,2BAA2B,2CAyK7B"}
1
+ {"version":3,"file":"DashboardSelectPopover.d.ts","sourceRoot":"","sources":["../../../src/components/DashboardSelectPopover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,UAAU,2BAA2B;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,EACL,wBAAwB,EACxB,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,EAAE,2BAA2B,2CAsM7B"}
@@ -10,13 +10,24 @@ const OrgSelect_1 = require("./OrgSelect");
10
10
  const MiniButtonPrimitive_1 = __importDefault(require("../primitives/MiniButtonPrimitive"));
11
11
  const UiComponents_1 = require("./UiComponents");
12
12
  const QuillMultiSelectWithCombo_1 = require("./QuillMultiSelectWithCombo");
13
+ const AdminProvider_1 = require("../AdminProvider");
13
14
  function DashboardSelectPopover({ dashboards, setDashboard, dashboard, theme, setSelectedEditDashboard, onClickNewDashboard, parentRef, isLoading, }) {
14
15
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
16
+ const { eventTracking } = (0, AdminProvider_1.useAdmin)();
15
17
  const [searchQuery, setSearchQuery] = (0, react_1.useState)('');
16
18
  const filteredDashboards = (0, react_1.useMemo)(() => {
17
19
  return dashboards.filter((dashboard) => dashboard?.toLowerCase().includes(searchQuery.toLowerCase()));
18
20
  }, [dashboards, searchQuery]);
19
21
  const handleItemClick = (selectedDashboard) => {
22
+ eventTracking?.addBreadcrumb?.({
23
+ message: 'Set dashboard in DashboardSelectPopover',
24
+ data: {
25
+ dashboard: selectedDashboard,
26
+ },
27
+ category: 'navigation',
28
+ level: 'info',
29
+ timestamp: Date.now(),
30
+ });
20
31
  setDashboard(selectedDashboard);
21
32
  setIsOpen(false);
22
33
  };
@@ -39,6 +50,15 @@ function DashboardSelectPopover({ dashboards, setDashboard, dashboard, theme, se
39
50
  } }), (0, jsx_runtime_1.jsxs)("div", { style: { paddingTop: 8, paddingBottom: 8 }, children: [filteredDashboards.map((item) => ((0, jsx_runtime_1.jsx)(OrgSelect_1.ListboxRow, { setSelected: dashboard && dashboard !== item
40
51
  ? () => handleItemClick(item)
41
52
  : undefined, item: item, isSelected: dashboard === item, hoverActions: (item) => ((0, jsx_runtime_1.jsx)(MiniButtonPrimitive_1.default, { label: "Manage", onClick: () => {
53
+ eventTracking?.addBreadcrumb?.({
54
+ message: 'Opened manage dashboard in DashboardSelectPopover',
55
+ data: {
56
+ dashboard: item,
57
+ },
58
+ category: 'interaction',
59
+ level: 'info',
60
+ timestamp: Date.now(),
61
+ });
42
62
  setSelectedEditDashboard(item);
43
63
  setIsOpen(false);
44
64
  }, style: {
@@ -48,7 +68,15 @@ function DashboardSelectPopover({ dashboards, setDashboard, dashboard, theme, se
48
68
  fontFamily: theme.fontFamily,
49
69
  color: theme.secondaryTextColor,
50
70
  backgroundColor: theme.backgroundColor,
51
- } })) }, item))), (0, jsx_runtime_1.jsx)("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: (0, jsx_runtime_1.jsxs)("div", { onClick: onClickNewDashboard, style: {
71
+ } })) }, item))), (0, jsx_runtime_1.jsx)("div", { className: 'quill-list-select', style: { paddingBottom: 6, cursor: 'pointer' }, children: (0, jsx_runtime_1.jsxs)("div", { onClick: () => {
72
+ onClickNewDashboard();
73
+ eventTracking?.addBreadcrumb?.({
74
+ message: 'Opened create new dashboard in DashboardSelectPopover',
75
+ category: 'navigation',
76
+ level: 'info',
77
+ timestamp: Date.now(),
78
+ });
79
+ }, style: {
52
80
  height: 42,
53
81
  width: 216,
54
82
  borderRadius: 6,
@@ -1 +1 @@
1
- {"version":3,"file":"dateRangePickerUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/dateRangePickerUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dateRangePickerUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/dateRangePickerUtils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties } from 'react';
2
- import { DashboardFilter as Filters } from '../../utils/filter';
2
+ import { InternalDashboardFilter as Filters } from '../../utils/filter';
3
3
  interface DashboardFilterProps {
4
4
  filter: Filters;
5
5
  onChangeFilter: (filter: Filters, value?: string | (string | null)[] | {