@quillsql/admin 1.6.3 → 1.6.4

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 (193) hide show
  1. package/dist/cjs/Admin.d.ts +3 -0
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +20 -18
  4. package/dist/cjs/AdminProvider.d.ts +3 -1
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +3 -2
  7. package/dist/cjs/api/ConnectionClient.d.ts +21 -10
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +138 -31
  10. package/dist/cjs/components/CardSection.d.ts.map +1 -1
  11. package/dist/cjs/components/CardSection.js +4 -2
  12. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  13. package/dist/cjs/components/DashboardSelectPopover.js +17 -6
  14. package/dist/cjs/components/DatabaseSelector.d.ts +3 -1
  15. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  16. package/dist/cjs/components/DatabaseSelector.js +3 -2
  17. package/dist/cjs/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
  18. package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +31 -7
  19. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
  20. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
  21. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  22. package/dist/cjs/components/DropDownMenuWithLabel.js +8 -1
  23. package/dist/cjs/components/DynamicBanner.d.ts +3 -2
  24. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
  25. package/dist/cjs/components/DynamicBanner.js +7 -2
  26. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  27. package/dist/cjs/components/EmptyDashboardComponent/index.js +3 -2
  28. package/dist/cjs/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
  29. package/dist/cjs/components/EmptyVirtualTablesComponent.js +4 -1
  30. package/dist/cjs/components/FormTooltip.d.ts.map +1 -1
  31. package/dist/cjs/components/FormTooltip.js +4 -1
  32. package/dist/cjs/components/InputLabel.d.ts.map +1 -1
  33. package/dist/cjs/components/InputLabel.js +4 -2
  34. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  35. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -14
  36. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  37. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +14 -1
  38. package/dist/cjs/components/OrgSelect.d.ts +0 -6
  39. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  40. package/dist/cjs/components/OrgSelect.js +32 -44
  41. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +3 -1
  42. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  43. package/dist/cjs/components/QuillMultiSelectWithCombo.js +27 -22
  44. package/dist/cjs/components/QuillPopover.d.ts.map +1 -1
  45. package/dist/cjs/components/QuillPopover.js +4 -5
  46. package/dist/cjs/components/QuillSelect.js +9 -9
  47. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  48. package/dist/cjs/components/QuillSelectWithCombo.js +13 -15
  49. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
  50. package/dist/cjs/components/Tenants/EditTenant.js +2 -2
  51. package/dist/cjs/components/UiComponents.d.ts +16 -43
  52. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  53. package/dist/cjs/components/UiComponents.js +161 -33
  54. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  55. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +113 -49
  56. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  57. package/dist/cjs/forms/client_onboard/ConnectSchema.js +3 -1
  58. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  59. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +6 -2
  60. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +1 -0
  61. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +1 -0
  62. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  63. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +10 -6
  64. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
  65. package/dist/cjs/hooks/useDatabaseSchema.js +6 -1
  66. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
  67. package/dist/cjs/modals/EditEnvironmentModal.js +7 -2
  68. package/dist/cjs/modals/EditFiltersModal.js +7 -7
  69. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  70. package/dist/cjs/primitives/ButtonPrimitive.js +10 -6
  71. package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
  72. package/dist/cjs/primitives/HeaderPrimitive.js +11 -7
  73. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
  74. package/dist/cjs/primitives/PopoverPrimitive.js +3 -1
  75. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  76. package/dist/cjs/primitives/SecondaryButtonPrimitive.js +5 -3
  77. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
  78. package/dist/cjs/public_components/ChartQueryBuilder.js +13 -3
  79. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  80. package/dist/cjs/public_components/CreateEnvironment.js +20 -15
  81. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  82. package/dist/cjs/public_components/DashboardManager.js +10 -1
  83. package/dist/cjs/public_components/EnvSelectPopover.d.ts +2 -1
  84. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
  85. package/dist/cjs/public_components/EnvSelectPopover.js +19 -7
  86. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
  87. package/dist/cjs/public_components/VirtualTableManager.js +32 -8
  88. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  89. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  90. package/dist/cjs/utils/columnProcessing.js +1 -0
  91. package/dist/cjs/utils/constants.d.ts +1 -0
  92. package/dist/cjs/utils/constants.d.ts.map +1 -1
  93. package/dist/cjs/utils/constants.js +5 -1
  94. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  95. package/dist/cjs/utils/dataFetcher.js +0 -1
  96. package/dist/cjs/utils/databases.js +5 -5
  97. package/dist/esm/Admin.d.ts +3 -0
  98. package/dist/esm/Admin.d.ts.map +1 -1
  99. package/dist/esm/Admin.js +20 -18
  100. package/dist/esm/AdminProvider.d.ts +3 -1
  101. package/dist/esm/AdminProvider.d.ts.map +1 -1
  102. package/dist/esm/AdminProvider.js +5 -4
  103. package/dist/esm/api/ConnectionClient.d.ts +21 -10
  104. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  105. package/dist/esm/api/ConnectionClient.js +136 -31
  106. package/dist/esm/components/CardSection.d.ts.map +1 -1
  107. package/dist/esm/components/CardSection.js +4 -2
  108. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  109. package/dist/esm/components/DashboardSelectPopover.js +18 -7
  110. package/dist/esm/components/DatabaseSelector.d.ts +3 -1
  111. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  112. package/dist/esm/components/DatabaseSelector.js +3 -2
  113. package/dist/esm/components/DateRangePicker/SingleDatePicker.d.ts.map +1 -1
  114. package/dist/esm/components/DateRangePicker/SingleDatePicker.js +31 -7
  115. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.d.ts.map +1 -1
  116. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +31 -7
  117. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  118. package/dist/esm/components/DropDownMenuWithLabel.js +9 -2
  119. package/dist/esm/components/DynamicBanner.d.ts +3 -2
  120. package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
  121. package/dist/esm/components/DynamicBanner.js +7 -2
  122. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  123. package/dist/esm/components/EmptyDashboardComponent/index.js +3 -2
  124. package/dist/esm/components/EmptyVirtualTablesComponent.d.ts.map +1 -1
  125. package/dist/esm/components/EmptyVirtualTablesComponent.js +4 -1
  126. package/dist/esm/components/FormTooltip.d.ts.map +1 -1
  127. package/dist/esm/components/FormTooltip.js +4 -1
  128. package/dist/esm/components/InputLabel.d.ts.map +1 -1
  129. package/dist/esm/components/InputLabel.js +4 -2
  130. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  131. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +33 -11
  132. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  133. package/dist/esm/components/InternalDashboard/InternalDashboard.js +14 -1
  134. package/dist/esm/components/OrgSelect.d.ts +0 -6
  135. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  136. package/dist/esm/components/OrgSelect.js +32 -42
  137. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +3 -1
  138. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  139. package/dist/esm/components/QuillMultiSelectWithCombo.js +27 -22
  140. package/dist/esm/components/QuillPopover.d.ts.map +1 -1
  141. package/dist/esm/components/QuillPopover.js +4 -5
  142. package/dist/esm/components/QuillSelect.js +9 -9
  143. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  144. package/dist/esm/components/QuillSelectWithCombo.js +13 -15
  145. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
  146. package/dist/esm/components/Tenants/EditTenant.js +2 -2
  147. package/dist/esm/components/UiComponents.d.ts +16 -43
  148. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  149. package/dist/esm/components/UiComponents.js +126 -29
  150. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  151. package/dist/esm/forms/client_onboard/ConnectDatabase.js +113 -49
  152. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  153. package/dist/esm/forms/client_onboard/ConnectSchema.js +3 -1
  154. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  155. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +6 -2
  156. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +1 -0
  157. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +1 -0
  158. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  159. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +11 -7
  160. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
  161. package/dist/esm/hooks/useDatabaseSchema.js +7 -2
  162. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
  163. package/dist/esm/modals/EditEnvironmentModal.js +7 -2
  164. package/dist/esm/modals/EditFiltersModal.js +8 -8
  165. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  166. package/dist/esm/primitives/ButtonPrimitive.js +10 -6
  167. package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
  168. package/dist/esm/primitives/HeaderPrimitive.js +11 -7
  169. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
  170. package/dist/esm/primitives/PopoverPrimitive.js +3 -1
  171. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  172. package/dist/esm/primitives/SecondaryButtonPrimitive.js +5 -3
  173. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
  174. package/dist/esm/public_components/ChartQueryBuilder.js +14 -4
  175. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  176. package/dist/esm/public_components/CreateEnvironment.js +20 -15
  177. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  178. package/dist/esm/public_components/DashboardManager.js +10 -1
  179. package/dist/esm/public_components/EnvSelectPopover.d.ts +2 -1
  180. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
  181. package/dist/esm/public_components/EnvSelectPopover.js +20 -8
  182. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
  183. package/dist/esm/public_components/VirtualTableManager.js +33 -9
  184. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  185. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  186. package/dist/esm/utils/columnProcessing.js +1 -1
  187. package/dist/esm/utils/constants.d.ts +1 -0
  188. package/dist/esm/utils/constants.d.ts.map +1 -1
  189. package/dist/esm/utils/constants.js +4 -0
  190. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  191. package/dist/esm/utils/dataFetcher.js +0 -1
  192. package/dist/esm/utils/databases.js +5 -5
  193. package/package.json +1 -1
