@quillsql/admin 1.5.2 → 1.6.1

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 (219) hide show
  1. package/dist/cjs/Admin.d.ts +19 -72
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +215 -996
  4. package/dist/cjs/AdminProvider.d.ts +2 -12
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +27 -32
  7. package/dist/cjs/api/ConnectionClient.d.ts +19 -0
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +108 -13
  10. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  11. package/dist/cjs/components/DashboardSelectPopover.js +20 -3
  12. package/dist/cjs/components/DropDownMenu.js +1 -1
  13. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  14. package/dist/cjs/components/DropDownMenuWithLabel.js +18 -87
  15. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  16. package/dist/cjs/components/EmptyDashboardComponent/index.js +11 -9
  17. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  18. package/dist/cjs/components/OrgSelect.js +10 -20
  19. package/dist/cjs/components/QuillSelect.d.ts +3 -0
  20. package/dist/cjs/components/QuillSelect.d.ts.map +1 -0
  21. package/dist/cjs/components/QuillSelect.js +137 -0
  22. package/dist/cjs/components/SegmentedControl.d.ts +9 -0
  23. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -0
  24. package/dist/cjs/components/SegmentedControl.js +60 -0
  25. package/dist/cjs/components/SqlTextEditor.d.ts +9 -1
  26. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  27. package/dist/cjs/components/SqlTextEditor.js +60 -12
  28. package/dist/cjs/components/UiComponents.d.ts +18 -30
  29. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  30. package/dist/cjs/components/UiComponents.js +48 -84
  31. package/dist/cjs/constants/dataTypes.d.ts +2 -0
  32. package/dist/cjs/constants/dataTypes.d.ts.map +1 -0
  33. package/dist/cjs/constants/dataTypes.js +21 -0
  34. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  35. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +9 -17
  36. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +2 -1
  37. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  38. package/dist/cjs/forms/client_onboard/ConnectSchema.js +143 -68
  39. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  40. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +57 -15
  41. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +11 -5
  42. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  43. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +107 -53
  44. package/dist/cjs/hooks/useOnClickOutside.d.ts +3 -0
  45. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -0
  46. package/dist/cjs/hooks/useOnClickOutside.js +20 -0
  47. package/dist/cjs/modals/EditFiltersModal.d.ts +17 -0
  48. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -0
  49. package/dist/cjs/modals/EditFiltersModal.js +355 -0
  50. package/dist/cjs/modals/NewDashboardModal.d.ts +1 -3
  51. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  52. package/dist/cjs/modals/NewDashboardModal.js +64 -47
  53. package/dist/cjs/modals/PromoteDashModal.d.ts.map +1 -1
  54. package/dist/cjs/modals/PromoteDashModal.js +11 -4
  55. package/dist/cjs/modals/PromoteViewModal.d.ts +2 -1
  56. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  57. package/dist/cjs/modals/PromoteViewModal.js +46 -36
  58. package/dist/cjs/modals/ReorderDashboardModal.d.ts.map +1 -1
  59. package/dist/cjs/modals/ReorderDashboardModal.js +42 -45
  60. package/dist/cjs/modals/index.d.ts +0 -1
  61. package/dist/cjs/modals/index.d.ts.map +1 -1
  62. package/dist/cjs/modals/index.js +1 -3
  63. package/dist/cjs/primitives/ButtonPrimitive.d.ts +3 -1
  64. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  65. package/dist/cjs/primitives/ButtonPrimitive.js +5 -3
  66. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -0
  67. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  68. package/dist/cjs/primitives/TextInputPrimitive.js +35 -20
  69. package/dist/cjs/primitives/TogglePrimitive.js +5 -5
  70. package/dist/cjs/public_components/CreateEnvironment.d.ts +2 -1
  71. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  72. package/dist/cjs/public_components/CreateEnvironment.js +5 -2
  73. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  74. package/dist/cjs/public_components/DashboardBuilder.js +71 -125
  75. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  76. package/dist/cjs/public_components/DashboardManager.js +109 -146
  77. package/dist/cjs/public_components/SQLViewManager.d.ts +1 -0
  78. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  79. package/dist/cjs/public_components/SQLViewManager.js +271 -46
  80. package/dist/cjs/utils/astProcessing.d.ts +2 -0
  81. package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
  82. package/dist/cjs/utils/astProcessing.js +41 -0
  83. package/dist/cjs/utils/astProcessing.uspec.d.ts +2 -0
  84. package/dist/cjs/utils/astProcessing.uspec.d.ts.map +1 -0
  85. package/dist/cjs/utils/astProcessing.uspec.js +26 -0
  86. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  87. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
  88. package/dist/cjs/utils/columnProcessing.js +42 -0
  89. package/dist/cjs/utils/dataEditor.d.ts +2 -2
  90. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  91. package/dist/cjs/utils/dataEditor.js +4 -2
  92. package/dist/cjs/utils/databases.d.ts +0 -1
  93. package/dist/cjs/utils/databases.d.ts.map +1 -1
  94. package/dist/cjs/utils/databases.js +5 -6
  95. package/dist/cjs/utils/monacoAutocomplete.d.ts +21 -0
  96. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +1 -0
  97. package/dist/cjs/utils/monacoAutocomplete.js +250 -0
  98. package/dist/cjs/utils/schema.d.ts +11 -0
  99. package/dist/cjs/utils/schema.d.ts.map +1 -1
  100. package/dist/cjs/utils/schema.js +129 -0
  101. package/dist/cjs/utils/table.d.ts +1 -0
  102. package/dist/cjs/utils/table.d.ts.map +1 -1
  103. package/dist/cjs/utils/table.js +13 -0
  104. package/dist/cjs/utils/textProcessing.d.ts +2 -0
  105. package/dist/cjs/utils/textProcessing.d.ts.map +1 -0
  106. package/dist/cjs/utils/textProcessing.js +9 -0
  107. package/dist/esm/Admin.d.ts +19 -72
  108. package/dist/esm/Admin.d.ts.map +1 -1
  109. package/dist/esm/Admin.js +218 -989
  110. package/dist/esm/AdminProvider.d.ts +2 -12
  111. package/dist/esm/AdminProvider.d.ts.map +1 -1
  112. package/dist/esm/AdminProvider.js +27 -32
  113. package/dist/esm/api/ConnectionClient.d.ts +19 -0
  114. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  115. package/dist/esm/api/ConnectionClient.js +106 -12
  116. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  117. package/dist/esm/components/DashboardSelectPopover.js +20 -3
  118. package/dist/esm/components/DropDownMenu.js +1 -1
  119. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  120. package/dist/esm/components/DropDownMenuWithLabel.js +18 -87
  121. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  122. package/dist/esm/components/EmptyDashboardComponent/index.js +11 -9
  123. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  124. package/dist/esm/components/OrgSelect.js +6 -19
  125. package/dist/esm/components/QuillSelect.d.ts +3 -0
  126. package/dist/esm/components/QuillSelect.d.ts.map +1 -0
  127. package/dist/esm/components/QuillSelect.js +130 -0
  128. package/dist/esm/components/SegmentedControl.d.ts +9 -0
  129. package/dist/esm/components/SegmentedControl.d.ts.map +1 -0
  130. package/dist/esm/components/SegmentedControl.js +56 -0
  131. package/dist/esm/components/SqlTextEditor.d.ts +9 -1
  132. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  133. package/dist/esm/components/SqlTextEditor.js +59 -11
  134. package/dist/esm/components/UiComponents.d.ts +18 -30
  135. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  136. package/dist/esm/components/UiComponents.js +45 -83
  137. package/dist/esm/constants/dataTypes.d.ts +2 -0
  138. package/dist/esm/constants/dataTypes.d.ts.map +1 -0
  139. package/dist/esm/constants/dataTypes.js +18 -0
  140. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  141. package/dist/esm/forms/client_onboard/ConnectDatabase.js +9 -17
  142. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +2 -1
  143. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  144. package/dist/esm/forms/client_onboard/ConnectSchema.js +145 -70
  145. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  146. package/dist/esm/forms/client_onboard/CreateSqlViews.js +58 -16
  147. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +11 -5
  148. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  149. package/dist/esm/forms/sql_views/CreateEditSqlView.js +108 -54
  150. package/dist/esm/hooks/useOnClickOutside.d.ts +3 -0
  151. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -0
  152. package/dist/esm/hooks/useOnClickOutside.js +18 -0
  153. package/dist/esm/modals/EditFiltersModal.d.ts +17 -0
  154. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -0
  155. package/dist/esm/modals/EditFiltersModal.js +348 -0
  156. package/dist/esm/modals/NewDashboardModal.d.ts +1 -3
  157. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  158. package/dist/esm/modals/NewDashboardModal.js +64 -47
  159. package/dist/esm/modals/PromoteDashModal.d.ts.map +1 -1
  160. package/dist/esm/modals/PromoteDashModal.js +11 -4
  161. package/dist/esm/modals/PromoteViewModal.d.ts +2 -1
  162. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  163. package/dist/esm/modals/PromoteViewModal.js +50 -40
  164. package/dist/esm/modals/ReorderDashboardModal.d.ts.map +1 -1
  165. package/dist/esm/modals/ReorderDashboardModal.js +43 -46
  166. package/dist/esm/modals/index.d.ts +0 -1
  167. package/dist/esm/modals/index.d.ts.map +1 -1
  168. package/dist/esm/modals/index.js +0 -1
  169. package/dist/esm/primitives/ButtonPrimitive.d.ts +3 -1
  170. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  171. package/dist/esm/primitives/ButtonPrimitive.js +5 -3
  172. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -0
  173. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  174. package/dist/esm/primitives/TextInputPrimitive.js +33 -21
  175. package/dist/esm/primitives/TogglePrimitive.js +5 -5
  176. package/dist/esm/public_components/CreateEnvironment.d.ts +2 -1
  177. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  178. package/dist/esm/public_components/CreateEnvironment.js +5 -2
  179. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  180. package/dist/esm/public_components/DashboardBuilder.js +72 -126
  181. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  182. package/dist/esm/public_components/DashboardManager.js +112 -149
  183. package/dist/esm/public_components/SQLViewManager.d.ts +1 -0
  184. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  185. package/dist/esm/public_components/SQLViewManager.js +271 -48
  186. package/dist/esm/utils/astProcessing.d.ts +2 -0
  187. package/dist/esm/utils/astProcessing.d.ts.map +1 -0
  188. package/dist/esm/utils/astProcessing.js +37 -0
  189. package/dist/esm/utils/astProcessing.uspec.d.ts +2 -0
  190. package/dist/esm/utils/astProcessing.uspec.d.ts.map +1 -0
  191. package/dist/esm/utils/astProcessing.uspec.js +24 -0
  192. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  193. package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
  194. package/dist/esm/utils/columnProcessing.js +37 -0
  195. package/dist/esm/utils/dataEditor.d.ts +2 -2
  196. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  197. package/dist/esm/utils/dataEditor.js +4 -2
  198. package/dist/esm/utils/databases.d.ts +0 -1
  199. package/dist/esm/utils/databases.d.ts.map +1 -1
  200. package/dist/esm/utils/databases.js +5 -6
  201. package/dist/esm/utils/monacoAutocomplete.d.ts +21 -0
  202. package/dist/esm/utils/monacoAutocomplete.d.ts.map +1 -0
  203. package/dist/esm/utils/monacoAutocomplete.js +245 -0
  204. package/dist/esm/utils/schema.d.ts +11 -0
  205. package/dist/esm/utils/schema.d.ts.map +1 -1
  206. package/dist/esm/utils/schema.js +126 -1
  207. package/dist/esm/utils/table.d.ts +1 -0
  208. package/dist/esm/utils/table.d.ts.map +1 -1
  209. package/dist/esm/utils/table.js +11 -1
  210. package/dist/esm/utils/textProcessing.d.ts +2 -0
  211. package/dist/esm/utils/textProcessing.d.ts.map +1 -0
  212. package/dist/esm/utils/textProcessing.js +5 -0
  213. package/package.json +3 -2
  214. package/dist/cjs/modals/EditDashboardsModal.d.ts +0 -20
  215. package/dist/cjs/modals/EditDashboardsModal.d.ts.map +0 -1
  216. package/dist/cjs/modals/EditDashboardsModal.js +0 -94
  217. package/dist/esm/modals/EditDashboardsModal.d.ts +0 -20
  218. package/dist/esm/modals/EditDashboardsModal.d.ts.map +0 -1
  219. package/dist/esm/modals/EditDashboardsModal.js +0 -91
