@quillsql/admin 1.5.2 → 1.6.0

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 (141) 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 +200 -994
  4. package/dist/cjs/AdminProvider.d.ts +0 -11
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +16 -10
  7. package/dist/cjs/api/ConnectionClient.d.ts +11 -0
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +71 -10
  10. package/dist/cjs/components/DropDownMenu.js +1 -1
  11. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  12. package/dist/cjs/components/DropDownMenuWithLabel.js +16 -54
  13. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  14. package/dist/cjs/components/OrgSelect.js +10 -20
  15. package/dist/cjs/components/QuillSelect.d.ts +3 -0
  16. package/dist/cjs/components/QuillSelect.d.ts.map +1 -0
  17. package/dist/cjs/components/QuillSelect.js +137 -0
  18. package/dist/cjs/components/SegmentedControl.d.ts +7 -0
  19. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -0
  20. package/dist/cjs/components/SegmentedControl.js +54 -0
  21. package/dist/cjs/components/UiComponents.d.ts +18 -30
  22. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  23. package/dist/cjs/components/UiComponents.js +39 -84
  24. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +2 -1
  25. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  26. package/dist/cjs/forms/client_onboard/ConnectSchema.js +143 -68
  27. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  28. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +39 -10
  29. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +7 -4
  30. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  31. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +28 -25
  32. package/dist/cjs/hooks/useOnClickOutside.d.ts +3 -0
  33. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -0
  34. package/dist/cjs/hooks/useOnClickOutside.js +20 -0
  35. package/dist/cjs/modals/EditFiltersModal.d.ts +17 -0
  36. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -0
  37. package/dist/cjs/modals/EditFiltersModal.js +345 -0
  38. package/dist/cjs/modals/NewDashboardModal.d.ts +1 -3
  39. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  40. package/dist/cjs/modals/NewDashboardModal.js +62 -45
  41. package/dist/cjs/modals/PromoteDashModal.d.ts.map +1 -1
  42. package/dist/cjs/modals/PromoteDashModal.js +10 -3
  43. package/dist/cjs/modals/ReorderDashboardModal.d.ts.map +1 -1
  44. package/dist/cjs/modals/ReorderDashboardModal.js +42 -45
  45. package/dist/cjs/modals/index.d.ts +0 -1
  46. package/dist/cjs/modals/index.d.ts.map +1 -1
  47. package/dist/cjs/modals/index.js +1 -3
  48. package/dist/cjs/primitives/ButtonPrimitive.d.ts +3 -1
  49. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  50. package/dist/cjs/primitives/ButtonPrimitive.js +5 -3
  51. package/dist/cjs/primitives/TogglePrimitive.js +5 -5
  52. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  53. package/dist/cjs/public_components/CreateEnvironment.js +1 -1
  54. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  55. package/dist/cjs/public_components/DashboardBuilder.js +41 -6
  56. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  57. package/dist/cjs/public_components/DashboardManager.js +47 -83
  58. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  59. package/dist/cjs/public_components/SQLViewManager.js +69 -20
  60. package/dist/cjs/utils/schema.d.ts +6 -0
  61. package/dist/cjs/utils/schema.d.ts.map +1 -1
  62. package/dist/cjs/utils/table.d.ts +1 -0
  63. package/dist/cjs/utils/table.d.ts.map +1 -1
  64. package/dist/cjs/utils/table.js +13 -0
  65. package/dist/cjs/utils/textProcessing.d.ts +2 -0
  66. package/dist/cjs/utils/textProcessing.d.ts.map +1 -0
  67. package/dist/cjs/utils/textProcessing.js +9 -0
  68. package/dist/esm/Admin.d.ts +19 -72
  69. package/dist/esm/Admin.d.ts.map +1 -1
  70. package/dist/esm/Admin.js +203 -987
  71. package/dist/esm/AdminProvider.d.ts +0 -11
  72. package/dist/esm/AdminProvider.d.ts.map +1 -1
  73. package/dist/esm/AdminProvider.js +16 -10
  74. package/dist/esm/api/ConnectionClient.d.ts +11 -0
  75. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  76. package/dist/esm/api/ConnectionClient.js +69 -9
  77. package/dist/esm/components/DropDownMenu.js +1 -1
  78. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  79. package/dist/esm/components/DropDownMenuWithLabel.js +16 -54
  80. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  81. package/dist/esm/components/OrgSelect.js +6 -19
  82. package/dist/esm/components/QuillSelect.d.ts +3 -0
  83. package/dist/esm/components/QuillSelect.d.ts.map +1 -0
  84. package/dist/esm/components/QuillSelect.js +130 -0
  85. package/dist/esm/components/SegmentedControl.d.ts +7 -0
  86. package/dist/esm/components/SegmentedControl.d.ts.map +1 -0
  87. package/dist/esm/components/SegmentedControl.js +50 -0
  88. package/dist/esm/components/UiComponents.d.ts +18 -30
  89. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  90. package/dist/esm/components/UiComponents.js +36 -83
  91. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +2 -1
  92. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  93. package/dist/esm/forms/client_onboard/ConnectSchema.js +145 -70
  94. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  95. package/dist/esm/forms/client_onboard/CreateSqlViews.js +40 -11
  96. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +7 -4
  97. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  98. package/dist/esm/forms/sql_views/CreateEditSqlView.js +29 -26
  99. package/dist/esm/hooks/useOnClickOutside.d.ts +3 -0
  100. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -0
  101. package/dist/esm/hooks/useOnClickOutside.js +18 -0
  102. package/dist/esm/modals/EditFiltersModal.d.ts +17 -0
  103. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -0
  104. package/dist/esm/modals/EditFiltersModal.js +338 -0
  105. package/dist/esm/modals/NewDashboardModal.d.ts +1 -3
  106. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  107. package/dist/esm/modals/NewDashboardModal.js +62 -45
  108. package/dist/esm/modals/PromoteDashModal.d.ts.map +1 -1
  109. package/dist/esm/modals/PromoteDashModal.js +10 -3
  110. package/dist/esm/modals/ReorderDashboardModal.d.ts.map +1 -1
  111. package/dist/esm/modals/ReorderDashboardModal.js +43 -46
  112. package/dist/esm/modals/index.d.ts +0 -1
  113. package/dist/esm/modals/index.d.ts.map +1 -1
  114. package/dist/esm/modals/index.js +0 -1
  115. package/dist/esm/primitives/ButtonPrimitive.d.ts +3 -1
  116. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  117. package/dist/esm/primitives/ButtonPrimitive.js +5 -3
  118. package/dist/esm/primitives/TogglePrimitive.js +5 -5
  119. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  120. package/dist/esm/public_components/CreateEnvironment.js +1 -1
  121. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  122. package/dist/esm/public_components/DashboardBuilder.js +41 -6
  123. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  124. package/dist/esm/public_components/DashboardManager.js +49 -85
  125. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  126. package/dist/esm/public_components/SQLViewManager.js +69 -20
  127. package/dist/esm/utils/schema.d.ts +6 -0
  128. package/dist/esm/utils/schema.d.ts.map +1 -1
  129. package/dist/esm/utils/table.d.ts +1 -0
  130. package/dist/esm/utils/table.d.ts.map +1 -1
  131. package/dist/esm/utils/table.js +11 -1
  132. package/dist/esm/utils/textProcessing.d.ts +2 -0
  133. package/dist/esm/utils/textProcessing.d.ts.map +1 -0
  134. package/dist/esm/utils/textProcessing.js +5 -0
  135. package/package.json +1 -1
  136. package/dist/cjs/modals/EditDashboardsModal.d.ts +0 -20
  137. package/dist/cjs/modals/EditDashboardsModal.d.ts.map +0 -1
  138. package/dist/cjs/modals/EditDashboardsModal.js +0 -94
  139. package/dist/esm/modals/EditDashboardsModal.d.ts +0 -20
  140. package/dist/esm/modals/EditDashboardsModal.d.ts.map +0 -1
  141. package/dist/esm/modals/EditDashboardsModal.js +0 -91
