@quillsql/admin 1.4.0 → 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 (149) hide show
  1. package/dist/cjs/Admin.d.ts +23 -73
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +221 -970
  4. package/dist/cjs/AdminProvider.d.ts +1 -12
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +24 -18
  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 +84 -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 -29
  22. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  23. package/dist/cjs/components/UiComponents.js +40 -83
  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 +40 -11
  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 +36 -20
  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 +63 -46
  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 +202 -90
  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/ModalPrimitive.d.ts.map +1 -1
  52. package/dist/cjs/primitives/ModalPrimitive.js +1 -2
  53. package/dist/cjs/primitives/TogglePrimitive.js +5 -5
  54. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  55. package/dist/cjs/public_components/CreateEnvironment.js +1 -1
  56. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  57. package/dist/cjs/public_components/DashboardBuilder.js +127 -30
  58. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  59. package/dist/cjs/public_components/DashboardManager.js +161 -193
  60. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  61. package/dist/cjs/public_components/SQLViewManager.js +92 -24
  62. package/dist/cjs/utils/constants.d.ts +4 -4
  63. package/dist/cjs/utils/constants.js +2 -2
  64. package/dist/cjs/utils/schema.d.ts +6 -0
  65. package/dist/cjs/utils/schema.d.ts.map +1 -1
  66. package/dist/cjs/utils/table.d.ts +1 -0
  67. package/dist/cjs/utils/table.d.ts.map +1 -1
  68. package/dist/cjs/utils/table.js +13 -0
  69. package/dist/cjs/utils/textProcessing.d.ts +2 -0
  70. package/dist/cjs/utils/textProcessing.d.ts.map +1 -0
  71. package/dist/cjs/utils/textProcessing.js +9 -0
  72. package/dist/esm/Admin.d.ts +23 -73
  73. package/dist/esm/Admin.d.ts.map +1 -1
  74. package/dist/esm/Admin.js +225 -964
  75. package/dist/esm/AdminProvider.d.ts +1 -12
  76. package/dist/esm/AdminProvider.d.ts.map +1 -1
  77. package/dist/esm/AdminProvider.js +25 -19
  78. package/dist/esm/api/ConnectionClient.d.ts +11 -0
  79. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  80. package/dist/esm/api/ConnectionClient.js +82 -9
  81. package/dist/esm/components/DropDownMenu.js +1 -1
  82. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  83. package/dist/esm/components/DropDownMenuWithLabel.js +16 -54
  84. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  85. package/dist/esm/components/OrgSelect.js +6 -19
  86. package/dist/esm/components/QuillSelect.d.ts +3 -0
  87. package/dist/esm/components/QuillSelect.d.ts.map +1 -0
  88. package/dist/esm/components/QuillSelect.js +130 -0
  89. package/dist/esm/components/SegmentedControl.d.ts +7 -0
  90. package/dist/esm/components/SegmentedControl.d.ts.map +1 -0
  91. package/dist/esm/components/SegmentedControl.js +50 -0
  92. package/dist/esm/components/UiComponents.d.ts +18 -29
  93. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  94. package/dist/esm/components/UiComponents.js +37 -82
  95. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +2 -1
  96. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  97. package/dist/esm/forms/client_onboard/ConnectSchema.js +145 -70
  98. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  99. package/dist/esm/forms/client_onboard/CreateSqlViews.js +41 -12
  100. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +7 -4
  101. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  102. package/dist/esm/forms/sql_views/CreateEditSqlView.js +38 -22
  103. package/dist/esm/hooks/useOnClickOutside.d.ts +3 -0
  104. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -0
  105. package/dist/esm/hooks/useOnClickOutside.js +18 -0
  106. package/dist/esm/modals/EditFiltersModal.d.ts +17 -0
  107. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -0
  108. package/dist/esm/modals/EditFiltersModal.js +338 -0
  109. package/dist/esm/modals/NewDashboardModal.d.ts +1 -3
  110. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  111. package/dist/esm/modals/NewDashboardModal.js +63 -46
  112. package/dist/esm/modals/PromoteDashModal.d.ts.map +1 -1
  113. package/dist/esm/modals/PromoteDashModal.js +10 -3
  114. package/dist/esm/modals/ReorderDashboardModal.d.ts.map +1 -1
  115. package/dist/esm/modals/ReorderDashboardModal.js +201 -89
  116. package/dist/esm/modals/index.d.ts +0 -1
  117. package/dist/esm/modals/index.d.ts.map +1 -1
  118. package/dist/esm/modals/index.js +0 -1
  119. package/dist/esm/primitives/ButtonPrimitive.d.ts +3 -1
  120. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  121. package/dist/esm/primitives/ButtonPrimitive.js +5 -3
  122. package/dist/esm/primitives/ModalPrimitive.d.ts.map +1 -1
  123. package/dist/esm/primitives/ModalPrimitive.js +1 -2
  124. package/dist/esm/primitives/TogglePrimitive.js +5 -5
  125. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  126. package/dist/esm/public_components/CreateEnvironment.js +1 -1
  127. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  128. package/dist/esm/public_components/DashboardBuilder.js +128 -31
  129. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  130. package/dist/esm/public_components/DashboardManager.js +163 -195
  131. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  132. package/dist/esm/public_components/SQLViewManager.js +92 -24
  133. package/dist/esm/utils/constants.d.ts +4 -4
  134. package/dist/esm/utils/constants.js +2 -2
  135. package/dist/esm/utils/schema.d.ts +6 -0
  136. package/dist/esm/utils/schema.d.ts.map +1 -1
  137. package/dist/esm/utils/table.d.ts +1 -0
  138. package/dist/esm/utils/table.d.ts.map +1 -1
  139. package/dist/esm/utils/table.js +11 -1
  140. package/dist/esm/utils/textProcessing.d.ts +2 -0
  141. package/dist/esm/utils/textProcessing.d.ts.map +1 -0
  142. package/dist/esm/utils/textProcessing.js +5 -0
  143. package/package.json +1 -1
  144. package/dist/cjs/modals/EditDashboardsModal.d.ts +0 -20
  145. package/dist/cjs/modals/EditDashboardsModal.d.ts.map +0 -1
  146. package/dist/cjs/modals/EditDashboardsModal.js +0 -94
  147. package/dist/esm/modals/EditDashboardsModal.d.ts +0 -20
  148. package/dist/esm/modals/EditDashboardsModal.d.ts.map +0 -1
  149. package/dist/esm/modals/EditDashboardsModal.js +0 -91
