@quillsql/admin 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/{lib → dist}/Admin.d.ts +12 -7
  2. package/dist/Admin.d.ts.map +1 -0
  3. package/dist/Admin.js +1384 -0
  4. package/{lib → dist}/AdminProvider.d.ts +41 -27
  5. package/dist/AdminProvider.d.ts.map +1 -0
  6. package/{lib → dist}/AdminProvider.js +105 -89
  7. package/dist/api/ConnectionClient.d.ts +27 -0
  8. package/dist/api/ConnectionClient.d.ts.map +1 -0
  9. package/dist/api/ConnectionClient.js +247 -0
  10. package/dist/components/Banner/index.d.ts +3 -0
  11. package/dist/components/Banner/index.d.ts.map +1 -0
  12. package/dist/components/Banner/index.js +27 -0
  13. package/dist/components/CardSection.d.ts +3 -0
  14. package/dist/components/CardSection.d.ts.map +1 -0
  15. package/dist/components/CardSection.js +9 -0
  16. package/dist/components/CardTitle.d.ts +3 -0
  17. package/dist/components/CardTitle.d.ts.map +1 -0
  18. package/dist/components/CardTitle.js +11 -0
  19. package/dist/components/DashboardSelectPopover.d.ts +11 -0
  20. package/dist/components/DashboardSelectPopover.d.ts.map +1 -0
  21. package/dist/components/DashboardSelectPopover.js +175 -0
  22. package/dist/components/DatabaseSelector.d.ts +11 -0
  23. package/dist/components/DatabaseSelector.d.ts.map +1 -0
  24. package/dist/components/DatabaseSelector.js +22 -0
  25. package/dist/components/DeleteButton.d.ts +3 -0
  26. package/dist/components/DeleteButton.d.ts.map +1 -0
  27. package/dist/components/DeleteButton.js +10 -0
  28. package/{lib → dist}/components/DropDownMenu.d.ts +1 -0
  29. package/dist/components/DropDownMenu.d.ts.map +1 -0
  30. package/dist/components/DropDownMenu.js +39 -0
  31. package/dist/components/DropDownMenuWithLabel.d.ts +12 -0
  32. package/dist/components/DropDownMenuWithLabel.d.ts.map +1 -0
  33. package/dist/components/DropDownMenuWithLabel.js +47 -0
  34. package/{lib → dist}/components/EnvSelectPopover.d.ts +1 -0
  35. package/dist/components/EnvSelectPopover.d.ts.map +1 -0
  36. package/dist/components/EnvSelectPopover.js +205 -0
  37. package/dist/components/InputLabel.d.ts +3 -0
  38. package/dist/components/InputLabel.d.ts.map +1 -0
  39. package/dist/components/InputLabel.js +10 -0
  40. package/{lib → dist}/components/OrgSelect.d.ts +1 -0
  41. package/dist/components/OrgSelect.d.ts.map +1 -0
  42. package/dist/components/OrgSelect.js +193 -0
  43. package/dist/components/SqlViewTile.d.ts +8 -0
  44. package/dist/components/SqlViewTile.d.ts.map +1 -0
  45. package/dist/components/SqlViewTile.js +40 -0
  46. package/dist/components/StepDisplay.d.ts +10 -0
  47. package/dist/components/StepDisplay.d.ts.map +1 -0
  48. package/dist/components/StepDisplay.js +15 -0
  49. package/dist/components/index.d.ts +6 -0
  50. package/dist/components/index.d.ts.map +1 -0
  51. package/dist/forms/client_onboard/ConnectDatabase.d.ts +11 -0
  52. package/dist/forms/client_onboard/ConnectDatabase.d.ts.map +1 -0
  53. package/dist/forms/client_onboard/ConnectDatabase.js +137 -0
  54. package/dist/forms/client_onboard/ConnectSchema.d.ts +13 -0
  55. package/dist/forms/client_onboard/ConnectSchema.d.ts.map +1 -0
  56. package/dist/forms/client_onboard/ConnectSchema.js +171 -0
  57. package/dist/forms/client_onboard/CreateSqlViews.d.ts +15 -0
  58. package/dist/forms/client_onboard/CreateSqlViews.d.ts.map +1 -0
  59. package/dist/forms/client_onboard/CreateSqlViews.js +202 -0
  60. package/dist/hooks/useItemBeingEdited.d.ts +4 -0
  61. package/dist/hooks/useItemBeingEdited.d.ts.map +1 -0
  62. package/dist/hooks/useItemBeingEdited.js +25 -0
  63. package/{lib → dist}/icons/ArrowDownHeadIcon.d.ts +1 -0
  64. package/dist/icons/ArrowDownHeadIcon.d.ts.map +1 -0
  65. package/dist/icons/ArrowDownHeadIcon.js +3 -0
  66. package/dist/icons/XMarkIcon.d.ts +3 -0
  67. package/dist/icons/XMarkIcon.d.ts.map +1 -0
  68. package/dist/icons/XMarkIcon.js +11 -0
  69. package/dist/icons/index.d.ts +2 -0
  70. package/dist/icons/index.d.ts.map +1 -0
  71. package/dist/index.d.ts +7 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/{lib/index.d.ts → dist/index.js} +1 -0
  74. package/{lib → dist}/modals/EditDashboardsModal.d.ts +1 -0
  75. package/dist/modals/EditDashboardsModal.d.ts.map +1 -0
  76. package/dist/modals/EditDashboardsModal.js +91 -0
  77. package/dist/modals/NewDashboardModal.d.ts +19 -0
  78. package/dist/modals/NewDashboardModal.d.ts.map +1 -0
  79. package/dist/modals/NewDashboardModal.js +276 -0
  80. package/{lib → dist}/modals/PromoteDashModal.d.ts +2 -1
  81. package/dist/modals/PromoteDashModal.d.ts.map +1 -0
  82. package/dist/modals/PromoteDashModal.js +123 -0
  83. package/{lib → dist}/modals/PromoteViewModal.d.ts +1 -0
  84. package/dist/modals/PromoteViewModal.d.ts.map +1 -0
  85. package/{lib → dist}/modals/PromoteViewModal.js +13 -16
  86. package/{lib → dist}/modals/ReorderDashboardModal.d.ts +4 -1
  87. package/dist/modals/ReorderDashboardModal.d.ts.map +1 -0
  88. package/{lib → dist}/modals/ReorderDashboardModal.js +53 -55
  89. package/dist/modals/index.d.ts +5 -0
  90. package/dist/modals/index.d.ts.map +1 -0
  91. package/{lib → dist}/primitives/ButtonPrimitive.d.ts +3 -0
  92. package/dist/primitives/ButtonPrimitive.d.ts.map +1 -0
  93. package/dist/primitives/ButtonPrimitive.js +47 -0
  94. package/{lib → dist}/primitives/HeaderPrimitive.d.ts +1 -0
  95. package/dist/primitives/HeaderPrimitive.d.ts.map +1 -0
  96. package/dist/primitives/HeaderPrimitive.js +9 -0
  97. package/{lib → dist}/primitives/ModalPrimitive.d.ts +3 -1
  98. package/dist/primitives/ModalPrimitive.d.ts.map +1 -0
  99. package/{lib → dist}/primitives/ModalPrimitive.js +9 -11
  100. package/{lib → dist}/primitives/SecondaryButtonPrimitive.d.ts +1 -0
  101. package/dist/primitives/SecondaryButtonPrimitive.d.ts.map +1 -0
  102. package/{lib → dist}/primitives/SecondaryButtonPrimitive.js +5 -8
  103. package/{lib → dist}/primitives/SelectPrimitive.d.ts +1 -0
  104. package/dist/primitives/SelectPrimitive.d.ts.map +1 -0
  105. package/{lib → dist}/primitives/SelectPrimitive.js +8 -11
  106. package/{lib → dist}/primitives/TextInputPrimitive.d.ts +2 -0
  107. package/dist/primitives/TextInputPrimitive.d.ts.map +1 -0
  108. package/dist/primitives/TextInputPrimitive.js +24 -0
  109. package/dist/primitives/TogglePrimitive.d.ts +6 -0
  110. package/dist/primitives/TogglePrimitive.d.ts.map +1 -0
  111. package/dist/primitives/TogglePrimitive.js +45 -0
  112. package/dist/primitives/index.d.ts +7 -0
  113. package/dist/primitives/index.d.ts.map +1 -0
  114. package/dist/public_components/CreateEnvironment.d.ts +6 -0
  115. package/dist/public_components/CreateEnvironment.d.ts.map +1 -0
  116. package/dist/public_components/CreateEnvironment.js +129 -0
  117. package/{lib → dist}/public_components/DashboardBuilder.d.ts +2 -1
  118. package/dist/public_components/DashboardBuilder.d.ts.map +1 -0
  119. package/dist/public_components/DashboardBuilder.js +192 -0
  120. package/{lib → dist}/public_components/DashboardManager.d.ts +2 -1
  121. package/dist/public_components/DashboardManager.d.ts.map +1 -0
  122. package/dist/public_components/DashboardManager.js +308 -0
  123. package/{lib → dist}/public_components/SQLViewManager.d.ts +2 -1
  124. package/dist/public_components/SQLViewManager.d.ts.map +1 -0
  125. package/dist/public_components/SQLViewManager.js +394 -0
  126. package/dist/utils/constants.d.ts +26 -0
  127. package/dist/utils/constants.d.ts.map +1 -0
  128. package/dist/utils/constants.js +13 -0
  129. package/dist/utils/databases.d.ts +34 -0
  130. package/dist/utils/databases.d.ts.map +1 -0
  131. package/dist/utils/databases.js +51 -0
  132. package/dist/utils/delay.d.ts +2 -0
  133. package/dist/utils/delay.d.ts.map +1 -0
  134. package/dist/utils/delay.js +3 -0
  135. package/dist/utils/schema.d.ts +22 -0
  136. package/dist/utils/schema.d.ts.map +1 -0
  137. package/dist/utils/schema.js +1 -0
  138. package/dist/utils/table.d.ts +9 -0
  139. package/dist/utils/table.d.ts.map +1 -0
  140. package/dist/utils/table.js +1 -0
  141. package/package.json +19 -26
  142. package/LICENSE +0 -21
  143. package/README.md +0 -10
  144. package/lib/Admin.js +0 -1573
  145. package/lib/Admin.js.map +0 -1
  146. package/lib/AdminProvider.js.map +0 -1
  147. package/lib/components/DashboardSelectPopover.d.ts +0 -9
  148. package/lib/components/DashboardSelectPopover.js +0 -187
  149. package/lib/components/DashboardSelectPopover.js.map +0 -1
  150. package/lib/components/DropDownMenu.js +0 -43
  151. package/lib/components/DropDownMenu.js.map +0 -1
  152. package/lib/components/EnvSelectPopover.js +0 -190
  153. package/lib/components/EnvSelectPopover.js.map +0 -1
  154. package/lib/components/OrgSelect.js +0 -188
  155. package/lib/components/OrgSelect.js.map +0 -1
  156. package/lib/components/index.js +0 -17
  157. package/lib/components/index.js.map +0 -1
  158. package/lib/icons/ArrowDownHeadIcon.js +0 -6
  159. package/lib/icons/ArrowDownHeadIcon.js.map +0 -1
  160. package/lib/icons/index.js +0 -9
  161. package/lib/icons/index.js.map +0 -1
  162. package/lib/index.js +0 -17
  163. package/lib/index.js.map +0 -1
  164. package/lib/modals/EditDashboardsModal.js +0 -94
  165. package/lib/modals/EditDashboardsModal.js.map +0 -1
  166. package/lib/modals/PromoteDashModal.js +0 -126
  167. package/lib/modals/PromoteDashModal.js.map +0 -1
  168. package/lib/modals/PromoteViewModal.js.map +0 -1
  169. package/lib/modals/ReorderDashboardModal.js.map +0 -1
  170. package/lib/modals/index.js +0 -15
  171. package/lib/modals/index.js.map +0 -1
  172. package/lib/primitives/ButtonPrimitive.js +0 -25
  173. package/lib/primitives/ButtonPrimitive.js.map +0 -1
  174. package/lib/primitives/HeaderPrimitive.js +0 -12
  175. package/lib/primitives/HeaderPrimitive.js.map +0 -1
  176. package/lib/primitives/ModalPrimitive.js.map +0 -1
  177. package/lib/primitives/SecondaryButtonPrimitive.js.map +0 -1
  178. package/lib/primitives/SelectPrimitive.js.map +0 -1
  179. package/lib/primitives/TextInputPrimitive.js +0 -26
  180. package/lib/primitives/TextInputPrimitive.js.map +0 -1
  181. package/lib/primitives/index.js +0 -19
  182. package/lib/primitives/index.js.map +0 -1
  183. package/lib/public_components/DashboardBuilder.js +0 -166
  184. package/lib/public_components/DashboardBuilder.js.map +0 -1
  185. package/lib/public_components/DashboardManager.js +0 -255
  186. package/lib/public_components/DashboardManager.js.map +0 -1
  187. package/lib/public_components/SQLViewManager.js +0 -400
  188. package/lib/public_components/SQLViewManager.js.map +0 -1
  189. /package/{lib/components/index.d.ts → dist/components/index.js} +0 -0
  190. /package/{lib/icons/index.d.ts → dist/icons/index.js} +0 -0
  191. /package/{lib/modals/index.d.ts → dist/modals/index.js} +0 -0
  192. /package/{lib/primitives/index.d.ts → dist/primitives/index.js} +0 -0