@@ -9,18 +9,14 @@ const sortable_1 = require("@dnd-kit/sortable");
9
9
  const utilities_1 = require("@dnd-kit/utilities");
10
10
  const core_1 = require("@dnd-kit/core");
11
11
  const react_2 = require("@quillsql/react");
12
+ const UiComponents_1 = require("../components/UiComponents");
12
13
  function ReorderDashboardModal({ isOpen, setIsOpen, client, onSave, ModalComponent, ButtonComponent, selectedDashboard, organizationId, }) {
13
- // const [client] = useContext(ClientContext);
14
- const [dashboardItems, setDashboardItems] = (0, react_1.useState)([]);
14
+ const { state } = (0, AdminProvider_1.useAdmin)();
15
+ const [sections, setSections] = (0, react_1.useState)([]);
16
+ const [metrics, setMetrics] = (0, react_1.useState)({});
17
+ const [charts, setCharts] = (0, react_1.useState)({});
18
+ const [tables, setTables] = (0, react_1.useState)({});
15
19
  const [loading, setLoading] = (0, react_1.useState)(false);
16
- const [doesDashboardHaveTables, setDoesDashboardHaveTables] = (0, react_1.useState)(false);
17
- const [doesDashboardHaveCharts, setDoesDashboardHaveCharts] = (0, react_1.useState)(false);
18
- const [doesDashboardHaveMetrics, setDoesDashboardHaveMetrics] = (0, react_1.useState)(false);
19
- const [itemMap, setItemMap] = (0, react_1.useState)(null);
20
- const [metrics, setMetrics] = (0, react_1.useState)([]);
21
- const [charts, setCharts] = (0, react_1.useState)([]);
22
- const [tables, setTables] = (0, react_1.useState)([]);
23
- const { state, dispatch } = (0, AdminProvider_1.useAdmin)();
24
20
  (0, react_1.useEffect)(() => {
25
21
  async function getDashboardItems() {
26
22
  const { _id, environment } = state.client;
@@ -39,41 +35,23 @@ function ReorderDashboardModal({ isOpen, setIsOpen, client, onSave, ModalCompone
39
35
  },
40
36
  });
41
37
  const responseData = await response.json();
42
- let flattened = [];
43
- for (let key in responseData.sections) {
44
- flattened = flattened.concat(responseData.sections[key]);
45
- }
46
- setDashboardItems(flattened);
47
- setMetrics(flattened.filter((elem) => elem.chartType === 'metric'));
48
- setTables(flattened.filter((elem) => elem.chartType === 'table'));
49
- setCharts(flattened.filter((elem) => !['metric', 'table'].includes(elem.chartType)));
38
+ const sections = responseData.sections;
39
+ setSections(Object.keys(sections));
40
+ const isMetric = (elem) => elem.chartType === 'metric';
41
+ const isChart = (elem) => !['metric', 'table'].includes(elem.chartType);
42
+ const isTable = (elem) => elem.chartType === 'table';
43
+ setMetrics(Object.fromEntries(Object.entries(sections).map(([k, v]) => [k, v.filter(isMetric)])));
44
+ setCharts(Object.fromEntries(Object.entries(sections).map(([k, v]) => [k, v.filter(isChart)])));
45
+ setTables(Object.fromEntries(Object.entries(sections).map(([k, v]) => [k, v.filter(isTable)])));
50
46
  setLoading(false);
51
47
  }
52
48
  if (selectedDashboard && state.client) {
53
49
  getDashboardItems();
54
50
  }
55
51
  }, [selectedDashboard, state.client]);
