@quillsql/react 2.13.43 → 2.13.45
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.
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +2 -2
- package/dist/cjs/ChartBuilder.d.ts +1 -0
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +48 -14
- package/dist/cjs/ChartEditor.d.ts +1 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +2 -2
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +37 -26
- package/dist/cjs/Dashboard.d.ts +8 -2
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +117 -101
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +871 -1574
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +23 -4
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/components/Chart/CustomReferenceLine.js +1 -1
- package/dist/cjs/components/Chart/GaugeChart.js +0 -6
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -3
- package/dist/cjs/components/Dashboard/DashboardSection.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardSection.js +20 -19
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +1 -0
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +58 -8
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +91 -14
- package/dist/cjs/components/QuillSelectWithCombo.js +6 -6
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +6 -16
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +172 -75
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +1 -5
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -9
- package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts +17 -0
- package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/DraggableColumns.js +52 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts +17 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.js +17 -0
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +6 -12
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +29 -20
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +8 -17
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.js +20 -86
- package/dist/cjs/components/ReportBuilder/convert.js +6 -6
- package/dist/cjs/components/ReportBuilder/ui.d.ts +8 -9
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +30 -8
- package/dist/cjs/components/ReportBuilder/util.d.ts +2 -5
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +1 -1
- package/dist/cjs/components/UiComponents.d.ts +3 -2
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +13 -13
- package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +14 -12
- package/dist/cjs/hooks/useDashboard.d.ts +5 -3
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +8 -6
- package/dist/cjs/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/cjs/hooks/useOnClickOutside.js +33 -0
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +2 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +22 -15
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +7 -5
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +100 -48
- package/dist/cjs/models/Client.d.ts +4 -0
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Dashboard.d.ts +1 -0
- package/dist/cjs/models/Dashboard.d.ts.map +1 -1
- package/dist/cjs/models/Report.d.ts +2 -0
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/ReportBuilder.d.ts +46 -0
- package/dist/cjs/models/ReportBuilder.d.ts.map +1 -0
- package/dist/cjs/models/ReportBuilder.js +19 -0
- package/dist/cjs/models/Tables.d.ts +5 -5
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +301 -97
- package/dist/cjs/utils/astProcessing.d.ts +14 -4
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +38 -4
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +18 -3
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +4 -3
- package/dist/cjs/utils/filterProcessing.d.ts +2 -11
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +4 -16
- package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +4 -2
- package/dist/cjs/utils/pivotProcessing.d.ts +17 -7
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +60 -51
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +15 -2
- package/dist/cjs/utils/report.d.ts +12 -9
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +114 -47
- package/dist/cjs/utils/reportBuilder.d.ts +88 -0
- package/dist/cjs/utils/reportBuilder.d.ts.map +1 -0
- package/dist/cjs/utils/reportBuilder.js +395 -0
- package/dist/cjs/utils/schema.d.ts +7 -0
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +36 -2
- package/dist/cjs/utils/tableProcessing.d.ts +59 -29
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +75 -90
- package/dist/cjs/utils/ui.d.ts +2 -0
- package/dist/cjs/utils/ui.d.ts.map +1 -0
- package/dist/cjs/utils/ui.js +18 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +2 -2
- package/dist/esm/ChartBuilder.d.ts +1 -0
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +49 -15
- package/dist/esm/ChartEditor.d.ts +1 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +2 -2
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +37 -26
- package/dist/esm/Dashboard.d.ts +8 -2
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +121 -105
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +878 -1581
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +23 -4
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/components/Chart/CustomReferenceLine.js +1 -1
- package/dist/esm/components/Chart/GaugeChart.js +0 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +3 -3
- package/dist/esm/components/Dashboard/DashboardSection.d.ts +1 -1
- package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardSection.js +21 -20
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +1 -0
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +5 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +57 -7
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +58 -14
- package/dist/esm/components/QuillSelectWithCombo.js +6 -6
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +6 -16
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +173 -76
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +1 -5
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -9
- package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts +17 -0
- package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/DraggableColumns.js +46 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.d.ts +17 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.js +14 -0
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +6 -12
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +29 -20
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts +8 -17
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterStack.js +21 -87
- package/dist/esm/components/ReportBuilder/convert.js +6 -6
- package/dist/esm/components/ReportBuilder/ui.d.ts +8 -9
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +33 -11
- package/dist/esm/components/ReportBuilder/util.d.ts +2 -5
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +1 -1
- package/dist/esm/components/UiComponents.d.ts +3 -2
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +13 -13
- package/dist/esm/hooks/useAskQuill.d.ts +1 -1
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +14 -12
- package/dist/esm/hooks/useDashboard.d.ts +5 -3
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +8 -6
- package/dist/esm/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/esm/hooks/useOnClickOutside.js +31 -0
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +2 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +23 -16
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +7 -5
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +101 -49
- package/dist/esm/models/Client.d.ts +4 -0
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Dashboard.d.ts +1 -0
- package/dist/esm/models/Dashboard.d.ts.map +1 -1
- package/dist/esm/models/Report.d.ts +2 -0
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/ReportBuilder.d.ts +46 -0
- package/dist/esm/models/ReportBuilder.d.ts.map +1 -0
- package/dist/esm/models/ReportBuilder.js +16 -0
- package/dist/esm/models/Tables.d.ts +5 -5
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +300 -97
- package/dist/esm/utils/astProcessing.d.ts +14 -4
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +38 -5
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +18 -3
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +4 -3
- package/dist/esm/utils/filterProcessing.d.ts +2 -11
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +4 -15
- package/dist/esm/utils/pivotConstructor.d.ts +2 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +4 -2
- package/dist/esm/utils/pivotProcessing.d.ts +17 -7
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +58 -49
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +15 -2
- package/dist/esm/utils/report.d.ts +12 -9
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +116 -46
- package/dist/esm/utils/reportBuilder.d.ts +88 -0
- package/dist/esm/utils/reportBuilder.d.ts.map +1 -0
- package/dist/esm/utils/reportBuilder.js +386 -0
- package/dist/esm/utils/schema.d.ts +7 -0
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +34 -1
- package/dist/esm/utils/tableProcessing.d.ts +59 -29
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +71 -86
- package/dist/esm/utils/ui.d.ts +2 -0
- package/dist/esm/utils/ui.d.ts.map +1 -0
- package/dist/esm/utils/ui.js +14 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAMZ,SAAS,EAGV,MAAM,OAAO,CAAC;AAWf,OAAO,EAoBL,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,WAAW,EAGZ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/SQLEditor.js
CHANGED
|
@@ -21,6 +21,8 @@ import { createDebounce } from './lib';
|
|
|
21
21
|
import { useQuillCloud } from './utils/dataFetcher';
|
|
22
22
|
import { isSimpleSelectStarQuery } from './components/ReportBuilder/convert';
|
|
23
23
|
import { getSelectFromAST, getTablesHelper } from './utils/astProcessing';
|
|
24
|
+
import { useDashboards } from './hooks/useDashboard';
|
|
25
|
+
import { SINGLE_TENANT } from './utils/constants';
|
|
24
26
|
function defineEditorTheme(monaco, theme) {
|
|
25
27
|
monaco.editor.defineTheme('onedark', {
|
|
26
28
|
base: theme.darkMode ? 'vs-dark' : 'vs',
|
|
@@ -91,6 +93,10 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
91
93
|
const [client] = useContext(ClientContext);
|
|
92
94
|
const [theme] = useContext(ThemeContext);
|
|
93
95
|
const { tenants } = useContext(TenantContext);
|
|
96
|
+
const { dashboards } = useDashboards();
|
|
97
|
+
const destinationDashboardConfig = useMemo(() => {
|
|
98
|
+
return dashboards?.find((d) => d.name === destinationDashboard);
|
|
99
|
+
}, [dashboards, destinationDashboard]);
|
|
94
100
|
const { getDataFromCloud } = useQuillCloud();
|
|
95
101
|
const [query, setQuery] = useState(defaultQuery);
|
|
96
102
|
const [rows, setRows] = useState([]);
|
|
@@ -185,6 +191,13 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
185
191
|
const DEFAULT_ROWS_PER_PAGE = 5;
|
|
186
192
|
const ROW_HEIGHT = 37;
|
|
187
193
|
const TABLE_TAB_HEIGHT = 75;
|
|
194
|
+
const filteredSchema = useMemo(() => {
|
|
195
|
+
return schemaData.schemaWithCustomFields?.filter((table) => {
|
|
196
|
+
return (destinationDashboardConfig?.tenantKeys?.[0] === SINGLE_TENANT ||
|
|
197
|
+
table.ownerTenantFields?.length === 0 ||
|
|
198
|
+
table.ownerTenantFields?.includes(destinationDashboardConfig?.tenantKeys?.[0] ?? ''));
|
|
199
|
+
});
|
|
200
|
+
}, [schemaData.schemaWithCustomFields, destinationDashboardConfig?.tenantKeys]);
|
|
188
201
|
// Update cached height whenever ref exists
|
|
189
202
|
useEffect(() => {
|
|
190
203
|
if (tableRef.current) {
|
|
@@ -214,7 +227,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
214
227
|
};
|
|
215
228
|
}, [currentPage, rowsPerPage, currentSort]);
|
|
216
229
|
const displayedTableData = useMemo(() => {
|
|
217
|
-
return (
|
|
230
|
+
return (filteredSchema?.filter((table) => {
|
|
218
231
|
return (table.name
|
|
219
232
|
?.toLowerCase()
|
|
220
233
|
?.includes(tableSearchQuery.toLowerCase().trim()) ||
|
|
@@ -328,6 +341,12 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
328
341
|
setCurrentPage(0);
|
|
329
342
|
setMaxPage(1);
|
|
330
343
|
}
|
|
344
|
+
const { referencedTablesAndColumns } = await getReferencedTables(client, query ?? '', schemaData.schemaWithCustomFields, isSimpleSelectStarQuery(query ?? ''));
|
|
345
|
+
const illegalTable = referencedTablesAndColumns.find((table) => !filteredSchema?.some((t) => t.name === table.name));
|
|
346
|
+
if (illegalTable) {
|
|
347
|
+
setErrorMessage(`Table "${illegalTable.name}" not found`);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
331
350
|
const tableInfo = await fetchResultsByQuery({
|
|
332
351
|
query,
|
|
333
352
|
client,
|
|
@@ -500,7 +519,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
500
519
|
minHeight: 'max(210px, 20vh)',
|
|
501
520
|
maxHeight: '30%',
|
|
502
521
|
height: '20vh',
|
|
503
|
-
}, children: _jsx(SQLEditorComponent, { query: query || '', schema:
|
|
522
|
+
}, children: _jsx(SQLEditorComponent, { query: query || '', schema: filteredSchema, databaseType: client?.databaseType ?? 'postgresql', clientName: client?.publicKey || '', setQuery: setQuery, handleRunQuery: () => {
|
|
504
523
|
handleRunQuery(currentProcessing, true);
|
|
505
524
|
}, handleFixWithAI: handleFixWithAI, isNewQueryEnabled: isNewQueryEnabled, runQueryOnMount: runQueryOnMount, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, setEditorMounted: () => { }, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading && schemaData.isSchemaLoading, LoadingComponent: LoadingComponent }) }), _jsx("div", { style: {
|
|
506
525
|
display: 'flex',
|
|
@@ -570,7 +589,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
570
589
|
if (client &&
|
|
571
590
|
isSelectStar &&
|
|
572
591
|
schemaData.customFields) {
|
|
573
|
-
const { referencedTablesAndColumns } = await getReferencedTables(client, query ?? '',
|
|
592
|
+
const { referencedTablesAndColumns } = await getReferencedTables(client, query ?? '', filteredSchema, isSelectStar);
|
|
574
593
|
tables = referencedTablesAndColumns.map((ref) => ref.name);
|
|
575
594
|
customFieldColumns = tables
|
|
576
595
|
.map((table) => {
|
|
@@ -656,7 +675,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
656
675
|
// flags: flagsToAdd,
|
|
657
676
|
});
|
|
658
677
|
setIsChartBuilderOpen(true);
|
|
659
|
-
}, label: addToDashboardButtonLabel, disabled: !!errorMessage || !(lastSuccessfulQuery === query) }))] }))] })] }) }) })), (!isChartBuilderHorizontalView || isChartBuilderOpen) && (_jsx(ChartBuilderWithModal, { isHorizontalView: isChartBuilderHorizontalView, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, isAdmin: isAdminEnabled, title: chartBuilderTitle, buttonLabel: addToDashboardButtonLabel, tempReport: tempReport, reportId: report?.id, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, TextInputComponent: TextInputComponent, SelectComponent: SelectComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, PopoverComponent: PopoverComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, CheckboxComponent: CheckboxComponent, hideDateRangeFilter: true, hideDeleteButton: true, onClickChartElement: onClickChartElement, filtersEnabled: filtersEnabled, onFiltersEnabledChanged: (enabled) => setFiltersEnabled(enabled), isEditingMode: true })), isSaveQueryModalOpen && (_jsx(ChartBuilderWithModal, { isHorizontalView: false, hideTableView: true, hideChartView: true, hidePivotForm: true, hideChartType: true, isOpen: isSaveQueryModalOpen, setIsOpen: setIsSaveQueryModalOpen, onAddToDashboardComplete: onSaveQueryComplete, destinationDashboard: 'quill-saved-queries', isAdmin: false, title: 'Save query', buttonLabel: 'Save query', tempReport: tempReport, reportId: report?.id, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, TextInputComponent: TextInputComponent, SelectComponent: SelectComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, PopoverComponent: PopoverComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, CheckboxComponent: CheckboxComponent, hideDateRangeFilter: true, hideDeleteButton: true, hideDiscardChanges: true, hideSQLQuery: false, onClickChartElement: onClickChartElement,
|
|
678
|
+
}, label: addToDashboardButtonLabel, disabled: !!errorMessage || !(lastSuccessfulQuery === query) }))] }))] })] }) }) })), (!isChartBuilderHorizontalView || isChartBuilderOpen) && (_jsx(ChartBuilderWithModal, { isHorizontalView: isChartBuilderHorizontalView, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, destinationDashboard: destinationDashboard, isAdmin: isAdminEnabled, title: chartBuilderTitle, buttonLabel: addToDashboardButtonLabel, tempReport: tempReport, reportId: report?.id, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, TextInputComponent: TextInputComponent, SelectComponent: SelectComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, PopoverComponent: PopoverComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, CheckboxComponent: CheckboxComponent, hideDateRangeFilter: true, hideDeleteButton: true, onClickChartElement: onClickChartElement, filtersEnabled: filtersEnabled, onFiltersEnabledChanged: (enabled) => setFiltersEnabled(enabled), isEditingMode: true })), isSaveQueryModalOpen && (_jsx(ChartBuilderWithModal, { isHorizontalView: false, hideTableView: true, hideChartView: true, hidePivotForm: true, hideChartType: true, isOpen: isSaveQueryModalOpen, setIsOpen: setIsSaveQueryModalOpen, onAddToDashboardComplete: onSaveQueryComplete, destinationDashboard: 'quill-saved-queries', isAdmin: false, title: 'Save query', buttonLabel: 'Save query', tempReport: tempReport, reportId: report?.id, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, TextInputComponent: TextInputComponent, SelectComponent: SelectComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, PopoverComponent: PopoverComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, CheckboxComponent: CheckboxComponent, hideDateRangeFilter: true, hideDeleteButton: true, hideDiscardChanges: true, hideSQLQuery: false, onClickChartElement: onClickChartElement,
|
|
660
679
|
// hide filters table, make it a table chart etc
|
|
661
680
|
filtersEnabled: filtersEnabled, onFiltersEnabledChanged: (enabled) => setFiltersEnabled(enabled), isEditingMode: true }))] }));
|
|
662
681
|
}
|
package/dist/esm/Table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,SAAS,EAIV,MAAM,OAAO,CAAC;AASf,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAuB,MAAM,EAAc,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export default function CustomReferenceLine({ xAxisMap, yAxisMap, referenceLine,
|
|
|
10
10
|
const yScale = yAxisMap[yAxisKey].scale;
|
|
11
11
|
const y1 = yScale(referenceLine[0]);
|
|
12
12
|
const y2 = yScale(referenceLine[1]);
|
|
13
|
-
const textY = yScale(referenceLine[referenceLine.length - 1]
|
|
13
|
+
const textY = yScale(referenceLine[referenceLine.length - 1]) - 5;
|
|
14
14
|
return (_jsxs(_Fragment, { children: [referenceLine.length === 2 &&
|
|
15
15
|
_jsx("line", { x1: xMin, y1: y1, x2: xMax, y2: y2, stroke: color || "gray", strokeDasharray: "5 5", strokeWidth: 1, pointerEvents: "none" }), referenceLine.length > 2 &&
|
|
16
16
|
referenceLine.slice(1).map((point, index) => {
|
|
@@ -30,26 +30,20 @@ function D3Gauge({ percentage, containerStyle, xAxisFormat, colors, isAnimationA
|
|
|
30
30
|
const [interpolate, setInterpolate] = useState(null);
|
|
31
31
|
const [select, setSelect] = useState(null);
|
|
32
32
|
useEffect(() => {
|
|
33
|
-
console.log('Loading D3 modules');
|
|
34
33
|
import('d3-shape').then(({ arc }) => {
|
|
35
|
-
console.log('d3-shape loaded');
|
|
36
34
|
setArc(() => arc);
|
|
37
35
|
}).catch(err => console.error('Failed to load d3-shape:', err));
|
|
38
36
|
import('d3-interpolate').then(({ interpolate }) => {
|
|
39
|
-
console.log('d3-interpolate loaded');
|
|
40
37
|
setInterpolate(() => interpolate);
|
|
41
38
|
}).catch(err => console.error('Failed to load d3-interpolate:', err));
|
|
42
39
|
import('d3-selection').then(({ select }) => {
|
|
43
|
-
console.log('d3-selection loaded');
|
|
44
40
|
setSelect(() => select);
|
|
45
41
|
}).catch(err => console.error('Failed to load d3-selection:', err));
|
|
46
42
|
}, []);
|
|
47
43
|
// --- Initialization ---
|
|
48
44
|
useEffect(() => {
|
|
49
|
-
console.log('effect run');
|
|
50
45
|
if (!containerRef.current || !select)
|
|
51
46
|
return;
|
|
52
|
-
console.log('made it');
|
|
53
47
|
const container = containerRef.current;
|
|
54
48
|
select(container).select('svg').remove();
|
|
55
49
|
svgRef.current = select(container)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAW,MAAM,OAAO,CAAC;AAKtD,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { COMPARISON_OPTIONS, PRIMARY_RANGE, } from '../../DateRangePicker/dateRangePickerUtils';
|
|
4
4
|
import { QuillDateRangePicker, } from '../../DateRangePicker/QuillDateRangePicker';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
export function DashboardFilter({ filter, onChangeFilter, SelectComponent =
|
|
5
|
+
import { QuillMultiSelectComponentWithCombo } from '../QuillMultiSelectWithCombo';
|
|
6
|
+
import { QuillSelectComponentWithCombo } from '../QuillSelectWithCombo';
|
|
7
|
+
export function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelectComponentWithCombo, MultiSelectComponent = QuillMultiSelectComponentWithCombo, DateRangePickerComponent = QuillDateRangePicker, theme, isLoading, disabled, containerStyle, }) {
|
|
8
8
|
const preset = useMemo(() => {
|
|
9
9
|
if (('preset' in filter || 'primaryRange' in filter) &&
|
|
10
10
|
'startDate' in filter &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardSection.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardSection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DashboardSection.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardSection.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,QAAQ,GACT,EAAE,8BAA8B,GAAG,GAAG,CAAC,OAAO,CAoC9C"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { ThemeContext } from "../../Context";
|
|
2
4
|
export default function DashboardSection({ section, children, }) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}, children: children }));
|
|
5
|
+
const [theme] = useContext(ThemeContext);
|
|
6
|
+
return (_jsxs(_Fragment, { children: [section && (_jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx("h1", { style: {
|
|
7
|
+
fontSize: 22,
|
|
8
|
+
color: theme?.primaryTextColor,
|
|
9
|
+
fontFamily: theme?.fontFamily,
|
|
10
|
+
fontWeight: 'bold',
|
|
11
|
+
marginTop: 20,
|
|
12
|
+
marginBottom: -20,
|
|
13
|
+
textAlign: 'left',
|
|
14
|
+
}, children: section }) })), _jsx("div", { style: {
|
|
15
|
+
boxSizing: 'content-box',
|
|
16
|
+
width: '100%',
|
|
17
|
+
listStyleType: 'none',
|
|
18
|
+
display: 'grid',
|
|
19
|
+
gap: 40,
|
|
20
|
+
gridTemplateColumns: 'repeat(auto-fill,minmax(400px, 1fr))',
|
|
21
|
+
gridTemplateRows: `repeat(${170}px)`,
|
|
22
|
+
}, children: children })] }));
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA6HhC"}
|
|
@@ -47,6 +47,7 @@ export default function QuillMetricComponent({ report, onClick, error, isLoading
|
|
|
47
47
|
}, children: report?.name }) })), isLoading ? (_jsx(ChartSkeleton, { containerStyle: {
|
|
48
48
|
maxHeight: '78px',
|
|
49
49
|
height: '100%',
|
|
50
|
+
marginBottom: 'auto',
|
|
50
51
|
} })) : error ? (_jsx(ChartError, { errorMessage: error, containerStyle: {
|
|
51
52
|
display: 'flex',
|
|
52
53
|
flex: '1 0 auto',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,GAAG,CAAC,OAAO,CA8Gd"}
|
|
@@ -21,7 +21,11 @@ export default function QuillTableComponent({ report, onClick, isLoading, error,
|
|
|
21
21
|
setPage(0);
|
|
22
22
|
}
|
|
23
23
|
}, [rowCountIsLoading]);
|
|
24
|
-
return (_jsxs("div", { style: {
|
|
24
|
+
return (_jsxs("div", { style: {
|
|
25
|
+
cursor: error || !onClick ? 'default' : 'pointer',
|
|
26
|
+
// Span all columns no matter how many
|
|
27
|
+
gridColumn: '1 / -1',
|
|
28
|
+
}, onClick: () => onClick?.(report), children: [!hideName && (_jsx("div", { style: {
|
|
25
29
|
display: 'flex',
|
|
26
30
|
flexDirection: 'row',
|
|
27
31
|
justifyContent: 'space-between',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAc,EAEZ,aAAa,EAMd,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAc,EAEZ,aAAa,EAMd,MAAM,OAAO,CAAC;AAKf;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,KAAK,GACN,EAAE,yBAAyB,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,2CAyjBlF;AAED,eAAO,MAAM,gBAAgB,sCAI1B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,4CAwDA,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import useOnClickOutside, { getEffectiveZIndex } from '../hooks/useOnClickOutside';
|
|
3
3
|
import { LoadingSpinner } from './UiComponents';
|
|
4
4
|
import React, { useContext, useEffect, useMemo, useRef, useState, } from 'react';
|
|
5
5
|
import { ThemeContext } from '../Context';
|
|
6
|
+
import { createPortal } from 'react-dom';
|
|
7
|
+
import { getScrollableParent } from '../utils/ui';
|
|
6
8
|
/**
|
|
7
9
|
* A robust select component that implements the new minimal Select interface.
|
|
8
10
|
*/
|
|
@@ -15,6 +17,9 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
|
|
|
15
17
|
const debounceTimeoutId = useRef(null);
|
|
16
18
|
const [searchQuery, setSearchQuery] = React.useState('');
|
|
17
19
|
const [exceedsLimit, setExceedsLimit] = useState(false);
|
|
20
|
+
const [popoverPosition, setPopoverPosition] = useState(undefined);
|
|
21
|
+
const [z, setZ] = useState(10);
|
|
22
|
+
const scrollableParentRef = useRef(document.body);
|
|
18
23
|
const selectAllRef = useRef(null);
|
|
19
24
|
let CheckboxState;
|
|
20
25
|
(function (CheckboxState) {
|
|
@@ -139,6 +144,47 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
|
|
|
139
144
|
const nullLabel = useMemo(() => {
|
|
140
145
|
return filteredItems.some((item) => item.value === '-') ? 'None' : '-';
|
|
141
146
|
}, [filteredItems]);
|
|
147
|
+
const updatePosition = () => {
|
|
148
|
+
if (buttonRef.current) {
|
|
149
|
+
requestAnimationFrame(() => {
|
|
150
|
+
const rect = buttonRef?.current?.getBoundingClientRect();
|
|
151
|
+
if (rect) {
|
|
152
|
+
const viewportHeight = window.innerHeight;
|
|
153
|
+
// Calculate available space below the element with a 64px bottom margin
|
|
154
|
+
const availableHeight = viewportHeight - rect.bottom - 64;
|
|
155
|
+
setPopoverPosition({
|
|
156
|
+
top: rect.bottom + window.scrollY,
|
|
157
|
+
left: rect.left + window.scrollX,
|
|
158
|
+
width: rect.width,
|
|
159
|
+
maxHeight: availableHeight,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
useEffect(() => {
|
|
166
|
+
let resizeObserver;
|
|
167
|
+
let mutationObserver;
|
|
168
|
+
if (showModal && buttonRef.current) {
|
|
169
|
+
updatePosition();
|
|
170
|
+
setZ(getEffectiveZIndex(buttonRef.current));
|
|
171
|
+
resizeObserver = new ResizeObserver(() => updatePosition());
|
|
172
|
+
resizeObserver.observe(buttonRef.current);
|
|
173
|
+
mutationObserver = new MutationObserver(() => updatePosition());
|
|
174
|
+
mutationObserver.observe(buttonRef.current, { attributes: true, subtree: true });
|
|
175
|
+
// Track scrolling of the nearest scrollable ancestor
|
|
176
|
+
scrollableParentRef.current = getScrollableParent(buttonRef.current);
|
|
177
|
+
scrollableParentRef.current.addEventListener('scroll', updatePosition, { passive: true });
|
|
178
|
+
const handleResize = () => requestAnimationFrame(updatePosition);
|
|
179
|
+
window.addEventListener('resize', handleResize, { passive: true });
|
|
180
|
+
return () => {
|
|
181
|
+
resizeObserver.disconnect();
|
|
182
|
+
mutationObserver.disconnect();
|
|
183
|
+
scrollableParentRef.current.removeEventListener('scroll', updatePosition);
|
|
184
|
+
window.removeEventListener('resize', handleResize);
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}, [showModal]);
|
|
142
188
|
return (_jsxs("div", { style: {
|
|
143
189
|
position: 'relative',
|
|
144
190
|
borderRadius: '6px',
|
|
@@ -186,9 +232,14 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
|
|
|
186
232
|
width: '100%',
|
|
187
233
|
textAlign: 'left',
|
|
188
234
|
zIndex: 1,
|
|
189
|
-
}, children: selectedOptionsLabel }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: _jsx("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && (_jsxs("div", { style: {
|
|
235
|
+
}, children: selectedOptionsLabel }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: _jsx("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && createPortal(_jsxs("div", { style: {
|
|
190
236
|
position: 'absolute',
|
|
191
|
-
|
|
237
|
+
top: `${popoverPosition?.top ?? 0}px`,
|
|
238
|
+
left: `${popoverPosition?.left ?? 0}px`,
|
|
239
|
+
width: `${popoverPosition?.width ?? 0}px`,
|
|
240
|
+
maxHeight: `${Math.max(popoverPosition?.maxHeight ?? 0, 100)}px`,
|
|
241
|
+
minHeight: options.length > 2 ? 120 : options.length * 40,
|
|
242
|
+
visibility: popoverPosition ? 'visible' : 'hidden',
|
|
192
243
|
display: 'flex',
|
|
193
244
|
flexDirection: 'column',
|
|
194
245
|
boxSizing: 'border-box',
|
|
@@ -198,13 +249,12 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
|
|
|
198
249
|
borderRadius: 6,
|
|
199
250
|
background: 'white',
|
|
200
251
|
marginTop: 12,
|
|
201
|
-
zIndex:
|
|
252
|
+
zIndex: z,
|
|
202
253
|
padding: 6,
|
|
203
254
|
fontFamily: theme?.fontFamily,
|
|
204
|
-
maxHeight: '50vh',
|
|
205
255
|
overflow: 'scroll',
|
|
206
256
|
fontSize: 14,
|
|
207
|
-
}, ref: modalRef, children: [!exceedsLimit && options && options.length > 20 && (_jsxs(_Fragment, { children: [_jsx(ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
|
|
257
|
+
}, ref: modalRef, "data-portal-ignore": "true", children: [!exceedsLimit && options && options.length > 20 && (_jsxs(_Fragment, { children: [_jsx(ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
|
|
208
258
|
setSearchQuery(value);
|
|
209
259
|
} }), _jsx("div", { style: {
|
|
210
260
|
height: 9,
|
|
@@ -356,7 +406,7 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
|
|
|
356
406
|
textOverflow: 'ellipsis',
|
|
357
407
|
whiteSpace: 'nowrap',
|
|
358
408
|
overflow: 'hidden',
|
|
359
|
-
}, children: option.label ?? nullLabel })] }, option.value)))] })) : isLoading ? (_jsx("div", { children: _jsx(LoadingSpinner, {}) })) : null] }))] }));
|
|
409
|
+
}, children: option.label ?? nullLabel })] }, option.value)))] })) : isLoading ? (_jsx("div", { children: _jsx(LoadingSpinner, {}) })) : null] }), document.body)] }));
|
|
360
410
|
}
|
|
361
411
|
export const ListboxTextInput = ({ value, onChange, placeholder, }) => {
|
|
362
412
|
return (_jsxs("div", { style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAMtE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,oBAAoB,2CA0StB"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import useOnClickOutside, { getEffectiveZIndex } from '../hooks/useOnClickOutside';
|
|
3
3
|
import { LoadingSpinner } from './UiComponents';
|
|
4
|
-
import { useContext, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { useContext, useMemo, useRef, useState, useEffect } from 'react';
|
|
5
5
|
import { ThemeContext } from '../Context';
|
|
6
|
+
import { createPortal } from 'react-dom';
|
|
7
|
+
import { getScrollableParent } from '../utils/ui';
|
|
6
8
|
/**
|
|
7
9
|
* A robust select component that implements the new minimal Select interface.
|
|
8
10
|
*/
|
|
@@ -30,6 +32,48 @@ export function QuillSelectComponent({ options, value, width, onChange, label, i
|
|
|
30
32
|
const nullLabel = useMemo(() => {
|
|
31
33
|
return sortedItems.some((item) => item.value === '-') ? 'None' : '-';
|
|
32
34
|
}, [sortedItems]);
|
|
35
|
+
const [popoverPosition, setPopoverPosition] = useState(undefined);
|
|
36
|
+
const [z, setZ] = useState(10);
|
|
37
|
+
const scrollableParentRef = useRef(document.body);
|
|
38
|
+
const updatePosition = () => {
|
|
39
|
+
if (buttonRef.current) {
|
|
40
|
+
requestAnimationFrame(() => {
|
|
41
|
+
const rect = buttonRef?.current?.getBoundingClientRect();
|
|
42
|
+
if (rect) {
|
|
43
|
+
const viewportHeight = window.innerHeight;
|
|
44
|
+
const availableHeight = viewportHeight - rect.bottom - 64;
|
|
45
|
+
setPopoverPosition({
|
|
46
|
+
top: rect.bottom + window.scrollY,
|
|
47
|
+
left: rect.left + window.scrollX,
|
|
48
|
+
width: rect.width,
|
|
49
|
+
maxHeight: availableHeight,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
let resizeObserver;
|
|
57
|
+
let mutationObserver;
|
|
58
|
+
if (showModal && buttonRef.current) {
|
|
59
|
+
updatePosition();
|
|
60
|
+
setZ(getEffectiveZIndex(buttonRef.current));
|
|
61
|
+
resizeObserver = new ResizeObserver(() => updatePosition());
|
|
62
|
+
resizeObserver.observe(buttonRef.current);
|
|
63
|
+
mutationObserver = new MutationObserver(() => updatePosition());
|
|
64
|
+
mutationObserver.observe(buttonRef.current, { attributes: true, subtree: true });
|
|
65
|
+
scrollableParentRef.current = getScrollableParent(buttonRef.current);
|
|
66
|
+
scrollableParentRef.current.addEventListener('scroll', updatePosition, { passive: true });
|
|
67
|
+
const handleResize = () => requestAnimationFrame(updatePosition);
|
|
68
|
+
window.addEventListener('resize', handleResize, { passive: true });
|
|
69
|
+
return () => {
|
|
70
|
+
resizeObserver.disconnect();
|
|
71
|
+
mutationObserver.disconnect();
|
|
72
|
+
scrollableParentRef.current.removeEventListener('scroll', updatePosition);
|
|
73
|
+
window.removeEventListener('resize', handleResize);
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}, [showModal]);
|
|
33
77
|
return (_jsxs("div", { style: {
|
|
34
78
|
position: 'relative',
|
|
35
79
|
borderRadius: '6px',
|
|
@@ -73,9 +117,14 @@ export function QuillSelectComponent({ options, value, width, onChange, label, i
|
|
|
73
117
|
textOverflow: 'ellipsis',
|
|
74
118
|
whiteSpace: 'nowrap',
|
|
75
119
|
overflow: 'hidden',
|
|
76
|
-
}, children: options.find((elem) => elem.value === value)?.label || 'Select' }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: _jsx("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && (_jsxs("div", { style: {
|
|
120
|
+
}, children: options.find((elem) => elem.value === value)?.label || 'Select' }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon", height: 20, width: 20, style: { minHeight: 20, minWidth: 20 }, children: _jsx("path", { fillRule: "evenodd", d: "M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z", clipRule: "evenodd" }) })] }), showModal && createPortal(_jsxs("div", { style: {
|
|
77
121
|
position: 'absolute',
|
|
78
|
-
|
|
122
|
+
top: `${popoverPosition?.top ?? 0}px`,
|
|
123
|
+
left: `${popoverPosition?.left ?? 0}px`,
|
|
124
|
+
width: `${popoverPosition?.width ?? 0}px`,
|
|
125
|
+
maxHeight: `${Math.max(popoverPosition?.maxHeight ?? 0, 100)}px`,
|
|
126
|
+
minHeight: options.length > 2 ? 120 : options.length * 40,
|
|
127
|
+
visibility: popoverPosition ? 'visible' : 'hidden',
|
|
79
128
|
display: 'flex',
|
|
80
129
|
flexDirection: 'column',
|
|
81
130
|
boxSizing: 'border-box',
|
|
@@ -85,15 +134,12 @@ export function QuillSelectComponent({ options, value, width, onChange, label, i
|
|
|
85
134
|
borderRadius: 6,
|
|
86
135
|
background: 'white',
|
|
87
136
|
marginTop: 12,
|
|
88
|
-
zIndex:
|
|
89
|
-
|
|
90
|
-
paddingBottom: 6,
|
|
91
|
-
paddingLeft: 6,
|
|
92
|
-
paddingRight: 6,
|
|
137
|
+
zIndex: z,
|
|
138
|
+
padding: 6,
|
|
93
139
|
fontFamily: theme?.fontFamily,
|
|
94
|
-
maxHeight: '50vh',
|
|
95
140
|
overflow: 'scroll',
|
|
96
|
-
|
|
141
|
+
fontSize: 14,
|
|
142
|
+
}, ref: modalRef, "data-portal-ignore": "true", children: [!isLoading && (!hideEmptyOption || !options.length) && (_jsxs("button", { style: {
|
|
97
143
|
display: 'flex',
|
|
98
144
|
alignItems: 'center',
|
|
99
145
|
justifyContent: 'space-between',
|
|
@@ -112,7 +158,6 @@ export function QuillSelectComponent({ options, value, width, onChange, label, i
|
|
|
112
158
|
height: 34,
|
|
113
159
|
minHeight: 34,
|
|
114
160
|
}, className: "quill-option", onClick: () => {
|
|
115
|
-
// Manually create a synthetic ChangeEvent and pass it to callback
|
|
116
161
|
const changeEvent = { target: { value: '' } };
|
|
117
162
|
onChange(changeEvent);
|
|
118
163
|
setShowModal(false);
|
|
@@ -142,7 +187,6 @@ export function QuillSelectComponent({ options, value, width, onChange, label, i
|
|
|
142
187
|
minHeight: 34,
|
|
143
188
|
overflow: 'hidden',
|
|
144
189
|
}, className: "quill-option", onClick: () => {
|
|
145
|
-
// Manually create a synthetic ChangeEvent and pass it to callback
|
|
146
190
|
const changeEvent = { target: { value: option.value } };
|
|
147
191
|
onChange(changeEvent);
|
|
148
192
|
setShowModal(false);
|
|
@@ -157,5 +201,5 @@ export function QuillSelectComponent({ options, value, width, onChange, label, i
|
|
|
157
201
|
textOverflow: 'ellipsis',
|
|
158
202
|
whiteSpace: 'nowrap',
|
|
159
203
|
overflow: 'hidden',
|
|
160
|
-
}, children: option.label ?? '-' })] }, option.label)))) : (_jsx(LoadingSpinner, {}))] }))] }));
|
|
204
|
+
}, children: option.label ?? '-' })] }, option.label)))) : (_jsx(LoadingSpinner, {}))] }), document.body)] }));
|
|
161
205
|
}
|
|
@@ -19,7 +19,7 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
|
|
|
19
19
|
// Sort null to top
|
|
20
20
|
if (searchQuery === '') {
|
|
21
21
|
return options
|
|
22
|
-
|
|
22
|
+
?.sort((a, b) => {
|
|
23
23
|
if (a.value === null) {
|
|
24
24
|
return -1;
|
|
25
25
|
}
|
|
@@ -28,13 +28,13 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
|
|
|
28
28
|
}
|
|
29
29
|
return 0;
|
|
30
30
|
})
|
|
31
|
-
|
|
31
|
+
?.slice(0, 20) ?? [];
|
|
32
32
|
}
|
|
33
33
|
const uuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
|
|
34
34
|
const isUuid = options?.[0]?.value?.toString()?.match(uuidRegex);
|
|
35
35
|
const isNumber = typeof options?.[0]?.value === 'number';
|
|
36
36
|
return options
|
|
37
|
-
|
|
37
|
+
?.filter((option) => {
|
|
38
38
|
if (!option) {
|
|
39
39
|
return false;
|
|
40
40
|
}
|
|
@@ -48,7 +48,7 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
|
|
|
48
48
|
.replace(/\s+/g, '')
|
|
49
49
|
.includes(searchQuery.toLowerCase().replace(/\s+/g, '')) : false);
|
|
50
50
|
})
|
|
51
|
-
|
|
51
|
+
?.sort((a, b) => {
|
|
52
52
|
if (a.value === null) {
|
|
53
53
|
return -1;
|
|
54
54
|
}
|
|
@@ -57,13 +57,13 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
|
|
|
57
57
|
}
|
|
58
58
|
return 0;
|
|
59
59
|
})
|
|
60
|
-
|
|
60
|
+
?.slice(0, 20) ?? [];
|
|
61
61
|
}, [options, searchQuery]);
|
|
62
62
|
const nullLabel = useMemo(() => {
|
|
63
63
|
return filteredItems.some((item) => item.value === '-') ? 'None' : '-';
|
|
64
64
|
}, [filteredItems]);
|
|
65
65
|
const selectedLabel = useMemo(() => {
|
|
66
|
-
const selectedOption = options
|
|
66
|
+
const selectedOption = options?.find((elem) => elem.value === value);
|
|
67
67
|
return selectedOption && selectedOption.label == '-'
|
|
68
68
|
? nullLabel
|
|
69
69
|
: (selectedOption?.label ?? 'Select');
|