@@ -17,6 +17,7 @@ const QuillMultiSelectWithCombo_1 = require("../../components/QuillMultiSelectWi
17
17
  const CardSection_1 = __importDefault(require("../../components/CardSection"));
18
18
  // import InputLabel from '../../components/InputLabel';
19
19
  const AdminProvider_1 = require("../../AdminProvider");
20
+ const dataFetcher_1 = require("../../utils/dataFetcher");
20
21
  function ConnectDatabase({ containerStyle, header1Style, header2Style, environmentDetails, setEnvironmentDetails, fetchSchemasLoading, onConnectDatabase, }) {
21
22
  const { state, getToken } = (0, AdminProvider_1.useAdmin)();
22
23
  const [error, setError] = (0, react_1.useState)(undefined);
@@ -126,8 +127,8 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
126
127
  }
127
128
  try {
128
129
  setIsConnecting(true);
129
- await (0, ConnectionClient_1.setSchemaNames)(state.queryEndpoint, clientId, selectedSchemas, getToken);
130
- const databaseSchema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.queryEndpoint, clientId, getToken, selectedSchemas).then((res) => res.columnsByTable);
130
+ await (0, ConnectionClient_1.setSchemaNames)(state.queryEndpoint, clientId, selectedSchemas, getToken, state.queryHeaders);
131
+ const databaseSchema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.isSelfHosted, state.queryEndpoint, clientId, databaseConnectionDetails.type, getToken, selectedSchemas, state.queryHeaders).then((res) => res.columnsByTable);
131
132
  setEnvironmentDetails(databaseConnectionDetails, databaseSchema, selectedSchemas, clientId);
132
133
  }
133
134
  catch (e) {
@@ -139,11 +140,38 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
139
140
  }, 1000);
140
141
  }
141
142
  };
