@quillsql/react 2.12.26 → 2.12.28
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 +17 -2
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +137 -90
- package/dist/cjs/ChartBuilder.d.ts +3 -3
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +30 -23
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +66 -26
- package/dist/cjs/Context.d.ts +1 -0
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +17 -2
- package/dist/cjs/Dashboard.d.ts +6 -1
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +3 -1
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +12 -10
- package/dist/cjs/SQLEditor.d.ts +10 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +27 -3
- package/dist/cjs/Table.d.ts +15 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +143 -59
- package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.js +5 -4
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +52 -15
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +7 -1
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +16 -2
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +2 -14
- package/dist/cjs/components/QuillTable.d.ts +2 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +7 -5
- package/dist/cjs/components/UiComponents.d.ts +3 -3
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +4 -4
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +16 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +155 -80
- package/dist/cjs/utils/constants.d.ts +2 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -0
- package/dist/cjs/utils/constants.js +4 -0
- package/dist/cjs/utils/dashboard.d.ts +1 -0
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +46 -97
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +56 -13
- package/dist/cjs/utils/dates.d.ts +8 -0
- package/dist/cjs/utils/dates.d.ts.map +1 -1
- package/dist/cjs/utils/dates.js +34 -1
- package/dist/cjs/utils/filterProcessing.d.ts +2 -0
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +129 -1
- package/dist/cjs/utils/logging.d.ts +2 -0
- package/dist/cjs/utils/logging.d.ts.map +1 -0
- package/dist/cjs/utils/logging.js +10 -0
- package/dist/cjs/utils/pivotConstructor.d.ts +6 -0
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -0
- package/dist/cjs/utils/pivotConstructor.js +87 -0
- package/dist/cjs/utils/queryConstructor.d.ts +2 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +46 -11
- package/dist/cjs/utils/tableProcessing.d.ts +22 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +87 -1
- package/dist/esm/Chart.d.ts +17 -2
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +140 -93
- package/dist/esm/ChartBuilder.d.ts +3 -3
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +30 -23
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +66 -26
- package/dist/esm/Context.d.ts +1 -0
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +16 -1
- package/dist/esm/Dashboard.d.ts +6 -1
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +3 -1
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +13 -11
- package/dist/esm/SQLEditor.d.ts +10 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +27 -3
- package/dist/esm/Table.d.ts +15 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +146 -62
- package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartTooltip.js +5 -4
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +52 -15
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +7 -1
- package/dist/esm/components/Dashboard/TableComponent.d.ts +16 -2
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +2 -14
- package/dist/esm/components/QuillTable.d.ts +2 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +7 -5
- package/dist/esm/components/UiComponents.d.ts +3 -3
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +4 -4
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +16 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +153 -80
- package/dist/esm/utils/constants.d.ts +2 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/dashboard.d.ts +1 -0
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +45 -97
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +56 -13
- package/dist/esm/utils/dates.d.ts +8 -0
- package/dist/esm/utils/dates.d.ts.map +1 -1
- package/dist/esm/utils/dates.js +31 -0
- package/dist/esm/utils/filterProcessing.d.ts +2 -0
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +126 -0
- package/dist/esm/utils/logging.d.ts +2 -0
- package/dist/esm/utils/logging.d.ts.map +1 -0
- package/dist/esm/utils/logging.js +6 -0
- package/dist/esm/utils/pivotConstructor.d.ts +6 -0
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -0
- package/dist/esm/utils/pivotConstructor.js +83 -0
- package/dist/esm/utils/queryConstructor.d.ts +2 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +44 -10
- package/dist/esm/utils/tableProcessing.d.ts +22 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +85 -1
- package/package.json +1 -1
|
@@ -74,7 +74,7 @@ exports.QUILL_SERVER = (typeof process !== 'undefined' && process?.env?.QUILL_SE
|
|
|
74
74
|
* ### Report Builder API
|
|
75
75
|
* @see https://docs.quillsql.com/components/report-builder
|
|
76
76
|
*/
|
|
77
|
-
function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void null, onSubmitCreateReport = (_) => void null, destinationDashboard = undefined, organizationName = '', ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, ModalComponent = UiComponents_1.MemoizedModal, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, PopoverComponent = UiComponents_1.MemoizedPopover, TabsComponent = UiComponents_1.QuillTabs, CheckboxComponent = UiComponents_1.MemoizedCheckbox, SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer, SelectColumnComponent = ui_1.QuillSelectColumn, DraggableColumnComponent = ui_1.QuillDraggableColumn, SidebarHeadingComponent = ui_1.QuillSidebarHeading, FilterPopoverComponent = ui_1.QuillFilterPopover, SortPopoverComponent = ui_1.QuillSortPopover, LimitPopoverComponent = ui_1.QuillLimitPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, LoadingComponent = UiComponents_1.QuillLoadingComponent, ColumnSearchEmptyState = UiComponents_1.QuillColumnSearchEmptyState, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, ChartBuilderModalComponent = UiComponents_1.MemoizedModal, isAdminEnabled = false, isAIEnabled = true, showChartBuilderTableFormatOptions = true, containerStyle, className, pivotRecommendationsEnabled = true, reportId, hideCopySQL = true, isChartBuilderHorizontalView = true, onClickChartElement }) {
|
|
77
|
+
function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void null, onSubmitCreateReport = (_) => void null, destinationDashboard = undefined, organizationName = '', ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, ModalComponent = UiComponents_1.MemoizedModal, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, PopoverComponent = UiComponents_1.MemoizedPopover, TabsComponent = UiComponents_1.QuillTabs, CheckboxComponent = UiComponents_1.MemoizedCheckbox, SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer, SelectColumnComponent = ui_1.QuillSelectColumn, DraggableColumnComponent = ui_1.QuillDraggableColumn, SidebarHeadingComponent = ui_1.QuillSidebarHeading, FilterPopoverComponent = ui_1.QuillFilterPopover, SortPopoverComponent = ui_1.QuillSortPopover, LimitPopoverComponent = ui_1.QuillLimitPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, LoadingComponent = UiComponents_1.QuillLoadingComponent, ColumnSearchEmptyState = UiComponents_1.QuillColumnSearchEmptyState, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, ChartBuilderModalComponent = UiComponents_1.MemoizedModal, isAdminEnabled = false, isAIEnabled = true, showChartBuilderTableFormatOptions = true, containerStyle, className, pivotRecommendationsEnabled = true, reportId, hideCopySQL = true, isChartBuilderHorizontalView = true, onClickChartElement, }) {
|
|
78
78
|
const { data: report } = (0, useQuill_1.useQuill)(reportId || '');
|
|
79
79
|
const [aiPrompt, setAiPrompt] = (0, react_1.useState)('');
|
|
80
80
|
const [errorMessage, setErrorMessage] = (0, react_1.useState)('');
|
|
@@ -172,7 +172,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
setPivot(newPivot);
|
|
175
|
-
const pivotedData = (0, PivotModal_1.
|
|
175
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)(newPivot, rows, undefined, false);
|
|
176
176
|
setPivotData(pivotedData || []);
|
|
177
177
|
const formattedRows = formatRows(pivotedData.rows, columns, true, newPivot.aggregationType);
|
|
178
178
|
setFormattedRows(formattedRows);
|
|
@@ -511,7 +511,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
511
511
|
// @ts-ignore
|
|
512
512
|
setPivotValueField(groupByPivot.valueField);
|
|
513
513
|
setPivot(groupByPivot);
|
|
514
|
-
const pivotedData = (0, PivotModal_1.
|
|
514
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)(
|
|
515
515
|
// @ts-ignore
|
|
516
516
|
groupByPivot, initialRows, undefined, false);
|
|
517
517
|
setPivotData(pivotedData || []);
|
|
@@ -1786,6 +1786,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
1786
1786
|
task: 'patterns',
|
|
1787
1787
|
getCustomFields: false,
|
|
1788
1788
|
customFields,
|
|
1789
|
+
// additionalProcessing: { page: { currentPage: 0, rowsPerPage: 20 } },
|
|
1789
1790
|
},
|
|
1790
1791
|
};
|
|
1791
1792
|
const cloudBody = {};
|
|
@@ -1834,7 +1835,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
1834
1835
|
return acc;
|
|
1835
1836
|
}, {});
|
|
1836
1837
|
uniqueFormatted[pivot.columnField] = uniqueRecords;
|
|
1837
|
-
const pivotedData = (0, PivotModal_1.
|
|
1838
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)(pivot, data2.rows, undefined, false);
|
|
1838
1839
|
console.info(`%c[Pivot]: ${JSON.stringify(pivot)}`, 'color: dimgray');
|
|
1839
1840
|
const processedFields = data2.fields.map((elem) => (0, columnProcessing_1.convertPostgresColumn)(elem));
|
|
1840
1841
|
setPivotData(pivotedData);
|
|
@@ -2084,6 +2085,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
2084
2085
|
publicKey: client.publicKey,
|
|
2085
2086
|
orgId: client.customerId,
|
|
2086
2087
|
task: 'patterns',
|
|
2088
|
+
// additionalProcessing: { page: { currentPage: 0, rowsPerPage: 20 } },
|
|
2087
2089
|
},
|
|
2088
2090
|
};
|
|
2089
2091
|
const cloudBody = {};
|
|
@@ -2152,7 +2154,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
2152
2154
|
setPivotColumnField(groupByPivot?.columnField);
|
|
2153
2155
|
setPivotValueField(groupByPivot?.valueField);
|
|
2154
2156
|
setPivotAggregation(groupByPivot?.aggregationType);
|
|
2155
|
-
const pivotedData = (0, PivotModal_1.
|
|
2157
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)(groupByPivot, data2.rows, undefined, false);
|
|
2156
2158
|
console.info(`%c[Pivot]: ${JSON.stringify(groupByPivot)}`, 'color: dimgray');
|
|
2157
2159
|
setPivotData(pivotedData);
|
|
2158
2160
|
setPivot(groupByPivot);
|
|
@@ -2445,7 +2447,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
2445
2447
|
newAst.orderby = null;
|
|
2446
2448
|
setBaseAst(newAst); // trigger refetch
|
|
2447
2449
|
setPivot(pivot);
|
|
2448
|
-
const pivotedData = (0, PivotModal_1.
|
|
2450
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)(pivot, rows, undefined, false);
|
|
2449
2451
|
setPivotData(pivotedData || []);
|
|
2450
2452
|
const formattedRows = formatRows(pivotedData.rows, columns, true, pivot.aggregationType);
|
|
2451
2453
|
setFormattedRows(formattedRows);
|
|
@@ -2754,7 +2756,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
2754
2756
|
}
|
|
2755
2757
|
setBaseAst(newAst); // trigger refetch
|
|
2756
2758
|
setPivot(pivot);
|
|
2757
|
-
const pivotedData = (0, PivotModal_1.
|
|
2759
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)(pivot, rows, undefined, false);
|
|
2758
2760
|
setPivotData(pivotedData || []);
|
|
2759
2761
|
const formattedRows = formatRows(pivotedData.rows, columns, true, pivot.aggregationType);
|
|
2760
2762
|
setFormattedRows(formattedRows);
|
|
@@ -2794,7 +2796,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
2794
2796
|
: selectedColumns, setIsPending: setIsPending, setEditPopoverKey: setEditPopoverKey, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: () => {
|
|
2795
2797
|
if (pivot) {
|
|
2796
2798
|
setPivot({ ...pivot, sort: false });
|
|
2797
|
-
const pivotedData = (0, PivotModal_1.
|
|
2799
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)({ ...pivot, sort: false }, rows, undefined, false);
|
|
2798
2800
|
setPivotData(pivotedData || []);
|
|
2799
2801
|
const formattedRows = formatRows(pivotedData.rows, columns, true, pivot.aggregationType);
|
|
2800
2802
|
setFormattedRows(formattedRows);
|
|
@@ -2815,7 +2817,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
2815
2817
|
sortField: column,
|
|
2816
2818
|
sortFieldType: sortFieldType,
|
|
2817
2819
|
});
|
|
2818
|
-
const pivotedData = (0, PivotModal_1.
|
|
2820
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)({
|
|
2819
2821
|
...pivot,
|
|
2820
2822
|
sort: true,
|
|
2821
2823
|
sortDirection: direction,
|
|
@@ -2916,7 +2918,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = (_) => void
|
|
|
2916
2918
|
sortField: column,
|
|
2917
2919
|
sortFieldType: sortFieldType,
|
|
2918
2920
|
});
|
|
2919
|
-
const pivotedData = (0, PivotModal_1.
|
|
2921
|
+
const pivotedData = (0, PivotModal_1.generatePivotTableInMemory)({
|
|
2920
2922
|
...pivot,
|
|
2921
2923
|
sort: true,
|
|
2922
2924
|
sortDirection: direction,
|
package/dist/cjs/SQLEditor.d.ts
CHANGED
|
@@ -60,6 +60,15 @@ export interface SQLEditorProps {
|
|
|
60
60
|
label: string;
|
|
61
61
|
}[];
|
|
62
62
|
isLoading?: boolean;
|
|
63
|
+
rowCount?: number;
|
|
64
|
+
onPageChange?: (page: {
|
|
65
|
+
currentPage: number;
|
|
66
|
+
rowsPerPage: number;
|
|
67
|
+
}) => void;
|
|
68
|
+
onSortChange?: (sort: {
|
|
69
|
+
field: string;
|
|
70
|
+
direction: string;
|
|
71
|
+
}) => void;
|
|
63
72
|
}) => JSX.Element;
|
|
64
73
|
/**
|
|
65
74
|
* A component to show while the query results are loading.
|
|
@@ -258,7 +267,7 @@ export interface SQLEditorProps {
|
|
|
258
267
|
* ### SQLEditor API
|
|
259
268
|
* @see https://docs.quillsql.com/components/sql-editor
|
|
260
269
|
*/
|
|
261
|
-
export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, DeleteButtonComponent, TextInputComponent, SelectComponent, TableComponent, isNewQueryEnabled, LoadingComponent, ModalComponent, PopoverComponent, CardComponent, LabelComponent, HeaderComponent, SubHeaderComponent, TextComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, ChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel, report, organizationName, isChartBuilderHorizontalView, containerStyle, className, onClickChartElement }: SQLEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
270
|
+
export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, DeleteButtonComponent, TextInputComponent, SelectComponent, TableComponent, isNewQueryEnabled, LoadingComponent, ModalComponent, PopoverComponent, CardComponent, LabelComponent, HeaderComponent, SubHeaderComponent, TextComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, ChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel, report, organizationName, isChartBuilderHorizontalView, containerStyle, className, onClickChartElement, }: SQLEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
262
271
|
export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, }: {
|
|
263
272
|
schema: any;
|
|
264
273
|
theme: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAMZ,SAAS,EACV,MAAM,OAAO,CAAC;AAgCf,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/cjs/SQLEditor.js
CHANGED
|
@@ -20,6 +20,7 @@ const QuillSelect_1 = require("./components/QuillSelect");
|
|
|
20
20
|
const valueFormatter_1 = require("./utils/valueFormatter");
|
|
21
21
|
const columnProcessing_1 = require("./utils/columnProcessing");
|
|
22
22
|
const schema_1 = require("./utils/schema");
|
|
23
|
+
const constants_1 = require("./utils/constants");
|
|
23
24
|
function defineEditorTheme(monaco, theme) {
|
|
24
25
|
monaco.editor.defineTheme('onedark', {
|
|
25
26
|
base: theme.darkMode ? 'vs-dark' : 'vs',
|
|
@@ -70,7 +71,7 @@ function setEditorTheme(editor, monaco) {
|
|
|
70
71
|
* ### SQLEditor API
|
|
71
72
|
* @see https://docs.quillsql.com/components/sql-editor
|
|
72
73
|
*/
|
|
73
|
-
function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, isNewQueryEnabled = false, LoadingComponent = UiComponents_1.QuillLoadingComponent, ModalComponent = UiComponents_1.MemoizedModal, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', report = undefined, organizationName = undefined, isChartBuilderHorizontalView = true, containerStyle = { height: '100vh' }, className, onClickChartElement }) {
|
|
74
|
+
function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, isNewQueryEnabled = false, LoadingComponent = UiComponents_1.QuillLoadingComponent, ModalComponent = UiComponents_1.MemoizedModal, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', report = undefined, organizationName = undefined, isChartBuilderHorizontalView = true, containerStyle = { height: '100vh' }, className, onClickChartElement, }) {
|
|
74
75
|
const [sqlPrompt, setSqlPrompt] = (0, react_1.useState)('');
|
|
75
76
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
76
77
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
@@ -88,6 +89,11 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
88
89
|
const formRef = (0, react_1.useRef)(null);
|
|
89
90
|
const [searchBarWidth, setSearchBarWidth] = (0, react_1.useState)(200);
|
|
90
91
|
const [formattedRows, setFormattedRows] = (0, react_1.useState)([]);
|
|
92
|
+
const [numberOfRows, setNumberOfRows] = (0, react_1.useState)(undefined);
|
|
93
|
+
const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
|
|
94
|
+
const [currentProcessing, setCurrentProcessing] = (0, react_1.useState)({
|
|
95
|
+
page: { currentPage: 0, rowsPerPage: 20 },
|
|
96
|
+
});
|
|
91
97
|
(0, react_1.useEffect)(() => {
|
|
92
98
|
// Since the TextInput component takes a required numeric width parameter,
|
|
93
99
|
// we dynamically calculate the width of this component here.
|
|
@@ -126,7 +132,20 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
126
132
|
const handleClearQuery = async () => {
|
|
127
133
|
setQuery('');
|
|
128
134
|
};
|
|
129
|
-
const
|
|
135
|
+
const onPageChange = (page) => {
|
|
136
|
+
if ((previousPage < page.currentPage &&
|
|
137
|
+
(page.currentPage * page.rowsPerPage) % constants_1.MAX_COLUMN_ROWS_LIMIT === 0) ||
|
|
138
|
+
(previousPage > page.currentPage &&
|
|
139
|
+
(previousPage * page.rowsPerPage) % constants_1.MAX_COLUMN_ROWS_LIMIT === 0)) {
|
|
140
|
+
handleRunQuery({ ...currentProcessing, page });
|
|
141
|
+
}
|
|
142
|
+
setPreviousPage(page.currentPage);
|
|
143
|
+
};
|
|
144
|
+
const onSortChange = (sort) => {
|
|
145
|
+
handleRunQuery({ sort, page: { currentPage: 0, rowsPerPage: 20 } });
|
|
146
|
+
setPreviousPage(0);
|
|
147
|
+
};
|
|
148
|
+
const handleRunQuery = async (processing) => {
|
|
130
149
|
try {
|
|
131
150
|
setDisplayTable(true);
|
|
132
151
|
setSqlQueryLoading(true);
|
|
@@ -140,6 +159,7 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
140
159
|
databaseType: client?.databaseType,
|
|
141
160
|
getCustomFields: !client.customerId || client.customerId === '*' ? false : true,
|
|
142
161
|
customFieldsByTable: customFields,
|
|
162
|
+
// additionalProcessing: processing,
|
|
143
163
|
},
|
|
144
164
|
};
|
|
145
165
|
const cloudBody = { query };
|
|
@@ -153,12 +173,14 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
153
173
|
}
|
|
154
174
|
setSqlQueryLoading(false);
|
|
155
175
|
setErrorMessage('');
|
|
176
|
+
setCurrentProcessing(processing);
|
|
156
177
|
if (resp.rows.length === 0) {
|
|
157
178
|
setErrorMessage('No data found');
|
|
158
179
|
}
|
|
159
180
|
const temp_rows = resp.rows && resp.rows.length ? resp.rows : [];
|
|
160
181
|
const processedFields = resp.fields.map((elem) => (0, columnProcessing_1.convertPostgresColumn)(elem));
|
|
161
182
|
setRows(temp_rows);
|
|
183
|
+
// setNumberOfRows(resp.compareRows[0]?.count || temp_rows.length);
|
|
162
184
|
setFormattedRows(temp_rows.map((row) => {
|
|
163
185
|
return processedFields.reduce((formattedRow, column) => {
|
|
164
186
|
// Apply the format function to each field in the row
|
|
@@ -247,7 +269,9 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
247
269
|
gap: 12,
|
|
248
270
|
paddingTop: 16,
|
|
249
271
|
paddingBottom: 16,
|
|
250
|
-
}, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, width: searchBarWidth, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" })] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 'calc(50% - 40px)' }, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query || '', setQuery: setQuery, handleRunQuery:
|
|
272
|
+
}, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, width: searchBarWidth, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" })] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 'calc(50% - 40px)' }, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query || '', setQuery: setQuery, handleRunQuery: () => {
|
|
273
|
+
handleRunQuery(currentProcessing);
|
|
274
|
+
}, handleFixWithAI: handleFixWithAI, isNewQueryEnabled: isNewQueryEnabled, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading, LoadingComponent: LoadingComponent }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
251
275
|
display: 'flex',
|
|
252
276
|
flexDirection: 'column',
|
|
253
277
|
height: 'calc(50% - 108px)',
|
package/dist/cjs/Table.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { MultiSelectComponentProps, SelectComponentProps } from './components/UiComponents';
|
|
3
|
+
import { DateRangePickerComponentProps } from './DateRangePicker/QuillDateRangePicker';
|
|
2
4
|
export interface TableColumn {
|
|
3
5
|
label: string;
|
|
4
6
|
field: string;
|
|
@@ -78,6 +80,8 @@ export interface TableProps {
|
|
|
78
80
|
* Whether to show the download csv button.
|
|
79
81
|
*/
|
|
80
82
|
hideCSVDownloadButton?: boolean;
|
|
83
|
+
/** Whether to hide the table filters component, deafulted to true */
|
|
84
|
+
hideFilters?: boolean;
|
|
81
85
|
/**
|
|
82
86
|
* Whether this table component is loading.
|
|
83
87
|
*/
|
|
@@ -90,6 +94,16 @@ export interface TableProps {
|
|
|
90
94
|
* A loading component to show when the table is loading.
|
|
91
95
|
*/
|
|
92
96
|
LoadingComponent?: () => JSX.Element;
|
|
97
|
+
/** A select component prop for the table filters */
|
|
98
|
+
SelectComponent?: (props: SelectComponentProps) => JSX.Element;
|
|
99
|
+
/** A multi select component prop for the table filters */
|
|
100
|
+
MultiSelectComponent?: (props: MultiSelectComponentProps) => JSX.Element;
|
|
101
|
+
/** A date range picker component prop for the table filters */
|
|
102
|
+
DateRangePickerComponent?: (props: DateRangePickerComponentProps) => JSX.Element;
|
|
103
|
+
/** A filter container component component prop for the table filters */
|
|
104
|
+
FilterContainerComponent?: ({ children, }: {
|
|
105
|
+
children: ReactNode;
|
|
106
|
+
}) => JSX.Element;
|
|
93
107
|
/**
|
|
94
108
|
* Styles the top-level container of the Table.
|
|
95
109
|
*
|
package/dist/cjs/Table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAuBf,OAAO,EACL,yBAAyB,EAEzB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,6BAA6B,EAE9B,MAAM,wCAAwC,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAoCD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IAEJ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC,oDAAoD;IACpD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAE/D,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;IAEzE,+DAA+D;IAC/D,wBAAwB,CAAC,EAAE,CACzB,KAAK,EAAE,6BAA6B,KACjC,GAAG,CAAC,OAAO,CAAC;IAEjB,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,CAAC,EAC1B,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAuC/B,CAAC;AA6PF,eAAe,KAAK,CAAC"}
|
package/dist/cjs/Table.js
CHANGED
|
@@ -7,12 +7,18 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const Context_1 = require("./Context");
|
|
9
9
|
const dataFetcher_1 = require("./utils/dataFetcher");
|
|
10
|
-
const merge_1 = require("./utils/merge");
|
|
11
10
|
const QuillTable_1 = __importDefault(require("./components/QuillTable"));
|
|
12
|
-
const useFormat_1 = require("./hooks/useFormat");
|
|
13
11
|
const useExport_1 = require("./hooks/useExport");
|
|
14
12
|
const errorProcessing_1 = require("./utils/errorProcessing");
|
|
15
|
-
const
|
|
13
|
+
const dashboard_1 = require("./utils/dashboard");
|
|
14
|
+
const valueFormatter_1 = require("./utils/valueFormatter");
|
|
15
|
+
const filterProcessing_1 = require("./utils/filterProcessing");
|
|
16
|
+
const UiComponents_1 = require("./components/UiComponents");
|
|
17
|
+
const DashboardFilter_1 = require("./components/Dashboard/DashboardFilter");
|
|
18
|
+
const QuillSelect_1 = require("./components/QuillSelect");
|
|
19
|
+
const QuillMultiSelect_1 = require("./components/QuillMultiSelect");
|
|
20
|
+
const QuillDateRangePicker_1 = require("./DateRangePicker/QuillDateRangePicker");
|
|
21
|
+
const hooks_1 = require("./hooks");
|
|
16
22
|
/**
|
|
17
23
|
* ### Quill Table
|
|
18
24
|
*
|
|
@@ -52,69 +58,147 @@ const Table = (props) => {
|
|
|
52
58
|
if ('rows' in data && 'columns' in data) {
|
|
53
59
|
return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { hideCSVDownloadButton: data.hideCSVDownloadButton, columns: data.columns, rows: data.rows, className: data.className, containerStyle: data.containerStyle, LoadingComponent: data.LoadingComponent, isLoading: data.isLoading, downloadCSV: data.downloadCSV }));
|
|
54
60
|
}
|
|
55
|
-
return ((0, jsx_runtime_1.jsx)(ChartUpdater, { hideCSVDownloadButton: data.hideCSVDownloadButton, dispatch: dispatch,
|
|
61
|
+
return ((0, jsx_runtime_1.jsx)(ChartUpdater, { hideCSVDownloadButton: data.hideCSVDownloadButton, dispatch: dispatch, dashboardContext: dashboard, reportId: data.reportId, className: data.className, containerStyle: data.containerStyle, dashboardFilters: dashboardFilters, client: client, csvFilename: data.csvFilename, LoadingComponent: data.LoadingComponent, SelectComponent: data.SelectComponent, MultiSelectComponent: data.MultiSelectComponent, DateRangePickerComponent: data.DateRangePickerComponent, FilterContainerComponent: data.FilterContainerComponent, hideFilters: data.hideFilters }));
|
|
56
62
|
};
|
|
57
|
-
const ChartUpdater = ({ reportId, containerStyle, className,
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
.sort((filter) => (filter.filterType === 'date_range' ? -1 : 1))
|
|
61
|
-
.filter((f) => dashboard &&
|
|
62
|
-
dashboard[reportId] &&
|
|
63
|
-
f &&
|
|
64
|
-
f.dashboardName === dashboard[reportId].dashboardName);
|
|
65
|
-
}, [dashboardFilters, dashboard]);
|
|
66
|
-
const { rows, loading } = (0, useFormat_1.useMemoizedRows)(reportId);
|
|
63
|
+
const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, dispatch, client, dashboardFilters, csvFilename, hideCSVDownloadButton = true, hideFilters = true, LoadingComponent, SelectComponent = QuillSelect_1.QuillSelectComponent, MultiSelectComponent = QuillMultiSelect_1.QuillMultiSelectComponent, DateRangePickerComponent = QuillDateRangePicker_1.QuillDateRangePicker, FilterContainerComponent = UiComponents_1.QuillFilterContainerComponent, }) => {
|
|
64
|
+
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
65
|
+
const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
|
|
67
66
|
const { downloadCSV } = (0, useExport_1.useExport)(reportId);
|
|
68
67
|
const [customFields] = (0, react_1.useContext)(Context_1.CustomFieldContext);
|
|
69
|
-
(0, react_1.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
const [rows, setRows] = (0, react_1.useState)([]);
|
|
69
|
+
const [columns, setColumns] = (0, react_1.useState)([]);
|
|
70
|
+
const [tableFilters, setTableFilters] = (0, react_1.useState)([]);
|
|
71
|
+
const [filterUpdateIndex, setFilterUpdateIndex] = (0, react_1.useState)(0);
|
|
72
|
+
const { reportFiltersDispatch, reportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
|
|
73
|
+
const theme = (0, hooks_1.useTheme)();
|
|
74
|
+
const getChartData = async (useReportTask = true, reportFilterInfo) => {
|
|
75
|
+
try {
|
|
76
|
+
const filters = reportFilterInfo.filters;
|
|
77
|
+
setLoading(true);
|
|
78
|
+
if (!client.databaseType ||
|
|
79
|
+
client.databaseType.toLowerCase() !== 'postgresql') {
|
|
80
|
+
useReportTask = false;
|
|
74
81
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
dispatch({
|
|
99
|
-
type: 'UPDATE_DASHBOARD_ITEM',
|
|
100
|
-
id: reportId,
|
|
101
|
-
data: {
|
|
102
|
-
...resp,
|
|
103
|
-
filtersApplied: specificDashboardFilter,
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
}
|
|
82
|
+
const hostedBody = {
|
|
83
|
+
metadata: {
|
|
84
|
+
reportId,
|
|
85
|
+
dashboardItemId: reportId,
|
|
86
|
+
orgId: client.customerId || '*',
|
|
87
|
+
clientId: client.publicKey,
|
|
88
|
+
task: useReportTask ? 'report' : 'item',
|
|
89
|
+
getDefaultDashboardFilters: filters ? false : true,
|
|
90
|
+
databaseType: client?.databaseType,
|
|
91
|
+
customFields,
|
|
92
|
+
filters,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
const cloudBody = {
|
|
96
|
+
id: reportId,
|
|
97
|
+
};
|
|
98
|
+
const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'same-origin', hostedBody, cloudBody);
|
|
99
|
+
(0, errorProcessing_1.processFilterErrorList)(resp);
|
|
100
|
+
if (resp && resp.name !== 'error' && !resp.errorMessage) {
|
|
101
|
+
const cleanedReport = await (0, dashboard_1.cleanDashboardItem)(resp, filters ? filters : resp.filters);
|
|
102
|
+
if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
|
|
103
|
+
cleanedReport.columns = cleanedReport.yAxisFields;
|
|
107
104
|
}
|
|
108
|
-
|
|
109
|
-
|
|
105
|
+
let filterArray = filters;
|
|
106
|
+
if (!filterArray) {
|
|
107
|
+
filterArray = resp.filters
|
|
108
|
+
? resp.filters.map((filter) => {
|
|
109
|
+
return (0, filterProcessing_1.processFilterFromBackend)(filter, resp.rows);
|
|
110
|
+
})
|
|
111
|
+
: [];
|
|
112
|
+
reportFiltersDispatch({
|
|
113
|
+
type: 'UPDATE_REPORT_FILTER',
|
|
114
|
+
id: reportId,
|
|
115
|
+
data: {
|
|
116
|
+
filters: filterArray,
|
|
117
|
+
updateIndex: reportFilterInfo.updateIndex,
|
|
118
|
+
},
|
|
119
|
+
});
|
|
110
120
|
}
|
|
121
|
+
setFilterUpdateIndex(reportFilterInfo.updateIndex);
|
|
122
|
+
setTableFilters(filterArray);
|
|
111
123
|
}
|
|
124
|
+
setRows(resp.rows.map((row) => {
|
|
125
|
+
return resp.columns.reduce((formattedRow, column) => {
|
|
126
|
+
// Apply the format function to each field in the row
|
|
127
|
+
const formattedValue = (0, valueFormatter_1.quillFormat)({
|
|
128
|
+
value: row[column.field],
|
|
129
|
+
format: column.format,
|
|
130
|
+
});
|
|
131
|
+
formattedRow[column.field] = formattedValue;
|
|
132
|
+
return formattedRow;
|
|
133
|
+
}, {});
|
|
134
|
+
}));
|
|
135
|
+
setColumns(resp.columns);
|
|
136
|
+
setLoading(false);
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
if (useReportTask) {
|
|
140
|
+
getChartData(false, reportFilterInfo);
|
|
141
|
+
}
|
|
142
|
+
console.log('Error fetching chart: ', e);
|
|
143
|
+
setLoading(false);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
(0, react_1.useEffect)(() => {
|
|
147
|
+
// IF WE HAVE THE DATA IN DASHBOARD CONTEXT AND IT IS THE INITIAL LAOD DON'T FETCH DATA
|
|
148
|
+
if (initialLoad && dashboardContext[reportId]) {
|
|
149
|
+
setInitialLoad(false);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
setInitialLoad(false);
|
|
153
|
+
let parsedReportFilters = reportFilters[reportId]
|
|
154
|
+
? reportFilters[reportId]
|
|
155
|
+
: { updateIndex: 0 };
|
|
156
|
+
getChartData(true, parsedReportFilters);
|
|
157
|
+
}, [client.customerId, reportId, reportFilters[reportId]?.updateIndex]);
|
|
158
|
+
(0, react_1.useEffect)(() => {
|
|
159
|
+
if (!dashboardContext || !dashboardContext[reportId]) {
|
|
160
|
+
return;
|
|
112
161
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
162
|
+
setRows(dashboardContext[reportId].rows.map((row) => {
|
|
163
|
+
return dashboardContext[reportId].columns.reduce((formattedRow, column) => {
|
|
164
|
+
// Apply the format function to each field in the row
|
|
165
|
+
const formattedValue = (0, valueFormatter_1.quillFormat)({
|
|
166
|
+
value: row[column.field],
|
|
167
|
+
format: column.format,
|
|
168
|
+
});
|
|
169
|
+
formattedRow[column.field] = formattedValue;
|
|
170
|
+
return formattedRow;
|
|
171
|
+
}, {});
|
|
172
|
+
}));
|
|
173
|
+
setColumns(dashboardContext[reportId].columns);
|
|
174
|
+
}, []);
|
|
175
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [!hideFilters && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
176
|
+
display: 'flex',
|
|
177
|
+
boxSizing: 'content-box',
|
|
178
|
+
flexDirection: 'row',
|
|
179
|
+
alignItems: 'center',
|
|
180
|
+
}, children: (0, jsx_runtime_1.jsx)(FilterContainerComponent, { children: tableFilters.map((filter, index) => ((0, jsx_runtime_1.jsx)(DashboardFilter_1.DashboardFilter, { filter: filter, onChangeFilter: (filter, value = null, comparison = null) => {
|
|
181
|
+
const updatedFilters = tableFilters.map((f) => {
|
|
182
|
+
if (f.field === filter.field ||
|
|
183
|
+
(f.filterType === 'date_range' &&
|
|
184
|
+
filter.filterType === 'date_range')) {
|
|
185
|
+
return (0, filterProcessing_1.updateFilter)(f, value, comparison);
|
|
186
|
+
}
|
|
187
|
+
return f;
|
|
188
|
+
});
|
|
189
|
+
setTableFilters(updatedFilters);
|
|
190
|
+
getChartData(true, {
|
|
191
|
+
filters: updatedFilters,
|
|
192
|
+
updateIndex: filterUpdateIndex + 1,
|
|
193
|
+
});
|
|
194
|
+
reportFiltersDispatch({
|
|
195
|
+
type: 'UPDATE_REPORT_FILTER',
|
|
196
|
+
id: reportId,
|
|
197
|
+
data: {
|
|
198
|
+
filters: updatedFilters,
|
|
199
|
+
updateIndex: filterUpdateIndex + 1,
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
}, theme: theme, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))) }) })), (0, jsx_runtime_1.jsx)(QuillTable_1.default, { hideCSVDownloadButton: hideCSVDownloadButton, columns: columns ?? [], rows: rows ?? [], containerStyle: containerStyle, className: className, LoadingComponent: LoadingComponent, isLoading: loading, downloadCSV: downloadCSV })] }));
|
|
119
203
|
};
|
|
120
204
|
exports.default = Table;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltip.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltip.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAwUF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,iBAAiB,kDAK5D"}
|
|
@@ -179,10 +179,11 @@ function getTooltipLabel(props, altTooltipLabel, isDateXAxis) {
|
|
|
179
179
|
// The chart tooltip to display for comparison labels (eg. "previous period").
|
|
180
180
|
function ChartTooltipComparison(props) {
|
|
181
181
|
const isDateXAxis = (0, dates_1.isDateFormat)(props.xAxisFormat);
|
|
182
|
-
const altTooltipLabel = props.payload[0]?.
|
|
183
|
-
.
|
|
184
|
-
|
|
185
|
-
|
|
182
|
+
const altTooltipLabel = props.payload[0]?.name.replace('comparison ', '') ||
|
|
183
|
+
props.payload[0]?.dataKey
|
|
184
|
+
.replace('comparison_', '')
|
|
185
|
+
.replaceAll('_', ' ')
|
|
186
|
+
.toLowerCase();
|
|
186
187
|
const presetLabel = props.dateFilter?.preset?.label || '';
|
|
187
188
|
const comparisonLabel = props.dateFilter?.comparisonRange?.value || '';
|
|
188
189
|
const newRows = reformatComparisonPayload(props, presetLabel, (0, dates_1.convertComparisonRange)(presetLabel, comparisonLabel));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAIhG,KAAK,mBAAmB,GAAG,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,wBAAwB,GAAG,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,4BAA4B,GAAG,CAAC,EACnC,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,GACZ,EAAE,6BAA6B,KAAK,GAAG,CAAC,OAAO,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,eAAe,EACX,mBAAmB,GACnB,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IACnD,oBAAoB,EAChB,wBAAwB,GACxB,KAAK,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACxD,wBAAwB,EACpB,4BAA4B,GAC5B,KAAK,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC5D,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,cAAc,EACd,eAAsC,EACtC,oBAAgD,EAChD,wBAAwB,EACxB,KAAK,GACN,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAIhG,KAAK,mBAAmB,GAAG,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,wBAAwB,GAAG,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,4BAA4B,GAAG,CAAC,EACnC,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,GACZ,EAAE,6BAA6B,KAAK,GAAG,CAAC,OAAO,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,eAAe,EACX,mBAAmB,GACnB,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IACnD,oBAAoB,EAChB,wBAAwB,GACxB,KAAK,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACxD,wBAAwB,EACpB,4BAA4B,GAC5B,KAAK,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC5D,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,cAAc,EACd,eAAsC,EACtC,oBAAgD,EAChD,wBAAwB,EACxB,KAAK,GACN,EAAE,oBAAoB,kDAmItB"}
|
|
@@ -19,7 +19,7 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect
|
|
|
19
19
|
}
|
|
20
20
|
}, [filter]);
|
|
21
21
|
if (filter.filterType === 'string') {
|
|
22
|
-
if (!filter.options) {
|
|
22
|
+
if (!filter.options || filter.options.length === 0) {
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
25
|
if (filter.stringFilterType === 'multiselect') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,WAAW,EAAuB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,WAAW,EAAuB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3E,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,EAAE,EACF,QAAQ,EACR,OAAO,GACR,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CAwJd;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,eAAe;QAQtB,MAAM;;;mCAIC,WAAW,UACZ,UAAU,KACf,YAAY;2BACM,GAAG;cAChB,GAAG;wDAMV,yBAAyB,KAAK,WAAW;MAC1C,WAuHH,CAAC"}
|