@quillsql/admin 1.6.0 → 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 (151) hide show
  1. package/dist/cjs/Admin.d.ts.map +1 -1
  2. package/dist/cjs/Admin.js +24 -11
  3. package/dist/cjs/AdminProvider.d.ts +2 -1
  4. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  5. package/dist/cjs/AdminProvider.js +13 -24
  6. package/dist/cjs/api/ConnectionClient.d.ts +8 -0
  7. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  8. package/dist/cjs/api/ConnectionClient.js +42 -8
  9. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  10. package/dist/cjs/components/DashboardSelectPopover.js +20 -3
  11. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  12. package/dist/cjs/components/DropDownMenuWithLabel.js +4 -35
  13. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  14. package/dist/cjs/components/EmptyDashboardComponent/index.js +11 -9
  15. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  16. package/dist/cjs/components/QuillSelect.js +2 -2
  17. package/dist/cjs/components/SegmentedControl.d.ts +4 -2
  18. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -1
  19. package/dist/cjs/components/SegmentedControl.js +22 -16
  20. package/dist/cjs/components/SqlTextEditor.d.ts +9 -1
  21. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  22. package/dist/cjs/components/SqlTextEditor.js +60 -12
  23. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  24. package/dist/cjs/components/UiComponents.js +11 -2
  25. package/dist/cjs/constants/dataTypes.d.ts +2 -0
  26. package/dist/cjs/constants/dataTypes.d.ts.map +1 -0
  27. package/dist/cjs/constants/dataTypes.js +21 -0
  28. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  29. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +9 -17
  30. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  31. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +24 -11
  32. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +4 -1
  33. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  34. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +87 -36
  35. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  36. package/dist/cjs/modals/EditFiltersModal.js +13 -3
  37. package/dist/cjs/modals/NewDashboardModal.js +2 -2
  38. package/dist/cjs/modals/PromoteDashModal.js +2 -2
  39. package/dist/cjs/modals/PromoteViewModal.d.ts +2 -1
  40. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  41. package/dist/cjs/modals/PromoteViewModal.js +46 -36
  42. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -0
  43. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  44. package/dist/cjs/primitives/TextInputPrimitive.js +35 -20
  45. package/dist/cjs/public_components/CreateEnvironment.d.ts +2 -1
  46. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  47. package/dist/cjs/public_components/CreateEnvironment.js +4 -1
  48. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  49. package/dist/cjs/public_components/DashboardBuilder.js +67 -156
  50. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  51. package/dist/cjs/public_components/DashboardManager.js +72 -73
  52. package/dist/cjs/public_components/SQLViewManager.d.ts +1 -0
  53. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  54. package/dist/cjs/public_components/SQLViewManager.js +216 -40
  55. package/dist/cjs/utils/astProcessing.d.ts +2 -0
  56. package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
  57. package/dist/cjs/utils/astProcessing.js +41 -0
  58. package/dist/cjs/utils/astProcessing.uspec.d.ts +2 -0
  59. package/dist/cjs/utils/astProcessing.uspec.d.ts.map +1 -0
  60. package/dist/cjs/utils/astProcessing.uspec.js +26 -0
  61. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  62. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
  63. package/dist/cjs/utils/columnProcessing.js +42 -0
  64. package/dist/cjs/utils/dataEditor.d.ts +2 -2
  65. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  66. package/dist/cjs/utils/dataEditor.js +4 -2
  67. package/dist/cjs/utils/databases.d.ts +0 -1
  68. package/dist/cjs/utils/databases.d.ts.map +1 -1
  69. package/dist/cjs/utils/databases.js +5 -6
  70. package/dist/cjs/utils/monacoAutocomplete.d.ts +21 -0
  71. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +1 -0
  72. package/dist/cjs/utils/monacoAutocomplete.js +250 -0
  73. package/dist/cjs/utils/schema.d.ts +5 -0
  74. package/dist/cjs/utils/schema.d.ts.map +1 -1
  75. package/dist/cjs/utils/schema.js +129 -0
  76. package/dist/esm/Admin.d.ts.map +1 -1
  77. package/dist/esm/Admin.js +24 -11
  78. package/dist/esm/AdminProvider.d.ts +2 -1
  79. package/dist/esm/AdminProvider.d.ts.map +1 -1
  80. package/dist/esm/AdminProvider.js +13 -24
  81. package/dist/esm/api/ConnectionClient.d.ts +8 -0
  82. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  83. package/dist/esm/api/ConnectionClient.js +42 -8
  84. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  85. package/dist/esm/components/DashboardSelectPopover.js +20 -3
  86. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  87. package/dist/esm/components/DropDownMenuWithLabel.js +4 -35
  88. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  89. package/dist/esm/components/EmptyDashboardComponent/index.js +11 -9
  90. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  91. package/dist/esm/components/QuillSelect.js +2 -2
  92. package/dist/esm/components/SegmentedControl.d.ts +4 -2
  93. package/dist/esm/components/SegmentedControl.d.ts.map +1 -1
  94. package/dist/esm/components/SegmentedControl.js +22 -16
  95. package/dist/esm/components/SqlTextEditor.d.ts +9 -1
  96. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  97. package/dist/esm/components/SqlTextEditor.js +59 -11
  98. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  99. package/dist/esm/components/UiComponents.js +12 -3
  100. package/dist/esm/constants/dataTypes.d.ts +2 -0
  101. package/dist/esm/constants/dataTypes.d.ts.map +1 -0
  102. package/dist/esm/constants/dataTypes.js +18 -0
  103. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  104. package/dist/esm/forms/client_onboard/ConnectDatabase.js +9 -17
  105. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  106. package/dist/esm/forms/client_onboard/CreateSqlViews.js +25 -12
  107. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +4 -1
  108. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  109. package/dist/esm/forms/sql_views/CreateEditSqlView.js +87 -36
  110. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  111. package/dist/esm/modals/EditFiltersModal.js +13 -3
  112. package/dist/esm/modals/NewDashboardModal.js +2 -2
  113. package/dist/esm/modals/PromoteDashModal.js +2 -2
  114. package/dist/esm/modals/PromoteViewModal.d.ts +2 -1
  115. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  116. package/dist/esm/modals/PromoteViewModal.js +50 -40
  117. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -0
  118. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  119. package/dist/esm/primitives/TextInputPrimitive.js +33 -21
  120. package/dist/esm/public_components/CreateEnvironment.d.ts +2 -1
  121. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  122. package/dist/esm/public_components/CreateEnvironment.js +4 -1
  123. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  124. package/dist/esm/public_components/DashboardBuilder.js +68 -157
  125. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  126. package/dist/esm/public_components/DashboardManager.js +73 -74
  127. package/dist/esm/public_components/SQLViewManager.d.ts +1 -0
  128. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  129. package/dist/esm/public_components/SQLViewManager.js +216 -42
  130. package/dist/esm/utils/astProcessing.d.ts +2 -0
  131. package/dist/esm/utils/astProcessing.d.ts.map +1 -0
  132. package/dist/esm/utils/astProcessing.js +37 -0
  133. package/dist/esm/utils/astProcessing.uspec.d.ts +2 -0
  134. package/dist/esm/utils/astProcessing.uspec.d.ts.map +1 -0
  135. package/dist/esm/utils/astProcessing.uspec.js +24 -0
  136. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  137. package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
  138. package/dist/esm/utils/columnProcessing.js +37 -0
  139. package/dist/esm/utils/dataEditor.d.ts +2 -2
  140. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  141. package/dist/esm/utils/dataEditor.js +4 -2
  142. package/dist/esm/utils/databases.d.ts +0 -1
  143. package/dist/esm/utils/databases.d.ts.map +1 -1
  144. package/dist/esm/utils/databases.js +5 -6
  145. package/dist/esm/utils/monacoAutocomplete.d.ts +21 -0
  146. package/dist/esm/utils/monacoAutocomplete.d.ts.map +1 -0
  147. package/dist/esm/utils/monacoAutocomplete.js +245 -0
  148. package/dist/esm/utils/schema.d.ts +5 -0
  149. package/dist/esm/utils/schema.d.ts.map +1 -1
  150. package/dist/esm/utils/schema.js +126 -1
  151. package/package.json +3 -2