56
- (0, react_1.useEffect)(() => {
57
- const itemMap = new Map();
58
- dashboardItems.forEach((item) => {
59
- if (item.chartType === 'table') {
60
- setDoesDashboardHaveTables(true);
61
- }
62
- else if (item.chartType === 'metric') {
63
- setDoesDashboardHaveMetrics(true);
64
- }
65
- else {
66
- setDoesDashboardHaveCharts(true);
67
- }
68
- itemMap.set(item._id, item);
69
- });
70
- setItemMap(itemMap);
71
- }, [dashboardItems]);
72
52
  const handleSaveChanges = async () => {
73
53
  if (!client)
74
54
  return;
75
- if (!dashboardItems.length)
76
- return;
77
55
  try {
78
56
  const response = await fetch(`${constants_1.QUILL_SERVER}/dashorder/`, {
79
57
  method: 'POST',
@@ -82,7 +60,11 @@ function ReorderDashboardModal({ isOpen, setIsOpen, client, onSave, ModalCompone
82
60
  },
83
61
  body: JSON.stringify({
84
62
  publicKey: client._id,
85
- orderArray: [...metrics, ...charts, ...tables],
63
+ orderArray: [
64
+ ...Object.values(metrics).flat(),
65
+ ...Object.values(charts).flat(),
66
+ ...Object.values(tables).flat(),
67
+ ],
86
68
  }),
87
69
  });
88
70
  if (!response.ok) {
@@ -104,7 +86,7 @@ function ReorderDashboardModal({ isOpen, setIsOpen, client, onSave, ModalCompone
104
86
  flexDirection: 'column',
105
87
  width: 'calc(100vw - 80px)',
106
88
  height: 'calc(100vh - 80px)',
107
- }, children: [(0, jsx_runtime_1.jsx)("h1", { style: { fontSize: 22, fontWeight: 600, width: '100%' }, children: "Reorder Items" }), loading ? (0, jsx_runtime_1.jsx)("div", { children: "Loading..." }) : null, (0, jsx_runtime_1.jsx)("div", { style: {
89
+ }, children: [(0, jsx_runtime_1.jsx)("h1", { style: { fontSize: 22, fontWeight: 600, width: '100%' }, children: "Reorder Items" }), loading ? (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) : null, (0, jsx_runtime_1.jsx)("div", { style: {
108
90
  display: 'flex',
109
91
  flexDirection: 'column',
110
92
  gap: 20,
@@ -112,7 +94,18 @@ function ReorderDashboardModal({ isOpen, setIsOpen, client, onSave, ModalCompone
112
94
  width: '100%',
113
95
  height: 'calc(100% - 20px)',
114
96
  zIndex: 100,
115
- }, children: (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: 20 }, children: dashboardItems.length > 0 && itemMap.size > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [doesDashboardHaveMetrics && ((0, jsx_runtime_1.jsx)(ReorderableGrid, { type: 'metrics', items: metrics, setItems: setMetrics })), doesDashboardHaveCharts && ((0, jsx_runtime_1.jsx)(ReorderableGrid, { type: 'charts', items: charts, setItems: setCharts })), doesDashboardHaveTables && ((0, jsx_runtime_1.jsx)(ReorderableGrid, { type: 'tables', items: tables, setItems: setTables }))] })) }) }), (0, jsx_runtime_1.jsx)("div", { style: {
97
+ }, children: (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: 20 }, children: sections
98
+ .sort((a, b) => a.length - b.length)
99
+ .map((sectionName, sectionIndex) => ((0, jsx_runtime_1.jsxs)("div", { style: {
100
+ display: 'flex',
101
+ flexDirection: 'column',
102
+ gap: 20,
103
+ }, children: [sectionName && ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, children: (0, jsx_runtime_1.jsx)("h1", { style: {
104
+ fontSize: 22,
105
+ fontWeight: 'bold',
106
+ textAlign: 'left',
107
+ marginTop: sectionIndex > 0 ? 20 : 0,
108
+ }, children: sectionName }) })), metrics[sectionName]?.length > 0 && ((0, jsx_runtime_1.jsx)(ReorderableGrid, { type: 'metrics', section: sectionName, items: metrics[sectionName], setItems: setMetrics })), charts[sectionName]?.length > 0 && ((0, jsx_runtime_1.jsx)(ReorderableGrid, { type: 'charts', section: sectionName, items: charts[sectionName], setItems: setCharts })), tables[sectionName]?.length > 0 && ((0, jsx_runtime_1.jsx)(ReorderableGrid, { type: 'tables', section: sectionName, items: tables[sectionName], setItems: setTables }))] }))) }) }), (0, jsx_runtime_1.jsx)("div", { style: {
116
109
  width: '100%',
117
110
  display: 'flex',
118
111
  flexDirection: 'row',
@@ -157,13 +150,15 @@ const SortableItem = (props) => {
157
150
  fontSize: 18,
158
151
  fontWeight: '500',
159
152
  flexGrow: 1,
160
- }, children: props.value }), (0, jsx_runtime_1.jsx)(HandleButton, {})] }), (0, jsx_runtime_1.jsx)(react_2.Chart, { chartId: props.id, containerStyle: {
153
+ }, children: props.value }), (0, jsx_runtime_1.jsx)(HandleButton, {})] }), (0, jsx_runtime_1.jsx)(react_2.Chart, { reportId: props.id, containerStyle: {
161
154
  padding: 10,
162
155
  height: props.chartType === 'metric' ? 80 : 250,
163
156
  width: 'calc(100% - 20px)',
164
157
  } })] }) }) }));
165
158
  };
