@quillsql/admin 1.3.0 → 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 -90
  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,26 +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)(() => {
122
- console.log("Saving state to session storage");
126
+ const [state, dispatch] = useReducer(reducer, initialState);
127
+ useEffect(() => {
123
128
  try {
124
129
  const stateToSave = {
125
130
  activeComponent: state.activeComponent,
@@ -130,12 +135,13 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
130
135
  organization: state.organization,
131
136
  publicKey: state.publicKey,
132
137
  client: state.client,
138
+ domainName: state.domainName,
133
139
  };
134
140
  const serializedState = JSON.stringify(stateToSave);
135
- sessionStorage.setItem("adminState", serializedState);
141
+ sessionStorage.setItem('adminState', serializedState);
136
142
  }
137
143
  catch {
138
- console.warn("Error writing state to session storage");
144
+ console.warn('Error writing state to session storage');
139
145
  }
140
146
  }, [
141
147
  state.activeComponent,
@@ -146,62 +152,63 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
146
152
  state.organizations,
147
153
  state.organization,
148
154
  state.publicKey,
155
+ state.domainName,
149
156
  ]);
150
- (0, react_1.useEffect)(() => {
157
+ useEffect(() => {
151
158
  async function fetchClient(publicKey) {
152
159
  if (!publicKey) {
153
160
  return;
154
161
  }
155
162
  try {
156
- const response = await fetch(`https://quill-344421.uc.r.appspot.com/client/${publicKey}/`, {
157
- method: "GET",
163
+ const response = await fetch(`${QUILL_SERVER}/client/${publicKey}/`, {
164
+ method: 'GET',
158
165
  headers: { Authorization: `Bearer ` },
159
166
  });
160
167
  const data = await response.json();
161
168
  if (!state.client) {
162
- dispatch({ type: "SET_CLIENT", payload: data.client });
169
+ dispatch({ type: 'SET_CLIENT', payload: data.client });
163
170
  }
164
171
  }
165
172
  catch (error) {
166
- console.error("ERROR:", error);
173
+ console.error('ERROR:', error);
167
174
  }
168
175
  }
169
176
  fetchClient(publicKey);
170
177
  }, [publicKey]);
171
- (0, react_1.useEffect)(() => {
178
+ useEffect(() => {
172
179
  async function fetchSchemaAndTables(clientId) {
173
180
  if (!clientId) {
174
181
  return;
175
182
  }
176
183
  try {
177
- const response = await fetch(`https://quill-344421.uc.r.appspot.com/schema2/${clientId}/`, {
178
- method: "GET",
184
+ const response = await fetch(`${QUILL_SERVER}/schema2/${clientId}/`, {
185
+ method: 'GET',
179
186
  headers: { Authorization: `Bearer ` },
180
187
  });
181
188
  if (!response.ok) {
182
- throw new Error("Failed to fetch tables data");
189
+ throw new Error('Failed to fetch tables data');
183
190
  }
184
191
  const data = await response.json();
185
- dispatch({ type: "SET_TABLES", payload: data.tables });
186
- dispatch({ type: "SET_SCHEMA", payload: data.tables });
192
+ dispatch({ type: 'SET_TABLES', payload: data.tables });
193
+ dispatch({ type: 'SET_SCHEMA', payload: data.tables });
187
194
  }
188
195
  catch (error) {
189
- console.error("ERROR:", error);
196
+ console.error('ERROR:', error);
190
197
  }
191
198
  }
192
199
  if (state.client?._id) {
193
200
  fetchSchemaAndTables(state.client._id);
194
201
  }
195
202
  }, [state?.client, publicKey]);
196
- (0, react_1.useEffect)(() => {
197
- if (publicKey === "" || publicKey === undefined || publicKey === null) {
198
- throw new Error("publicKey is required");
203
+ useEffect(() => {
204
+ if (publicKey === '' || publicKey === undefined || publicKey === null) {
205
+ throw new Error('publicKey is required');
199
206
  }
200
207
  const getClients = async () => {
201
208
  try {
202
- const url = `https://quill-344421.uc.r.appspot.com/clients/${publicKey}/`;
209
+ const url = `${QUILL_SERVER}/clients/${publicKey}/`;
203
210
  const response = await fetch(url, {
204
- method: "GET",
211
+ method: 'GET',
205
212
  headers: {
206
213
  Authorization: `Bearer `,
207
214
  },
@@ -210,19 +217,19 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
210
217
  throw new Error(`HTTP error! status: ${response.status}`);
211
218
  }
212
219
  const data = await response.json();
213
- dispatch({ type: "SET_CLIENTS", payload: data });
220
+ dispatch({ type: 'SET_CLIENTS', payload: data });
214
221
  }
215
222
  catch (error) {
216
- console.error("Error fetching clients:", error);
223
+ console.error('Error fetching clients:', error);
217
224
  }
218
225
  };
219
226
  getClients();
220
227
  }, [publicKey]);
221
- (0, react_1.useEffect)(() => {
228
+ useEffect(() => {
222
229
  let isSubscribed = true;
223
230
  async function getCustomers() {
224
231
  const requestOptions = {
225
- method: "GET",
232
+ method: 'GET',
226
233
  headers: {
227
234
  Authorization: `Bearer `,
228
235
  ...(state.environment && { environment: state.environment }),
@@ -232,46 +239,57 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
232
239
  let response;
233
240
  if (state.queryEndpoint) {
234
241
  response = await fetch(state.queryEndpoint, {
235
- method: "POST",
242
+ method: 'POST',
236
243
  headers: {
237
244
  ...state.queryHeaders,
238
- "Content-Type": "application/json",
245
+ 'Content-Type': 'application/json',
239
246
  },
240
247
  body: JSON.stringify({
241
- metadata: { clientId: state.client._id, task: "orgs" },
248
+ metadata: { clientId: state.client._id, task: 'orgs' },
242
249
  }),
243
- 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'.
244
251
  });
245
252
  }
246
253
  else {
247
- 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);
248
255
  if (!response.ok) {
249
256
  throw new Error(`HTTP error! status: ${response.status}`);
250
257
  }
251
258
  }
252
259
  const data = await response.json();
253
- dispatch({
254
- type: "SET_ORGANIZATIONS",
255
- payload: [...data.orgs, { id: "", name: "All Organizations" }],
256
- });
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
+ }
257
275
  if (!state.organizationIdSet) {
258
- if (state.environment === "STAGING") {
276
+ if (state.environment === 'STAGING') {
259
277
  dispatch({
260
- type: "SET_ORGANIZATION_ID",
278
+ type: 'SET_ORGANIZATION_ID',
261
279
  payload: state.client.stagingAdminCustomerId,
262
280
  });
263
281
  }
264
282
  else {
265
283
  dispatch({
266
- type: "SET_ORGANIZATION_ID",
284
+ type: 'SET_ORGANIZATION_ID',
267
285
  payload: state.client.adminCustomerId,
268
286
  });
269
287
  }
270
- dispatch({ type: "SET_ORGANIZATION_ID_SET", payload: true });
288
+ dispatch({ type: 'SET_ORGANIZATION_ID_SET', payload: true });
271
289
  }
272
290
  }
273
291
  catch (error) {
274
- console.error("Error fetching data:", error);
292
+ console.error('Error fetching data:', error);
275
293
  }
276
294
  }
277
295
  if (isSubscribed && state.client) {
@@ -281,20 +299,17 @@ function AdminProvider({ children, publicKey, queryEndpoint, queryHeaders, withC
281
299
  isSubscribed = false;
282
300
  };
283
301
  }, [state.environment, state.client, state.organizationId, publicKey]);
284
- (0, react_1.useEffect)(() => {
302
+ useEffect(() => {
285
303
  if (state.client &&
286
304
  state.clients &&
287
305
  state.organizations &&
288
306
  state.organizationIdSet) {
289
- dispatch({ type: "SET_LOADING", payload: false });
307
+ dispatch({ type: 'SET_LOADING', payload: false });
290
308
  }
291
309
  else {
292
- dispatch({ type: "SET_LOADING", payload: true });
310
+ dispatch({ type: 'SET_LOADING', payload: true });
293
311
  }
294
312
  }, [state.client, state.clients, state.organizations, state.organizationId]);
295
- return ((0, jsx_runtime_1.jsx)(AdminContext.Provider, { value: { state, dispatch }, children: !state.loading && (
296
- // @ts-ignore
297
- (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 })) }));
298
314
  }
299
- exports.AdminProvider = AdminProvider;
300
- //# 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"}