@@ -7,24 +7,22 @@ import { Dashboard, useDashboard } from '@quillsql/react';
7
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';
14
13
  import { QuillSelectComponent } from '../components/QuillSelect';
15
14
  import { EditFiltersModal } from '../modals/EditFiltersModal';
16
15
  export default function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
17
16
  const { state, dispatch } = useAdmin();
18
17
  const parentRef = useRef(null);
18
+ const [copied, setCopied] = useState(false);
19
19
  const [initialLoad, setInitialLoad] = useState(true);
20
- const [dashboards, setDashboards] = useState([]);
21
20
  const [reloadFlag, setReloadFlag] = useState(false);
22
21
  const [selectedReorderDashboard, setSelectedReorderDashboard] = useState('');
23
22
  const [newDashboardModalIsOpen, setNewDashboardModalIsOpen] = useState(false);
24
23
  const [editFilterModalIsOpen, setEditFilterModalIsOpen] = useState(false);
25
24
  const { reload: reloadDashboard } = useDashboard(state.selectedDashboard?.name);
26
25
  const [isReorderDashboardModalOpen, setIsReorderDashboardModalOpen] = useState(false);
27
- const [dashboardData, setDashboardData] = useState(null);
28
26
  const [isPromoteDashModalOpen, setIsPromoteDashModalOpen] = useState(false);