@@ -2,43 +2,35 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useEffect, useRef, useState } from 'react';
3
3
  import { useAdmin } from '../AdminProvider';
4
4
  import { OrgSelect, EnvSelectPopover, DashboardSelectPopover, } from '../components';
5
- import { EditDashboardsModal, PromoteDashModal, ReorderDashboardModal, } from '../modals';
5
+ import { PromoteDashModal, ReorderDashboardModal } from '../modals';
6
6
  import { Dashboard, useDashboard } from '@quillsql/react';
7
- import { EditFiltersModal, AddFilterModal, AddDashboardModal, ReportWrapper, } from '../Admin';
7
+ import { ReportWrapper } from '../Admin';
8
8
  import { ButtonPrimitive, HeaderPrimitive, ModalPrimitive, SecondaryButtonPrimitive, SelectPrimitive, TextInputPrimitive, } from '../primitives';
9
9
  import { NewDashboardModal } from '../modals/NewDashboardModal';
10
- import { QUILL_SERVER } from '../utils/constants';
11
10
  import EmptyDashboardComponent from '../components/EmptyDashboardComponent';
12
11
  import DatabaseMismatchCard from '../components/DatabaseMismatchCard';
13
- import { MemoizedModal } from '../components/UiComponents';
12
+ import { MemoizedButton, MemoizedModal } from '../components/UiComponents';
13
+ import { QuillSelectComponent } from '../components/QuillSelect';
14
+ import { EditFiltersModal } from '../modals/EditFiltersModal';
14
15
  export default function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
