@quillsql/react 2.16.28 → 2.16.30
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/index.cjs +12770 -1652
- package/dist/index.d.cts +725 -86
- package/dist/index.d.ts +725 -86
- package/dist/index.js +12512 -1384
- package/package.json +2 -1
package/dist/index.d.cts
CHANGED
|
@@ -73,6 +73,8 @@ interface SelectComponentProps {
|
|
|
73
73
|
isLoading?: boolean;
|
|
74
74
|
hideEmptyOption?: boolean;
|
|
75
75
|
disabled?: boolean;
|
|
76
|
+
/** Compact trigger (e.g. chat toolbar). */
|
|
77
|
+
size?: 'default' | 'sm';
|
|
76
78
|
}
|
|
77
79
|
interface MultiSelectComponentProps {
|
|
78
80
|
label?: string;
|
|
@@ -516,12 +518,12 @@ type ColorMapType = {
|
|
|
516
518
|
/**
|
|
517
519
|
* A set of valid format values for the x and y axes of dashboard items.
|
|
518
520
|
*/
|
|
519
|
-
type AxisFormat = 'percent' | 'dollar_amount' | 'dollar_cents' | 'whole_number' | 'one_decimal_place' | 'two_decimal_places' | 'percentage' | 'string' | 'yyyy' | 'MMM_dd' | 'MMM_yyyy' | 'MMM_dd_yyyy' | 'hh_ap_pm' | 'MMM_dd-MMM_dd' | 'MMM_dd_hh:mm_ap_pm' | 'wo, yyyy';
|
|
521
|
+
type AxisFormat$1 = 'percent' | 'dollar_amount' | 'dollar_cents' | 'whole_number' | 'one_decimal_place' | 'two_decimal_places' | 'percentage' | 'string' | 'yyyy' | 'MMM_dd' | 'MMM_yyyy' | 'MMM_dd_yyyy' | 'hh_ap_pm' | 'MMM_dd-MMM_dd' | 'MMM_dd_hh:mm_ap_pm' | 'wo, yyyy';
|
|
520
522
|
|
|
521
523
|
interface Column$1 {
|
|
522
524
|
field: string;
|
|
523
525
|
label: string;
|
|
524
|
-
format: AxisFormat;
|
|
526
|
+
format: AxisFormat$1;
|
|
525
527
|
inferFormat?: boolean;
|
|
526
528
|
}
|
|
527
529
|
interface ColumnInternal extends Column$1 {
|
|
@@ -546,6 +548,10 @@ interface BasePivot {
|
|
|
546
548
|
rowFieldType?: string;
|
|
547
549
|
columnField?: string;
|
|
548
550
|
columnFieldType?: string;
|
|
551
|
+
/** Source table for rowField (multi-table / disambiguation). */
|
|
552
|
+
rowFieldTable?: string;
|
|
553
|
+
/** Source table for columnField (multi-table / disambiguation). */
|
|
554
|
+
columnFieldTable?: string;
|
|
549
555
|
sort?: boolean;
|
|
550
556
|
sortDirection?: 'ASC' | 'DESC';
|
|
551
557
|
sortField?: string;
|
|
@@ -555,6 +561,14 @@ interface BasePivot {
|
|
|
555
561
|
rowLimit?: number;
|
|
556
562
|
columnValues?: string[];
|
|
557
563
|
}
|
|
564
|
+
type PivotAggregation = {
|
|
565
|
+
aggregationType: AggregationType;
|
|
566
|
+
valueField?: string;
|
|
567
|
+
valueFieldType?: string;
|
|
568
|
+
valueField2?: string;
|
|
569
|
+
valueField2Type?: string;
|
|
570
|
+
valueFieldTable?: string;
|
|
571
|
+
};
|
|
558
572
|
interface SingleAggregationPivot extends BasePivot {
|
|
559
573
|
aggregationType: AggregationType;
|
|
560
574
|
valueField?: string;
|
|
@@ -569,13 +583,7 @@ interface MultiAggregationPivot extends BasePivot {
|
|
|
569
583
|
valueField2?: never;
|
|
570
584
|
valueField2Type?: never;
|
|
571
585
|
valueFieldType?: never;
|
|
572
|
-
aggregations:
|
|
573
|
-
valueField?: string;
|
|
574
|
-
valueFieldType?: string;
|
|
575
|
-
valueField2?: string;
|
|
576
|
-
valueField2Type?: string;
|
|
577
|
-
aggregationType: AggregationType;
|
|
578
|
-
}[];
|
|
586
|
+
aggregations: PivotAggregation[];
|
|
579
587
|
}
|
|
580
588
|
type AggregationType = 'sum' | 'average' | 'min' | 'max' | 'count' | 'avg' | 'percentage';
|
|
581
589
|
type PivotData = {
|
|
@@ -629,6 +637,28 @@ type ReportBuilderState = {
|
|
|
629
637
|
limit: ReportBuilderLimit | null;
|
|
630
638
|
};
|
|
631
639
|
|
|
640
|
+
/**
|
|
641
|
+
* Represents a table object returned from /schema2/:id
|
|
642
|
+
*/
|
|
643
|
+
type Table$1 = {
|
|
644
|
+
_id: string;
|
|
645
|
+
isSelectStar: boolean;
|
|
646
|
+
displayName: string;
|
|
647
|
+
name: string;
|
|
648
|
+
columns: ColumnInternal[];
|
|
649
|
+
viewQuery: string;
|
|
650
|
+
customFieldInfo: any;
|
|
651
|
+
broken?: boolean;
|
|
652
|
+
error?: string;
|
|
653
|
+
ownerTenantFields?: string[];
|
|
654
|
+
};
|
|
655
|
+
interface UniqueValuesByTable {
|
|
656
|
+
[table: string]: UniqueValuesByColumn;
|
|
657
|
+
}
|
|
658
|
+
interface UniqueValuesByColumn {
|
|
659
|
+
[column: string]: string[];
|
|
660
|
+
}
|
|
661
|
+
|
|
632
662
|
/**
|
|
633
663
|
* ## QuillReport
|
|
634
664
|
* Represents an individual item on a dashboard.
|
|
@@ -669,7 +699,7 @@ interface QuillReport {
|
|
|
669
699
|
/** The field to use for this report's xAxis. */
|
|
670
700
|
xAxisField: string;
|
|
671
701
|
/** The format for this report's xAxis. */
|
|
672
|
-
xAxisFormat: AxisFormat;
|
|
702
|
+
xAxisFormat: AxisFormat$1;
|
|
673
703
|
/** The template flag for a report */
|
|
674
704
|
template?: boolean;
|
|
675
705
|
/**
|
|
@@ -681,7 +711,7 @@ interface QuillReport {
|
|
|
681
711
|
/** The label to use for this yAxis. */
|
|
682
712
|
label: string;
|
|
683
713
|
/** The format of the data in this yAxis. */
|
|
684
|
-
format: AxisFormat;
|
|
714
|
+
format: AxisFormat$1;
|
|
685
715
|
}[];
|
|
686
716
|
/**
|
|
687
717
|
* The relative ordering of this report in relation to its siblings. Ordering
|
|
@@ -770,15 +800,19 @@ interface QuillReportInternal extends QuillReport {
|
|
|
770
800
|
flags?: {
|
|
771
801
|
[tenantField: string]: string[] | 'QUILL_ALL_TENANTS';
|
|
772
802
|
};
|
|
773
|
-
/** Indicates whether this report can be cached. */
|
|
774
|
-
isCacheable?: boolean;
|
|
775
|
-
/** Reason why this report query cannot be cached. */
|
|
776
|
-
isCacheableReason?: string;
|
|
777
803
|
/**
|
|
778
804
|
* ReportBuilderState used for ReportBuilder reports.
|
|
779
805
|
* When present, backend will generate SQL from this state instead of using queryString.
|
|
780
806
|
*/
|
|
781
807
|
reportBuilderState?: ReportBuilderState;
|
|
808
|
+
/** String unique values grouped by table/column, used by filter builders. */
|
|
809
|
+
uniqueStringsByTable?: UniqueValuesByTable;
|
|
810
|
+
/** String unique values keyed by column name, used by filter builders. */
|
|
811
|
+
uniqueStringsByColumn?: UniqueValuesByColumn;
|
|
812
|
+
/** Legacy alias for unique string values keyed by column name. */
|
|
813
|
+
columnUniqueValues?: UniqueValuesByColumn;
|
|
814
|
+
/** Backward-compatible alias for unique string values keyed by column name. */
|
|
815
|
+
uniqueValues?: UniqueValuesByColumn;
|
|
782
816
|
}
|
|
783
817
|
|
|
784
818
|
/**
|
|
@@ -1216,6 +1250,7 @@ interface BaseQuillProviderProps {
|
|
|
1216
1250
|
isAdmin?: boolean;
|
|
1217
1251
|
getAuthorizationToken?: () => Promise<string>;
|
|
1218
1252
|
eventTracking?: EventTracking | null;
|
|
1253
|
+
streamEndpoint?: string;
|
|
1219
1254
|
}
|
|
1220
1255
|
interface QuillCloudProviderProps extends BaseQuillProviderProps {
|
|
1221
1256
|
tenants: {
|
|
@@ -1304,8 +1339,68 @@ type QuillProviderProps = QuillCloudProviderProps | SelfHostedProviderProps;
|
|
|
1304
1339
|
* ### Dashboard API
|
|
1305
1340
|
* @see https://docs.quillsql.com/components/quill-provider
|
|
1306
1341
|
*/
|
|
1307
|
-
declare const QuillProvider: ({ tenants, flags, publicKey, queryEndpoint, queryHeaders, children, theme, withCredentials, isAdmin, getAuthorizationToken, eventTracking, }: QuillProviderProps) => react_jsx_runtime.JSX.Element;
|
|
1342
|
+
declare const QuillProvider: ({ tenants, flags, publicKey, queryEndpoint, streamEndpoint, queryHeaders, children, theme, withCredentials, isAdmin, getAuthorizationToken, eventTracking, }: QuillProviderProps) => react_jsx_runtime.JSX.Element;
|
|
1308
1343
|
|
|
1344
|
+
interface TableComponentProps {
|
|
1345
|
+
rows: object[];
|
|
1346
|
+
rowCount?: number;
|
|
1347
|
+
rowCountIsLoading?: boolean;
|
|
1348
|
+
columns: {
|
|
1349
|
+
label: string;
|
|
1350
|
+
field: string;
|
|
1351
|
+
format?: string;
|
|
1352
|
+
}[];
|
|
1353
|
+
currentPage: number;
|
|
1354
|
+
sort?: {
|
|
1355
|
+
field: string;
|
|
1356
|
+
direction: string;
|
|
1357
|
+
};
|
|
1358
|
+
className?: string;
|
|
1359
|
+
containerStyle?: React$1.CSSProperties;
|
|
1360
|
+
isLoading?: boolean;
|
|
1361
|
+
hideCSVDownloadButton?: boolean;
|
|
1362
|
+
downloadCSV?: () => void;
|
|
1363
|
+
LoadingComponent?: () => React$1.JSX.Element;
|
|
1364
|
+
DownloadCSVButtonComponent?: (props: ButtonComponentProps) => React$1.JSX.Element;
|
|
1365
|
+
rowsPerPage?: number;
|
|
1366
|
+
emptyStateLabel?: string;
|
|
1367
|
+
onPageChange?: (page: number) => void;
|
|
1368
|
+
onSortChange?: (sort: {
|
|
1369
|
+
field: string;
|
|
1370
|
+
direction: string;
|
|
1371
|
+
}) => void;
|
|
1372
|
+
headerBackgroundColor?: string;
|
|
1373
|
+
footerBackgroundColor?: string;
|
|
1374
|
+
borderRadius?: string | number;
|
|
1375
|
+
borderLeft?: string;
|
|
1376
|
+
borderRight?: string;
|
|
1377
|
+
borderTop?: string;
|
|
1378
|
+
borderBottom?: string;
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1381
|
+
interface BaseChartProps {
|
|
1382
|
+
colors?: string[];
|
|
1383
|
+
containerStyle?: React.CSSProperties;
|
|
1384
|
+
className?: string;
|
|
1385
|
+
isAnimationActive?: boolean;
|
|
1386
|
+
hideXAxis?: boolean;
|
|
1387
|
+
hideYAxis?: boolean;
|
|
1388
|
+
hideCartesianGrid?: boolean;
|
|
1389
|
+
hideDateRangeFilter?: boolean;
|
|
1390
|
+
hideHorizontalCartesianGrid?: boolean;
|
|
1391
|
+
hideVerticalCartesianGrid?: boolean;
|
|
1392
|
+
hideSubsequentXAxisTicks?: boolean;
|
|
1393
|
+
cartesianGridLineStyle?: 'solid' | 'dashed';
|
|
1394
|
+
cartesianGridLineColor?: string;
|
|
1395
|
+
comparisonLineStyle?: 'solid' | 'dashed';
|
|
1396
|
+
mapColorsToFields?: (_report: QuillReport, _theme: QuillTheme) => ColorMapType;
|
|
1397
|
+
LoadingComponent?: () => React.JSX.Element;
|
|
1398
|
+
filters?: InternalFilter[];
|
|
1399
|
+
onClickChartElement?: (data: any) => void;
|
|
1400
|
+
}
|
|
1401
|
+
interface WithConfig extends BaseChartProps {
|
|
1402
|
+
config?: QuillReport;
|
|
1403
|
+
}
|
|
1309
1404
|
/**
|
|
1310
1405
|
* Props for the Quill Chart component.
|
|
1311
1406
|
*/
|
|
@@ -1478,6 +1573,32 @@ interface ChartProps {
|
|
|
1478
1573
|
isAdmin?: boolean;
|
|
1479
1574
|
}
|
|
1480
1575
|
declare function Chart({ colors, reportId, className, containerStyle, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, cartesianGridLineColor, comparisonLineStyle, hideDateRangeFilter, hideFilters, mapColorsToFields, LoadingComponent, SelectComponent, MultiSelectComponent, DateRangePickerComponent, FilterContainerComponent, TableComponent, MetricComponent, filters, onClickChartElement, dateBucket, propagateChanges, isAdmin, }: ChartProps): react_jsx_runtime.JSX.Element;
|
|
1576
|
+
interface ChartDisplayProps extends WithConfig {
|
|
1577
|
+
loading: boolean;
|
|
1578
|
+
ErrorComponent?: ({ errorMessage, }: {
|
|
1579
|
+
errorMessage: string;
|
|
1580
|
+
}) => React.JSX.Element;
|
|
1581
|
+
colorMap?: ColorMapType;
|
|
1582
|
+
reportId?: string;
|
|
1583
|
+
onPageChange?: (page: number) => void;
|
|
1584
|
+
onSortChange?: (sort: {
|
|
1585
|
+
field: string;
|
|
1586
|
+
direction: string;
|
|
1587
|
+
}) => void;
|
|
1588
|
+
onClickChartElement?: (data: any) => void;
|
|
1589
|
+
scrollable?: boolean;
|
|
1590
|
+
overrideTheme?: QuillTheme;
|
|
1591
|
+
referenceLines?: {
|
|
1592
|
+
label: string;
|
|
1593
|
+
query: number[];
|
|
1594
|
+
}[];
|
|
1595
|
+
showLegend?: boolean;
|
|
1596
|
+
tableRowsLoading?: boolean;
|
|
1597
|
+
disableTableSort?: boolean;
|
|
1598
|
+
/** When `chartType` is `table`, applied to QuillTable's outer frame only (not cell lines). */
|
|
1599
|
+
tableChartWrapperBorders?: Pick<TableComponentProps, 'borderRadius' | 'borderLeft' | 'borderRight' | 'borderTop' | 'borderBottom'>;
|
|
1600
|
+
}
|
|
1601
|
+
declare const ChartDisplay: ({ reportId, config, colors, className, containerStyle, hideXAxis, hideYAxis, hideCartesianGrid, hideDateRangeFilter, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, cartesianGridLineColor, comparisonLineStyle, isAnimationActive, scrollable, loading, ErrorComponent, colorMap, LoadingComponent, onPageChange, onSortChange, onClickChartElement, overrideTheme, referenceLines, showLegend, tableRowsLoading, tableChartWrapperBorders, }: ChartDisplayProps) => react_jsx_runtime.JSX.Element;
|
|
1481
1602
|
|
|
1482
1603
|
/**
|
|
1483
1604
|
* Props for the Quill Table component.
|
|
@@ -1545,6 +1666,7 @@ interface TableProps {
|
|
|
1545
1666
|
columns?: {
|
|
1546
1667
|
label: string;
|
|
1547
1668
|
field: string;
|
|
1669
|
+
format?: string;
|
|
1548
1670
|
}[];
|
|
1549
1671
|
/**
|
|
1550
1672
|
* The placeholder filename to use when downloading this table as a csv file.
|
|
@@ -1620,6 +1742,12 @@ interface TableProps {
|
|
|
1620
1742
|
* Styles the top-level container of the Table.
|
|
1621
1743
|
*/
|
|
1622
1744
|
containerStyle?: React$1.CSSProperties;
|
|
1745
|
+
/** Passed through to QuillTable when rendering with `rows` / `columns`. */
|
|
1746
|
+
borderRadius?: string | number;
|
|
1747
|
+
borderLeft?: string;
|
|
1748
|
+
borderRight?: string;
|
|
1749
|
+
borderTop?: string;
|
|
1750
|
+
borderBottom?: string;
|
|
1623
1751
|
/** An array of dashboard filters that are indicated by the frontend dev. */
|
|
1624
1752
|
filters?: Filter[];
|
|
1625
1753
|
}
|
|
@@ -1654,7 +1782,7 @@ interface TableProps {
|
|
|
1654
1782
|
* ### Table API
|
|
1655
1783
|
* @see https://docs.quillsql.com/components/table
|
|
1656
1784
|
*/
|
|
1657
|
-
declare const Table
|
|
1785
|
+
declare const Table: ({ TableComponent, ...props }: TableProps) => react_jsx_runtime.JSX.Element | null;
|
|
1658
1786
|
|
|
1659
1787
|
/**
|
|
1660
1788
|
* Props for the Quill SQLEditor component.
|
|
@@ -2547,6 +2675,577 @@ type StaticChartProps = (StaticChartBaseProps & {
|
|
|
2547
2675
|
});
|
|
2548
2676
|
declare function StaticChart(props: StaticChartProps): react_jsx_runtime.JSX.Element;
|
|
2549
2677
|
|
|
2678
|
+
interface ChatProps {
|
|
2679
|
+
selectedDashboard?: string | null;
|
|
2680
|
+
ChartViewComponent?: (props: {
|
|
2681
|
+
reportId: string;
|
|
2682
|
+
}) => JSX.Element;
|
|
2683
|
+
/** Called when the agent returns a report id (e.g. from `[RB_TOOL_OUTPUT]`). */
|
|
2684
|
+
onReportId?: (reportId: string) => void;
|
|
2685
|
+
/**
|
|
2686
|
+
* Current report builder state (e.g. return value `reportBuilderState` from `useReport`). Sent as `state` in agent-light
|
|
2687
|
+
* metadata on each message. Omit or pass null when not in the report builder.
|
|
2688
|
+
*/
|
|
2689
|
+
reportBuilderState?: ReportBuilderState | null;
|
|
2690
|
+
}
|
|
2691
|
+
type ChatModelId = 'gemini-2-flash' | 'gemini-2.5-flash' | 'gemini-3-flash-preview' | 'gpt-5.1' | 'opus-4.5' | 'kimi-k2.5';
|
|
2692
|
+
declare function Chat({ selectedDashboard, ChartViewComponent, onReportId, reportBuilderState, }: ChatProps): react_jsx_runtime.JSX.Element;
|
|
2693
|
+
|
|
2694
|
+
type QueryBuilderCombinator = 'and' | 'or';
|
|
2695
|
+
type QueryBuilderRule = {
|
|
2696
|
+
field: string;
|
|
2697
|
+
operator: string;
|
|
2698
|
+
value: unknown;
|
|
2699
|
+
};
|
|
2700
|
+
type QueryBuilderRuleGroupEntry = QueryBuilderRule | QueryBuilderRuleGroup | QueryBuilderCombinator;
|
|
2701
|
+
type QueryBuilderRuleGroup = {
|
|
2702
|
+
combinator?: QueryBuilderCombinator;
|
|
2703
|
+
rules: QueryBuilderRuleGroupEntry[];
|
|
2704
|
+
};
|
|
2705
|
+
type QueryBuilderFieldType = 'string' | 'number' | 'date' | 'boolean' | 'null';
|
|
2706
|
+
type QueryBuilderOperatorOption = {
|
|
2707
|
+
name: string;
|
|
2708
|
+
value: string;
|
|
2709
|
+
label: string;
|
|
2710
|
+
arity?: 'unary' | 'binary' | number;
|
|
2711
|
+
};
|
|
2712
|
+
|
|
2713
|
+
type SelectOption = {
|
|
2714
|
+
label: string;
|
|
2715
|
+
value: string;
|
|
2716
|
+
};
|
|
2717
|
+
type UseFormTableRow = Record<string, unknown>;
|
|
2718
|
+
type UseFormTableColumn = {
|
|
2719
|
+
label: string;
|
|
2720
|
+
field: string;
|
|
2721
|
+
format: string;
|
|
2722
|
+
};
|
|
2723
|
+
type UseFormTable = {
|
|
2724
|
+
rows: UseFormTableRow[];
|
|
2725
|
+
columns: UseFormTableColumn[];
|
|
2726
|
+
getColumnFormat: (field: string) => string;
|
|
2727
|
+
formatCellValue: (field: string, value: unknown) => string;
|
|
2728
|
+
getFormattedCellValue: (row: UseFormTableRow, field: string) => string;
|
|
2729
|
+
};
|
|
2730
|
+
type ColumnSelectionOption = {
|
|
2731
|
+
value: string;
|
|
2732
|
+
label: string;
|
|
2733
|
+
field: string;
|
|
2734
|
+
tableName: string;
|
|
2735
|
+
type: string;
|
|
2736
|
+
};
|
|
2737
|
+
type UseFormDisplayColumn = ReportBuilderColumn & {
|
|
2738
|
+
format?: string;
|
|
2739
|
+
};
|
|
2740
|
+
type SetReportBuilderColumnInput = Partial<UseFormDisplayColumn> & {
|
|
2741
|
+
field: string;
|
|
2742
|
+
label?: string;
|
|
2743
|
+
};
|
|
2744
|
+
type TableColumnsControllerItem = {
|
|
2745
|
+
id: string;
|
|
2746
|
+
label: string;
|
|
2747
|
+
defaultLabel: string;
|
|
2748
|
+
customLabel: string;
|
|
2749
|
+
/** Persisted axis format value (e.g. `whole_number`). */
|
|
2750
|
+
format: string;
|
|
2751
|
+
/** Format preset label (same strings as chart axis / `tableFormatOptions`). */
|
|
2752
|
+
formatLabel: string;
|
|
2753
|
+
field: string;
|
|
2754
|
+
tableName: string;
|
|
2755
|
+
};
|
|
2756
|
+
type TableColumnListItem = {
|
|
2757
|
+
id: string;
|
|
2758
|
+
label: string;
|
|
2759
|
+
visible: true;
|
|
2760
|
+
/** Axis format preset label (matches `tableFormatOptions` / chart axis). */
|
|
2761
|
+
format: string;
|
|
2762
|
+
/**
|
|
2763
|
+
* When set, overrides the shared `formatOptions` for this row (e.g. pivot date bucket).
|
|
2764
|
+
*/
|
|
2765
|
+
formatOptions?: string[];
|
|
2766
|
+
};
|
|
2767
|
+
/** Selected columns + mutation methods. Pair with `columnOptions` from `useReport` (like `datasources` / `datasourceOptions`). */
|
|
2768
|
+
type TableColumnsController = {
|
|
2769
|
+
items: TableColumnsControllerItem[];
|
|
2770
|
+
/** Schema option per column id (`value` === id) — includes `field`, `tableName`, etc. */
|
|
2771
|
+
optionById: ReadonlyMap<string, ColumnSelectionOption>;
|
|
2772
|
+
byId: ReadonlyMap<string, TableColumnsControllerItem>;
|
|
2773
|
+
/** Ready-made rows for table/column-picker UIs (`id`, `label`, `format` display string). */
|
|
2774
|
+
columnList: TableColumnListItem[];
|
|
2775
|
+
/** Build the `columns` array for `setReport({ columns })` from ordered ids. */
|
|
2776
|
+
getSetReportColumns: (ids: string[]) => SetReportBuilderColumnInput[];
|
|
2777
|
+
reorder: (oldIndex: number, newIndex: number) => void;
|
|
2778
|
+
/** Reorder to match a full id list (e.g. after drag-and-drop column list UIs). */
|
|
2779
|
+
reorderFromOrder: (nextIds: string[]) => void;
|
|
2780
|
+
remove: (id: string) => void;
|
|
2781
|
+
toggle: (id: string) => void;
|
|
2782
|
+
update: (id: string, updates: Partial<{
|
|
2783
|
+
fieldId: string;
|
|
2784
|
+
label: string;
|
|
2785
|
+
format: string;
|
|
2786
|
+
}>) => void;
|
|
2787
|
+
/**
|
|
2788
|
+
* Build `setReport({ columns: { patch } })` for a table column sidebar edit;
|
|
2789
|
+
* `setReport` expands it to a full `columns` list and/or `chartAxes`. Returns
|
|
2790
|
+
* null only when `id` is empty.
|
|
2791
|
+
*/
|
|
2792
|
+
getColumnSidebarSetReportInput: (id: string, updates: Partial<{
|
|
2793
|
+
fieldId: string;
|
|
2794
|
+
label: string;
|
|
2795
|
+
format: string;
|
|
2796
|
+
}>) => SetReportBuilderInput | null;
|
|
2797
|
+
/**
|
|
2798
|
+
* When true (pivot + chartType table), the list mirrors `chart.columns`; reorder,
|
|
2799
|
+
* add, remove, and field swap are disabled — only label/format apply via chart axes.
|
|
2800
|
+
*/
|
|
2801
|
+
structureEditsLocked: boolean;
|
|
2802
|
+
};
|
|
2803
|
+
type ChartAxisFieldOption = {
|
|
2804
|
+
value: string;
|
|
2805
|
+
label: string;
|
|
2806
|
+
format: AxisFormat;
|
|
2807
|
+
};
|
|
2808
|
+
type ChartYAxisControllerItem = {
|
|
2809
|
+
id: string;
|
|
2810
|
+
field: string;
|
|
2811
|
+
label: string;
|
|
2812
|
+
format: AxisFormat;
|
|
2813
|
+
};
|
|
2814
|
+
type ChartAxesController = {
|
|
2815
|
+
xAxis: {
|
|
2816
|
+
field: string;
|
|
2817
|
+
format: AxisFormat;
|
|
2818
|
+
options: ChartAxisFieldOption[];
|
|
2819
|
+
formatOptions: SelectOption[];
|
|
2820
|
+
update: (updates: Partial<{
|
|
2821
|
+
field: string;
|
|
2822
|
+
format: AxisFormat;
|
|
2823
|
+
}>) => void;
|
|
2824
|
+
};
|
|
2825
|
+
yAxis: {
|
|
2826
|
+
items: ChartYAxisControllerItem[];
|
|
2827
|
+
options: ChartAxisFieldOption[];
|
|
2828
|
+
formatOptions: SelectOption[];
|
|
2829
|
+
add: (field?: string) => void;
|
|
2830
|
+
remove: (id: string) => void;
|
|
2831
|
+
reorder: (oldIndex: number, newIndex: number) => void;
|
|
2832
|
+
update: (id: string, updates: Partial<{
|
|
2833
|
+
field: string;
|
|
2834
|
+
label: string;
|
|
2835
|
+
format: AxisFormat;
|
|
2836
|
+
}>) => void;
|
|
2837
|
+
};
|
|
2838
|
+
};
|
|
2839
|
+
type ColumnSelectorChangeValue = string[];
|
|
2840
|
+
/**
|
|
2841
|
+
* Table column sidebar edit under {@link SetReportBuilderInput.columns}: expands
|
|
2842
|
+
* inside `setReport` to a full `columns` array and/or `chartAxes` (pivot table chart).
|
|
2843
|
+
*/
|
|
2844
|
+
type SetReportTableColumnSidebarPatch = {
|
|
2845
|
+
patch: {
|
|
2846
|
+
id: string;
|
|
2847
|
+
label?: string;
|
|
2848
|
+
format?: string;
|
|
2849
|
+
fieldId?: string;
|
|
2850
|
+
};
|
|
2851
|
+
};
|
|
2852
|
+
type AggregationStateItem = Partial<{
|
|
2853
|
+
valueField: string;
|
|
2854
|
+
valueField2?: string;
|
|
2855
|
+
aggregationType: AggregationType;
|
|
2856
|
+
/** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
|
|
2857
|
+
valueFieldTable?: string;
|
|
2858
|
+
}>;
|
|
2859
|
+
type AggregationOption = {
|
|
2860
|
+
key: string;
|
|
2861
|
+
label: string;
|
|
2862
|
+
value: string;
|
|
2863
|
+
options: SelectOption[];
|
|
2864
|
+
};
|
|
2865
|
+
type AxisFormat = QuillReportInternal['yAxisFields'][number]['format'];
|
|
2866
|
+
type QueryBuilderFieldValueOption = {
|
|
2867
|
+
name: string;
|
|
2868
|
+
label: string;
|
|
2869
|
+
value: string;
|
|
2870
|
+
};
|
|
2871
|
+
type UseFormQueryBuilderField = {
|
|
2872
|
+
name: string;
|
|
2873
|
+
label: string;
|
|
2874
|
+
inputType: string;
|
|
2875
|
+
quillFieldType: QueryBuilderFieldType;
|
|
2876
|
+
values?: QueryBuilderFieldValueOption[];
|
|
2877
|
+
};
|
|
2878
|
+
type UseFormQueryBuilderProps = {
|
|
2879
|
+
fields: UseFormQueryBuilderField[];
|
|
2880
|
+
listsAsArrays: true;
|
|
2881
|
+
getOperators: (field: string, misc?: {
|
|
2882
|
+
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2883
|
+
}) => QueryBuilderOperatorOption[];
|
|
2884
|
+
getInputType: (field: string, operator: string, misc?: {
|
|
2885
|
+
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2886
|
+
}) => 'text' | 'number' | 'date' | 'checkbox';
|
|
2887
|
+
getValueEditorType: (field: string, operator: string, misc?: {
|
|
2888
|
+
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2889
|
+
}) => 'multiselect' | undefined;
|
|
2890
|
+
getValues: (field: string, operator: string, misc?: {
|
|
2891
|
+
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2892
|
+
}) => QueryBuilderFieldValueOption[];
|
|
2893
|
+
};
|
|
2894
|
+
/** Maps table column format dropdown values to persisted report column `format` (matches `setReport({ columns })` / `update`). */
|
|
2895
|
+
declare function tableColumnFormatFromUiSelection(raw: string): string;
|
|
2896
|
+
/** Shape expected by chart config sidebars that mirror `AxisConfig` (e.g. Quill Chat ConfigForm). */
|
|
2897
|
+
type UseFormAxisConfig = {
|
|
2898
|
+
xAxis: {
|
|
2899
|
+
field: string;
|
|
2900
|
+
label: string;
|
|
2901
|
+
format: string;
|
|
2902
|
+
show: boolean;
|
|
2903
|
+
rotation: number;
|
|
2904
|
+
fontSize: number;
|
|
2905
|
+
};
|
|
2906
|
+
yAxis: {
|
|
2907
|
+
fields: Array<{
|
|
2908
|
+
field: string;
|
|
2909
|
+
label: string;
|
|
2910
|
+
format: string;
|
|
2911
|
+
color: string;
|
|
2912
|
+
}>;
|
|
2913
|
+
label: string;
|
|
2914
|
+
show: boolean;
|
|
2915
|
+
min: string;
|
|
2916
|
+
max: string;
|
|
2917
|
+
fontSize: number;
|
|
2918
|
+
};
|
|
2919
|
+
legend: {
|
|
2920
|
+
show: boolean;
|
|
2921
|
+
};
|
|
2922
|
+
};
|
|
2923
|
+
type SetReportChartAxesInput = {
|
|
2924
|
+
xAxis?: Partial<{
|
|
2925
|
+
field: string;
|
|
2926
|
+
/** Custom X-axis title; empty string clears the override and restores the report/field default. */
|
|
2927
|
+
label: string;
|
|
2928
|
+
format: AxisFormat | string;
|
|
2929
|
+
}>;
|
|
2930
|
+
yAxis?: {
|
|
2931
|
+
fields: Array<{
|
|
2932
|
+
field: string;
|
|
2933
|
+
label?: string;
|
|
2934
|
+
format?: AxisFormat | string;
|
|
2935
|
+
}>;
|
|
2936
|
+
};
|
|
2937
|
+
};
|
|
2938
|
+
interface SetReportBuilderInput {
|
|
2939
|
+
/**
|
|
2940
|
+
* Column picker ids, a full column list, or `{ patch: { id, … } }` for sidebar
|
|
2941
|
+
* edits (expanded inside `setReport` into a full list and/or `chartAxes`).
|
|
2942
|
+
*/
|
|
2943
|
+
columns?: ColumnSelectorChangeValue | SetReportBuilderColumnInput[] | SetReportTableColumnSidebarPatch;
|
|
2944
|
+
filters?: Filter[];
|
|
2945
|
+
groupRowsBy?: string;
|
|
2946
|
+
groupColumnsBy?: string;
|
|
2947
|
+
aggregations?: AggregationStateItem[] | string | {
|
|
2948
|
+
index: number;
|
|
2949
|
+
value: string;
|
|
2950
|
+
};
|
|
2951
|
+
sort?: ReportBuilderSort[] | string;
|
|
2952
|
+
limit?: ReportBuilderLimit | null;
|
|
2953
|
+
chartType?: string;
|
|
2954
|
+
/** When set, updates chart legend visibility (same source as `showLegend` from `useReport`). */
|
|
2955
|
+
showLegend?: boolean;
|
|
2956
|
+
/** When set, merges into chart axis edits (use with returned `xAxis` / `yAxis` / options). */
|
|
2957
|
+
chartAxes?: SetReportChartAxesInput;
|
|
2958
|
+
/**
|
|
2959
|
+
* Schema table names for datasource / multi-table picker UIs.
|
|
2960
|
+
* Empty array clears the override (report base tables apply again).
|
|
2961
|
+
*/
|
|
2962
|
+
datasources?: string[];
|
|
2963
|
+
}
|
|
2964
|
+
interface UseReportOptions {
|
|
2965
|
+
useInMemoryEngines?: boolean;
|
|
2966
|
+
reportOverride?: QuillReportInternal | null;
|
|
2967
|
+
initialReportBuilderState?: ReportBuilderState | null;
|
|
2968
|
+
/**
|
|
2969
|
+
* When the report payload has no `dashboardName` and the client has no
|
|
2970
|
+
* `defaultDashboard`, use this for engine tasks that require a dashboard
|
|
2971
|
+
* (e.g. filter unique values).
|
|
2972
|
+
*/
|
|
2973
|
+
destinationDashboardName?: string;
|
|
2974
|
+
/**
|
|
2975
|
+
* When true (default), filter pickers, pivot row/column group-by options,
|
|
2976
|
+
* aggregation field dropdowns, and filter-builder field lists only include
|
|
2977
|
+
* columns from the selected datasource
|
|
2978
|
+
* tables (`setReport({ datasources })` / report base tables)—not other tables that
|
|
2979
|
+
* happen to be FK-joinable but were not selected. When false, behaviour matches
|
|
2980
|
+
* the prior schema-wide option lists when no table scope applies.
|
|
2981
|
+
*/
|
|
2982
|
+
restrictFieldOptionsToSelectedDatasources?: boolean;
|
|
2983
|
+
}
|
|
2984
|
+
/**
|
|
2985
|
+
* `saveChanges` from `useReport`. Always returns a Promise so UIs can `await`
|
|
2986
|
+
* before navigation or feedback. Resolves to `undefined` when persist is skipped
|
|
2987
|
+
* (e.g. missing client, dashboard name, or report state).
|
|
2988
|
+
*/
|
|
2989
|
+
type UseReportSaveChangesFn = () => Promise<unknown>;
|
|
2990
|
+
/**
|
|
2991
|
+
* @param reportIdArg When omitted, the hook can bootstrap a report via `saveReport`
|
|
2992
|
+
* (`create-report`) on the first `setReport({ datasources })`, after schema is available.
|
|
2993
|
+
* Use `destinationDashboardName` so the server can resolve a dashboard for create-report.
|
|
2994
|
+
*/
|
|
2995
|
+
declare function useReport(reportIdArg?: string, options?: UseReportOptions): {
|
|
2996
|
+
chart: {
|
|
2997
|
+
xAxisField: string;
|
|
2998
|
+
xAxisFormat: AxisFormat$1;
|
|
2999
|
+
xAxisLabel: string;
|
|
3000
|
+
yAxisFields: {
|
|
3001
|
+
field: string;
|
|
3002
|
+
label: string;
|
|
3003
|
+
format: AxisFormat$1;
|
|
3004
|
+
}[];
|
|
3005
|
+
columns: Column$1[];
|
|
3006
|
+
pivotQuery?: string;
|
|
3007
|
+
comparisonPivotQuery?: string;
|
|
3008
|
+
itemQuery?: string[];
|
|
3009
|
+
referencedTables?: string[];
|
|
3010
|
+
referencedColumns?: {
|
|
3011
|
+
[table: string]: string[];
|
|
3012
|
+
};
|
|
3013
|
+
error?: string;
|
|
3014
|
+
adminError?: string;
|
|
3015
|
+
triggerReload?: boolean;
|
|
3016
|
+
columnInternal: ColumnInternal[];
|
|
3017
|
+
loadingRows?: boolean;
|
|
3018
|
+
flags?: {
|
|
3019
|
+
[tenantField: string]: string[] | "QUILL_ALL_TENANTS";
|
|
3020
|
+
};
|
|
3021
|
+
reportBuilderState?: ReportBuilderState;
|
|
3022
|
+
uniqueStringsByTable?: UniqueValuesByTable;
|
|
3023
|
+
uniqueStringsByColumn?: UniqueValuesByColumn;
|
|
3024
|
+
columnUniqueValues?: UniqueValuesByColumn;
|
|
3025
|
+
uniqueValues?: UniqueValuesByColumn;
|
|
3026
|
+
id: string;
|
|
3027
|
+
name: string;
|
|
3028
|
+
dashboardName: string;
|
|
3029
|
+
rows: {
|
|
3030
|
+
[key: string]: string;
|
|
3031
|
+
}[];
|
|
3032
|
+
chartType: string;
|
|
3033
|
+
showLegend?: boolean;
|
|
3034
|
+
dateField?: {
|
|
3035
|
+
table: string;
|
|
3036
|
+
field: string;
|
|
3037
|
+
};
|
|
3038
|
+
pivot: Pivot | null;
|
|
3039
|
+
template?: boolean;
|
|
3040
|
+
order: number;
|
|
3041
|
+
compareRows: {
|
|
3042
|
+
[key: string]: string;
|
|
3043
|
+
}[];
|
|
3044
|
+
filtersApplied?: InternalFilter[];
|
|
3045
|
+
pagination?: Pagination;
|
|
3046
|
+
sort?: {
|
|
3047
|
+
field: string;
|
|
3048
|
+
direction: string;
|
|
3049
|
+
};
|
|
3050
|
+
rowCount: number;
|
|
3051
|
+
queryString: string;
|
|
3052
|
+
filterMap?: {
|
|
3053
|
+
[key: string]: {
|
|
3054
|
+
table: string;
|
|
3055
|
+
field: string;
|
|
3056
|
+
};
|
|
3057
|
+
};
|
|
3058
|
+
referenceLines?: {
|
|
3059
|
+
label: string;
|
|
3060
|
+
query: [number, number] | string;
|
|
3061
|
+
}[];
|
|
3062
|
+
referenceLineYValues?: {
|
|
3063
|
+
label: string;
|
|
3064
|
+
query: [number, number];
|
|
3065
|
+
}[];
|
|
3066
|
+
includeCustomFields?: boolean;
|
|
3067
|
+
columnsWithCustomFields?: Column$1[];
|
|
3068
|
+
pivotRows?: {
|
|
3069
|
+
[key: string]: string;
|
|
3070
|
+
}[];
|
|
3071
|
+
pivotColumns?: ColumnInternal[];
|
|
3072
|
+
pivotRowCount?: number;
|
|
3073
|
+
} | undefined;
|
|
3074
|
+
chartLoading: boolean;
|
|
3075
|
+
table: UseFormTable;
|
|
3076
|
+
tableLoading: boolean;
|
|
3077
|
+
loading: boolean;
|
|
3078
|
+
/** Report title: matching `sourceReport.name`, else `report-name` task, else empty. */
|
|
3079
|
+
name: string;
|
|
3080
|
+
/**
|
|
3081
|
+
* Resolved report id: the `reportId` argument when provided, otherwise the id
|
|
3082
|
+
* returned from `create-report` after the first datasource selection.
|
|
3083
|
+
*/
|
|
3084
|
+
reportId: string | undefined;
|
|
3085
|
+
datasources: {
|
|
3086
|
+
id: string;
|
|
3087
|
+
label: string;
|
|
3088
|
+
}[];
|
|
3089
|
+
datasourceOptions: {
|
|
3090
|
+
id: string;
|
|
3091
|
+
label: string;
|
|
3092
|
+
}[];
|
|
3093
|
+
groupRowsBy: string | undefined;
|
|
3094
|
+
groupRowsByOptions: SelectOption[];
|
|
3095
|
+
groupColumnsBy: string | undefined;
|
|
3096
|
+
groupColumnsByOptions: SelectOption[];
|
|
3097
|
+
aggregations: Partial<{
|
|
3098
|
+
valueField: string;
|
|
3099
|
+
valueField2?: string;
|
|
3100
|
+
aggregationType: AggregationType;
|
|
3101
|
+
/** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
|
|
3102
|
+
valueFieldTable?: string;
|
|
3103
|
+
}>[];
|
|
3104
|
+
aggregationOptions: AggregationOption[];
|
|
3105
|
+
aggregationDescriptionOptions: {
|
|
3106
|
+
label: string;
|
|
3107
|
+
value: string;
|
|
3108
|
+
}[];
|
|
3109
|
+
sort: string;
|
|
3110
|
+
sortOptions: {
|
|
3111
|
+
label: string;
|
|
3112
|
+
value: string;
|
|
3113
|
+
}[];
|
|
3114
|
+
chartType: string | undefined;
|
|
3115
|
+
chartTypeOptions: {
|
|
3116
|
+
label: string;
|
|
3117
|
+
value: string;
|
|
3118
|
+
}[];
|
|
3119
|
+
/** Encoded field keys for the current column selection (for `setReport({ columns })`, etc.). */
|
|
3120
|
+
columnIds: ColumnSelectorChangeValue;
|
|
3121
|
+
/** Selected columns + `reorder` / `toggle` / `update` / `remove`. */
|
|
3122
|
+
columns: TableColumnsController;
|
|
3123
|
+
/** Schema columns for current datasources — pool for the table column picker. */
|
|
3124
|
+
columnOptions: ColumnSelectionOption[];
|
|
3125
|
+
xAxis: {
|
|
3126
|
+
field: string;
|
|
3127
|
+
format: AxisFormat;
|
|
3128
|
+
options: ChartAxisFieldOption[];
|
|
3129
|
+
formatOptions: SelectOption[];
|
|
3130
|
+
update: (updates: Partial<{
|
|
3131
|
+
field: string;
|
|
3132
|
+
format: AxisFormat;
|
|
3133
|
+
}>) => void;
|
|
3134
|
+
};
|
|
3135
|
+
xAxisOptions: {
|
|
3136
|
+
value: string;
|
|
3137
|
+
label: string;
|
|
3138
|
+
format: string;
|
|
3139
|
+
}[];
|
|
3140
|
+
yAxis: {
|
|
3141
|
+
items: ChartYAxisControllerItem[];
|
|
3142
|
+
options: ChartAxisFieldOption[];
|
|
3143
|
+
formatOptions: SelectOption[];
|
|
3144
|
+
add: (field?: string) => void;
|
|
3145
|
+
remove: (id: string) => void;
|
|
3146
|
+
reorder: (oldIndex: number, newIndex: number) => void;
|
|
3147
|
+
update: (id: string, updates: Partial<{
|
|
3148
|
+
field: string;
|
|
3149
|
+
label: string;
|
|
3150
|
+
format: AxisFormat;
|
|
3151
|
+
}>) => void;
|
|
3152
|
+
};
|
|
3153
|
+
yAxisOptions: {
|
|
3154
|
+
value: string;
|
|
3155
|
+
label: string;
|
|
3156
|
+
format: string;
|
|
3157
|
+
}[];
|
|
3158
|
+
/** Same strings as `axisSelectFormatLabels` (X/Y share chart format presets). */
|
|
3159
|
+
xAxisFormatOptions: string[];
|
|
3160
|
+
yAxisFormatOptions: string[];
|
|
3161
|
+
/** Table column format dropdown labels (same set as chart axis formats). */
|
|
3162
|
+
tableFormatOptions: string[];
|
|
3163
|
+
showLegend: boolean;
|
|
3164
|
+
axisConfig: UseFormAxisConfig;
|
|
3165
|
+
availableFields: {
|
|
3166
|
+
id: string;
|
|
3167
|
+
label: string;
|
|
3168
|
+
type: string;
|
|
3169
|
+
}[];
|
|
3170
|
+
axisSelectFormatLabels: string[];
|
|
3171
|
+
/** @deprecated Prefer top-level `xAxis`, `yAxis`, and `showLegend`. */
|
|
3172
|
+
chartAxes: ChartAxesController;
|
|
3173
|
+
/** @deprecated Prefer top-level `xAxisOptions` / `yAxisOptions`. */
|
|
3174
|
+
chartAxisOptions: {
|
|
3175
|
+
xAxis: {
|
|
3176
|
+
value: string;
|
|
3177
|
+
label: string;
|
|
3178
|
+
format: string;
|
|
3179
|
+
}[];
|
|
3180
|
+
yAxis: {
|
|
3181
|
+
value: string;
|
|
3182
|
+
label: string;
|
|
3183
|
+
format: string;
|
|
3184
|
+
}[];
|
|
3185
|
+
};
|
|
3186
|
+
hasTableDrivenColumnOrder: boolean;
|
|
3187
|
+
filters: QueryBuilderRuleGroup;
|
|
3188
|
+
filterQueryBuilderProps: UseFormQueryBuilderProps;
|
|
3189
|
+
/** True while `report-builder-unique-values` runs for filter value options (not chart/table load). */
|
|
3190
|
+
filterUniqueValuesLoading: boolean;
|
|
3191
|
+
limit: ReportBuilderLimit | null;
|
|
3192
|
+
chartTypes: {
|
|
3193
|
+
label: string;
|
|
3194
|
+
value: string;
|
|
3195
|
+
}[];
|
|
3196
|
+
columnsOptions: ColumnSelectionOption[];
|
|
3197
|
+
tableColumnOptions: ColumnSelectionOption[];
|
|
3198
|
+
tableColumns: TableColumnsController;
|
|
3199
|
+
setReport: (nextState: SetReportBuilderInput) => void;
|
|
3200
|
+
saveChanges: UseReportSaveChangesFn;
|
|
3201
|
+
setFilters: (nextFilters: QueryBuilderRuleGroup) => void;
|
|
3202
|
+
setReportBuilder: (nextState: SetReportBuilderInput) => void;
|
|
3203
|
+
/** Current report-builder slice (tables, columns, filters, pivot, sort); pass to e.g. `Chat` as `reportBuilderState`. */
|
|
3204
|
+
reportBuilderState: ReportBuilderState | undefined;
|
|
3205
|
+
};
|
|
3206
|
+
|
|
3207
|
+
/** Normalize react-querybuilder filter trees before stack conversion / persistence. */
|
|
3208
|
+
type QueryBuilderDisplayRule = {
|
|
3209
|
+
id?: unknown;
|
|
3210
|
+
field?: unknown;
|
|
3211
|
+
operator?: unknown;
|
|
3212
|
+
value?: unknown;
|
|
3213
|
+
};
|
|
3214
|
+
type QueryBuilderDisplayGroup = {
|
|
3215
|
+
combinator?: unknown;
|
|
3216
|
+
rules: unknown[];
|
|
3217
|
+
};
|
|
3218
|
+
declare const isQueryBuilderDisplayGroup: (value: unknown) => value is QueryBuilderDisplayGroup;
|
|
3219
|
+
declare const isQueryBuilderDisplayRule: (value: unknown) => value is QueryBuilderDisplayRule;
|
|
3220
|
+
declare const stripQueryBuilderTransientFields: (value: unknown, seen?: WeakMap<object, unknown>) => unknown;
|
|
3221
|
+
/** Merge relative-date rule values against a prior tree (typically last committed filters). */
|
|
3222
|
+
declare const normalizeRelativeDateRules: (nextQuery: unknown, previousQuery: unknown) => unknown;
|
|
3223
|
+
/** Strip + relative-date normalization used by `useReport` `setFilters` and draft-vs-committed UI. */
|
|
3224
|
+
declare function prepareQueryBuilderFiltersForSet(next: unknown, previousCommitted: unknown): unknown;
|
|
3225
|
+
/**
|
|
3226
|
+
* Whether a react-querybuilder draft differs from committed filters in a way that matters
|
|
3227
|
+
* for Apply (ignores transient `id` / `path`, etc.).
|
|
3228
|
+
*/
|
|
3229
|
+
declare function areQueryBuilderFilterDraftsDirty(draft: unknown, committed: unknown): boolean;
|
|
3230
|
+
/** Number of leaf filter rules (excludes empty groups). */
|
|
3231
|
+
declare function countFilterRules(value: unknown): number;
|
|
3232
|
+
|
|
3233
|
+
type ReportDetailProps = {
|
|
3234
|
+
/** Display name from the loaded report (e.g. `useReport` `name`). Rendered above the chart when non-empty. */
|
|
3235
|
+
reportTitle?: string;
|
|
3236
|
+
chart?: any;
|
|
3237
|
+
chartLoading: boolean;
|
|
3238
|
+
table?: {
|
|
3239
|
+
columns?: unknown[];
|
|
3240
|
+
rows?: unknown[];
|
|
3241
|
+
};
|
|
3242
|
+
tableLoading: boolean;
|
|
3243
|
+
showLegend?: boolean;
|
|
3244
|
+
/** Strip QuillTable's outer frame when chart type is `table` (cell borders unchanged). */
|
|
3245
|
+
hideTableChartOuterBorder?: boolean;
|
|
3246
|
+
};
|
|
3247
|
+
declare function ReportDetail({ reportTitle, chart, chartLoading, table, tableLoading, showLegend, hideTableChartOuterBorder, }: ReportDetailProps): react_jsx_runtime.JSX.Element;
|
|
3248
|
+
|
|
2550
3249
|
declare const quillFormat: ({ value, format, }: {
|
|
2551
3250
|
value: any;
|
|
2552
3251
|
format: string;
|
|
@@ -2624,11 +3323,9 @@ declare const useDashboards: () => {
|
|
|
2624
3323
|
};
|
|
2625
3324
|
declare const useDashboard: (dashboardName: string, config?: {
|
|
2626
3325
|
pageSize?: number;
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
};
|
|
2631
|
-
disableBackendCache?: boolean;
|
|
3326
|
+
cacheEnabled?: boolean;
|
|
3327
|
+
cacheType?: "memory" | "idb";
|
|
3328
|
+
showCacheLogs?: boolean;
|
|
2632
3329
|
}) => {
|
|
2633
3330
|
isLoading: boolean;
|
|
2634
3331
|
sections: Record<string, QuillReport[]> | null;
|
|
@@ -2660,28 +3357,6 @@ declare const useDashboardReport: (reportId: string, config?: {
|
|
|
2660
3357
|
fetchNextPage: () => Promise<void>;
|
|
2661
3358
|
};
|
|
2662
3359
|
|
|
2663
|
-
/**
|
|
2664
|
-
* Represents a table object returned from /schema2/:id
|
|
2665
|
-
*/
|
|
2666
|
-
type Table = {
|
|
2667
|
-
_id: string;
|
|
2668
|
-
isSelectStar: boolean;
|
|
2669
|
-
displayName: string;
|
|
2670
|
-
name: string;
|
|
2671
|
-
columns: ColumnInternal[];
|
|
2672
|
-
viewQuery: string;
|
|
2673
|
-
customFieldInfo: any;
|
|
2674
|
-
broken?: boolean;
|
|
2675
|
-
error?: string;
|
|
2676
|
-
ownerTenantFields?: string[];
|
|
2677
|
-
};
|
|
2678
|
-
interface UniqueValuesByTable {
|
|
2679
|
-
[table: string]: UniqueValuesByColumn;
|
|
2680
|
-
}
|
|
2681
|
-
interface UniqueValuesByColumn {
|
|
2682
|
-
[column: string]: string[];
|
|
2683
|
-
}
|
|
2684
|
-
|
|
2685
3360
|
type ForeignKeyMap = {
|
|
2686
3361
|
[table: string]: {
|
|
2687
3362
|
foreignTable: string;
|
|
@@ -2771,7 +3446,7 @@ type ReportBuilder = {
|
|
|
2771
3446
|
sortField: string;
|
|
2772
3447
|
sortDirection: 'ASC' | 'DESC';
|
|
2773
3448
|
} | undefined, fieldKey: 'rowField' | 'columnField' | 'aggregations' | 'rowLimit' | 'sort') => Promise<void>;
|
|
2774
|
-
filteredSchema: Table[];
|
|
3449
|
+
filteredSchema: Table$1[];
|
|
2775
3450
|
foreignKeyMap: ForeignKeyMap;
|
|
2776
3451
|
schemaData: any;
|
|
2777
3452
|
client: any;
|
|
@@ -2960,20 +3635,20 @@ type CustomField = {
|
|
|
2960
3635
|
};
|
|
2961
3636
|
|
|
2962
3637
|
declare const useVirtualTables: () => {
|
|
2963
|
-
data: Table[];
|
|
3638
|
+
data: Table$1[];
|
|
2964
3639
|
isLoading: boolean;
|
|
2965
3640
|
loadingTables: {
|
|
2966
3641
|
[key: string]: boolean;
|
|
2967
3642
|
};
|
|
2968
3643
|
reloadAll: (client: any, caller?: string) => Promise<{
|
|
2969
|
-
schema: Table[];
|
|
3644
|
+
schema: Table$1[];
|
|
2970
3645
|
customFields: {
|
|
2971
3646
|
[tableName: string]: CustomField[];
|
|
2972
3647
|
} | null;
|
|
2973
3648
|
isSchemaLoading: boolean;
|
|
2974
3649
|
}>;
|
|
2975
|
-
refreshSome: (client: any, tables: Table[]) => Promise<{
|
|
2976
|
-
schema: Table[];
|
|
3650
|
+
refreshSome: (client: any, tables: Table$1[]) => Promise<{
|
|
3651
|
+
schema: Table$1[];
|
|
2977
3652
|
customFields: {
|
|
2978
3653
|
[tableName: string]: CustomField[];
|
|
2979
3654
|
} | null;
|
|
@@ -3039,42 +3714,6 @@ interface LimitPopoverComponentProps {
|
|
|
3039
3714
|
disabled?: boolean;
|
|
3040
3715
|
}
|
|
3041
3716
|
|
|
3042
|
-
interface TableComponentProps {
|
|
3043
|
-
rows: object[];
|
|
3044
|
-
rowCount?: number;
|
|
3045
|
-
rowCountIsLoading?: boolean;
|
|
3046
|
-
columns: {
|
|
3047
|
-
label: string;
|
|
3048
|
-
field: string;
|
|
3049
|
-
}[];
|
|
3050
|
-
currentPage: number;
|
|
3051
|
-
sort?: {
|
|
3052
|
-
field: string;
|
|
3053
|
-
direction: string;
|
|
3054
|
-
};
|
|
3055
|
-
className?: string;
|
|
3056
|
-
containerStyle?: React$1.CSSProperties;
|
|
3057
|
-
isLoading?: boolean;
|
|
3058
|
-
hideCSVDownloadButton?: boolean;
|
|
3059
|
-
downloadCSV?: () => void;
|
|
3060
|
-
LoadingComponent?: () => React$1.JSX.Element;
|
|
3061
|
-
DownloadCSVButtonComponent?: (props: ButtonComponentProps) => React$1.JSX.Element;
|
|
3062
|
-
rowsPerPage?: number;
|
|
3063
|
-
emptyStateLabel?: string;
|
|
3064
|
-
onPageChange?: (page: number) => void;
|
|
3065
|
-
onSortChange?: (sort: {
|
|
3066
|
-
field: string;
|
|
3067
|
-
direction: string;
|
|
3068
|
-
}) => void;
|
|
3069
|
-
headerBackgroundColor?: string;
|
|
3070
|
-
footerBackgroundColor?: string;
|
|
3071
|
-
borderRadius?: string | number;
|
|
3072
|
-
borderLeft?: string;
|
|
3073
|
-
borderRight?: string;
|
|
3074
|
-
borderTop?: string;
|
|
3075
|
-
borderBottom?: string;
|
|
3076
|
-
}
|
|
3077
|
-
|
|
3078
3717
|
interface DateRangePickerComponentProps {
|
|
3079
3718
|
preset: string;
|
|
3080
3719
|
label?: string;
|
|
@@ -3547,4 +4186,4 @@ interface ReportTableProps {
|
|
|
3547
4186
|
}
|
|
3548
4187
|
declare const ReportTable: ({ reportBuilder, TableComponent, }: ReportTableProps) => react_jsx_runtime.JSX.Element;
|
|
3549
4188
|
|
|
3550
|
-
export { ALL_TENANTS, AddColumns, AddFilters, AddLimit, AddPivot, AddSort, type AxisFormat, type ButtonComponentProps, Calculation, Chart, ChartEditor, type ChartEditorProps, type ChartProps, type CheckboxComponentProps, type ColorMapType, type Column$1 as Column, type ContainerComponentProps, Dashboard, type DashboardDateFilter, type DashboardFilter, DashboardFilterType, DashboardLegacy, type DashboardLegacyProps, type DashboardMultiFilter, type DashboardProps, type DashboardSectionComponentProps, type DashboardSingleFilter, type DashboardTenantFilter, DateOperator, type DateRange, type DateRangePickerComponentProps, type DateRangePickerOption, type DeleteButtonComponentProps, type DraggableColumnComponentProps, type EventBreadcrumb, type EventContext, type EventError, type EventMetadata, type EventTracking, type EventUser, type Filter, type FilterPopoverComponentProps, FilterType, type HeaderComponentProps, type HeaderProps, type InternalDashboardDateFilter, type InternalDashboardTenantFilter, type InternalFilter, type LabelComponentProps, type LimitPopoverComponentProps, type ModalComponentProps, NullOperator, NumberOperator, type Option, type Pivot, type PopoverComponentProps, type QuillCustomInterval, type QuillCustomRelativeInterval, type QuillCustomRepeatingInterval, type QuillCustomStaticInterval, type QuillPreviousMonthInterval, type QuillPreviousQuarterInterval, QuillProvider, type QuillProviderProps, type QuillReport, type QuillReportProps, type QuillTheme, type QuillWeekInterval, ReportBuilder$1 as ReportBuilder, type ReportBuilderColumn, type ReportBuilderLimit, type ReportBuilderProps, type ReportBuilderSort, type ReportBuilderState, ReportTable, SINGLE_TENANT, SQLEditor, type SQLEditorProps, SaveReport, SchemaListComponent, type SelectColumnComponentProps, type SelectComponentProps, type SidebarComponentProps, type SidebarHeadingComponentProps, type SortPopoverComponentProps, StaticChart, type StaticChartProps, StringOperator, Table
|
|
4189
|
+
export { ALL_TENANTS, AddColumns, AddFilters, AddLimit, AddPivot, AddSort, type AxisFormat$1 as AxisFormat, type ButtonComponentProps, Calculation, Chart, ChartDisplay, ChartEditor, type ChartEditorProps, type ChartProps, Chat, type ChatModelId, type ChatProps, type CheckboxComponentProps, type ColorMapType, type Column$1 as Column, type ColumnSelectionOption, type ContainerComponentProps, Dashboard, type DashboardDateFilter, type DashboardFilter, DashboardFilterType, DashboardLegacy, type DashboardLegacyProps, type DashboardMultiFilter, type DashboardProps, type DashboardSectionComponentProps, type DashboardSingleFilter, type DashboardTenantFilter, DateOperator, type DateRange, type DateRangePickerComponentProps, type DateRangePickerOption, type DeleteButtonComponentProps, type DraggableColumnComponentProps, type EventBreadcrumb, type EventContext, type EventError, type EventMetadata, type EventTracking, type EventUser, type Filter, type FilterPopoverComponentProps, FilterType, type HeaderComponentProps, type HeaderProps, type InternalDashboardDateFilter, type InternalDashboardTenantFilter, type InternalFilter, type LabelComponentProps, type LimitPopoverComponentProps, type ModalComponentProps, NullOperator, NumberOperator, type Option, type Pivot, type PivotAggregation, type PopoverComponentProps, type QueryBuilderDisplayGroup, type QueryBuilderDisplayRule, type QuillCustomInterval, type QuillCustomRelativeInterval, type QuillCustomRepeatingInterval, type QuillCustomStaticInterval, type QuillPreviousMonthInterval, type QuillPreviousQuarterInterval, QuillProvider, type QuillProviderProps, type QuillReport, type QuillReportProps, type QuillTheme, type QuillWeekInterval, ReportBuilder$1 as ReportBuilder, type ReportBuilderColumn, type ReportBuilderLimit, type ReportBuilderProps, type ReportBuilderSort, type ReportBuilderState, ReportDetail, type ReportDetailProps, ReportTable, SINGLE_TENANT, SQLEditor, type SQLEditorProps, SaveReport, SchemaListComponent, type SelectColumnComponentProps, type SelectComponentProps, type SetReportBuilderInput, type SetReportChartAxesInput, type SetReportTableColumnSidebarPatch, type SidebarComponentProps, type SidebarHeadingComponentProps, type SortPopoverComponentProps, StaticChart, type StaticChartProps, StringOperator, Table, type TableColumnListItem, type TableColumnsController, type TableColumnsControllerItem, type TableComponentProps, type TableProps, type TabsComponentProps, type TextComponentProps, type TextInputComponentProps, ThemeContext, type UseFormAxisConfig, areQueryBuilderFilterDraftsDirty, countFilterRules, downloadCSV, quillFormat as format, isQueryBuilderDisplayGroup, isQueryBuilderDisplayRule, normalizeRelativeDateRules, prepareQueryBuilderFiltersForSet, stripQueryBuilderTransientFields, tableColumnFormatFromUiSelection, useAllReports, useAskQuill, useDashboard, useDashboardInternal, useDashboardReport, useDashboardReports, useDashboards, useExport, useMemoizedRows, useQuill, useReport, useReportBuilder, useReports, useTenants, useVirtualTables };
|