29
27
  // A useless flag that just turns itself off.
30
28
  useEffect(() => {
@@ -87,59 +85,6 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
87
85
  isSubscribed = false;
88
86
  };
89
87
  }, [state.environment, state.client]);
90
- // MMTODO: Idk if this is needed
91
- // const handleSetOrganization = (org) => {
92
- // setOrganization(null);
93
- // setTimeout(() => setOrganization(org), 50);
94
- // };
95
- // MMTODO: Not sure if this actually does anything
96
- useEffect(() => {
97
- async function getDashboardData(dashboard, setData) {
98
- let responseData;
99
- if (state.queryEndpoint) {
100
- const response = await fetch(state.queryEndpoint, {
101
- method: 'POST',
102
- headers: {
103
- ...state.queryHeaders,
104
- 'Content-Type': 'application/json',
105
- },
106
- body: JSON.stringify({
107
- metadata: {
108
- orgId: state.organizationId || '*',
109
- task: 'config',
110
- name: dashboard,
111
- clientId: state.client._id,
112
- databaseType: state.client.databaseType,
113
- },
114
- }),
115
- credentials: state.withCredentials ? 'include' : 'omit', // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
116
- });
117
- responseData = (await response.json()).data;
118
- }
119
- else {
120
- const url = new URL(`${QUILL_SERVER}/dashconfig`);
121
- // Setting the search parameters for the URL
122
- url.search = new URLSearchParams({
123
- orgId: state.organizationId,
124
- publicKey: state.client._id,
125
- name: dashboard,
126
- }).toString();
127
- const response2 = await fetch(url, {
128
- method: 'GET',
129
- headers: {
130
- Authorization: 'Bearer ', // Ensure you append your token after 'Bearer ' if needed
131
- environment: state.environment,
132
- },
133
- });
134
- // If you need to retrieve the JSON data from the response:
135
- responseData = await response2.json();
136
- }
137
- setData(responseData);
138
- }
139
- if (state.selectedDashboard && state.client) {
140
- getDashboardData(state.selectedDashboard.name, setDashboardData);
141
- }
142
- }, [state.selectedDashboard, state.organizationId, state.client]);
143
88
  return (_jsxs("div", { style: containerStyle, children: [_jsxs("div", { style: {
144
89
  display: 'flex',
145
90
  flexDirection: 'column',
@@ -177,7 +122,12 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
177
122
  flexDirection: 'row',
178
123
  alignItems: 'flex-end',
179
124
  justifyContent: 'space-between',
180
- }, 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: {
181
131
  fontSize: '14px',
182
132
  paddingTop: '0px',
183
133
  marginTop: '0px',
@@ -190,6 +140,7 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
190
140
  return { value: elem.name, label: elem.name };
191
141
  })
192
142
  : [], setDashboard: (dashboard) => {
143
+ setReloadFlag(true);
193
144
  const selectedDashboard = state.dashboards.find((dash) => {
194
145
  return dash.name === dashboard;
195
146
  });
@@ -212,14 +163,59 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
212
163
  color: state.theme.secondaryTextColor,
213
164
  fontFamily: state.theme.fontFamily,
214
165
  userSelect: 'none',
215
- }, 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: {
216
214
  width: '100%',
217
215
  display: 'flex',
218
216
  flexDirection: 'column',
219
217
  alignItems: 'center',
220
218
  }, children: _jsxs("div", { style: {
221
- height: 80,
222
- width: 260,
223
219
  borderRadius: 6,
224
220
  marginTop: 100,
225
221
  display: 'flex',
@@ -227,16 +223,17 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
227
223
  alignItems: 'center',
228
224
  justifyContent: 'center',
229
225
  gap: 20,
230
- }, className: "hover-dash-rect", onClick: () => {
231
- setNewDashboardModalIsOpen(true);
232
- }, 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: {
233
230
  display: 'flex',
234
231
  flexDirection: 'row',
235
232
  alignItems: 'center',
236
233
  justifyContent: 'center',
237
234
  width: 260,
238
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: {
239
- fontSize: 14,
236
+ fontSize: 16,
240
237
  fontWeight: 500,
241
238
  color: '#565656',
242
239
  // border: '1px solid #e7e7e7',
@@ -246,10 +243,12 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
246
243
  paddingLeft: 12,
247
244
  borderRadius: 4,
248
245
  cursor: 'pointer',
249
- }, className: "quill-hover-button", children: "Create new dashboard" })] })] }) })), reloadFlag
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
250
249
  ? null