@@ -2,19 +2,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // @ts-nocheck
3
3
  import { useEffect, useState } from 'react';
4
4
  import { useAdmin } from '../AdminProvider';
5
- import { ReorderableList } from '../Admin';
6
5
  import { QUILL_SERVER } from '../utils/constants';
6
+ import { arrayMove, rectSortingStrategy, SortableContext, sortableKeyboardCoordinates, useSortable, } from '@dnd-kit/sortable';
7
+ import { CSS } from '@dnd-kit/utilities';
8
+ import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors, TouchSensor, } from '@dnd-kit/core';
9
+ import { Chart } from '@quillsql/react';
10
+ import { LoadingSpinner } from '../components/UiComponents';
7
11
  export default function ReorderDashboardModal({ isOpen, setIsOpen, client, onSave, ModalComponent, ButtonComponent, selectedDashboard, organizationId, }) {
8
- // const [client] = useContext(ClientContext);
9
- const [dashboardItems, setDashboardItems] = useState([]);
12
+ const { state } = useAdmin();
13
+ const [sections, setSections] = useState([]);
14
+ const [metrics, setMetrics] = useState({});
15
+ const [charts, setCharts] = useState({});
16
+ const [tables, setTables] = useState({});
10
17
  const [loading, setLoading] = useState(false);
11
- const [chartType, setChartType] = useState('metric');
12
- const [doesDashboardHaveTables, setDoesDashboardHaveTables] = useState(false);
13
- const [doesDashboardHaveCharts, setDoesDashboardHaveCharts] = useState(false);
14
- const [doesDashboardHaveMetrics, setDoesDashboardHaveMetrics] = useState(false);
15
- const [orderArray, setOrderArray] = useState([]);
16
- const [itemMap, setItemMap] = useState(null);
17
- const { state, dispatch } = useAdmin();
18
18
  useEffect(() => {
19
19
  async function getDashboardItems() {
20
20
  const { _id, environment } = state.client;
@@ -33,92 +33,204 @@ export default function ReorderDashboardModal({ isOpen, setIsOpen, client, onSav
33
33
  },
34
34
  });
35
35
  const responseData = await response.json();
36
- let flattened = [];
37
- for (let key in responseData.sections) {
38
- flattened = flattened.concat(responseData.sections[key]);
39
- }
40
- setDashboardItems(flattened);
36
+ const sections = responseData.sections;
37
+ setSections(Object.keys(sections));
38
+ const isMetric = (elem) => elem.chartType === 'metric';
39
+ const isChart = (elem) => !['metric', 'table'].includes(elem.chartType);
40
+ const isTable = (elem) => elem.chartType === 'table';
41
+ setMetrics(Object.fromEntries(Object.entries(sections).map(([k, v]) => [k, v.filter(isMetric)])));
42
+ setCharts(Object.fromEntries(Object.entries(sections).map(([k, v]) => [k, v.filter(isChart)])));
43
+ setTables(Object.fromEntries(Object.entries(sections).map(([k, v]) => [k, v.filter(isTable)])));
41
44
  setLoading(false);
42
45
  }
43
46
  if (selectedDashboard && state.client) {
44
47
  getDashboardItems();
45
48
  }
46
49
  }, [selectedDashboard, state.client]);