143
+ const getSchemaNames = async () => {
144
+ setIsConnecting(true);
145
+ const tempClientId = clientId ?? state.client?.clientId;
146
+ const { data, status, queries } = await (0, dataFetcher_1.quillFetch)({
147
+ client: {
148
+ queryEndpoint: state.queryEndpoint,
149
+ queryHeaders: state.queryHeaders,
150
+ withCredentials: !!state.withCredentials,
151
+ clientId: tempClientId,
152
+ },
153
+ task: 'get-schema-names',
154
+ metadata: {
155
+ databaseType: databaseConnectionDetails.type,
156
+ newClientId: clientId,
157
+ },
158
+ getToken: getToken,
159
+ });
160
+ if (status !== 'success') {
161
+ setIsConnecting(false);
162
+ setError('Error fetching schemas');
163
+ return;
164
+ }
165
+ const schemas = queries?.queryResults?.[0]?.rows?.map((row) => row['schema_name'] || row['SCHEMA_NAME']);
166
+ setClientId(data?.clientId);
167
+ setAllSchemas(schemas);
168
+ setIsConnecting(false);
169
+ };
142
170
  const testConnectionAndFormClient = async () => {
143
171
  setError(undefined);
144
172
  const connectionString = (0, databases_1.formConnectionString)(databaseConnectionDetails);
145
173
  setIsConnecting(true);
146
- const result = await (0, ConnectionClient_1.testConnectionString)(state.queryEndpoint, connectionString, databaseConnectionDetails.type, getToken, clientId);
174
+ const result = await (0, ConnectionClient_1.testConnectionString)(state.queryEndpoint, connectionString, databaseConnectionDetails.type, getToken, clientId, state.queryHeaders);
147
175
  if (result.success) {
148
176
  try {
149
177
  setConnectionDetails({
@@ -176,50 +204,75 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
176
204
  display: 'flex',
177
205
  flexDirection: 'row',
178
206
  justifyContent: 'space-between',
179
- }, children: [(0, jsx_runtime_1.jsx)("h1", { style: header1Style, children: "Connect Database" }), clientId && !!selectedSchemas?.length && ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", width: "24px", height: "24px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm3.857-9.809a.75.75 0 0 0-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 1 0-1.06 1.061l2.5 2.5a.75.75 0 0 0 1.137-.089l4-5.5Z", clipRule: "evenodd" }) }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 12 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600, color: '#565656' }, children: "Database type" }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 10, userSelect: 'none' }, children: databases_1.DATABASE_DEFAULT_INFO.map((database) => {
180
- return ((0, jsx_runtime_1.jsx)(DatabaseSelector_1.default, { onDatabaseSelect: onDatabaseSelect, databaseType: databaseConnectionDetails?.type || '', containerStyle: { marginBottom: '12px' }, label: database.label, value: database.value, imageUrl: database.imageUrl }, database.label));
181
- }) })] }), databaseConnectionDetails && ((0, jsx_runtime_1.jsxs)("div", { children: [databaseConnectionDetails.type !== 'BigQuery' ? ((0, jsx_runtime_1.jsxs)("div", { children: [['MySQL', 'PostgreSQL'].includes(databaseConnectionDetails.type) && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 16, marginBottom: 24 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
182
- ...header2Style,
183
- fontWeight: 600,
184
- marginBottom: 8,
185
- }, children: "Connection Method" }), (0, jsx_runtime_1.jsx)(QuillTab_1.default, { width: "486px", modeToggleOptions: credentialTabOptions, toggleMode: credentialTab, setToggleMode: setCredentialTab })] })), credentialTab === 'Database Credentials' ? ((0, jsx_runtime_1.jsx)("div", { id: "database-details-form", children: (0, jsx_runtime_1.jsx)("div", { style: {
186
- display: 'grid',
187
- gridTemplateColumns: 'repeat(3, 1fr)',
188
- gap: '20px',
189
- justifyContent: 'space-between',
190
- marginTop: '16px',
191
- }, children:
192
- // get a list of types in the databaseConnectionDetails object and create a form for each
193
- Object.entries(databaseConnectionDetails).map(([key, value]) => {
194
- if (key !== 'connectionString' && key !== 'type')
195
- return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": `quill-input-${key}`, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
196
- ...header2Style,
197
- fontWeight: '600',
198
- }, children: key
199
- .split(/(?=[A-Z])/)
200
- .map((word) => word.charAt(0).toUpperCase() +
201
- word.slice(1))
202
- .join(' ') }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
203
- setConnectionDetails({
204
- ...databaseConnectionDetails,
205
- [key]: e.target.value,
206
- connectionString: '',
207
- });
208
- }, value: value, disabled: key === 'type', password: key === 'password' ? true : false })] }, key));
209
- }) }) })) : ((0, jsx_runtime_1.jsxs)("div", { "data-testid": "quill-input-connectionString", children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Connection String" }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
210
- updateConnectionString(e.target.value);
211
- }, value: databaseConnectionDetails.connectionString })] }))] })) : ((0, jsx_runtime_1.jsx)("div", { style: { minWidth: 790 }, children: (0, jsx_runtime_1.jsx)("div", { id: "database-details-form-bq", style: {
212
- display: 'grid',
213
- gridTemplateColumns: 'repeat(1, 1fr)',
214
- gap: '20px',
215
- justifyContent: 'space-between',
216
- marginTop: '16px',
217
- }, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: '600' }, children: "Service Account Json" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("input", { title: "Upload JSON", type: "file", accept: ".json", onChange: handleFileChange, style: { display: 'none' }, id: "fileInput", "data-testid": "quill-input-fileInput", ref: myInputRef }), (0, jsx_runtime_1.jsxs)("div", { style: {
218
- display: 'flex',
219
- flexDirection: 'row',
220
- gap: 12,
221
- alignItems: 'center',
222
- }, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { onClick: handleButtonClick, label: 'Upload JSON' }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "quill-file-label", style: { ...header2Style, fontWeight: '600' }, children: fileLabel })] })] })] }) }) })), (0, jsx_runtime_1.jsxs)("div", { style: {
207
+ }, children: [(0, jsx_runtime_1.jsx)("h1", { style: header1Style, children: "Connect Database" }), clientId && !!selectedSchemas?.length && ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", width: "24px", height: "24px", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm3.857-9.809a.75.75 0 0 0-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 1 0-1.06 1.061l2.5 2.5a.75.75 0 0 0 1.137-.089l4-5.5Z", clipRule: "evenodd" }) }))] }), !state.isSelfHosted && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 12 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Database type" }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: 10, userSelect: 'none' }, children: databases_1.DATABASE_DEFAULT_INFO.map((database) => {
208
+ return ((0, jsx_runtime_1.jsx)(DatabaseSelector_1.default, { onDatabaseSelect: onDatabaseSelect, databaseType: databaseConnectionDetails?.type || '', containerStyle: {
209
+ marginBottom: '12px',
210
+ ...(state.isSelfHosted && {
211
+ cursor: 'not-allowed',
212
+ pointerEvents: 'none',
213
+ }),
214
+ ...(state.isSelfHosted &&
215
+ database.value.toLowerCase() !==
216
+ environmentDetails.connection.type.toLowerCase() && {
217
+ backgroundColor: '#f5f5f5',
218
+ }),
219
+ }, label: database.label, value: database.value, imageUrl: database.imageUrl, theme: state.theme }, database.label));
220
+ }) })] })), databaseConnectionDetails && ((0, jsx_runtime_1.jsxs)("div", { children: [!state.isSelfHosted && ((0, jsx_runtime_1.jsx)("div", { children: databaseConnectionDetails.type !== 'BigQuery' ? ((0, jsx_runtime_1.jsxs)("div", { children: [['MySQL', 'PostgreSQL'].includes(databaseConnectionDetails.type) && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: 16, marginBottom: 24 }, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
221
+ ...header2Style,
222
+ fontWeight: 600,
223
+ marginBottom: 8,
224
+ }, children: "Connection Method" }), (0, jsx_runtime_1.jsx)(QuillTab_1.default, { width: "486px", modeToggleOptions: credentialTabOptions, toggleMode: credentialTab, setToggleMode: setCredentialTab })] })), credentialTab === 'Database Credentials' ? ((0, jsx_runtime_1.jsx)("div", { id: "database-details-form", children: (0, jsx_runtime_1.jsx)("div", { style: {
225
+ display: 'grid',
226
+ gridTemplateColumns: 'repeat(3, 1fr)',
227
+ gap: '20px',
228
+ justifyContent: 'space-between',
229
+ marginTop: '16px',
230
+ }, children:
231
+ // get a list of types in the databaseConnectionDetails object and create a form for each
232
+ Object.entries(databaseConnectionDetails).map(([key, value]) => {
233
+ if (key !== 'connectionString' && key !== 'type')
234
+ return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": `quill-input-${key}`, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
235
+ ...header2Style,
236
+ fontWeight: '600',
237
+ }, children: key
238
+ .split(/(?=[A-Z])/)
239
+ .map((word) => word.charAt(0).toUpperCase() +
240
+ word.slice(1))
241
+ .join(' ') }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
242
+ setConnectionDetails({
243
+ ...databaseConnectionDetails,
244
+ [key]: e.target.value,
245
+ connectionString: '',
246
+ });
247
+ }, value: value, disabled: key === 'type', password: key === 'password' ? true : false })] }, key));
248
+ }) }) })) : ((0, jsx_runtime_1.jsxs)("div", { "data-testid": "quill-input-connectionString", children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Connection String" }), (0, jsx_runtime_1.jsx)(primitives_1.TextInputPrimitive, { onChange: (e) => {
249
+ updateConnectionString(e.target.value);
250
+ }, value: databaseConnectionDetails.connectionString })] }))] })) : ((0, jsx_runtime_1.jsx)("div", { style: { minWidth: 790 }, children: (0, jsx_runtime_1.jsx)("div", { id: "database-details-form-bq", style: {
251
+ display: 'grid',
252
+ gridTemplateColumns: 'repeat(1, 1fr)',
253
+ gap: '20px',
254
+ justifyContent: 'space-between',
255
+ marginTop: '16px',
256
+ }, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: '600' }, children: "Service Account Json" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("input", { title: "Upload JSON", type: "file", accept: ".json", onChange: handleFileChange, style: { display: 'none' }, id: "fileInput", "data-testid": "quill-input-fileInput", ref: myInputRef }), (0, jsx_runtime_1.jsxs)("div", { style: {
257
+ display: 'flex',
258
+ flexDirection: 'row',
259
+ gap: 12,
260
+ alignItems: 'center',
261
+ }, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { onClick: handleButtonClick, label: 'Upload JSON' }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "quill-file-label", style: { ...header2Style, fontWeight: '600' }, children: fileLabel })] })] })] }) }) })) })), state.isSelfHosted ? ((0, jsx_runtime_1.jsxs)("div", { style: {
262
+ borderRadius: 6,
263
+ padding: 12,
264
+ background: '#f5f5f5',
265
+ marginBottom: 18,
266
+ marginTop: 18,
267
+ fontSize: 14,
268
+ }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { ...header2Style, fontWeight: 600 }, children: "Self-hosted Database Connection" }), (0, jsx_runtime_1.jsx)("div", { style: {
269
+ display: 'flex',
270
+ flexDirection: 'row',
271
+ alignItems: 'center',
272
+ gap: 4,
273
+ color: state.theme?.secondaryTextColor,
274
+ fontFamily: state.theme?.fontFamily,
275
+ }, children: `Using the database credentials passed into the Quill Server SDK at this endpoint: ${state.queryEndpoint}.` })] })) : ((0, jsx_runtime_1.jsxs)("div", { style: {
223
276
  borderRadius: 6,
224
277
  padding: 12,
225
278
  background: '#f5f5f5',
@@ -231,6 +284,8 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
231
284
  flexDirection: 'row',
232
285
  alignItems: 'center',
233
286
  gap: 4,
287
+ color: state.theme?.secondaryTextColor,
288
+ fontFamily: state.theme?.fontFamily,
234
289
  }, children: ["Ensure Quill's IP is allowed to connect to your database", ' ', (0, jsx_runtime_1.jsx)(ExternalLink_1.default, { href: databaseConnectionDetails.type.toLowerCase() === 'bigquery'
235
290
  ? 'https://cloud.google.com/access-context-manager/docs/overview#ip-address'
236
291
  : databaseConnectionDetails.type.toLowerCase() === 'mysql'
@@ -246,18 +301,26 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
246
301
  ? 'https://clickhouse.com/docs/cloud/security/setting-ip-filters/'
247
302
  : 'https://www.postgresql.org/docs/current/auth-pg-hba-conf.html' })] }), (0, jsx_runtime_1.jsx)(ClipboardButton_1.default, { text: "34.133.137.225", containerStyle: {
248
303
  marginTop: 12,
249
- } })] }), (0, jsx_runtime_1.jsx)("div", { style: {
304
+ } })] })), (0, jsx_runtime_1.jsx)("div", { style: {
250
305
  width: '100%',
251
306
  display: 'flex',
252
307
  justifyContent: 'space-between',
253
308
  alignItems: 'center',
254
309
  marginTop: '24px',
255
- }, "data-testid": "quill-connect-button", children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Connect', onClick: testConnectionAndFormClient, disabled: isButtonDisabled, isLoading: isConnecting }) })] })), (0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: !!error, onClose: () => setError(undefined), style: {
310
+ }, "data-testid": "quill-connect-button", children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Connect', onClick: () => {
311
+ if (state.isSelfHosted) {
312
+ getSchemaNames();
313
+ }
314
+ else {
315
+ testConnectionAndFormClient();
316
+ }
317
+ }, disabled: isButtonDisabled && !state.isSelfHosted, isLoading: isConnecting }) })] })), (0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: !!error, onClose: () => setError(undefined), style: {
256
318
  width: 420,
257
319
  }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
258
320
  display: 'flex',
259
321
  flexDirection: 'column',
260
322
  gap: 20,
323
+ fontFamily: state.theme?.fontFamily,
261
324
  width: '100%',
262
325
  }, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: "Failed to Connect" }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 5 }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