251
250
  : (state.dashboards.length || initialLoad) && (_jsx(Dashboard, { name: state.selectedDashboard?.name, containerStyle: { padding: 25 }, onClickReport: (elem) => {
252
- dispatch({ type: 'SET_REPORT_ID', payload: elem._id });
251
+ dispatch({ type: 'SET_REPORT_ID', payload: elem.id });
253
252
  dispatch({
254
253
  type: 'SET_ACTIVE_COMPONENT',
255
254
  payload: 'Report',
@@ -259,12 +258,12 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
259
258
  setIsReorderDashboardModalOpen(true);
260
259
  }, onSave: async (dashName) => {
261
260
  await getDashNames(dashName);
261
+ await reloadDashboard(dashName, true);
262
262
  setReloadFlag(true);
263
- reloadDashboard(dashName);
264
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) => {
265
264
  setSelectedReorderDashboard(dashboardName);
266
265
  setIsReorderDashboardModalOpen(true);
267
- }, onSave: (dashboard) => {
266
+ }, onSave: async (dashboard) => {
268
267
  dispatch({
269
268
  type: 'SET_SELECTED_DASHBOARD',
270
269
  payload: dashboard,
@@ -273,18 +272,18 @@ export default function DashboardManager({ navigateToDashboardBuilder, container
273
272
  type: 'SET_DASHBOARDS',
274
273
  payload: [...state.dashboards, { ...dashboard }],
275
274
  });
275
+ await reloadDashboard(state.selectedDashboard?.name, true);
276
276
  setReloadFlag(true);
277
- reloadDashboard(state.selectedDashboard?.name);
278
- }, 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: () => {
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);
279
279
  setReloadFlag(true);
280
- reloadDashboard(state.selectedDashboard?.name);
281
280
  }, setIsOpen: setIsReorderDashboardModalOpen, ModalComponent: ModalPrimitive, ButtonComponent: ButtonPrimitive, selectedDashboard: selectedReorderDashboard })] }))] }), _jsx(ReportWrapper, { isOpen: state.activeComponent === 'Report', setIsOpen: (isOpen) => {
282
281
  dispatch({
283
282
  type: 'SET_ACTIVE_COMPONENT',
284
283
  payload: isOpen ? 'Report' : 'Dashboards',
285
284
  });
286
- }, 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);
287
287
  setReloadFlag(true);
288
- reloadDashboard(state.selectedDashboard?.name);
289
288
  } })] }));
290
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;AAyBnE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,cAAc,GACf,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAgaA"}
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"}