166
- function ReorderableGrid({ type, items, setItems }) {
159
+ function ReorderableGrid({ type, section, items, setItems }) {
160
+ if (!items)
161
+ return null;
167
162
  const sensors = (0, core_1.useSensors)((0, core_1.useSensor)(core_1.PointerSensor), (0, core_1.useSensor)(core_1.KeyboardSensor, {
168
163
  coordinateGetter: sortable_1.sortableKeyboardCoordinates,
169
164
  }), (0, core_1.useSensor)(core_1.TouchSensor, {
@@ -174,10 +169,12 @@ function ReorderableGrid({ type, items, setItems }) {
174
169
  if (!active || !over)
175
170
  return;
176
171
  if (active.id !== over.id) {
177
- setItems((itemList) => {
178
- const oldIndex = itemList.findIndex((item) => item._id === active.id);
179
- const newIndex = itemList.findIndex((item) => item._id === over.id);
180
- return (0, sortable_1.arrayMove)(itemList, oldIndex, newIndex);
172
+ setItems((items) => {
173
+ const list = items[section];
174
+ const oldIndex = list.findIndex((item) => item._id === active.id);
175
+ const newIndex = list.findIndex((item) => item._id === over.id);
176
+ const newOrder = (0, sortable_1.arrayMove)(list, oldIndex, newIndex);
177
+ return { ...items, [section]: newOrder };
181
178
  });
182
179
  }
183
180
  };
@@ -1,5 +1,4 @@
1
1
  export { default as PromoteDashModal } from './PromoteDashModal';
2
- export { default as EditDashboardsModal } from './EditDashboardsModal';
3
2
  export { default as PromoteViewModal } from './PromoteViewModal';
4
3
  export { default as ReorderDashboardModal } from './ReorderDashboardModal';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modals/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modals/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -3,11 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ReorderDashboardModal = exports.PromoteViewModal = exports.EditDashboardsModal = exports.PromoteDashModal = void 0;
6
+ exports.ReorderDashboardModal = exports.PromoteViewModal = exports.PromoteDashModal = void 0;
7
7
  var PromoteDashModal_1 = require("./PromoteDashModal");
8
8
  Object.defineProperty(exports, "PromoteDashModal", { enumerable: true, get: function () { return __importDefault(PromoteDashModal_1).default; } });
9
- var EditDashboardsModal_1 = require("./EditDashboardsModal");
10
- Object.defineProperty(exports, "EditDashboardsModal", { enumerable: true, get: function () { return __importDefault(EditDashboardsModal_1).default; } });
11
9
  var PromoteViewModal_1 = require("./PromoteViewModal");
12
10
  Object.defineProperty(exports, "PromoteViewModal", { enumerable: true, get: function () { return __importDefault(PromoteViewModal_1).default; } });
13
11
  var ReorderDashboardModal_1 = require("./ReorderDashboardModal");
@@ -7,6 +7,8 @@ type ButtonPrimitiveProps = {
7
7
  style?: React.CSSProperties;
8
8
  variant?: 'primary' | 'secondary' | 'danger';
9
9
  };
10
- declare const ButtonPrimitive: React.FC<ButtonPrimitiveProps>;
10
+ declare const ButtonPrimitive: React.FC<ButtonPrimitiveProps & {
11
+ isLoading?: boolean;
12
+ }>;
11
13
  export default ButtonPrimitive;
12
14
  //# sourceMappingURL=ButtonPrimitive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/ButtonPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAC;AAE7D,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC9C,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqEnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ButtonPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/ButtonPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAC;AAG7D,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC9C,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAC7B,oBAAoB,GAAG;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAoFF,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
4
  const Admin_1 = require("../Admin");
5
- const ButtonPrimitive = ({ onClick, label, theme = Admin_1.theme, style, variant = 'primary', }) => {
5
+ const UiComponents_1 = require("../components/UiComponents");
6
+ const ButtonPrimitive = ({ onClick, isLoading = false, label, theme = Admin_1.theme, style, variant = 'primary', }) => {
6
7
  if (variant === 'danger') {
7
8
  return ((0, jsx_runtime_1.jsxs)("button", { style: {
8
9
  height: 36,
@@ -20,7 +21,7 @@ const ButtonPrimitive = ({ onClick, label, theme = Admin_1.theme, style, variant
20
21
  paddingLeft: 20,
21
22
  paddingRight: 20,
22
23
  ...style,
23
- }, onClick: onClick, className: "quill--danger-button", children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill--danger-button { background: #e7e7e7 } .quill--danger-button:hover { background: #DCDCDC }` }), label] }));
24
+ }, onClick: onClick, className: "quill--danger-button", children: [(0, jsx_runtime_1.jsx)("style", { children: ` .quill--danger-button { background: #e7e7e7 } .quill--danger-button:hover { background: #DCDCDC }` }), isLoading ? ((0, jsx_runtime_1.jsx)("div", { style: { padding: '32px 0px' }, children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) })) : (label)] }));
24
25
  }
25
26
  return ((0, jsx_runtime_1.jsxs)("button", { style: {
26
27
  height: 36,
@@ -34,6 +35,7 @@ const ButtonPrimitive = ({ onClick, label, theme = Admin_1.theme, style, variant
34
35
  fontFamily: theme?.fontFamily,
35
36
  fontWeight: theme?.buttonFontWeight || 600,
36
37
  border: 'none',
38
+ whiteSpace: 'nowrap',
37
39
  fontSize: 14,
38
40
  paddingLeft: 20,
39
41
  paddingRight: 20,
@@ -44,6 +46,6 @@ const ButtonPrimitive = ({ onClick, label, theme = Admin_1.theme, style, variant
44
46
  }
45
47
  .quill-button:hover {
46
48
  background: rgba(0,0,0,0.75);
47
- }` }), label] }));
49
+ }` }), isLoading ? ((0, jsx_runtime_1.jsx)("div", { style: { padding: '0px 16px' }, children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) })) : (label)] }));
48
50
  };
49
51
  exports.default = ButtonPrimitive;
@@ -6,8 +6,8 @@ const TogglePrimitive = ({ value, onClick }) => {
6
6
  container: {
7
7
  display: 'inline-block',
8
8
  position: 'relative',
9
- width: '70px',
10
- height: '38px',
9
+ width: '50px',
10
+ height: '30px',
11
11
  borderRadius: '24px',
12
12
  backgroundColor: value ? '#212121' : '#ccc',
13
13
  cursor: 'pointer',
@@ -16,9 +16,9 @@ const TogglePrimitive = ({ value, onClick }) => {
16
16
  circle: {
17
17
  position: 'absolute',
18
18
  top: '3px',
19
- left: value ? '35px' : '3px',
20
- width: '32px',
21
- height: '32px',
19
+ left: value ? '23px' : '3px',
20
+ width: '24px',
21
+ height: '24px',
22
22
  borderRadius: '50%',
23
23
  backgroundColor: '#FFF',
24
24
  transition: 'left 0.4s',
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEnvironment.d.ts","sourceRoot":"","sources":["../../../src/public_components/CreateEnvironment.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAuClE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAqMA"}
1
+ {"version":3,"file":"CreateEnvironment.d.ts","sourceRoot":"","sources":["../../../src/public_components/CreateEnvironment.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAuClE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAsMA"}
@@ -145,7 +145,7 @@ function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
145
145
  setCreateEnvSteps(updatedSteps);
146
146
  setAllSchemaInfo(schemaDetails);
147
147
  openStep('createSQLViews');
148
- }, allSchemaInfo: allSchemaInfo, environmentDetails: environmentDetails, initialError: initialError, clientId: clientId })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Connect Schema", completed: createEnvSteps.connectSchema.completed, header1Style: header1Style, onClick: () => {
148
+ }, allSchemaInfo: allSchemaInfo, environmentDetails: environmentDetails, initialError: initialError, clientId: clientId, state: state })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Connect Schema", completed: createEnvSteps.connectSchema.completed, header1Style: header1Style, onClick: () => {
149
149
  openStep('connectSchema');
150
150
  setInitialError(undefined);
151
151
  } })), createEnvSteps.createSQLViews.open ? ((0, jsx_runtime_1.jsx)(CreateSqlViews_1.default, { containerStyle: {
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardBuilder.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AAa5E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,EACd,SAAgB,GACjB,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CA8ZA"}
1
+ {"version":3,"file":"DashboardBuilder.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AAY5E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,EACd,SAAgB,GACjB,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CAgcA"}
@@ -12,7 +12,6 @@ const react_2 = require("@quillsql/react");
12
12
  const constants_1 = require("../utils/constants");
13
13
  const Banner_1 = __importDefault(require("../components/Banner"));
14
14
  const DatabaseMismatchCard_1 = __importDefault(require("../components/DatabaseMismatchCard"));
15
- const primitives_1 = require("../primitives");
16
15
  const modeToggleOptions = ['SQL Editor', 'Report Builder'];
17
16
  function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEditor = true, }) {
18
17
  const parentRef = (0, react_1.useRef)(null);
@@ -160,7 +159,7 @@ function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEdito
160
159
  borderLeftWidth: 0,
161
160
  borderRightWidth: 0,
162
161
  borderStyle: 'solid',
163
- borderColor: state.theme.borderColor,
162
+ borderColor: state.theme?.borderColor,
164
163
  paddingBottom: 20,
165
164
  // boxShadow: "0px 1px 4px 0px rgba(0, 0, 0, 0.07)",
166
165
  // paddingRight: '50px',
@@ -237,7 +236,12 @@ function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEdito
237
236
  // and don't refetch when switching back and forth.
238
237
  height: toggleMode === 'Report Builder' ? '100%' : 0,
239
238
  overflow: 'hidden',
240
- }, children: (0, jsx_runtime_1.jsx)(react_2.ReportBuilder, { admin: true, initialTableName: state.tables.length > 0 && state.tables[0].name, onAddToDashboardComplete: () => {
239
+ }, children: (0, jsx_runtime_1.jsx)(react_2.ReportBuilder, { isAdminEnabled: true,
240
+ // initialTableName={state.tables.length > 0 && state.tables[0]!.name}
241
+ onSubmitCreateReport: (report) => {
242
+ const dashboard = state.dashboards.find((dash) => {
243
+ return dash.name === report.dashboardName;
244
+ });
241
245
  dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
242
246
  dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
243
247
  if (state.navigateToDashboardManager) {
@@ -245,14 +249,41 @@ function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEdito
245
249
  type: 'SET_ACTIVE_COMPONENT',
246
250
  payload: 'Dashboards',
247
251
  });
252
+ dispatch({
253
+ type: 'SET_SELECTED_DASHBOARD',
254
+ payload: dashboard,
255
+ });
256
+ state.navigateToDashboardManager();
257
+ }
258
+ }, onSubmitEditReport: (report) => {
259
+ const dashboard = state.dashboards.find((dash) => {
260
+ return dash.name === report.dashboardName;
261
+ });
262
+ dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
263
+ dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
264
+ if (state.navigateToDashboardManager) {
265
+ dispatch({
266
+ type: 'SET_ACTIVE_COMPONENT',
267
+ payload: 'Dashboards',
268
+ });
269
+ dispatch({
270
+ type: 'SET_SELECTED_DASHBOARD',
271
+ payload: dashboard,
272
+ });
248
273
  state.navigateToDashboardManager();
249
274
  }
250
275
  }, organizationName: state.organizations.find((org) => {
251
276
  return (org.id && String(org.id) === String(state.organizationId));
252
- })?.name }) }), sqlEditor && !state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsx)("div", { style: {
277
+ })?.name, containerStyle: {
278
+ height: '100%',
279
+ width: '100%',
280
+ } }) }), sqlEditor && !state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsx)("div", { style: {
253
281
  height: toggleMode === 'SQL Editor' ? '100%' : 0,
254
282
  overflow: 'hidden',
255
- }, children: (0, jsx_runtime_1.jsx)(react_2.SQLEditor, { chartBuilderEnabled: true, showAccessControlOptions: true, showDateFieldOptions: true, showTableFormatOptions: true, defaultQuery: query, isEditMode: !!state.activeQuery, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', dashboardItem: state.activeQuery ? state.activeEditItem : undefined, onAddToDashboardComplete: () => {
283
+ }, children: (0, jsx_runtime_1.jsx)(react_2.SQLEditor, { isChartBuilderEnabled: true, showAccessControlOptions: true, showDateFieldOptions: true, showTableFormatOptions: true, defaultQuery: query, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', report: state.activeQuery ? state.activeEditItem : undefined, onAddToDashboardComplete: (report) => {
284
+ const dashboard = state.dashboards.find((dash) => {
285
+ return dash.name === report.dashboardName;
286
+ });
256
287
  dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
257
288
  dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
258
289
  if (state.navigateToDashboardManager) {
@@ -260,6 +291,10 @@ function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEdito
260
291
  type: 'SET_ACTIVE_COMPONENT',
261
292
  payload: 'Dashboards',
262
293
  });
294
+ dispatch({
295
+ type: 'SET_SELECTED_DASHBOARD',
296
+ payload: dashboard,
297
+ });
263
298
  state.navigateToDashboardManager();
264
299
  }
265
300
  }, containerStyle: {
@@ -269,6 +304,6 @@ function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEdito
269
304
  // paddingTop: 25,
270
305
  }, organizationName: state.organizations.find((org) => {
271
306
  return (org.id && String(org.id) === String(state.organizationId));
272
- })?.name, ButtonComponent: primitives_1.ButtonPrimitive }) }))] }) }));
307
+ })?.name }) }))] }) }));
273
308
  }