263
326
  color: 'red',
@@ -286,6 +349,7 @@ function ConnectDatabase({ containerStyle, header1Style, header2Style, environme
286
349
  flexDirection: 'column',
287
350
  gap: 20,
288
351
  width: '100%',
352
+ fontFamily: state.theme?.fontFamily,
289
353
  }, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: "Connection Successful" }), (0, jsx_runtime_1.jsx)("h2", { style: {
290
354
  fontSize: 15,
291
355
  fontWeight: 500,
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,YAAY,EAEZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,KAAK,EACL,KAAK,EACL,uBAAuB,GACxB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC,2CA0SA"}
1
+ {"version":3,"file":"ConnectSchema.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/ConnectSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,cAAc,EACd,YAAY,EAEZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,KAAK,EACL,KAAK,EACL,uBAAuB,GACxB,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC,2CA4SA"}
@@ -129,7 +129,8 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
129
129
  }, children: [(0, jsx_runtime_1.jsx)("h2", { style: {
130
130
  fontSize: 15,
131
131
  fontWeight: 500,
132
- color: '#6e6e6e',
132
+ color: state.theme?.secondaryTextColor,
133
+ fontFamily: state.theme?.fontFamily,
133
134
  paddingBottom: 20,
134
135
  }, children: `How do you represent your customers in your database?` }), (0, jsx_runtime_1.jsx)(EditTenant_1.EditTenant, { tenant: tenantToEdit, setTenant: (tenant) => setTenantToEdit(tenant), setCreateNewTenant: () => { }, onSubmitEditTenant: onSubmitEditTenant, onValidateEditTenant: onValidateEditTenant, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, ButtonComponent: UiComponents_1.MemoizedButton, isSubmitTenantLoading: isSubmitTenantLoading, client: {
135
136
  id: clientId,
@@ -144,6 +145,7 @@ databaseSchema, connection, tenantInit, onTenantCreation, clientId, selectedSche
144
145
  display: 'flex',
145
146
  flexDirection: 'column',
146
147
  gap: 20,
148
+ fontFamily: state.theme?.fontFamily,
147
149
  width: '100%',
148
150
  }, children: [(0, jsx_runtime_1.jsx)(CardSection_1.default, { children: noTables ? 'Schema Issue' : 'Tenant Issue' }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 5 }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
149
151
  color: 'red',
@@ -1 +1 @@
1
- {"version":3,"file":"CreateVirtualTables.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateVirtualTables.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AACnE,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAY3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,GACb,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;CAClE,2CAoiBA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,2CAqHA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,GACX,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,2CA8EA"}
1
+ {"version":3,"file":"CreateVirtualTables.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateVirtualTables.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AACnE,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAY3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,GACb,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;CAClE,2CAwiBA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,2CA2HA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,GACX,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,2CA8EA"}
@@ -160,7 +160,7 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
160
160
  whiteSpace: 'normal',
161
161
  }, displayBelow: true, children: (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Ask AI', isLoading: askAIButtonLoading, onClick: async () => {
162
162
  setAskAIButtonLoading(true);
163
- const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.queryEndpoint, aiPrompt, client.clientId, getToken, client.schemaNames);
163
+ const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.isSelfHosted, databaseSchema, state.queryEndpoint, aiPrompt, client.clientId, getToken, client.schemaNames, state.queryHeaders);
164
164
  setQueryInfo({ name: queryInfo.name, query: results });
165
165
  setAskAIButtonLoading(false);
166
166
  }, style: { width: '90px' }, disabled: aiPrompt.trim().length > 500 }) })] }), (0, jsx_runtime_1.jsx)("div", { "data-testid": "quill-sql-text-editor", children: (0, jsx_runtime_1.jsx)(SqlTextEditor_1.default, { value: queryInfo.query, setValue: (e) => {
@@ -178,7 +178,7 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
178
178
  height: 70,
179
179
  }, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: 'Run query', isLoading: runQueryButtonLoading, onClick: async () => {
180
180
  setRunQueryButtonLoading(true);
181
- const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(client.clientId, queryInfo.query, environmentDetails.type, state.queryEndpoint, getToken);
181
+ const getSqlResults = await (0, ConnectionClient_1.getVirtualTableData)(client.clientId, queryInfo.query, environmentDetails.type, state.queryEndpoint, getToken, client.queryHeaders);
182
182
  if (!getSqlResults.success) {
183
183
  setErrorInfo({ status: true, msg: getSqlResults.error });
184
184
  }
@@ -315,15 +315,18 @@ function CreateVirtualTables({ containerStyle, header1Style, header2Style, envir
315
315
  }, isLoading: isLoading }) })) : null] })] }), (0, jsx_runtime_1.jsx)(TenantFieldModal, { isOpen: !!failingTenant, setClosed: () => setFailingTenant(undefined), tenant: failingTenant, onOverride: () => addVirtualTable(true) }), (0, jsx_runtime_1.jsx)(VirtualTableModal, { isOpen: virtualTableModalOpen, setIsOpen: setVirtualTableModalOpen, queryInfo: queryInfo, setQueryInfo: setQueryInfo, addVirtualTable: () => addVirtualTable(false) })] }));