@@ -1,5 +1,5 @@
1
- import React, { Dispatch } from "react";
2
- import { QuillTheme } from "./Admin";
1
+ import React, { Dispatch, ReactNode } from 'react';
2
+ import { QuillTheme } from './Admin';
3
3
  interface State {
4
4
  loading: boolean;
5
5
  publicKey: string;
@@ -13,6 +13,7 @@ interface State {
13
13
  organizations: any[];
14
14
  organizationId: any;
15
15
  activeQuery: string;
16
+ activeEditItem: any;
16
17
  tables: any[];
17
18
  schema: any[];
18
19
  activeComponent: string;
@@ -23,77 +24,88 @@ interface State {
23
24
  selectedEditDashboard: any;
24
25
  editDashboardData: any;
25
26
  organizationIdSet: boolean;
27
+ dateFilter: any;
26
28
  navigateToDashboardManager?: () => void;
27
29
  navigateToDashboardBuilder?: () => void;
30
+ domainName?: string;
28
31
  }
29
32
  type Action = {
30
- type: "SET_LOADING";
33
+ type: 'SET_LOADING';
31
34
  payload: boolean;
32
35
  } | {
33
- type: "SET_QUERY_ENDPOINT";
36
+ type: 'SET_QUERY_ENDPOINT';
34
37
  payload: string;
35
38
  } | {
36
- type: "SET_QUERY_HEADERS";
39
+ type: 'SET_QUERY_HEADERS';
37
40
  payload: object;
38
41
  } | {
39
- type: "SET_WITH_CREDENTIALS";
42
+ type: 'SET_WITH_CREDENTIALS';
40
43
  payload: boolean;
41
44
  } | {
42
- type: "SET_CLIENT";
45
+ type: 'SET_CLIENT';
43
46
  payload: any;
44
47
  } | {
45
- type: "SET_CLIENTS";
48
+ type: 'SET_CLIENTS';
46
49
  payload: any[];
47
50
  } | {
48
- type: "SET_ENVIRONMENT";
51
+ type: 'UPDATE_CLIENTS';
52
+ payload: any;
53
+ } | {
54
+ type: 'SET_ENVIRONMENT';
49
55
  payload: string;
50
56
  } | {
51
- type: "SET_ORGANIZATION";
57
+ type: 'SET_ORGANIZATION';
52
58
  payload: any;
53
59
  } | {
54
- type: "SET_ORGANIZATIONS";
60
+ type: 'SET_ORGANIZATIONS';
55
61
  payload: any[];
56
62
  } | {
57
- type: "SET_ORGANIZATION_ID";
63
+ type: 'SET_ORGANIZATION_ID';
58
64
  payload: any;
59
65
  } | {
60
- type: "SET_ACTIVE_QUERY";
66
+ type: 'SET_ACTIVE_QUERY';
61
67
  payload: string;
62
68
  } | {
63
- type: "SET_TABLES";
69
+ type: 'SET_ACTIVE_EDIT_ITEM';
70
+ payload: any;
71
+ } | {
72
+ type: 'SET_TABLES';
64
73
  payload: any[];
65
74
  } | {
66
- type: "SET_SCHEMA";
75
+ type: 'SET_SCHEMA';
67
76
  payload: any[];
68
77
  } | {
69
- type: "SET_ACTIVE_COMPONENT";
78
+ type: 'SET_ACTIVE_COMPONENT';
70
79
  payload: string;
71
80
  } | {
72
- type: "SET_REPORT_ID";
81
+ type: 'SET_REPORT_ID';
73
82
  payload: any;
74
83
  } | {
75
- type: "SET_THEME";
84
+ type: 'SET_THEME';
76
85
  payload: QuillTheme;
77
86
  } | {
78
- type: "SET_DASHBOARDS";
87
+ type: 'SET_DASHBOARDS';
79
88
  payload: any[];
80
89
  } | {
81
- type: "SET_SELECTED_DASHBOARD";
90
+ type: 'SET_SELECTED_DASHBOARD';
91
+ payload: any;
92
+ } | {
93
+ type: 'SET_SELECTED_EDIT_DASHBOARD';
82
94
  payload: any;
83
95
  } | {
84
- type: "SET_SELECTED_EDIT_DASHBOARD";
96
+ type: 'SET_EDIT_DASHBOARD_DATA';
85
97
  payload: any;
86
98
  } | {
87
- type: "SET_EDIT_DASHBOARD_DATA";
99
+ type: 'SET_DATE_FILTER';
88
100
  payload: any;
89
101
  } | {
90
- type: "SET_NAVIGATE_TO_DASHBOARD_MANAGER";
102
+ type: 'SET_NAVIGATE_TO_DASHBOARD_MANAGER';
91
103
  payload: () => void;
92
104
  } | {
93
- type: "SET_NAVIGATE_TO_DASHBOARD_BUILDER";
105
+ type: 'SET_NAVIGATE_TO_DASHBOARD_BUILDER';
94
106
  payload: () => void;
95
107
  } | {
96
- type: "SET_ORGANIZATION_ID_SET";
108
+ type: 'SET_ORGANIZATION_ID_SET';
97
109
  payload: boolean;
98
110
  };
99
111
  declare const useAdmin: () => {
@@ -101,12 +113,14 @@ declare const useAdmin: () => {
101
113
  dispatch: React.Dispatch<Action>;
102
114
  };
103
115
  interface ContextProviderProps {
104
- children: React.ReactNode;
116
+ children: ReactNode;
105
117
  publicKey: string;
106
118
  queryEndpoint?: string;
107
119
  queryHeaders?: object;
108
120
  withCredentials?: boolean;
109
121
  customTheme?: QuillTheme;
122
+ domainName?: string;
110
123
  }
111
- declare function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withCredentials, customTheme, }: ContextProviderProps): import("react/jsx-runtime").JSX.Element;
124
+ declare function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withCredentials, customTheme, domainName, }: ContextProviderProps): import("react/jsx-runtime").JSX.Element;
112
125
  export { AdminProvider, useAdmin };