47
- useEffect(() => {
48
- const itemMap = new Map();
49
- dashboardItems.forEach((item) => {
50
- if (item.chartType === 'table') {
51
- setDoesDashboardHaveTables(true);
52
- }
53
- else if (item.chartType === 'metric') {
54
- setDoesDashboardHaveMetrics(true);
55
- }
56
- else {
57
- setDoesDashboardHaveCharts(true);
50
+ const handleSaveChanges = async () => {
51
+ if (!client)
52
+ return;
53
+ try {
54
+ const response = await fetch(`${QUILL_SERVER}/dashorder/`, {
55
+ method: 'POST',
56
+ headers: {
57
+ 'Content-Type': 'application/json',
58
+ },
59
+ body: JSON.stringify({
60
+ publicKey: client._id,
61
+ orderArray: [
62
+ ...Object.values(metrics).flat(),
63
+ ...Object.values(charts).flat(),
64
+ ...Object.values(tables).flat(),
65
+ ],
66
+ }),
67
+ });
68
+ if (!response.ok) {
69
+ const errorData = await response.json();
70
+ throw new Error(`Error: ${errorData.error || 'Unknown error'}`);
58
71
  }
59
- itemMap.set(item._id, item);
60
- });
61
- setItemMap(itemMap);
62
- }, [dashboardItems]);
63
- const closeModal = () => {
64
- setIsOpen(false);
72
+ await response.json();
73
+ onSave();
74
+ setIsOpen(false);
75
+ }
76
+ catch (error) {
77
+ console.error('An unknown error occurred in ReorderDashboardModal');
78
+ console.error(error.message);
79
+ }
80
+ };
81
+ return (_jsxs(ModalComponent, { isOpen: isOpen, close: () => setIsOpen(false), style: {
82
+ gap: 20,
83
+ display: 'flex',
84
+ flexDirection: 'column',
85
+ width: 'calc(100vw - 80px)',
86
+ height: 'calc(100vh - 80px)',
87
+ }, children: [_jsx("h1", { style: { fontSize: 22, fontWeight: 600, width: '100%' }, children: "Reorder Items" }), loading ? _jsx(LoadingSpinner, {}) : null, _jsx("div", { style: {
88
+ display: 'flex',
89
+ flexDirection: 'column',
90
+ gap: 20,
91
+ overflowY: 'auto',
92
+ width: '100%',
93
+ height: 'calc(100% - 20px)',
94
+ zIndex: 100,
95
+ }, children: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 20 }, children: sections
96
+ .sort((a, b) => a.length - b.length)
97
+ .map((sectionName, sectionIndex) => (_jsxs("div", { style: {
98
+ display: 'flex',
99
+ flexDirection: 'column',
100
+ gap: 20,
101
+ }, children: [sectionName && (_jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx("h1", { style: {
102
+ fontSize: 22,
103
+ fontWeight: 'bold',
104
+ textAlign: 'left',
105
+ marginTop: sectionIndex > 0 ? 20 : 0,
106
+ }, children: sectionName }) })), metrics[sectionName]?.length > 0 && (_jsx(ReorderableGrid, { type: 'metrics', section: sectionName, items: metrics[sectionName], setItems: setMetrics })), charts[sectionName]?.length > 0 && (_jsx(ReorderableGrid, { type: 'charts', section: sectionName, items: charts[sectionName], setItems: setCharts })), tables[sectionName]?.length > 0 && (_jsx(ReorderableGrid, { type: 'tables', section: sectionName, items: tables[sectionName], setItems: setTables }))] }))) }) }), _jsx("div", { style: {
107
+ width: '100%',
108
+ display: 'flex',
109
+ flexDirection: 'row',
110
+ justifyContent: 'right',
111
+ }, children: _jsx(ButtonComponent, { onClick: handleSaveChanges, label: "Save changes" }) })] }));
112
+ }
113
+ const SortableItem = (props) => {
114
+ const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id: props.id });
115
+ const style = {
116
+ transform: CSS.Translate.toString(transform),
117
+ transition,
118
+ display: 'flex',
119
+ width: props.chartType === 'table' ? '100%' : '100%',
120
+ justifyContent: 'space-between',
121
+ alignItems: 'center',
122
+ borderRadius: '10px',
123
+ border: '1px solid #E7E7E7',
124
+ boxShadow: '0px 2px 8px 0px rgba(56, 65, 81, 0.08)',
125
+ cursor: 'grab',
126
+ userSelect: 'none',
127
+ background: 'white',
65
128
  };