274
309
  exports.default = DashboardBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AAiCnE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAukBA"}
1
+ {"version":3,"file":"DashboardManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AA0BnE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAofA"}
@@ -16,34 +16,28 @@ const constants_1 = require("../utils/constants");
16
16
  const EmptyDashboardComponent_1 = __importDefault(require("../components/EmptyDashboardComponent"));
17
17
  const DatabaseMismatchCard_1 = __importDefault(require("../components/DatabaseMismatchCard"));
18
18
  const UiComponents_1 = require("../components/UiComponents");
19
+ const QuillSelect_1 = require("../components/QuillSelect");
20
+ const EditFiltersModal_1 = require("../modals/EditFiltersModal");
19
21
  function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
20
22
  const { state, dispatch } = (0, AdminProvider_1.useAdmin)();
21
23
  const parentRef = (0, react_1.useRef)(null);
22
24
  const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
23
25
  const [dashboards, setDashboards] = (0, react_1.useState)([]);
24
26
  const [reloadFlag, setReloadFlag] = (0, react_1.useState)(false);
25
- const [selectedEditDashboard, setSelectedEditDashboard] = (0, react_1.useState)('');
26
27
  const [selectedReorderDashboard, setSelectedReorderDashboard] = (0, react_1.useState)('');
27
- const [addFilterModalIsOpen, setAddFilterModalIsOpen] = (0, react_1.useState)(false);
28
- const [isAddDashboardModalOpen, setIsAddDashboardModalOpen] = (0, react_1.useState)(false);
29
28
  const [newDashboardModalIsOpen, setNewDashboardModalIsOpen] = (0, react_1.useState)(false);