126
+ //# sourceMappingURL=AdminProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminProvider.d.ts","sourceRoot":"","sources":["../src/AdminProvider.tsx"],"names":[],"mappings":"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"}
@@ -1,85 +1,88 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAdmin = exports.AdminProvider = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const Admin_1 = require("./Admin");
7
- const react_2 = require("@quillsql/react");
8
- const AdminContext = (0, react_1.createContext)(undefined);
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useReducer, createContext, useEffect, useContext, } from 'react';
3
+ import { theme } from './Admin';
4
+ import { QuillProvider } from '@quillsql/react';
5
+ import { QUILL_SERVER } from './utils/constants';
6
+ const AdminContext = createContext(undefined);
9
7
  function reducer(state, action) {
10
8
  switch (action.type) {
11
- case "SET_LOADING":
9
+ case 'SET_LOADING':
12
10
  return { ...state, loading: action.payload };
13
- case "SET_QUERY_ENDPOINT":
11
+ case 'SET_QUERY_ENDPOINT':
14
12
  return { ...state, queryEndpoint: action.payload };
15
- case "SET_QUERY_HEADERS":
13
+ case 'SET_QUERY_HEADERS':
16
14
  return { ...state, queryHeaders: action.payload };
17
- case "SET_WITH_CREDENTIALS":
15
+ case 'SET_WITH_CREDENTIALS':
18
16
  return { ...state, withCredentials: action.payload };
19
- case "SET_CLIENT":
17
+ case 'SET_CLIENT':
20
18
  return { ...state, client: action.payload };
21
- case "SET_CLIENTS":
19
+ case 'SET_CLIENTS':
22
20
  return { ...state, clients: action.payload };
23
- case "SET_ENVIRONMENT":
21
+ case 'UPDATE_CLIENTS':
22
+ return { ...state, clients: [...state.clients, action.payload] };
23
+ case 'SET_ENVIRONMENT':
24
24
  return { ...state, environment: action.payload };
25
- case "SET_ORGANIZATION":
25
+ case 'SET_ORGANIZATION':
26
26
  return { ...state, organization: action.payload };
27
- case "SET_ORGANIZATIONS":
27
+ case 'SET_ORGANIZATIONS':
28
28
  return { ...state, organizations: action.payload };
29
- case "SET_ORGANIZATION_ID":
29
+ case 'SET_ORGANIZATION_ID':
30
30
  return { ...state, organizationId: action.payload };
31
- case "SET_ACTIVE_QUERY":
31
+ case 'SET_ACTIVE_QUERY':
32
32
  return { ...state, activeQuery: action.payload };
33
- case "SET_TABLES":
33
+ case 'SET_ACTIVE_EDIT_ITEM':
34
+ return { ...state, activeEditItem: action.payload };
35
+ case 'SET_TABLES':
34
36
  return { ...state, tables: action.payload };
35
- case "SET_SCHEMA":
37
+ case 'SET_SCHEMA':
36
38
  return { ...state, schema: action.payload };
37
- case "SET_ACTIVE_COMPONENT":
39
+ case 'SET_ACTIVE_COMPONENT':
38
40
  return { ...state, activeComponent: action.payload };
39
- case "SET_REPORT_ID":
41
+ case 'SET_REPORT_ID':
40
42
  return { ...state, reportId: action.payload };
41
- case "SET_THEME":
43
+ case 'SET_THEME':
42
44
  return { ...state, theme: action.payload };
43
- case "SET_DASHBOARDS":
45
+ case 'SET_DASHBOARDS':
44
46
  return { ...state, dashboards: action.payload };
45
- case "SET_SELECTED_DASHBOARD":
47
+ case 'SET_SELECTED_DASHBOARD':
46
48
  return { ...state, selectedDashboard: action.payload };
47
- case "SET_SELECTED_EDIT_DASHBOARD":
49
+ case 'SET_SELECTED_EDIT_DASHBOARD':
48
50
  return { ...state, selectedEditDashboard: action.payload };
49
- case "SET_EDIT_DASHBOARD_DATA":
51
+ case 'SET_EDIT_DASHBOARD_DATA':
50
52
  return { ...state, editDashboardData: action.payload };
51
- case "SET_NAVIGATE_TO_DASHBOARD_MANAGER":
53
+ case 'SET_DATE_FILTER':
54
+ return { ...state, dateFilter: action.payload };
55
+ case 'SET_NAVIGATE_TO_DASHBOARD_MANAGER':
52
56
  return { ...state, navigateToDashboardManager: action.payload };
53
- case "SET_NAVIGATE_TO_DASHBOARD_BUILDER":
57
+ case 'SET_NAVIGATE_TO_DASHBOARD_BUILDER':
54
58
  return { ...state, navigateToDashboardBuilder: action.payload };
55
- case "SET_ORGANIZATION_ID_SET":
59
+ case 'SET_ORGANIZATION_ID_SET':
56
60
  return { ...state, organizationIdSet: action.payload };
57
61
  default:
58
62
  return state;
59
63
  }
60
64
  }