316
316
  }
317
317
  function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQueryInfo, addVirtualTable, }) {
318
+ const { state: { theme }, } = (0, AdminProvider_1.useAdmin)();
318
319
  return ((0, jsx_runtime_1.jsx)(primitives_1.ModalPrimitive, { isOpen: isOpen, onClose: () => {
319
320
  setIsOpen(false);
320
321
  }, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', width: '100%' }, children: [(0, jsx_runtime_1.jsx)("h1", { style: {
321
322
  fontSize: 24,
323
+ fontFamily: theme.fontFamily,
322
324
  fontWeight: 600,
323
325
  color: '#212121',
324
326
  paddingBottom: 20,
325
327
  }, children: "Add Virtual Table" }), (0, jsx_runtime_1.jsx)("h3", { style: {
326
328
  fontWeight: '600',
329
+ fontFamily: theme.fontFamily,
327
330
  fontSize: '14px',
328
331
  marginBottom: '6px',
329
332
  color: '#212121',
@@ -333,6 +336,7 @@ function VirtualTableModal({ isOpen, setIsOpen, queryInfo, setQueryInfo, addVirt
333
336
  setQueryInfo({ name: e.target.value, query: queryInfo.query });
334
337
  }, placeholder: "Name..." }), (0, jsx_runtime_1.jsx)("h3", { style: {
335
338
  fontWeight: '600',
339
+ fontFamily: theme.fontFamily,
336
340
  fontSize: '14px',
337
341
  marginBottom: '6px',
338
342
  marginTop: '12px',
@@ -69,6 +69,7 @@ describe('ConnectSchema', () => {
69
69
  const mockGetToken = jest.fn();
70
70
  const mockQuillFetchWithToken = jest.fn();
71
71
  const mockState = {
72
+ isSelfHosted: false,
72
73
  queryEndpoint: 'http://test-endpoint',
73
74
  loading: true,
74
75
  publicKey: 'test-key',
@@ -52,6 +52,7 @@ describe('CreateVirtualTables', () => {
52
52
  const mockGetToken = jest.fn();
53
53
  const mockQuillFetchWithToken = jest.fn();
54
54
  const mockState = {
55
+ isSelfHosted: false,
55
56
  queryEndpoint: 'http://test-endpoint',
56
57
  loading: true,
57
58
  publicKey: 'test-key',
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEditVirtualTable.d.ts","sourceRoot":"","sources":["../../../../src/forms/virtual_tables/CreateEditVirtualTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAOL,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAU,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAO/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,UAAU,2BAA2B;IACnC,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,mBAAmB,EAAE,CACnB,OAAO,EAAE,KAAK,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EAAE,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,GAAG,EAAE,EACf,QAAQ,CAAC,EAAE,OAAO,KACf,IAAI,CAAC;IACV,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,gBAA2C,EAC3C,eAAgC,EAChC,wBAAkD,EAClD,SAA6B,EAC7B,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,CAqgB3C"}
1
+ {"version":3,"file":"CreateEditVirtualTable.d.ts","sourceRoot":"","sources":["../../../../src/forms/virtual_tables/CreateEditVirtualTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAOL,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAU,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAO/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,UAAU,2BAA2B;IACnC,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACxE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,mBAAmB,EAAE,CACnB,OAAO,EAAE,KAAK,GAAG,MAAM,EACvB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EAAE,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,GAAG,EAAE,EACf,QAAQ,CAAC,EAAE,OAAO,KACf,IAAI,CAAC;IACV,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,gBAA2C,EAC3C,eAAgC,EAChC,wBAAkD,EAClD,SAA6B,EAC7B,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,CA+gB3C"}
@@ -38,6 +38,7 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
38
38
  const [tableData, setTableData] = (0, react_2.useState)(undefined);
39
39
  const [runningQuery, setRunningQuery] = (0, react_2.useState)(false);
40
40
  const { state, getToken, quillFetchWithToken } = (0, AdminProvider_1.useAdmin)();
41
+ const containerRef = (0, react_2.useRef)(null);
41
42
  const addEditProcessVirtualTable = async (override = false) => {
42
43
  const failingTenant = virtualTableOwners?.find((field) => tableData &&
43
44
  !tableData.fields.find((col) => col.name === field?.replaceAll('"', '')));
@@ -66,7 +67,7 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
66
67
  setErrorInfo({ show: false, message: '' });
67
68
  setVirtualTableAddable(false);
68
69
  setAskAIButtonLoading(true);
69
- const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.queryEndpoint, aiPrompt, state.client._id, getToken, state.client.schemaNames);
70
+ const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(state.isSelfHosted, allTableData, state.queryEndpoint, aiPrompt, state.client._id, getToken, state.client.schemaNames, state.queryHeaders);
70
71
  setEditVirtualTableQuery(results);
71
72
  setAskAIButtonLoading(false);
72
73
  };
@@ -111,7 +112,7 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
111
112
  return;
112
113
  }
113
114
  setIsLoading(true);
114
- const resp = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, query, state.client.databaseType, state.queryEndpoint, getToken);
115
+ const resp = await (0, ConnectionClient_1.getVirtualTableData)(state.client._id, query, state.client.databaseType, state.queryEndpoint, getToken, state.queryHeaders);
115
116
  if (!resp.success) {
116
117
  setErrorInfo({ show: true, message: resp.error });
117
118
  setTableData(undefined);
@@ -175,13 +176,16 @@ function CreateEditVirtualTable({ containerStyle, initialVirtualTable, closeEdit
175
176
  setIsLoading(false);
176
177
  setRunningQuery(false);
177
178
  };
178
- return ((0, jsx_runtime_1.jsx)("div", { style: {
179
- ...containerStyle,
179
+ return ((0, jsx_runtime_1.jsx)("div", { ref: containerRef, style: {
180
180
  gap: 6,
181
- height: 'calc(100vh - 130px)',
181
+ height: containerRef.current
182
+ ? `calc(100vh - ${containerRef.current.getBoundingClientRect().top ?? 0}px - 80px)`
183
+ : '100%',
184
+ // overflow: 'scroll',
185
+ ...containerStyle,
182
186
  }, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', height: '100%', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(DynamicBanner_1.default, { header: initialVirtualTable
183
187
  ? `Edit "${initialVirtualTable.name}" Virtual Table`
184
- : 'Create Virtual Table', onExit: initialVirtualTable ? undefined : closeEditVirtualTable }), (0, jsx_runtime_1.jsxs)("div", { style: {
188
+ : 'Create Virtual Table', onExit: initialVirtualTable ? undefined : closeEditVirtualTable, theme: state.theme }), (0, jsx_runtime_1.jsxs)("div", { style: {
185
189
  width: '100%',
186
190
  display: 'flex',
187
191
  height: '100%',
@@ -1 +1 @@
1
- {"version":3,"file":"useDatabaseSchema.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDatabaseSchema.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB;;;CAuD7B,CAAC"}
1
+ {"version":3,"file":"useDatabaseSchema.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDatabaseSchema.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB;;;CAgE7B,CAAC"}
@@ -7,12 +7,17 @@ const ConnectionClient_1 = require("../api/ConnectionClient");
7
7
  const useDatabaseSchema = () => {
8
8
  const { state, dispatch, getToken } = (0, AdminProvider_1.useAdmin)();
9
9
  const [isLoading, setIsLoading] = (0, react_1.useState)(state.databaseSchema?.id !== state.client.id);
10
+ const idRef = (0, react_1.useRef)(null);
10
11
  (0, react_1.useEffect)(() => {
11
12
  const fetchSchema = async () => {
12
13
  if ((state.databaseSchema?.schema?.length ||
13
14
  state.databaseSchema?.loading) &&
14
15
  state.databaseSchema?.id === state.client.id)
15
16
  return;
17
+ if (idRef.current === state.client.id) {
18
+ return;
19
+ }
20
+ idRef.current = state.client.id;
16
21
  try {
17
22
  dispatch({
18
23
  type: 'SET_DATABASE_SCHEMA',
@@ -23,7 +28,7 @@ const useDatabaseSchema = () => {
23
28
  },
24
29
  });
25
30
  setIsLoading(true);
26
- const schema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.queryEndpoint, state.client.id, getToken);
31
+ const schema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.isSelfHosted, state.queryEndpoint, state.client.id, state.client.databaseType, getToken, state.client.schemaNames ?? [], state.queryHeaders);
27
32
  dispatch({
28
33
  type: 'SET_DATABASE_SCHEMA',
29
34
  payload: {
@@ -1 +1 @@
1
- {"version":3,"file":"EditEnvironmentModal.d.ts","sourceRoot":"","sources":["../../../src/modals/EditEnvironmentModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,yBAAyB,EACzB,aAAa,EAGd,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAQ3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAsB1E,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,SAAS,EACT,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,wBAAwB,GACzB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC;IACpB,kBAAkB,EACd,yBAAyB,CACvB,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAC1D,GACD,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC9D,eAAe,EAAE,GAAG,CAAC;IACrB,wBAAwB,EAAE,GAAG,CAAC;CAC/B,2CAg4BA"}
1
+ {"version":3,"file":"EditEnvironmentModal.d.ts","sourceRoot":"","sources":["../../../src/modals/EditEnvironmentModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,yBAAyB,EACzB,aAAa,EAGd,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAQ3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAsB1E,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,SAAS,EACT,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,wBAAwB,GACzB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC;IACpB,kBAAkB,EACd,yBAAyB,CACvB,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAC1D,GACD,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC9D,eAAe,EAAE,GAAG,CAAC;IACrB,wBAAwB,EAAE,GAAG,CAAC;CAC/B,2CAy4BA"}
@@ -274,7 +274,7 @@ function EditEnvironmentModal({ isOpen, setIsOpen, onSave, ModalComponent, TextI
274
274
  loading: true,
275
275
  },
276
276
  });
277
- const schema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.queryEndpoint, state.client._id, getToken);
277
+ const schema = await (0, ConnectionClient_1.getTableColumnsBySchema)(state.isSelfHosted, state.queryEndpoint, state.client._id, state.client.databaseType, getToken, state.client.schemaNames ?? [], state.queryHeaders);
278
278
  // If any of the tenants point to a table that no longer exists, throw an error
279
279
  const tenantTables = state.client.allTenantTypes?.filter((t) => t.tenantTable !== undefined);
280
280
  const tables = schema.columnsByTable.map((t) => t.tableName);
@@ -352,6 +352,10 @@ function EditEnvironmentModal({ isOpen, setIsOpen, onSave, ModalComponent, TextI
352
352
  }
353
353
  };
354
354
  const handleDeleteEnvironment = async () => {
355
+ if (state.clients.length === 1) {
356
+ alert('You cannot delete the only environment');
357
+ return;
358
+ }
355
359
  if (confirm('Are you sure? All dashboards in this environment will also be deleted. This action cannot be undone.')) {
356
360
  await quillFetchWithToken({
357
361
  client: {
@@ -371,7 +375,7 @@ function EditEnvironmentModal({ isOpen, setIsOpen, onSave, ModalComponent, TextI
371
375
  payload: state.clients.filter((c) => c._id !== state.client._id),
372
376
  });
373
377
  setSelectedDashboard(null);
374
- setClient(state.clients[0]);
378
+ setClient(state.clients.filter((c) => c._id !== state.client._id)[0]);
375
379
  setIsOpen(false);
376
380
  onSave();
377
381
  }
@@ -413,6 +417,7 @@ function EditEnvironmentModal({ isOpen, setIsOpen, onSave, ModalComponent, TextI
413
417
  // padding: '2px 8px',
414
418
  fontSize: 12,
415
419
  font: 'monospace',
420
+ fontFamily: state.theme.fontFamily,
416
421
  fontWeight: 300,
417
422
  width: 'fit-content',
418
423
  }, children: "Dashboard Owner" })), (0, jsx_runtime_1.jsx)("div", { style: {
@@ -633,7 +633,7 @@ function EditFiltersModal({ isOpen, selectedDashboardName, setIsOpen, onSave, Mo
633
633
  // ) ?? initialRange,
634
634
  selectablePresetOptions.find((option) => option.value === e) ??
635
635
  initialRange);
636
- }, options: selectablePresetOptions, theme: Admin_1.defaultTheme, hideEmptyOption: true })] }) }), (0, jsx_runtime_1.jsx)("div", { style: {
636
+ }, options: selectablePresetOptions, theme: state.theme, hideEmptyOption: true })] }) }), (0, jsx_runtime_1.jsx)("div", { style: {
637
637
  display: 'flex',
638
638
  flexDirection: 'row',
639
639
  gap: '10px',
@@ -674,12 +674,12 @@ function EditFiltersModal({ isOpen, selectedDashboardName, setIsOpen, onSave, Mo
674
674
  }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
675
675
  display: 'flex',
676
676
  flexDirection: 'column',
677
- fontFamily: Admin_1.defaultTheme.fontFamily,
677
+ fontFamily: state.theme.fontFamily,
678
678
  gap: 8,
679
679
  }, children: [(0, jsx_runtime_1.jsx)("h3", { style: {
680
680
  fontSize: 14,
681
681
  fontWeight: 600,
682
- color: Admin_1.defaultTheme.primaryTextColor,
682
+ color: state.theme.primaryTextColor,
683
683
  }, children: "Recurring" }), (0, jsx_runtime_1.jsxs)("div", { style: {
684
684
  display: 'flex',
685
685
  flexDirection: 'row',
@@ -763,7 +763,7 @@ function EditFiltersModal({ isOpen, selectedDashboardName, setIsOpen, onSave, Mo
763
763
  }, width: "78px", number: true, max: 9999, min: 0, step: 1 })] }))] }), (0, jsx_runtime_1.jsx)("h3", { style: {
764
764
  fontSize: 14,
765
765
  fontWeight: 600,
766
- color: Admin_1.defaultTheme.primaryTextColor,
766
+ color: state.theme.primaryTextColor,
767
767
  }, children: "Standard" }), (0, jsx_runtime_1.jsxs)("div", { style: {
768
768
  display: 'flex',
769
769
  flexDirection: 'row',
@@ -873,7 +873,7 @@ function EditFiltersModal({ isOpen, selectedDashboardName, setIsOpen, onSave, Mo
873
873
  ...newDateFilter,
874
874
  presetOptions: updatedOptions,
875
875
  });
876
- }, theme: Admin_1.defaultTheme, hideEmptyOption: true })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
876
+ }, theme: state.theme, hideEmptyOption: true })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
877
877
  display: 'flex',
878
878
  flexDirection: 'column',
879
879
  }, children: [index === 0 && (0, jsx_runtime_1.jsx)(InputLabel_1.default, { children: "Value" }), interval.type === 'week' && ((0, jsx_runtime_1.jsx)("div", { style: { width: 200, visibility: 'hidden' } })), interval.type === 'relative' && ((0, jsx_runtime_1.jsxs)("div", { style: {
@@ -927,7 +927,7 @@ function EditFiltersModal({ isOpen, selectedDashboardName, setIsOpen, onSave, Mo
927
927
  ...newDateFilter,
928
928
  presetOptions: updatedOptions,
929
929
  });
930
- }, theme: Admin_1.defaultTheme, hideEmptyOption: true, style: {
930
+ }, theme: state.theme, hideEmptyOption: true, style: {
931
931
  width: 120,
932
932
  maxWidth: 120,
933
933
  minWidth: 120,
@@ -1271,7 +1271,7 @@ function EditFiltersModal({ isOpen, selectedDashboardName, setIsOpen, onSave, Mo
1271
1271
  alignItems: 'center',
1272
1272
  width: '100%',
1273
1273
  gap: 10,
1274
- }, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { theme: Admin_1.defaultTheme, value: filter && filter.stringFilterType
1274
+ }, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { theme: state.theme, value: filter && filter.stringFilterType
1275
1275
  ? filter.stringFilterType
1276
1276
  : 'default', onChange: (e) => {
1277
1277
  const updatedFilters = newFilters.map((otherFilter, i) => index === i
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/ButtonPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAgB,MAAM,UAAU,CAAC;AAGpD,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAC7B,oBAAoB,GAAG;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAgGF,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ButtonPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/ButtonPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAC7B,oBAAoB,GAAG;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAsGF,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
- const Admin_1 = require("../Admin");
5
4
  const UiComponents_1 = require("../components/UiComponents");
6
- const ButtonPrimitive = ({ onClick, isLoading = false, label, theme = Admin_1.defaultTheme, style, disabled, variant = 'primary', type = 'submit', }) => {
5
+ const AdminProvider_1 = require("../AdminProvider");
6
+ const ButtonPrimitive = ({ onClick, isLoading = false, label, theme, style, disabled, variant = 'primary', type = 'submit', }) => {
7
+ const { state: { theme: stateTheme }, } = (0, AdminProvider_1.useAdmin)();
8
+ theme = theme ?? stateTheme;
7
9
  if (variant === 'danger') {
8
10
  return ((0, jsx_runtime_1.jsx)("button", { type: type, style: {
9
11
  height: 40,
@@ -26,7 +28,6 @@ const ButtonPrimitive = ({ onClick, isLoading = false, label, theme = Admin_1.de
26
28
  }
27
29
  return ((0, jsx_runtime_1.jsxs)("button", { className: disabled ? 'quill-button-disabled' : 'quill-button', type: type, style: {
28
30
  height: 40,
29
- color: theme?.backgroundColor ?? 'white',
30
31
  display: 'flex',
31
32
  borderRadius: 6,
32
33
  alignItems: 'center',
@@ -45,13 +46,16 @@ const ButtonPrimitive = ({ onClick, isLoading = false, label, theme = Admin_1.de
45
46
  ...style,
46
47
  }, onClick: disabled || isLoading ? () => { } : onClick, children: [(0, jsx_runtime_1.jsx)("style", { children: `
47
48
  .quill-button {
48
- background-color: #212121;
49
+ background-color: ${theme?.primaryButtonColor ?? '#212121'};
50
+ color: ${theme?.primaryButtonTextColor ?? 'white'}
49
51
  }
50
52
  .quill-button-disabled {
51
- background-color: rgba(56, 65, 81, 0.9);
53
+ background-color: ${theme?.primaryButtonColor ?? '#212121'};
54
+ color: ${theme?.primaryButtonTextColor ?? 'white'}
52
55
  }
53
56
  .quill-button:hover {
54
- background-color: rgba(56, 65, 81, 0.9);
57
+ background-color: ${theme?.hoverPrimaryButtonColor ?? 'rgba(56, 65, 81, 0.9)'};
58
+ color: ${theme?.hoverPrimaryButtonTextColor ?? 'white'}
55
59
  }` }), isLoading ? ((0, jsx_runtime_1.jsx)("div", { style: { position: 'absolute' }, children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) })) : null, (0, jsx_runtime_1.jsx)("div", { style: {
56
60
  visibility: isLoading ? 'hidden' : 'visible',
57
61
  }, children: label })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/HeaderPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAgB,MAAM,UAAU,CAAC;AAEpD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAcnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"HeaderPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/HeaderPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiBnD,CAAC;AAEF,eAAe,eAAe,CAAC"}