15
16
  const { state, dispatch } = useAdmin();
16
17
  const parentRef = useRef(null);
18
+ const [copied, setCopied] = useState(false);
17
19
  const [initialLoad, setInitialLoad] = useState(true);
18
- const [dashboards, setDashboards] = useState([]);
19
20
  const [reloadFlag, setReloadFlag] = useState(false);
20
- const [selectedEditDashboard, setSelectedEditDashboard] = useState('');
21
21
  const [selectedReorderDashboard, setSelectedReorderDashboard] = useState('');
22
- const [addFilterModalIsOpen, setAddFilterModalIsOpen] = useState(false);
23
- const [isAddDashboardModalOpen, setIsAddDashboardModalOpen] = useState(false);
24
22
  const [newDashboardModalIsOpen, setNewDashboardModalIsOpen] = useState(false);
25
23
  const [editFilterModalIsOpen, setEditFilterModalIsOpen] = useState(false);
26
- const { reload: reloadDashboard } = useDashboard(state.selectedDashboard);
24
+ const { reload: reloadDashboard } = useDashboard(state.selectedDashboard?.name);
27
25
  const [isReorderDashboardModalOpen, setIsReorderDashboardModalOpen] = useState(false);
28
- const [dashboardData, setDashboardData] = useState(null);
29
- // const [activeComponent, setActiveComponent] = useContext(
30
- // ActiveComponentContext
31
- // );
32
- const [isEditDashboardModalOpen, setIsEditDashboardModalOpen] = useState(false);
33
26
  const [isPromoteDashModalOpen, setIsPromoteDashModalOpen] = useState(false);