30
29
  const [editFilterModalIsOpen, setEditFilterModalIsOpen] = (0, react_1.useState)(false);
31
- const { reload: reloadDashboard } = (0, react_2.useDashboard)(state.selectedDashboard);
30
+ const { reload: reloadDashboard } = (0, react_2.useDashboard)(state.selectedDashboard?.name);
32
31
  const [isReorderDashboardModalOpen, setIsReorderDashboardModalOpen] = (0, react_1.useState)(false);
33
32
  const [dashboardData, setDashboardData] = (0, react_1.useState)(null);
34
- // const [activeComponent, setActiveComponent] = useContext(
35
- // ActiveComponentContext
36
- // );
37
- const [isEditDashboardModalOpen, setIsEditDashboardModalOpen] = (0, react_1.useState)(false);
38
33
  const [isPromoteDashModalOpen, setIsPromoteDashModalOpen] = (0, react_1.useState)(false);
39
- const [isOpen, setIsOpen] = (0, react_1.useState)(false);
40
34
  // A useless flag that just turns itself off.
41
35
  (0, react_1.useEffect)(() => {
42
36
  if (reloadFlag) {
43
37
  setReloadFlag(false);
44
38
  }
45
39
  }, [reloadFlag]);
46
- async function getDashNames() {
40
+ async function getDashNames(dashboardName) {
47
41
  const response = await fetch(`${state.queryEndpoint}`, {
48
42
  method: 'POST',
49
43
  headers: {
@@ -63,20 +57,19 @@ function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
63
57
  const data = await response.json();
64
58
  setInitialLoad(false);
65
59
  if (!data.data.dashboardNames || !data.data.dashboardNames.length) {
60
+ dispatch({ type: 'SET_DASHBOARDS', payload: [] });
66
61
  return;
67
62
  }
68
- const dashNames = data.data.dashboardNames.map((elem) => {
69
- if (!elem) {
70
- return { name: 'null' };
71
- }
72
- return { name: elem };
63
+ let selectedDashboard = data.data.dashboards.find((dash) => {
64
+ return dash.name === dashboardName;
73
65
  });
74
- dispatch({ type: 'SET_DASHBOARDS', payload: dashNames });
66
+ if (!selectedDashboard) {
67
+ selectedDashboard = data.data.dashboards[0];
68
+ }
69
+ dispatch({ type: 'SET_DASHBOARDS', payload: data.data.dashboards });
75
70
  dispatch({
76
71
  type: 'SET_SELECTED_DASHBOARD',
77
- payload: dashNames.some((dash) => dash.name === state.selectedDashboard)
78
- ? state.selectedDashboard
79
- : dashNames[0].name,
72
+ payload: selectedDashboard,
80
73
  });
81
74
  }
82
75
  (0, react_1.useEffect)(() => {
@@ -93,7 +86,7 @@ function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
93
86
  (0, react_1.useEffect)(() => {
94
87
  let isSubscribed = true;
95
88
  if (isSubscribed) {
96
- getDashNames();
89
+ getDashNames(state.selectedDashboard?.name || '');
97
90
  }
98
91
  return () => {
99
92
  isSubscribed = false;
@@ -148,21 +141,10 @@ function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
148
141
  }
149
142
  setData(responseData);
150
143
  }
151
- if (state.selectedEditDashboard) {
152
- getDashboardData(state.selectedEditDashboard, (data) => {
153
- dispatch({ type: 'SET_EDIT_DASHBOARD_DATA', payload: data });
154
- });
155
- return;
156
- }
157
144
  if (state.selectedDashboard && state.client) {
158
- getDashboardData(state.selectedDashboard, setDashboardData);
145
+ getDashboardData(state.selectedDashboard.name, setDashboardData);
159
146
  }
160
- }, [
161
- state.selectedDashboard,
162
- state.selectedEditDashboard,
163
- state.organizationId,
164
- state.client,
165
- ]);
147
+ }, [state.selectedDashboard, state.organizationId, state.client]);
166
148
  return ((0, jsx_runtime_1.jsxs)("div", { style: containerStyle, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
167
149
  display: 'flex',
168
150
  flexDirection: 'column',
@@ -188,7 +170,7 @@ function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
188
170
  borderLeftWidth: 0,
189
171
  borderRightWidth: 0,
190
172
  borderStyle: 'solid',
191
- borderColor: state.theme.borderColor,
173
+ borderColor: state.theme?.borderColor,
192
174
  paddingBottom: 20,
193
175
  // boxShadow: "0px 1px 4px 0px rgba(0, 0, 0, 0.07)",
194
176
  // paddingRight: '50px',
@@ -213,17 +195,18 @@ function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
213
195
  return { value: elem.name, label: elem.name };
214
196
  })
215
197
  : [], setDashboard: (dashboard) => {
198
+ const selectedDashboard = state.dashboards.find((dash) => {
199
+ return dash.name === dashboard;
200
+ });
216
201
  dispatch({
217
202
  type: 'SET_SELECTED_DASHBOARD',
218
- payload: dashboard,
203
+ payload: selectedDashboard,
219
204
  });
220
- }, dashboard: state.selectedDashboard ? state.selectedDashboard : '', theme: state.theme, onClickNewDashboard: () => {
205
+ }, dashboard: state.selectedDashboard
206
+ ? state.selectedDashboard.name
207
+ : '', theme: state.theme, onClickNewDashboard: () => {
221
208
  setNewDashboardModalIsOpen(true);
222
209
  }, setSelectedEditDashboard: (d) => {
223
- dispatch({
224
- type: 'SET_SELECTED_EDIT_DASHBOARD',
225
- payload: d,
226
- });
227
210
  setEditFilterModalIsOpen(true);
228
211
  } })] })), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)("h1", { style: {
229
212
  fontSize: '14px',
@@ -268,65 +251,46 @@ function DashboardManager({ navigateToDashboardBuilder, containerStyle, }) {
268
251
  paddingLeft: 12,
269
252
  borderRadius: 4,
270
253
  cursor: 'pointer',
271
- }, className: "quill-hover-button", children: "Create new dashboard" })] })] }) })), reloadFlag ? null : ((0, jsx_runtime_1.jsx)(react_2.Dashboard, { name: state.selectedDashboard, containerStyle: { padding: 25 }, onClickDashboardItem: (elem) => {
272
- dispatch({ type: 'SET_REPORT_ID', payload: elem._id });
273
- dispatch({
274
- type: 'SET_ACTIVE_COMPONENT',
275
- payload: 'Report',
276
- });
277
- }, EmptyDashboardComponent: EmptyDashboardComponent_1.default }))] }), (0, jsx_runtime_1.jsx)(modals_1.EditDashboardsModal, { clientId: state.client._id, isOpen: isEditDashboardModalOpen, setIsOpen: setIsEditDashboardModalOpen, ModalComponent: primitives_1.ModalPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, openEditFilterModal: (dashboardName) => {
278
- dispatch({
279
- type: 'SET_SELECTED_EDIT_DASHBOARD',
280
- payload: dashboardName,
281
- });
282
- setEditFilterModalIsOpen(true);
283
- // setIsEditDashboardModalOpen(false);
284
- }, openAddDashboardModal: () => {
285
- setIsAddDashboardModalOpen(true);
286
- // setIsEditDashboardModalOpen(false);
287
- }, openEditOrderModal: (dashboardName) => {
254
+ }, className: "quill-hover-button", children: "Create new dashboard" })] })] }) })), reloadFlag
255
+ ? null
256
+ : (state.dashboards.length || initialLoad) && ((0, jsx_runtime_1.jsx)(react_2.Dashboard, { name: state.selectedDashboard?.name, containerStyle: { padding: 25 }, onClickReport: (elem) => {
257
+ dispatch({ type: 'SET_REPORT_ID', payload: elem._id });
258
+ dispatch({
259
+ type: 'SET_ACTIVE_COMPONENT',
260
+ payload: 'Report',
261
+ });
262
+ }, EmptyDashboardComponent: EmptyDashboardComponent_1.default }))] }), state.selectedDashboard && ((0, jsx_runtime_1.jsx)(modals_1.PromoteDashModal, { clientId: state.client._id, client: state.client, clients: state.clients, isOpen: isPromoteDashModalOpen, setIsOpen: setIsPromoteDashModalOpen, ModalComponent: primitives_1.ModalPrimitive, dashboards: state.dashboards, selectedDashboard: state.selectedDashboard?.name, theme: state.theme, ButtonComponent: primitives_1.ButtonPrimitive })), state.selectedDashboard && ((0, jsx_runtime_1.jsx)(EditFiltersModal_1.EditFiltersModal, { selectedDashboard: state.selectedDashboard, dashboardData: state.selectedDashboard, isOpen: editFilterModalIsOpen, setIsOpen: setEditFilterModalIsOpen, openEditOrderModal: (dashboardName) => {
288
263
  setSelectedReorderDashboard(dashboardName);
289
264
  setIsReorderDashboardModalOpen(true);
290
- }, HeaderComponent: primitives_1.HeaderPrimitive, setDashboardData: setDashboardData, dashboards: state.dashboards, getDashNames: getDashNames }), (0, jsx_runtime_1.jsx)(modals_1.PromoteDashModal, { clientId: state.client._id, client: state.client, clients: state.clients, isOpen: isPromoteDashModalOpen, setIsOpen: setIsPromoteDashModalOpen, ModalComponent: primitives_1.ModalPrimitive, dashboards: state.dashboards, selectedDashboard: state.selectedDashboard, theme: state.theme, ButtonComponent: primitives_1.ButtonPrimitive }), (0, jsx_runtime_1.jsx)(Admin_1.EditFiltersModal, { selectedDashboard: state.selectedDashboard, dashboardData: state.editDashboardData, isOpen: editFilterModalIsOpen, setIsOpen: setEditFilterModalIsOpen, openAddFilterModal: () => {
291
- setAddFilterModalIsOpen(true);
292
- // setEditFilterModalIsOpen(false);
293
- }, openEditOrderModal: (dashboardName) => {
294
- setSelectedReorderDashboard(dashboardName);
295
- setIsReorderDashboardModalOpen(true);
296
- }, onSave: async () => {
297
- await getDashNames();
265
+ }, onSave: async (dashName) => {
266
+ await getDashNames(dashName);
298
267
  setReloadFlag(true);
299
- reloadDashboard();
300
- }, client: state.client, ModalComponent: primitives_1.ModalPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, HeaderComponent: primitives_1.HeaderPrimitive, SelectComponent: primitives_1.SelectPrimitive, dashNames: state.dashboards, setSelectedEditDashboard: (d) => dispatch({ type: 'SET_SELECTED_EDIT_DASHBOARD', payload: d }) }), (0, jsx_runtime_1.jsx)(NewDashboardModal_1.NewDashboardModal, { isOpen: newDashboardModalIsOpen, setIsOpen: setNewDashboardModalIsOpen, openEditOrderModal: (dashboardName) => {
268
+ reloadDashboard(dashName);
269
+ }, client: state.client, ModalComponent: primitives_1.ModalPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, HeaderComponent: primitives_1.HeaderPrimitive, SelectComponent: QuillSelect_1.QuillSelectComponent, dashNames: state.dashboards })), (0, jsx_runtime_1.jsx)(NewDashboardModal_1.NewDashboardModal, { isOpen: newDashboardModalIsOpen, setIsOpen: setNewDashboardModalIsOpen, openEditOrderModal: (dashboardName) => {
301
270
  setSelectedReorderDashboard(dashboardName);
302
271
  setIsReorderDashboardModalOpen(true);
303
- }, onSave: (name) => {
304
- dispatch({ type: 'SET_SELECTED_DASHBOARD', payload: name });
272
+ }, onSave: (dashboard) => {
273
+ dispatch({
274
+ type: 'SET_SELECTED_DASHBOARD',
275
+ payload: dashboard,
276
+ });
305
277
  dispatch({
306
278
  type: 'SET_DASHBOARDS',
307
- payload: [...state.dashboards, { name }],
279
+ payload: [...state.dashboards, { ...dashboard }],
308
280
  });
309
281
  setReloadFlag(true);
310
- reloadDashboard();
311
- }, client: state.client, ModalComponent: primitives_1.ModalPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, HeaderComponent: primitives_1.HeaderPrimitive, SelectComponent: primitives_1.SelectPrimitive, dashNames: state.dashboards, setSelectedEditDashboard: (d) => dispatch({ type: 'SET_SELECTED_EDIT_DASHBOARD', payload: d }) }), (0, jsx_runtime_1.jsx)(modals_1.ReorderDashboardModal, { organizationId: state.organizationId, isOpen: isReorderDashboardModalOpen, client: state.client, onSave: () => {
282
+ reloadDashboard(state.selectedDashboard?.name);
283
+ }, client: state.client, ModalComponent: primitives_1.ModalPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, HeaderComponent: primitives_1.HeaderPrimitive, SelectComponent: QuillSelect_1.QuillSelectComponent, dashNames: state.dashboards }), (0, jsx_runtime_1.jsx)(modals_1.ReorderDashboardModal, { organizationId: state.organizationId, isOpen: isReorderDashboardModalOpen, client: state.client, onSave: () => {
312
284
  setReloadFlag(true);
313
- reloadDashboard();
314
- }, setIsOpen: setIsReorderDashboardModalOpen, ModalComponent: primitives_1.ModalPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, selectedDashboard: selectedReorderDashboard }), (0, jsx_runtime_1.jsx)(Admin_1.AddFilterModal, { selectedDashboard: state.selectedEditDashboard, isOpen: addFilterModalIsOpen, setIsOpen: setAddFilterModalIsOpen, client: state.client, ModalComponent: primitives_1.ModalPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, SelectComponent: primitives_1.SelectPrimitive, HeaderComponent: primitives_1.HeaderPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, openAddDashboardModal: () => {
315
- setIsAddDashboardModalOpen(true);
316
- // setAddFilterModalIsOpen(false);
317
- } }), (0, jsx_runtime_1.jsx)(Admin_1.AddDashboardModal, { selectedDashboard: state.selectedDashboard, isOpen: isAddDashboardModalOpen, setIsOpen: setIsAddDashboardModalOpen, client: state.client, ModalComponent: primitives_1.ModalPrimitive, TextInputComponent: primitives_1.TextInputPrimitive, SelectComponent: primitives_1.SelectPrimitive, HeaderComponent: primitives_1.HeaderPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, dashNames: state.dashboards,
318
- // @ts-ignore
319
- openAddFilterModal: () => {
320
- setAddFilterModalIsOpen(true);
321
- // setIsAddDashboardModalOpen(false);
322
- }, organizationId: state.organizationId, getDashNames: getDashNames })] }))] }), (0, jsx_runtime_1.jsx)(Admin_1.ReportWrapper, { isOpen: state.activeComponent === 'Report', setIsOpen: (isOpen) => {
285
+ reloadDashboard(state.selectedDashboard?.name);
286
+ }, setIsOpen: setIsReorderDashboardModalOpen, ModalComponent: primitives_1.ModalPrimitive, ButtonComponent: primitives_1.ButtonPrimitive, selectedDashboard: selectedReorderDashboard })] }))] }), (0, jsx_runtime_1.jsx)(Admin_1.ReportWrapper, { isOpen: state.activeComponent === 'Report', setIsOpen: (isOpen) => {
323
287
  dispatch({
324
288
  type: 'SET_ACTIVE_COMPONENT',
325
289
  payload: isOpen ? 'Report' : 'Dashboards',
326
290
  });
327
291
  }, ButtonComponent: primitives_1.ButtonPrimitive, SecondaryButtonComponent: primitives_1.SecondaryButtonPrimitive, ModalComponent: UiComponents_1.MemoizedModal, SelectComponent: primitives_1.SelectPrimitive, OrganizationSelectComponent: components_1.OrgSelect, organizationId: state.organizationId, queryEndpoint: state.queryEndpoint, queryHeaders: state.queryHeaders, withCredentials: state.withCredentials, reloadDashboard: () => {
328
292
  setReloadFlag(true);
329
- reloadDashboard();
293
+ reloadDashboard(state.selectedDashboard?.name);
330
294
  } })] }));
331
295
  }
332
296
  exports.default = DashboardManager;
@@ -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;AAyBnE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,cAAc,GACf,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAgaA"}