66
- return (_jsx(ModalComponent, { isOpen: isOpen, close: () => setIsOpen(false), children: _jsxs("div", { style: {
129
+ return (_jsx("div", { ref: setNodeRef, style: style, ...attributes, children: _jsx("div", { style: {
130
+ cursor: 'pointer',
131
+ width: '100%',
67
132
  display: 'flex',
68
- flexDirection: 'column',
69
- position: 'relative',
70
- minWidth: 700,
71
- maxWidth: 700,
72
- minHeight: 700,
73
- zIndex: 100,
74
- // overflowY: "scroll",
75
- }, children: [loading ? _jsx("div", { children: 'Loading...' }) : null, dashboardItems.length > 0 && itemMap.size > 0 && (_jsx(ReorderableList, { itemMap: itemMap, client: client, initialItems: dashboardItems.filter((elem) => chartType === 'chart'
76
- ? elem.chartType !== 'metric' && elem.chartType !== 'table'
77
- : elem.chartType === chartType), ButtonComponent: ButtonComponent, closeModal: closeModal, onSave: onSave })), _jsxs("div", { style: {
78
- height: 80,
79
- background: 'white',
80
- width: 700,
81
- position: 'absolute',
82
- top: -20,
83
- left: 0,
84
- right: 20,
85
- paddingTop: 20,
86
- display: 'flex',
87
- flexDirection: 'row',
88
- alignItems: 'center',
89
- justifyContent: 'space-between',
90
- }, children: [_jsx("h1", { style: { fontSize: 22, fontWeight: 600 }, children: "Reorder items" }), _jsxs("div", { style: {
91
- background: '#f7f7f7',
92
- borderRadius: 6,
93
- height: 32,
94
- display: 'flex',
95
- flexDirection: 'row',
96
- alignItems: 'center',
97
- paddingLeft: 4,
98
- paddingRight: 4,
99
- }, children: [doesDashboardHaveMetrics && (_jsx("button", { style: {
100
- background: chartType === 'metric' ? 'white' : undefined,
101
- color: chartType === 'metric' ? '#384151' : '#677389',
102
- fontWeight: chartType === 'metric' ? '600' : '500',
103
- borderRadius: 4,
104
- paddingLeft: 6,
105
- paddingRight: 6,
106
- fontSize: 16,
107
- }, onClick: () => setChartType('metric'), children: "Metrics" })), doesDashboardHaveCharts && (_jsx("button", { style: {
108
- background: chartType === 'chart' ? 'white' : undefined,
109
- color: chartType === 'chart' ? '#384151' : '#677389',
110
- fontWeight: chartType === 'chart' ? '600' : '500',
111
- borderRadius: 4,
112
- paddingLeft: 6,
113
- paddingRight: 6,
114
- fontSize: 16,
115
- }, onClick: () => setChartType('chart'), children: "Charts" })), doesDashboardHaveTables && (_jsx("button", { style: {
116
- background: chartType === 'table' ? 'white' : undefined,
117
- color: chartType === 'table' ? '#384151' : '#677389',
118
- fontWeight: chartType === 'table' ? '600' : '500',
119
- borderRadius: 4,
120
- paddingLeft: 6,
121
- paddingRight: 6,
122
- fontSize: 16,
123
- }, onClick: () => setChartType('table'), children: "Tables" }))] })] })] }) }));
133
+ flexDirection: 'row',
134
+ alignItems: 'center',
135
+ justifyContent: 'space-between',
136
+ }, ...listeners, children: _jsxs("div", { style: {
137
+ display: 'flex',
138
+ flexDirection: 'column',
139
+ justifyContent: 'space-between',
140
+ padding: 20,
141
+ width: '100%',
142
+ }, children: [_jsxs("div", { style: {
143
+ display: 'flex',
144
+ flexDirection: 'row',
145
+ paddingBottom: props.chartType === 'table' ? 10 : 0,
146
+ }, children: [_jsx("h1", { style: {
147
+ fontSize: 18,
148
+ fontWeight: '500',
149
+ flexGrow: 1,
150
+ }, children: props.value }), _jsx(HandleButton, {})] }), _jsx(Chart, { reportId: props.id, containerStyle: {
151
+ padding: 10,
152
+ height: props.chartType === 'metric' ? 80 : 250,
153
+ width: 'calc(100% - 20px)',
154
+ } })] }) }) }));
155
+ };
156
+ function ReorderableGrid({ type, section, items, setItems }) {
157
+ if (!items)
158
+ return null;
159
+ const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
160
+ coordinateGetter: sortableKeyboardCoordinates,
161
+ }), useSensor(TouchSensor, {
162
+ activationConstraint: '',
163
+ }));
164
+ const handleDragEnd = (event) => {
165
+ const { active, over } = event;
166
+ if (!active || !over)
167
+ return;
168
+ if (active.id !== over.id) {
169
+ setItems((items) => {
170
+ const list = items[section];
171
+ const oldIndex = list.findIndex((item) => item._id === active.id);
172
+ const newIndex = list.findIndex((item) => item._id === over.id);
173
+ const newOrder = arrayMove(list, oldIndex, newIndex);
174
+ return { ...items, [section]: newOrder };
175
+ });
176
+ }
177
+ };
178
+ return (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx("div", { style: type === 'tables'
179
+ ? {
180
+ display: 'flex',
181
+ flexDirection: 'row',
182
+ flexWrap: 'wrap',
183
+ gap: 20,
184
+ }
185
+ : {
186
+ boxSizing: 'content-box',
187
+ width: '100%',
188
+ listStyleType: 'none',
189
+ display: 'grid',
190
+ gap: 20,
191
+ gridTemplateColumns: `repeat(auto-fill,minmax(400px, 1fr))`,
192
+ gridTemplateRows: `repeat(${170}px)`,
193
+ }, children: _jsx(SortableContext, { items: items.map((item) => item._id), strategy: rectSortingStrategy, children: items.map((item) => (_jsx(SortableItem, { handle: true, id: item._id, chartType: items.find((itm) => itm._id === item._id)?.chartType ?? 'chart', value: items.find((itm) => itm._id === item._id)?.name ?? item._id }, item._id))) }) }) }));
194
+ }
195
+ function HandleButton() {
196
+ return (_jsxs("div", { style: {
197
+ display: 'flex',
198
+ gap: 2,
199
+ flexDirection: 'row',
200
+ paddingTop: 8,
201
+ paddingBottom: 8,
202
+ paddingLeft: 8,
203
+ paddingRight: 8,
204
+ borderRadius: 4,
205
+ }, className: "handle", children: [_jsx("style", { children: `.handle{background:white;} .handle:hover{background:rgba(0,0,0,0.03);}` }), _jsxs("div", { style: { display: 'flex', gap: 2, flexDirection: 'column' }, children: [_jsx("div", { style: {
206
+ width: 3,
207
+ height: 3,
208
+ borderRadius: 3,
209
+ background: '#9CA0A7',
210
+ } }), _jsx("div", { style: {
211
+ width: 3,
212
+ height: 3,
213
+ borderRadius: 3,
214
+ background: '#9CA0A7',
215
+ } }), _jsx("div", { style: {
216
+ width: 3,
217
+ height: 3,
218
+ borderRadius: 3,
219
+ background: '#9CA0A7',
220
+ } })] }), _jsxs("div", { style: { display: 'flex', gap: 2, flexDirection: 'column' }, children: [_jsx("div", { style: {
221
+ width: 3,
222
+ height: 3,
223
+ borderRadius: 3,
224
+ background: '#9CA0A7',
225
+ } }), _jsx("div", { style: {
226
+ width: 3,
227
+ height: 3,
228
+ borderRadius: 3,
229
+ background: '#9CA0A7',
230
+ } }), _jsx("div", { style: {
231
+ width: 3,
232
+ height: 3,
233
+ borderRadius: 3,
234
+ background: '#9CA0A7',
235
+ } })] })] }));
124
236
  }