61
65
  const useAdmin = () => {
62
- const context = (0, react_1.useContext)(AdminContext);
66
+ const context = useContext(AdminContext);
63
67
  if (context === undefined) {
64
- throw new Error("useAdmin must be used within an AdminProvider");
68
+ throw new Error('useAdmin must be used within an AdminProvider');
65
69
  }
66
70
  return context;
67
71
  };
68
- exports.useAdmin = useAdmin;
69
- function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withCredentials, customTheme, }) {
72
+ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withCredentials, customTheme, domainName, }) {
70
73
  const loadState = () => {
71
74
  try {
72
- const serializedState = sessionStorage.getItem("adminState");
75
+ const serializedState = sessionStorage.getItem('adminState');
73
76
  if (serializedState === null) {
74
77
  return {};
75
78
  }
76
79
  const savedState = JSON.parse(serializedState);
77
80
  if (savedState?.publicKey != publicKey) {
78
- sessionStorage.removeItem("adminState");
81
+ sessionStorage.removeItem('adminState');
79
82
  return {};
80
83
  }
81
84
  return {
82
- activeComponent: savedState.activeComponent || "Dashboards",
85
+ activeComponent: savedState.activeComponent || 'Dashboards',
83
86
  selectedDashboard: savedState.selectedDashboard || null,
84
87
  organizationId: savedState.organizationId || null,
85
88
  organizationIdSet: savedState.organizationIdSet || false,
@@ -100,25 +103,28 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
100
103
  withCredentials,
101
104
  client: null,
102
105
  clients: [],
103
- environment: "PRODUCTION",
106
+ environment: 'PRODUCTION',
104
107
  organization: null,
105
108
  organizations: [],
106
109
  organizationId: null,
107
- activeQuery: "",
110
+ activeQuery: '',
111
+ activeEditItem: null,
108
112
  tables: [],
109
113
  schema: [],
110
- activeComponent: "Dashboards",
114
+ activeComponent: 'Dashboards',
111
115
  dashboards: [],
112
116
  selectedDashboard: null,
113
117
  selectedEditDashboard: null,
114
118
  editDashboardData: null,
115
119
  reportId: null,
116
- theme: customTheme || Admin_1.theme,
120
+ theme: customTheme || theme,
117
121
  organizationIdSet: false,
122
+ dateFilter: {},
123
+ domainName: domainName || '',
118
124
  ...loadState(),
119
125
  };
120
- const [state, dispatch] = (0, react_1.useReducer)(reducer, initialState);
121
- (0, react_1.useEffect)(() => {
126
+ const [state, dispatch] = useReducer(reducer, initialState);
127
+ useEffect(() => {
122
128
  try {
123
129
  const stateToSave = {
124
130
  activeComponent: state.activeComponent,
@@ -129,12 +135,13 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
129
135
  organization: state.organization,
130
136
  publicKey: state.publicKey,
131
137
  client: state.client,
138
+ domainName: state.domainName,
132
139
  };
133
140
  const serializedState = JSON.stringify(stateToSave);
134
- sessionStorage.setItem("adminState", serializedState);
141
+ sessionStorage.setItem('adminState', serializedState);
135
142
  }
136
143
  catch {
137
- console.warn("Error writing state to session storage");
144
+ console.warn('Error writing state to session storage');
138
145
  }
139
146
  }, [
140
147
  state.activeComponent,
@@ -145,62 +152,63 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
145
152
  state.organizations,
146
153
  state.organization,
147
154
  state.publicKey,
155
+ state.domainName,
148
156
  ]);
149
- (0, react_1.useEffect)(() => {
157
+ useEffect(() => {
150
158
  async function fetchClient(publicKey) {
151
159
  if (!publicKey) {
152
160
  return;
153
161
  }
154
162
  try {
155
- const response = await fetch(`https://quill-344421.uc.r.appspot.com/client/${publicKey}/`, {
156
- method: "GET",
163
+ const response = await fetch(`${QUILL_SERVER}/client/${publicKey}/`, {
164
+ method: 'GET',
157
165
  headers: { Authorization: `Bearer ` },
158
166
  });
159
167
  const data = await response.json();
160
168
  if (!state.client) {
161
- dispatch({ type: "SET_CLIENT", payload: data.client });
169
+ dispatch({ type: 'SET_CLIENT', payload: data.client });
162
170
  }
163
171
  }
164
172
  catch (error) {
165
- console.error("ERROR:", error);
173
+ console.error('ERROR:', error);
166
174
  }
167
175
  }
168
176
  fetchClient(publicKey);
169
177
  }, [publicKey]);
170
- (0, react_1.useEffect)(() => {
178
+ useEffect(() => {
171
179
  async function fetchSchemaAndTables(clientId) {
172
180
  if (!clientId) {
173
181
  return;
174
182
  }
175
183
  try {
176
- const response = await fetch(`https://quill-344421.uc.r.appspot.com/schema2/${clientId}/`, {
177
- method: "GET",
184
+ const response = await fetch(`${QUILL_SERVER}/schema2/${clientId}/`, {
185
+ method: 'GET',
178
186
  headers: { Authorization: `Bearer ` },
179
187
  });
180
188
  if (!response.ok) {
181
- throw new Error("Failed to fetch tables data");
189
+ throw new Error('Failed to fetch tables data');
182
190
  }
183
191
  const data = await response.json();
184
- dispatch({ type: "SET_TABLES", payload: data.tables });
185
- dispatch({ type: "SET_SCHEMA", payload: data.tables });
192
+ dispatch({ type: 'SET_TABLES', payload: data.tables });
193
+ dispatch({ type: 'SET_SCHEMA', payload: data.tables });
186
194
  }
187
195
  catch (error) {
188
- console.error("ERROR:", error);
196
+ console.error('ERROR:', error);
189
197
  }
190
198
  }
191
199
  if (state.client?._id) {
192
200
  fetchSchemaAndTables(state.client._id);
193
201
  }
194
202
  }, [state?.client, publicKey]);
195
- (0, react_1.useEffect)(() => {
196
- if (publicKey === "" || publicKey === undefined || publicKey === null) {
197
- throw new Error("publicKey is required");
203
+ useEffect(() => {
204
+ if (publicKey === '' || publicKey === undefined || publicKey === null) {
205
+ throw new Error('publicKey is required');
198
206
  }
199
207
  const getClients = async () => {
200
208
  try {
201
- const url = `https://quill-344421.uc.r.appspot.com/clients/${publicKey}/`;
209
+ const url = `${QUILL_SERVER}/clients/${publicKey}/`;
202
210
  const response = await fetch(url, {
203
- method: "GET",
211
+ method: 'GET',
204
212
  headers: {
205
213
  Authorization: `Bearer `,
206
214
  },
@@ -209,19 +217,19 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
209
217
  throw new Error(`HTTP error! status: ${response.status}`);
210
218
  }
211
219
  const data = await response.json();
212
- dispatch({ type: "SET_CLIENTS", payload: data });
220
+ dispatch({ type: 'SET_CLIENTS', payload: data });
213
221
  }
214
222
  catch (error) {
215
- console.error("Error fetching clients:", error);
223
+ console.error('Error fetching clients:', error);
216
224
  }
217
225
  };
218
226
  getClients();
219
227
  }, [publicKey]);
220
- (0, react_1.useEffect)(() => {
228
+ useEffect(() => {
221
229
  let isSubscribed = true;
222
230
  async function getCustomers() {
223
231
  const requestOptions = {
224
- method: "GET",
232
+ method: 'GET',
225
233
  headers: {
226
234
  Authorization: `Bearer `,
227
235
  ...(state.environment && { environment: state.environment }),
@@ -231,46 +239,57 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
231
239
  let response;
232
240
  if (state.queryEndpoint) {
233
241
  response = await fetch(state.queryEndpoint, {
234
- method: "POST",
242
+ method: 'POST',
235
243
  headers: {
236
244
  ...state.queryHeaders,
237
- "Content-Type": "application/json",
245
+ 'Content-Type': 'application/json',
238
246
  },
239
247
  body: JSON.stringify({
240
- metadata: { clientId: state.client._id, task: "orgs" },
248
+ metadata: { clientId: state.client._id, task: 'orgs' },
241
249
  }),
242
- credentials: state.withCredentials ? "include" : "omit", // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
250
+ credentials: state.withCredentials ? 'include' : 'omit', // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
243
251
  });
244
252
  }
245
253
  else {
246
- response = await fetch(`https://quill-344421.uc.r.appspot.com/orgs/${state.client._id}/`, requestOptions);
254
+ response = await fetch(`${QUILL_SERVER}/orgs/${state.client._id}/`, requestOptions);
247
255
  if (!response.ok) {
248
256
  throw new Error(`HTTP error! status: ${response.status}`);
249
257
  }
250
258
  }
251
259
  const data = await response.json();
252
- dispatch({
253
- type: "SET_ORGANIZATIONS",
254
- payload: [...data.orgs, { id: "", name: "All Organizations" }],
255
- });
260
+ if (data.status === 'error') {
261
+ throw new Error(data.error);
262
+ }
263
+ if (state.queryEndpoint) {
264
+ dispatch({
265
+ type: 'SET_ORGANIZATIONS',
266
+ payload: [...data.data.rows, { id: '', name: 'All Organizations' }],
267
+ });
268
+ }
269
+ else {
270
+ dispatch({
271
+ type: 'SET_ORGANIZATIONS',
272
+ payload: [...data.orgs, { id: '', name: 'All Organizations' }],
273
+ });
274
+ }
256
275
  if (!state.organizationIdSet) {
257
- if (state.environment === "STAGING") {
276
+ if (state.environment === 'STAGING') {
258
277
  dispatch({
259
- type: "SET_ORGANIZATION_ID",
278
+ type: 'SET_ORGANIZATION_ID',
260
279
  payload: state.client.stagingAdminCustomerId,
261
280
  });
262
281
  }
263
282
  else {
264
283
  dispatch({
265
- type: "SET_ORGANIZATION_ID",
284
+ type: 'SET_ORGANIZATION_ID',
266
285
  payload: state.client.adminCustomerId,
267
286
  });
268
287
  }
269
- dispatch({ type: "SET_ORGANIZATION_ID_SET", payload: true });
288
+ dispatch({ type: 'SET_ORGANIZATION_ID_SET', payload: true });
270
289
  }
271
290
  }
272
291
  catch (error) {
273
- console.error("Error fetching data:", error);
292
+ console.error('Error fetching data:', error);
274
293
  }
275
294
  }
276
295
  if (isSubscribed && state.client) {
@@ -280,20 +299,17 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
280
299
  isSubscribed = false;
281
300
  };
282
301
  }, [state.environment, state.client, state.organizationId, publicKey]);
283
- (0, react_1.useEffect)(() => {
302
+ useEffect(() => {
284
303
  if (state.client &&
285
304
  state.clients &&
286
305
  state.organizations &&
287
306
  state.organizationIdSet) {
288
- dispatch({ type: "SET_LOADING", payload: false });
307
+ dispatch({ type: 'SET_LOADING', payload: false });
289
308
  }
290
309
  else {
291
- dispatch({ type: "SET_LOADING", payload: true });
310
+ dispatch({ type: 'SET_LOADING', payload: true });
292
311
  }
293
312
  }, [state.client, state.clients, state.organizations, state.organizationId]);
294
- return ((0, jsx_runtime_1.jsx)(AdminContext.Provider, { value: { state, dispatch }, children: !state.loading && (
295
- // @ts-ignore
296
- (0, jsx_runtime_1.jsx)(react_2.QuillProvider, { organizationId: state.organizationId, queryEndpoint: state.queryEndpoint, withCredentials: state.withCredentials, queryHeaders: state.queryHeaders, publicKey: state.client._id, environment: state.environment, theme: state.theme, children: children })) }));
313
+ return (_jsx(AdminContext.Provider, { value: { state, dispatch }, children: !state.loading && (_jsx(QuillProvider, { organizationId: state.organizationId, queryEndpoint: state.queryEndpoint ?? '', withCredentials: state.withCredentials, queryHeaders: state.queryHeaders ?? {}, publicKey: state.client._id, environment: state.environment, theme: state.theme, children: children })) }));
297
314
  }
298
- exports.AdminProvider = AdminProvider;
299
- //# sourceMappingURL=AdminProvider.js.map
315
+ export { AdminProvider, useAdmin };
@@ -0,0 +1,27 @@
1
+ import { ConnectionError, ConnectionType } from '../utils/databases';
2
+ import { SchemaDetails } from '../utils/schema';
3
+ import { ColumnsByTable } from '../utils/table';
4
+ export declare function testConnectionString(connectionString: string): Promise<any>;
5
+ export declare function getSchemaTableInfo(connectionString: string, schema: string): Promise<SchemaDetails | ConnectionError>;
6
+ export declare function getTablesBySchema(connectionString: string, schema: string): Promise<string[] | undefined>;
7
+ export declare function getTableInfo(connectionString: string, schema: string, table: string): Promise<SchemaDetails>;
8
+ export declare function getOrgInfo(connectionString: string, schema: string, table: string, orgIdColumn: string, orgColumn: string): Promise<{
9
+ name: string;
10
+ id: any;
11
+ }[]>;
12
+ export declare function getFKInfo(connectionString: string, schema: string, table: string, primaryKey: string): Promise<string[]>;
13
+ export declare function getTableSchema(connectionString: string, tables: string[]): Promise<ColumnsByTable[]>;
14
+ export declare function getSQLViews(tableSchemas: any, customerNameField: string): Promise<any>;
15
+ export declare function getSqlViewData(connectionString: string, query: string): Promise<any>;
16
+ export declare function getQueryFromAI(aiPrompt: string, columnsByTable: ColumnsByTable[]): Promise<string>;
17
+ export declare function addEnvironment(connectionType: ConnectionType, allSchemaInfo: SchemaDetails, columnsByTable: ColumnsByTable[], viewInfo: {
18
+ name: string;
19
+ query: string;
20
+ }, client: any, domainName: string | undefined, tableData: {
21
+ rows: object[];
22
+ columns: {
23
+ label: string;
24
+ field: string;
25
+ }[];
26
+ } | undefined, currentTableNames: string[], override?: boolean): Promise<any>;
27
+ //# sourceMappingURL=ConnectionClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionClient.d.ts","sourceRoot":"","sources":["../../src/api/ConnectionClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wBAAsB,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,gBAclE;AAED,wBAAsB,kBAAkB,CACtC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,eAAe,CAAC,CAe1C;AACD,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAe/B;AAED,wBAAsB,YAAY,CAChC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,wBAAsB,UAAU,CAC9B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,GAAG,CAAA;CAAE,EAAE,CAAC,CAkBtC;AAED,wBAAsB,SAAS,CAC7B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAED,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,cAAc,EAAE,CAAC,CAe3B;AAED,wBAAsB,WAAW,CAC/B,YAAY,EAAE,GAAG,EACjB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,GAAG,CAAC,CAqBd;AAED,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC,CAed;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,EAAE,GAC/B,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,cAAc,CAClC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAAE,EAChC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACzC,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EACL;IACE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;CACL,GACD,SAAS,EACb,iBAAiB,EAAE,MAAM,EAAE,EAC3B,QAAQ,UAAQ,GACf,OAAO,CAAC,GAAG,CAAC,CAmFd"}