34
- const [isOpen, setIsOpen] = useState(false);
35
27
  // A useless flag that just turns itself off.
36
28
  useEffect(() => {
37
29
  if (reloadFlag) {
38
30
  setReloadFlag(false);
39
31
  }
40
32
  }, [reloadFlag]);
41
- async function getDashNames() {
33
+ async function getDashNames(dashboardName) {
42
34
  const response = await fetch(`${state.queryEndpoint}`, {
43
35
  method: 'POST',
44
36
  headers: {
@@ -58,20 +50,19 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
58
50
  const data = await response.json();
59
51
  setInitialLoad(false);
60
52
  if (!data.data.dashboardNames || !data.data.dashboardNames.length) {
53
+ dispatch({ type: 'SET_DASHBOARDS', payload: [] });
61
54
  return;
62
55
  }
63
- const dashNames = data.data.dashboardNames.map((elem) => {
64
- if (!elem) {
65
- return { name: 'null' };
66
- }
67
- return { name: elem };
56
+ let selectedDashboard = data.data.dashboards.find((dash) => {
57
+ return dash.name === dashboardName;
68
58
  });
69
- dispatch({ type: 'SET_DASHBOARDS', payload: dashNames });
59
+ if (!selectedDashboard) {
60
+ selectedDashboard = data.data.dashboards[0];
61
+ }
62
+ dispatch({ type: 'SET_DASHBOARDS', payload: data.data.dashboards });
70
63
  dispatch({
71
64
  type: 'SET_SELECTED_DASHBOARD',
72
- payload: dashNames.some((dash) => dash.name === state.selectedDashboard)
73
- ? state.selectedDashboard
74
- : dashNames[0].name,
65
+ payload: selectedDashboard,
75
66
  });
76
67
  }
77
68
  useEffect(() => {
@@ -88,76 +79,12 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
88
79
  useEffect(() => {
89
80
  let isSubscribed = true;
90
81
  if (isSubscribed) {
91
- getDashNames();
82
+ getDashNames(state.selectedDashboard?.name || '');
92
83
  }
93
84
  return () => {
94
85
  isSubscribed = false;
95
86
  };
96
87
  }, [state.environment, state.client]);
97
- // MMTODO: Idk if this is needed
98
- // const handleSetOrganization = (org) => {
99
- // setOrganization(null);
100
- // setTimeout(() => setOrganization(org), 50);
101
- // };
102
- // MMTODO: Not sure if this actually does anything
103
- useEffect(() => {
104
- async function getDashboardData(dashboard, setData) {
105
- let responseData;
106
- if (state.queryEndpoint) {
107
- const response = await fetch(state.queryEndpoint, {
108
- method: 'POST',
109
- headers: {
110
- ...state.queryHeaders,
111
- 'Content-Type': 'application/json',
112
- },
113
- body: JSON.stringify({
114
- metadata: {
115
- orgId: state.organizationId || '*',
116
- task: 'config',
117
- name: dashboard,
118
- clientId: state.client._id,
119
- databaseType: state.client.databaseType,
120
- },
121
- }),
122
- credentials: state.withCredentials ? 'include' : 'omit', // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
123
- });
124
- responseData = (await response.json()).data;
125
- }
126
- else {
127
- const url = new URL(`${QUILL_SERVER}/dashconfig`);
128
- // Setting the search parameters for the URL
129
- url.search = new URLSearchParams({
130
- orgId: state.organizationId,
131
- publicKey: state.client._id,
132
- name: dashboard,
133
- }).toString();
134
- const response2 = await fetch(url, {
135
- method: 'GET',
136
- headers: {
137
- Authorization: 'Bearer ', // Ensure you append your token after 'Bearer ' if needed
138
- environment: state.environment,
139
- },
140
- });
141
- // If you need to retrieve the JSON data from the response:
142
- responseData = await response2.json();
143
- }
144
- setData(responseData);
145
- }
146
- if (state.selectedEditDashboard) {
147
- getDashboardData(state.selectedEditDashboard, (data) => {
148
- dispatch({ type: 'SET_EDIT_DASHBOARD_DATA', payload: data });
149
- });
150
- return;
151
- }
152
- if (state.selectedDashboard && state.client) {
153
- getDashboardData(state.selectedDashboard, setDashboardData);
154
- }
155
- }, [
156
- state.selectedDashboard,
157
- state.selectedEditDashboard,
158
- state.organizationId,
159
- state.client,
160
- ]);
161
88
  return (_jsxs("div", { style: containerStyle, children: [_jsxs("div", { style: {
162
89
  display: 'flex',
163
90
  flexDirection: 'column',
@@ -183,7 +110,7 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
183
110
  borderLeftWidth: 0,
184
111
  borderRightWidth: 0,
185
112
  borderStyle: 'solid',
186
- borderColor: state.theme.borderColor,
113
+ borderColor: state.theme?.borderColor,
187
114
  paddingBottom: 20,
188
115
  // boxShadow: "0px 1px 4px 0px rgba(0, 0, 0, 0.07)",
189
116
  // paddingRight: '50px',
@@ -195,7 +122,12 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
195
122
  flexDirection: 'row',
196
123
  alignItems: 'flex-end',
197
124
  justifyContent: 'space-between',
198
- }, children: [_jsxs("div", { style: { gap: 16, display: 'flex', flexDirection: 'row' }, children: [!!state.dashboards.length && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("h1", { style: {
125
+ }, children: [_jsxs("div", { style: {
126
+ gap: 16,
127
+ display: 'flex',
128
+ flexDirection: 'row',
129
+ alignItems: 'flex-end',
130
+ }, children: [!!state.dashboards.length && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("h1", { style: {
199
131
  fontSize: '14px',
200
132
  paddingTop: '0px',
201
133
  marginTop: '0px',
@@ -208,17 +140,19 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
208
140
  return { value: elem.name, label: elem.name };
209
141
  })
210
142
  : [], setDashboard: (dashboard) => {
143
+ setReloadFlag(true);
144
+ const selectedDashboard = state.dashboards.find((dash) => {
145
+ return dash.name === dashboard;
146
+ });
211
147
  dispatch({
212
148
  type: 'SET_SELECTED_DASHBOARD',
213
- payload: dashboard,
149
+ payload: selectedDashboard,
214
150
  });
215
- }, dashboard: state.selectedDashboard ? state.selectedDashboard : '', theme: state.theme, onClickNewDashboard: () => {
151
+ }, dashboard: state.selectedDashboard
152
+ ? state.selectedDashboard.name
153
+ : '', theme: state.theme, onClickNewDashboard: () => {
216
154
  setNewDashboardModalIsOpen(true);
217
155
  }, setSelectedEditDashboard: (d) => {
218
- dispatch({
219
- type: 'SET_SELECTED_EDIT_DASHBOARD',
220
- payload: d,
221
- });
222
156
  setEditFilterModalIsOpen(true);
223
157
  } })] })), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("h1", { style: {
224
158
  fontSize: '14px',
@@ -229,14 +163,59 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
229
163
  color: state.theme.secondaryTextColor,
230
164
  fontFamily: state.theme.fontFamily,
231
165
  userSelect: 'none',
232
- }, children: "Environment" }), _jsx(EnvSelectPopover, { setEnvironment: (env) => dispatch({ type: 'SET_ENVIRONMENT', payload: env }), environment: state.environment, clients: state.clients, client: state.client, setClient: (client) => dispatch({ type: 'SET_CLIENT', payload: client }), theme: state.theme, showPromote: true, handlePromote: () => setIsPromoteDashModalOpen(true) })] })] }), !!state.dashboards.length && !state.databaseTypeMismatch.show && (_jsx(OrgSelect, { parentRef: parentRef, environment: state.environment, setEnvironment: (env) => dispatch({ type: 'SET_ENVIRONMENT', payload: env }), organizations: state.organizations, theme: state.theme, organizationId: state.organizationId, setOrganizationId: (id) => dispatch({ type: 'SET_ORGANIZATION_ID', payload: id }) }))] }) }), state.databaseTypeMismatch.show ? (_jsx(DatabaseMismatchCard, { environemntName: state.client.name, environemntDatabaseType: state.client.databaseType, backendDatabaseType: state.databaseTypeMismatch.backendDatabaseType })) : (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: 'inline-block' }, children: [!state.dashboards.length && !initialLoad && (_jsx("div", { style: {
166
+ }, children: "Environment" }), _jsx(EnvSelectPopover, { setEnvironment: (env) => dispatch({ type: 'SET_ENVIRONMENT', payload: env }), environment: state.environment, clients: state.clients, client: state.client, setClient: (client) => dispatch({ type: 'SET_CLIENT', payload: client }), theme: state.theme, showPromote: true, handlePromote: () => setIsPromoteDashModalOpen(true) })] }), _jsxs("div", { style: {
167
+ display: 'flex',
168
+ flexDirection: 'row',
169
+ alignItems: 'center',
170
+ }, children: [_jsxs("div", { style: {
171
+ // width: '100%',
172
+ maxWidth: 330,
173
+ display: 'flex',
174
+ flexDirection: 'row',
175
+ justifyContent: 'space-between',
176
+ alignItems: 'center',
177
+ padding: '6px 12px',
178
+ borderRadius: 6,
179
+ height: 37,
180
+ cursor: 'pointer',
181
+ }, onClick: () => {
182
+ navigator.clipboard.writeText(state.client._id);
183
+ setCopied(true);
184
+ setTimeout(() => setCopied(false), 1500);
185
+ }, className: "quill-active", children: [_jsx("style", { children: `.quill-active { background: #fff; border: 1px solid #e7e7e7; }
186
+ .quill-active:hover { background: #fff; box-shadow: 0px 1px 12px rgba(0, 0, 0, 0.07); border: 1px solid #e7e7e7 }
187
+ .quill-active:active { background: #fff; box-shadow: 0px 1px 12px rgba(0, 0, 0, 0.07); border: 1px solid #9DC4F8; outline: 2px solid #9DC4F8; }
188
+ ` }), _jsx("div", { style: {
189
+ color: '#212121',
190
+ marginBottom: '0px',
191
+ }, children: _jsx("h1", { style: {
192
+ fontSize: '14px',
193
+ fontWeight: '600',
194
+ color: state.theme.secondaryTextColor,
195
+ fontFamily: state.theme.fontFamily,
196
+ userSelect: 'none',
197
+ }, children: "Copy Public Key" }) }), _jsx("div", { style: {
198
+ display: 'flex',
199
+ flexDirection: 'row',
200
+ alignItems: 'center',
201
+ gap: '6px',
202
+ cursor: 'pointer',
203
+ marginLeft: '12px',
204
+ }, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "#212121", width: 18, height: 18, children: [_jsx("path", { d: "M7 3.5A1.5 1.5 0 0 1 8.5 2h3.879a1.5 1.5 0 0 1 1.06.44l3.122 3.12A1.5 1.5 0 0 1 17 6.622V12.5a1.5 1.5 0 0 1-1.5 1.5h-1v-3.379a3 3 0 0 0-.879-2.121L10.5 5.379A3 3 0 0 0 8.379 4.5H7v-1Z" }), _jsx("path", { d: "M4.5 6A1.5 1.5 0 0 0 3 7.5v9A1.5 1.5 0 0 0 4.5 18h7a1.5 1.5 0 0 0 1.5-1.5v-5.879a1.5 1.5 0 0 0-.44-1.06L9.44 6.439A1.5 1.5 0 0 0 8.378 6H4.5Z" })] }) })] }), copied && (_jsxs("div", { style: {
205
+ fontSize: 13,
206
+ fontWeight: 600,
207
+ color: '#565656',
208
+ marginLeft: 16,
209
+ display: 'flex',
210
+ flexDirection: 'row',
211
+ alignItems: 'center',
212
+ gap: 6,
213
+ }, children: [_jsx("div", { children: "\u2705" }), " ", _jsx("div", { children: "Copied" })] }))] })] }), !!state.dashboards.length && !state.databaseTypeMismatch.show && (_jsx(OrgSelect, { parentRef: parentRef, environment: state.environment, setEnvironment: (env) => dispatch({ type: 'SET_ENVIRONMENT', payload: env }), organizations: state.organizations, theme: state.theme, organizationId: state.organizationId, setOrganizationId: (id) => dispatch({ type: 'SET_ORGANIZATION_ID', payload: id }) }))] }) }), state.databaseTypeMismatch.show ? (_jsx(DatabaseMismatchCard, { environemntName: state.client.name, environemntDatabaseType: state.client.databaseType, backendDatabaseType: state.databaseTypeMismatch.backendDatabaseType })) : (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: 'inline-block' }, children: [!state.dashboards.length && !initialLoad && (_jsx("div", { style: {
233
214
  width: '100%',
234
215
  display: 'flex',
235
216
  flexDirection: 'column',
236
217
  alignItems: 'center',
237
218
  }, children: _jsxs("div", { style: {
238
- height: 80,
239
- width: 260,
240
219
  borderRadius: 6,
241
220
  marginTop: 100,
242
221
  display: 'flex',
@@ -244,16 +223,17 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
244
223
  alignItems: 'center',
245
224
  justifyContent: 'center',
246
225
  gap: 20,
247
- }, className: "hover-dash-rect", onClick: () => {
248
- setNewDashboardModalIsOpen(true);
249
- }, children: [_jsx("style", { children: ` .hover-dash-rect { background: white; border: 1px dashed #e7e7e7; } .hover-dash-rect:hover { background: white; box-shadow: 0px 1px 24px 0px rgba(0, 0, 0, 0.07); border: 1px solid #e7e7e7; } ` }), _jsxs("div", { style: {
226
+ padding: 16,
227
+ border: '1px solid #e7e7e7',
228
+ boxShadow: '0px 1px 12px rgba(0, 0, 0, 0.07)',
229
+ }, children: [_jsxs("div", { style: {
250
230
  display: 'flex',
251
231
  flexDirection: 'row',
252
232
  alignItems: 'center',
253
233
  justifyContent: 'center',
254
234
  width: 260,
255
235
  }, children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#565656", height: 26, width: 26, children: [_jsx("path", { fillRule: "evenodd", d: "M2.25 13.5a8.25 8.25 0 0 1 8.25-8.25.75.75 0 0 1 .75.75v6.75H18a.75.75 0 0 1 .75.75 8.25 8.25 0 0 1-16.5 0Z", clipRule: "evenodd" }), _jsx("path", { fillRule: "evenodd", d: "M12.75 3a.75.75 0 0 1 .75-.75 8.25 8.25 0 0 1 8.25 8.25.75.75 0 0 1-.75.75h-7.5a.75.75 0 0 1-.75-.75V3Z", clipRule: "evenodd" })] }), _jsx("div", { style: {
256
- fontSize: 14,
236
+ fontSize: 16,
257
237
  fontWeight: 500,
258
238
  color: '#565656',
259
239
  // border: '1px solid #e7e7e7',
@@ -263,64 +243,47 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
263
243
  paddingLeft: 12,
264
244
  borderRadius: 4,
265
245
  cursor: 'pointer',
266
- }, className: "quill-hover-button", children: "Create new dashboard" })] })] }) })), reloadFlag ? null : (_jsx(Dashboard, { name: state.selectedDashboard, containerStyle: { padding: 25 }, onClickDashboardItem: (elem) => {
267
- dispatch({ type: 'SET_REPORT_ID', payload: elem._id });
268
- dispatch({
269
- type: 'SET_ACTIVE_COMPONENT',
270
- payload: 'Report',
271
- });
272
- }, EmptyDashboardComponent: EmptyDashboardComponent }))] }), _jsx(EditDashboardsModal, { clientId: state.client._id, isOpen: isEditDashboardModalOpen, setIsOpen: setIsEditDashboardModalOpen, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, SecondaryButtonComponent: SecondaryButtonPrimitive, TextInputComponent: TextInputPrimitive, openEditFilterModal: (dashboardName) => {
273
- dispatch({
274
- type: 'SET_SELECTED_EDIT_DASHBOARD',
275
- payload: dashboardName,
276
- });
277
- setEditFilterModalIsOpen(true);
278
- // setIsEditDashboardModalOpen(false);
279
- }, openAddDashboardModal: () => {
280
- setIsAddDashboardModalOpen(true);
281
- // setIsEditDashboardModalOpen(false);
282
- }, openEditOrderModal: (dashboardName) => {
283
- setSelectedReorderDashboard(dashboardName);
284
- setIsReorderDashboardModalOpen(true);
285
- }, HeaderComponent: HeaderPrimitive, setDashboardData: setDashboardData, dashboards: state.dashboards, getDashNames: getDashNames }), _jsx(PromoteDashModal, { clientId: state.client._id, client: state.client, clients: state.clients, isOpen: isPromoteDashModalOpen, setIsOpen: setIsPromoteDashModalOpen, ModalComponent: ModalPrimitive, dashboards: state.dashboards, selectedDashboard: state.selectedDashboard, theme: state.theme, ButtonComponent: ButtonPrimitive }), _jsx(EditFiltersModal, { selectedDashboard: state.selectedDashboard, dashboardData: state.editDashboardData, isOpen: editFilterModalIsOpen, setIsOpen: setEditFilterModalIsOpen, openAddFilterModal: () => {
286
- setAddFilterModalIsOpen(true);
287
- // setEditFilterModalIsOpen(false);
288
- }, openEditOrderModal: (dashboardName) => {
246
+ }, className: "quill-hover-button", children: "No dashboards created yet." })] }), _jsx("div", { style: { paddingBottom: 8 }, children: _jsx(MemoizedButton, { label: 'Create dashboard', style: { fontSize: 14 }, onClick: () => {
247
+ setNewDashboardModalIsOpen(true);
248
+ } }) })] }) })), reloadFlag
249
+ ? null
250
+ : (state.dashboards.length || initialLoad) && (_jsx(Dashboard, { name: state.selectedDashboard?.name, containerStyle: { padding: 25 }, onClickReport: (elem) => {
251
+ dispatch({ type: 'SET_REPORT_ID', payload: elem.id });
252
+ dispatch({
253
+ type: 'SET_ACTIVE_COMPONENT',
254
+ payload: 'Report',
255
+ });
256
+ }, EmptyDashboardComponent: EmptyDashboardComponent }))] }), state.selectedDashboard && (_jsx(PromoteDashModal, { clientId: state.client._id, client: state.client, clients: state.clients, isOpen: isPromoteDashModalOpen, setIsOpen: setIsPromoteDashModalOpen, ModalComponent: ModalPrimitive, dashboards: state.dashboards, selectedDashboard: state.selectedDashboard?.name, theme: state.theme, ButtonComponent: ButtonPrimitive })), state.selectedDashboard && (_jsx(EditFiltersModal, { selectedDashboard: state.selectedDashboard, dashboardData: state.selectedDashboard, isOpen: editFilterModalIsOpen, setIsOpen: setEditFilterModalIsOpen, openEditOrderModal: (dashboardName) => {
289
257
  setSelectedReorderDashboard(dashboardName);
290
258
  setIsReorderDashboardModalOpen(true);
291
- }, onSave: async () => {
292
- await getDashNames();
259
+ }, onSave: async (dashName) => {
260
+ await getDashNames(dashName);
261
+ await reloadDashboard(dashName, true);
293
262
  setReloadFlag(true);
294
- reloadDashboard();
295
- }, client: state.client, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, SecondaryButtonComponent: SecondaryButtonPrimitive, TextInputComponent: TextInputPrimitive, HeaderComponent: HeaderPrimitive, SelectComponent: SelectPrimitive, dashNames: state.dashboards, setSelectedEditDashboard: (d) => dispatch({ type: 'SET_SELECTED_EDIT_DASHBOARD', payload: d }) }), _jsx(NewDashboardModal, { isOpen: newDashboardModalIsOpen, setIsOpen: setNewDashboardModalIsOpen, openEditOrderModal: (dashboardName) => {
263
+ }, client: state.client, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, SecondaryButtonComponent: SecondaryButtonPrimitive, TextInputComponent: TextInputPrimitive, HeaderComponent: HeaderPrimitive, SelectComponent: QuillSelectComponent, dashNames: state.dashboards })), _jsx(NewDashboardModal, { isOpen: newDashboardModalIsOpen, setIsOpen: setNewDashboardModalIsOpen, openEditOrderModal: (dashboardName) => {
296
264
  setSelectedReorderDashboard(dashboardName);
297
265
  setIsReorderDashboardModalOpen(true);
298
- }, onSave: (name) => {
299
- dispatch({ type: 'SET_SELECTED_DASHBOARD', payload: name });
266
+ }, onSave: async (dashboard) => {
267
+ dispatch({
268
+ type: 'SET_SELECTED_DASHBOARD',
269
+ payload: dashboard,
270
+ });
300
271
  dispatch({
301
272
  type: 'SET_DASHBOARDS',
302
- payload: [...state.dashboards, { name }],
273
+ payload: [...state.dashboards, { ...dashboard }],
303
274
  });
275
+ await reloadDashboard(state.selectedDashboard?.name, true);
304
276
  setReloadFlag(true);
305
- reloadDashboard();
306
- }, client: state.client, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, SecondaryButtonComponent: SecondaryButtonPrimitive, TextInputComponent: TextInputPrimitive, HeaderComponent: HeaderPrimitive, SelectComponent: SelectPrimitive, dashNames: state.dashboards, setSelectedEditDashboard: (d) => dispatch({ type: 'SET_SELECTED_EDIT_DASHBOARD', payload: d }) }), _jsx(ReorderDashboardModal, { organizationId: state.organizationId, isOpen: isReorderDashboardModalOpen, client: state.client, onSave: () => {
277
+ }, client: state.client, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, SecondaryButtonComponent: SecondaryButtonPrimitive, TextInputComponent: TextInputPrimitive, HeaderComponent: HeaderPrimitive, SelectComponent: QuillSelectComponent, dashNames: state.dashboards }), _jsx(ReorderDashboardModal, { organizationId: state.organizationId, isOpen: isReorderDashboardModalOpen, client: state.client, onSave: async () => {
278
+ await reloadDashboard(state.selectedDashboard?.name, true);
307
279
  setReloadFlag(true);
308
- reloadDashboard();
309
- }, setIsOpen: setIsReorderDashboardModalOpen, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, selectedDashboard: selectedReorderDashboard }), _jsx(AddFilterModal, { selectedDashboard: state.selectedEditDashboard, isOpen: addFilterModalIsOpen, setIsOpen: setAddFilterModalIsOpen, client: state.client, ModalComponent: ModalPrimitive, TextInputComponent: TextInputPrimitive, SelectComponent: SelectPrimitive, HeaderComponent: HeaderPrimitive, ButtonComponent: ButtonPrimitive, openAddDashboardModal: () => {
310
- setIsAddDashboardModalOpen(true);
311
- // setAddFilterModalIsOpen(false);
312
- } }), _jsx(AddDashboardModal, { selectedDashboard: state.selectedDashboard, isOpen: isAddDashboardModalOpen, setIsOpen: setIsAddDashboardModalOpen, client: state.client, ModalComponent: ModalPrimitive, TextInputComponent: TextInputPrimitive, SelectComponent: SelectPrimitive, HeaderComponent: HeaderPrimitive, ButtonComponent: ButtonPrimitive, dashNames: state.dashboards,
313
- // @ts-ignore
314
- openAddFilterModal: () => {
315
- setAddFilterModalIsOpen(true);
316
- // setIsAddDashboardModalOpen(false);
317
- }, organizationId: state.organizationId, getDashNames: getDashNames })] }))] }), _jsx(ReportWrapper, { isOpen: state.activeComponent === 'Report', setIsOpen: (isOpen) => {
280
+ }, setIsOpen: setIsReorderDashboardModalOpen, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, selectedDashboard: selectedReorderDashboard })] }))] }), _jsx(ReportWrapper, { isOpen: state.activeComponent === 'Report', setIsOpen: (isOpen) => {
318
281
  dispatch({
319
282
  type: 'SET_ACTIVE_COMPONENT',
320
283
  payload: isOpen ? 'Report' : 'Dashboards',
321
284
  });
322
- }, ButtonComponent: ButtonPrimitive, SecondaryButtonComponent: SecondaryButtonPrimitive, ModalComponent: MemoizedModal, SelectComponent: SelectPrimitive, OrganizationSelectComponent: OrgSelect, organizationId: state.organizationId, queryEndpoint: state.queryEndpoint, queryHeaders: state.queryHeaders, withCredentials: state.withCredentials, reloadDashboard: () => {
285
+ }, ButtonComponent: ButtonPrimitive, SecondaryButtonComponent: SecondaryButtonPrimitive, ModalComponent: MemoizedModal, SelectComponent: SelectPrimitive, OrganizationSelectComponent: OrgSelect, organizationId: state.organizationId, queryEndpoint: state.queryEndpoint, queryHeaders: state.queryHeaders, withCredentials: state.withCredentials, reloadDashboard: async () => {
286
+ await reloadDashboard(state.selectedDashboard?.name);
323
287
  setReloadFlag(true);
324
- reloadDashboard();
325
288
  } })] }));
326
289
  }
@@ -1,4 +1,5 @@
1
1
  import { CSSProperties } from 'react';
2
+ export declare const getDuplicateColumns: (columns?: any[]) => string[];
2
3
  export default function SQLViewManager({ containerStyle, }: {
3
4
  containerStyle?: CSSProperties;
4
5
  }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"SQLViewManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/SQLViewManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AA0BnE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,cAAc,GACf,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CA8VA"}
1
+ {"version":3,"file":"SQLViewManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/SQLViewManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AAmCnE,eAAO,MAAM,mBAAmB,aAAc,GAAG,EAAE,aAalD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,cAAc,GACf,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CA8eA"}