@@ -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"}
@@ -1,4 +1,3 @@
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';
@@ -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"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { theme as defaultTheme } from '../Admin';
3
- const ButtonPrimitive = ({ onClick, label, theme = defaultTheme, style, variant = 'primary', }) => {
3
+ import { LoadingSpinner } from '../components/UiComponents';
4
+ const ButtonPrimitive = ({ onClick, isLoading = false, label, theme = defaultTheme, style, variant = 'primary', }) => {
4
5
  if (variant === 'danger') {
5
6
  return (_jsxs("button", { style: {
6
7
  height: 36,
@@ -18,7 +19,7 @@ const ButtonPrimitive = ({ onClick, label, theme = defaultTheme, style, variant
18
19
  paddingLeft: 20,
19
20
  paddingRight: 20,
20
21
  ...style,
21
- }, onClick: onClick, className: "quill--danger-button", children: [_jsx("style", { children: ` .quill--danger-button { background: #e7e7e7 } .quill--danger-button:hover { background: #DCDCDC }` }), label] }));
22
+ }, onClick: onClick, className: "quill--danger-button", children: [_jsx("style", { children: ` .quill--danger-button { background: #e7e7e7 } .quill--danger-button:hover { background: #DCDCDC }` }), isLoading ? (_jsx("div", { style: { padding: '32px 0px' }, children: _jsx(LoadingSpinner, {}) })) : (label)] }));
22
23
  }
23
24
  return (_jsxs("button", { style: {
24
25
  height: 36,
@@ -32,6 +33,7 @@ const ButtonPrimitive = ({ onClick, label, theme = defaultTheme, style, variant
32
33
  fontFamily: theme?.fontFamily,
33
34
  fontWeight: theme?.buttonFontWeight || 600,
34
35
  border: 'none',
36
+ whiteSpace: 'nowrap',
35
37
  fontSize: 14,
36
38
  paddingLeft: 20,
37
39
  paddingRight: 20,
@@ -42,6 +44,6 @@ const ButtonPrimitive = ({ onClick, label, theme = defaultTheme, style, variant
42
44
  }
43
45
  .quill-button:hover {
44
46
  background: rgba(0,0,0,0.75);
45
- }` }), label] }));
47
+ }` }), isLoading ? (_jsx("div", { style: { padding: '0px 16px' }, children: _jsx(LoadingSpinner, {}) })) : (label)] }));
46
48
  };
47
49
  export default ButtonPrimitive;
@@ -1 +1 @@
1
- {"version":3,"file":"ModalPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/ModalPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAC;AAE7D,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+DjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"ModalPrimitive.d.ts","sourceRoot":"","sources":["../../../src/primitives/ModalPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAC;AAE7D,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8DjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -32,8 +32,6 @@ const ModalPrimitive = ({ isOpen, close, children, style, theme = defaultTheme,
32
32
  maxHeight: '90vh',
33
33
  minWidth: 462,
34
34
  display: 'flex',
35
- justifyContent: 'center',
36
- alignItems: 'center',
37
35
  transform: 'translateX(-50%) translateY(-50%)',
38
36
  background: 'white',
39
37
  borderRadius: 8,
@@ -41,6 +39,7 @@ const ModalPrimitive = ({ isOpen, close, children, style, theme = defaultTheme,
41
39
  borderWidth: 1,
42
40
  borderColor: '#e7e7e7',
43
41
  padding: 30,
42
+ overflow: 'auto',
44
43
  ...style,
45
44
  }, children: children })] }));
46
45
  };
@@ -4,8 +4,8 @@ const TogglePrimitive = ({ value, onClick }) => {
4
4
  container: {
5
5
  display: 'inline-block',
6
6
  position: 'relative',
7
- width: '70px',
8
- height: '38px',
7
+ width: '50px',
8
+ height: '30px',
9
9
  borderRadius: '24px',
10
10
  backgroundColor: value ? '#212121' : '#ccc',
11
11
  cursor: 'pointer',
@@ -14,9 +14,9 @@ const TogglePrimitive = ({ value, onClick }) => {
14
14
  circle: {
15
15
  position: 'absolute',
16
16
  top: '3px',
17
- left: value ? '35px' : '3px',
18
- width: '32px',
19
- height: '32px',
17
+ left: value ? '23px' : '3px',
18
+ width: '24px',
19
+ height: '24px',
20
20
  borderRadius: '50%',
21
21
  backgroundColor: '#FFF',
22
22
  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"}
@@ -117,7 +117,7 @@ export default function CreateEnvironment({ navigateToDashboardManager, containe
117
117
  setCreateEnvSteps(updatedSteps);
118
118
  setAllSchemaInfo(schemaDetails);
119
119
  openStep('createSQLViews');
120
- }, allSchemaInfo: allSchemaInfo, environmentDetails: environmentDetails, initialError: initialError, clientId: clientId })) : (_jsx(StepDisplay, { label: "Connect Schema", completed: createEnvSteps.connectSchema.completed, header1Style: header1Style, onClick: () => {
120
+ }, allSchemaInfo: allSchemaInfo, environmentDetails: environmentDetails, initialError: initialError, clientId: clientId, state: state })) : (_jsx(StepDisplay, { label: "Connect Schema", completed: createEnvSteps.connectSchema.completed, header1Style: header1Style, onClick: () => {
121
121
  openStep('connectSchema');
122
122
  setInitialError(undefined);
123
123
  } })), createEnvSteps.createSQLViews.open ? (_jsx(CreateSQLViews, { 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;AAS5E,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,2CA0TA"}
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"}