@quillsql/react 2.16.43 → 2.16.44
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 +2644 -11515
- package/dist/index.d.cts +117 -680
- package/dist/index.d.ts +117 -680
- package/dist/index.js +2362 -11236
- package/package.json +2 -3
package/dist/index.d.cts
CHANGED
|
@@ -73,8 +73,6 @@ 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';
|
|
78
76
|
}
|
|
79
77
|
interface MultiSelectComponentProps {
|
|
80
78
|
label?: string;
|
|
@@ -518,12 +516,12 @@ type ColorMapType = {
|
|
|
518
516
|
/**
|
|
519
517
|
* A set of valid format values for the x and y axes of dashboard items.
|
|
520
518
|
*/
|
|
521
|
-
type AxisFormat
|
|
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';
|
|
522
520
|
|
|
523
521
|
interface Column$1 {
|
|
524
522
|
field: string;
|
|
525
523
|
label: string;
|
|
526
|
-
format: AxisFormat
|
|
524
|
+
format: AxisFormat;
|
|
527
525
|
inferFormat?: boolean;
|
|
528
526
|
}
|
|
529
527
|
interface ColumnInternal extends Column$1 {
|
|
@@ -548,10 +546,6 @@ interface BasePivot {
|
|
|
548
546
|
rowFieldType?: string;
|
|
549
547
|
columnField?: string;
|
|
550
548
|
columnFieldType?: string;
|
|
551
|
-
/** Source table for rowField (multi-table / disambiguation). */
|
|
552
|
-
rowFieldTable?: string;
|
|
553
|
-
/** Source table for columnField (multi-table / disambiguation). */
|
|
554
|
-
columnFieldTable?: string;
|
|
555
549
|
sort?: boolean;
|
|
556
550
|
sortDirection?: 'ASC' | 'DESC';
|
|
557
551
|
sortField?: string;
|
|
@@ -562,14 +556,6 @@ interface BasePivot {
|
|
|
562
556
|
columnValues?: string[];
|
|
563
557
|
dateBucket?: 'day' | 'week' | 'month' | 'year';
|
|
564
558
|
}
|
|
565
|
-
type PivotAggregation = {
|
|
566
|
-
aggregationType: AggregationType;
|
|
567
|
-
valueField?: string;
|
|
568
|
-
valueFieldType?: string;
|
|
569
|
-
valueField2?: string;
|
|
570
|
-
valueField2Type?: string;
|
|
571
|
-
valueFieldTable?: string;
|
|
572
|
-
};
|
|
573
559
|
interface SingleAggregationPivot extends BasePivot {
|
|
574
560
|
aggregationType: AggregationType;
|
|
575
561
|
valueField?: string;
|
|
@@ -584,7 +570,13 @@ interface MultiAggregationPivot extends BasePivot {
|
|
|
584
570
|
valueField2?: never;
|
|
585
571
|
valueField2Type?: never;
|
|
586
572
|
valueFieldType?: never;
|
|
587
|
-
aggregations:
|
|
573
|
+
aggregations: {
|
|
574
|
+
valueField?: string;
|
|
575
|
+
valueFieldType?: string;
|
|
576
|
+
valueField2?: string;
|
|
577
|
+
valueField2Type?: string;
|
|
578
|
+
aggregationType: AggregationType;
|
|
579
|
+
}[];
|
|
588
580
|
}
|
|
589
581
|
type AggregationType = 'sum' | 'average' | 'min' | 'max' | 'count' | 'avg' | 'percentage';
|
|
590
582
|
type PivotData = {
|
|
@@ -638,29 +630,6 @@ type ReportBuilderState = {
|
|
|
638
630
|
limit: ReportBuilderLimit | null;
|
|
639
631
|
};
|
|
640
632
|
|
|
641
|
-
/**
|
|
642
|
-
* Represents a table object returned from /schema2/:id
|
|
643
|
-
*/
|
|
644
|
-
type Table$1 = {
|
|
645
|
-
_id: string;
|
|
646
|
-
isSelectStar: boolean;
|
|
647
|
-
displayName: string;
|
|
648
|
-
name: string;
|
|
649
|
-
description?: string;
|
|
650
|
-
columns: ColumnInternal[];
|
|
651
|
-
viewQuery: string;
|
|
652
|
-
customFieldInfo: any;
|
|
653
|
-
broken?: boolean;
|
|
654
|
-
error?: string;
|
|
655
|
-
ownerTenantFields?: string[];
|
|
656
|
-
};
|
|
657
|
-
interface UniqueValuesByTable {
|
|
658
|
-
[table: string]: UniqueValuesByColumn;
|
|
659
|
-
}
|
|
660
|
-
interface UniqueValuesByColumn {
|
|
661
|
-
[column: string]: string[];
|
|
662
|
-
}
|
|
663
|
-
|
|
664
633
|
/**
|
|
665
634
|
* ## QuillReport
|
|
666
635
|
* Represents an individual item on a dashboard.
|
|
@@ -701,7 +670,7 @@ interface QuillReport {
|
|
|
701
670
|
/** The field to use for this report's xAxis. */
|
|
702
671
|
xAxisField: string;
|
|
703
672
|
/** The format for this report's xAxis. */
|
|
704
|
-
xAxisFormat: AxisFormat
|
|
673
|
+
xAxisFormat: AxisFormat;
|
|
705
674
|
/** The template flag for a report */
|
|
706
675
|
template?: boolean;
|
|
707
676
|
/**
|
|
@@ -713,7 +682,7 @@ interface QuillReport {
|
|
|
713
682
|
/** The label to use for this yAxis. */
|
|
714
683
|
label: string;
|
|
715
684
|
/** The format of the data in this yAxis. */
|
|
716
|
-
format: AxisFormat
|
|
685
|
+
format: AxisFormat;
|
|
717
686
|
}[];
|
|
718
687
|
/**
|
|
719
688
|
* The relative ordering of this report in relation to its siblings. Ordering
|
|
@@ -807,14 +776,6 @@ interface QuillReportInternal extends QuillReport {
|
|
|
807
776
|
* When present, backend will generate SQL from this state instead of using queryString.
|
|
808
777
|
*/
|
|
809
778
|
reportBuilderState?: ReportBuilderState;
|
|
810
|
-
/** String unique values grouped by table/column, used by filter builders. */
|
|
811
|
-
uniqueStringsByTable?: UniqueValuesByTable;
|
|
812
|
-
/** String unique values keyed by column name, used by filter builders. */
|
|
813
|
-
uniqueStringsByColumn?: UniqueValuesByColumn;
|
|
814
|
-
/** Legacy alias for unique string values keyed by column name. */
|
|
815
|
-
columnUniqueValues?: UniqueValuesByColumn;
|
|
816
|
-
/** Backward-compatible alias for unique string values keyed by column name. */
|
|
817
|
-
uniqueValues?: UniqueValuesByColumn;
|
|
818
779
|
}
|
|
819
780
|
|
|
820
781
|
/**
|
|
@@ -1355,43 +1316,6 @@ type QuillProviderProps = QuillCloudProviderProps | SelfHostedProviderProps;
|
|
|
1355
1316
|
*/
|
|
1356
1317
|
declare const QuillProvider: ({ tenants, flags, publicKey, queryEndpoint, streamEndpoint, queryHeaders, children, theme, withCredentials, isAdmin, getAuthorizationToken, eventTracking, onChangelogs, }: QuillProviderProps) => react_jsx_runtime.JSX.Element;
|
|
1357
1318
|
|
|
1358
|
-
interface TableComponentProps {
|
|
1359
|
-
rows: object[];
|
|
1360
|
-
rowCount?: number;
|
|
1361
|
-
rowCountIsLoading?: boolean;
|
|
1362
|
-
columns: {
|
|
1363
|
-
label: string;
|
|
1364
|
-
field: string;
|
|
1365
|
-
format?: string;
|
|
1366
|
-
}[];
|
|
1367
|
-
currentPage: number;
|
|
1368
|
-
sort?: {
|
|
1369
|
-
field: string;
|
|
1370
|
-
direction: string;
|
|
1371
|
-
};
|
|
1372
|
-
className?: string;
|
|
1373
|
-
containerStyle?: React$1.CSSProperties;
|
|
1374
|
-
isLoading?: boolean;
|
|
1375
|
-
hideCSVDownloadButton?: boolean;
|
|
1376
|
-
downloadCSV?: () => void;
|
|
1377
|
-
LoadingComponent?: () => React$1.JSX.Element;
|
|
1378
|
-
DownloadCSVButtonComponent?: (props: ButtonComponentProps) => React$1.JSX.Element;
|
|
1379
|
-
rowsPerPage?: number;
|
|
1380
|
-
emptyStateLabel?: string;
|
|
1381
|
-
onPageChange?: (page: number) => void;
|
|
1382
|
-
onSortChange?: (sort: {
|
|
1383
|
-
field: string;
|
|
1384
|
-
direction: string;
|
|
1385
|
-
}) => void;
|
|
1386
|
-
headerBackgroundColor?: string;
|
|
1387
|
-
footerBackgroundColor?: string;
|
|
1388
|
-
borderRadius?: string | number;
|
|
1389
|
-
borderLeft?: string;
|
|
1390
|
-
borderRight?: string;
|
|
1391
|
-
borderTop?: string;
|
|
1392
|
-
borderBottom?: string;
|
|
1393
|
-
}
|
|
1394
|
-
|
|
1395
1319
|
interface BaseChartProps {
|
|
1396
1320
|
colors?: string[];
|
|
1397
1321
|
containerStyle?: React.CSSProperties;
|
|
@@ -1600,6 +1524,7 @@ interface ChartDisplayProps extends WithConfig {
|
|
|
1600
1524
|
direction: string;
|
|
1601
1525
|
}) => void;
|
|
1602
1526
|
onClickChartElement?: (data: any) => void;
|
|
1527
|
+
onClickLegendElement?: (data: any) => void;
|
|
1603
1528
|
scrollable?: boolean;
|
|
1604
1529
|
overrideTheme?: QuillTheme;
|
|
1605
1530
|
referenceLines?: {
|
|
@@ -1609,10 +1534,8 @@ interface ChartDisplayProps extends WithConfig {
|
|
|
1609
1534
|
showLegend?: boolean;
|
|
1610
1535
|
tableRowsLoading?: boolean;
|
|
1611
1536
|
disableTableSort?: boolean;
|
|
1612
|
-
/** When `chartType` is `table`, applied to QuillTable's outer frame only (not cell lines). */
|
|
1613
|
-
tableChartWrapperBorders?: Pick<TableComponentProps, 'borderRadius' | 'borderLeft' | 'borderRight' | 'borderTop' | 'borderBottom'>;
|
|
1614
1537
|
}
|
|
1615
|
-
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,
|
|
1538
|
+
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, onClickLegendElement, overrideTheme, referenceLines, showLegend, tableRowsLoading, }: ChartDisplayProps) => react_jsx_runtime.JSX.Element;
|
|
1616
1539
|
|
|
1617
1540
|
/**
|
|
1618
1541
|
* Props for the Quill Table component.
|
|
@@ -1680,7 +1603,6 @@ interface TableProps {
|
|
|
1680
1603
|
columns?: {
|
|
1681
1604
|
label: string;
|
|
1682
1605
|
field: string;
|
|
1683
|
-
format?: string;
|
|
1684
1606
|
}[];
|
|
1685
1607
|
/**
|
|
1686
1608
|
* The placeholder filename to use when downloading this table as a csv file.
|
|
@@ -1756,12 +1678,6 @@ interface TableProps {
|
|
|
1756
1678
|
* Styles the top-level container of the Table.
|
|
1757
1679
|
*/
|
|
1758
1680
|
containerStyle?: React$1.CSSProperties;
|
|
1759
|
-
/** Passed through to QuillTable when rendering with `rows` / `columns`. */
|
|
1760
|
-
borderRadius?: string | number;
|
|
1761
|
-
borderLeft?: string;
|
|
1762
|
-
borderRight?: string;
|
|
1763
|
-
borderTop?: string;
|
|
1764
|
-
borderBottom?: string;
|
|
1765
1681
|
/** An array of dashboard filters that are indicated by the frontend dev. */
|
|
1766
1682
|
filters?: Filter[];
|
|
1767
1683
|
}
|
|
@@ -1796,7 +1712,7 @@ interface TableProps {
|
|
|
1796
1712
|
* ### Table API
|
|
1797
1713
|
* @see https://docs.quillsql.com/components/table
|
|
1798
1714
|
*/
|
|
1799
|
-
declare const Table: ({ TableComponent, ...props }: TableProps) => react_jsx_runtime.JSX.Element | null;
|
|
1715
|
+
declare const Table$1: ({ TableComponent, ...props }: TableProps) => react_jsx_runtime.JSX.Element | null;
|
|
1800
1716
|
|
|
1801
1717
|
/**
|
|
1802
1718
|
* Props for the Quill SQLEditor component.
|
|
@@ -2675,6 +2591,7 @@ declare function ChartEditor({ isOpen, reportId, isAdmin, chartBuilderTitle, cha
|
|
|
2675
2591
|
interface StaticChartBaseProps {
|
|
2676
2592
|
reportId: string;
|
|
2677
2593
|
onClickChartElement?: (data: any) => void;
|
|
2594
|
+
onClickLegendElement?: (data: any) => void;
|
|
2678
2595
|
showLegend?: boolean;
|
|
2679
2596
|
}
|
|
2680
2597
|
type StaticChartProps = (StaticChartBaseProps & {
|
|
@@ -2697,303 +2614,26 @@ interface ChatProps {
|
|
|
2697
2614
|
agentEndpoint?: string;
|
|
2698
2615
|
suggestions?: string[];
|
|
2699
2616
|
}
|
|
2700
|
-
type ChatModelId = 'gemini-2-flash' | 'gemini-2.5-flash' | 'gemini-3-flash-preview' | 'gpt-5.1' | 'opus-4.5' | 'kimi-k2.5';
|
|
2701
2617
|
declare function Chat({ selectedDashboard, ChartViewComponent, agentEndpoint, suggestions, }: ChatProps): react_jsx_runtime.JSX.Element;
|
|
2702
2618
|
|
|
2703
|
-
type QueryBuilderCombinator = 'and' | 'or';
|
|
2704
|
-
type QueryBuilderRule = {
|
|
2705
|
-
field: string;
|
|
2706
|
-
operator: string;
|
|
2707
|
-
value: unknown;
|
|
2708
|
-
};
|
|
2709
|
-
type QueryBuilderRuleGroupEntry = QueryBuilderRule | QueryBuilderRuleGroup | QueryBuilderCombinator;
|
|
2710
|
-
type QueryBuilderRuleGroup = {
|
|
2711
|
-
combinator?: QueryBuilderCombinator;
|
|
2712
|
-
rules: QueryBuilderRuleGroupEntry[];
|
|
2713
|
-
};
|
|
2714
|
-
type QueryBuilderFieldType = 'string' | 'number' | 'date' | 'boolean' | 'null';
|
|
2715
|
-
type QueryBuilderOperatorOption = {
|
|
2716
|
-
name: string;
|
|
2717
|
-
value: string;
|
|
2718
|
-
label: string;
|
|
2719
|
-
arity?: 'unary' | 'binary' | number;
|
|
2720
|
-
};
|
|
2721
|
-
|
|
2722
|
-
/**
|
|
2723
|
-
* Default `value` for a new react-querybuilder rule given a Quill operator.
|
|
2724
|
-
* List operators (`in` / `notIn`) need `[]` so the multiselect editor works
|
|
2725
|
-
* with `listsAsArrays`; everything else starts as an empty string.
|
|
2726
|
-
*/
|
|
2727
|
-
declare const defaultFilterRuleValueForOperator: (operator: unknown) => unknown;
|
|
2728
|
-
/**
|
|
2729
|
-
* One-rule react-querybuilder tree seeded from the first field in the catalog,
|
|
2730
|
-
* using that field's first operator and a matching default value. Used for the
|
|
2731
|
-
* "Add filter" empty state, where react-querybuilder's own "+ Rule" button is
|
|
2732
|
-
* not rendered yet.
|
|
2733
|
-
*/
|
|
2734
|
-
declare const buildSeededFilterQuery: (queryBuilderProps: Pick<UseFormQueryBuilderProps, "fields" | "getOperators"> | null | undefined) => QueryBuilderRuleGroup;
|
|
2735
|
-
type FilterDraftQueryBuilderProps = UseFormQueryBuilderProps & {
|
|
2736
|
-
/** Committed-or-draft tree react-querybuilder hydrates from on mount (uncontrolled mode). */
|
|
2737
|
-
defaultQuery: QueryBuilderRuleGroup;
|
|
2738
|
-
onQueryChange: (next: unknown) => void;
|
|
2739
|
-
addRuleToNewGroups: true;
|
|
2740
|
-
getDefaultValue: (rule: {
|
|
2741
|
-
operator?: unknown;
|
|
2742
|
-
}) => unknown;
|
|
2743
|
-
};
|
|
2744
|
-
type UseReportFilterDraft = {
|
|
2745
|
-
/**
|
|
2746
|
-
* Pass as `key` on `QueryBuilder` (not inside the spread — React warns on
|
|
2747
|
-
* spread `key`). Changes whenever react-querybuilder must rehydrate from
|
|
2748
|
-
* `defaultQuery`: report switch, committed filters change, field catalog
|
|
2749
|
-
* change, or `resetFilterDraft`.
|
|
2750
|
-
*/
|
|
2751
|
-
filterDraftKey: string;
|
|
2752
|
-
/** Spread onto `react-querybuilder`'s `QueryBuilder`: `<QueryBuilder key={filterDraftKey} {...filterDraftQueryBuilderProps} />`. */
|
|
2753
|
-
filterDraftQueryBuilderProps: FilterDraftQueryBuilderProps;
|
|
2754
|
-
/** Draft differs from committed filters (commit would change the report). */
|
|
2755
|
-
isFilterDraftDirty: boolean;
|
|
2756
|
-
/** Draft tree has no rules at all; show an "Add filter" affordance instead of the builder. */
|
|
2757
|
-
isFilterDraftEmpty: boolean;
|
|
2758
|
-
/** Commit the draft via `setFilters` (report/chart refresh follows). */
|
|
2759
|
-
commitFilterDraft: () => void;
|
|
2760
|
-
/** Drop the draft and rehydrate the builder from committed filters. */
|
|
2761
|
-
resetFilterDraft: () => void;
|
|
2762
|
-
/** Seed a first rule (field + operator + default value) and leave the empty state. */
|
|
2763
|
-
seedFilterDraft: () => void;
|
|
2764
|
-
};
|
|
2765
|
-
|
|
2766
2619
|
type SelectOption = {
|
|
2767
2620
|
label: string;
|
|
2768
2621
|
value: string;
|
|
2769
2622
|
};
|
|
2770
|
-
type UseFormTableRow = Record<string, unknown>;
|
|
2771
|
-
type UseFormTableColumn = {
|
|
2772
|
-
label: string;
|
|
2773
|
-
field: string;
|
|
2774
|
-
format: string;
|
|
2775
|
-
};
|
|
2776
|
-
type UseFormTable = {
|
|
2777
|
-
rows: UseFormTableRow[];
|
|
2778
|
-
columns: UseFormTableColumn[];
|
|
2779
|
-
getColumnFormat: (field: string) => string;
|
|
2780
|
-
formatCellValue: (field: string, value: unknown) => string;
|
|
2781
|
-
getFormattedCellValue: (row: UseFormTableRow, field: string) => string;
|
|
2782
|
-
};
|
|
2783
|
-
type ColumnSelectionOption = {
|
|
2784
|
-
value: string;
|
|
2785
|
-
label: string;
|
|
2786
|
-
field: string;
|
|
2787
|
-
tableName: string;
|
|
2788
|
-
type: string;
|
|
2789
|
-
};
|
|
2790
|
-
type UseFormDisplayColumn = ReportBuilderColumn & {
|
|
2791
|
-
format?: string;
|
|
2792
|
-
};
|
|
2793
|
-
type SetReportBuilderColumnInput = Partial<UseFormDisplayColumn> & {
|
|
2794
|
-
field: string;
|
|
2795
|
-
label?: string;
|
|
2796
|
-
};
|
|
2797
|
-
type TableColumnsControllerItem = {
|
|
2798
|
-
id: string;
|
|
2799
|
-
label: string;
|
|
2800
|
-
defaultLabel: string;
|
|
2801
|
-
customLabel: string;
|
|
2802
|
-
/** Persisted axis format value (e.g. `whole_number`). */
|
|
2803
|
-
format: string;
|
|
2804
|
-
/** Format preset label (same strings as chart axis / `tableFormatOptions`). */
|
|
2805
|
-
formatLabel: string;
|
|
2806
|
-
field: string;
|
|
2807
|
-
tableName: string;
|
|
2808
|
-
};
|
|
2809
|
-
type TableColumnListItem = {
|
|
2810
|
-
id: string;
|
|
2811
|
-
label: string;
|
|
2812
|
-
visible: true;
|
|
2813
|
-
/** Axis format preset label (matches `tableFormatOptions` / chart axis). */
|
|
2814
|
-
format: string;
|
|
2815
|
-
/**
|
|
2816
|
-
* When set, overrides the shared `formatOptions` for this row (e.g. pivot date bucket).
|
|
2817
|
-
*/
|
|
2818
|
-
formatOptions?: string[];
|
|
2819
|
-
};
|
|
2820
|
-
/** Selected columns + mutation methods. Pair with `columnOptions` from `useReport` (like `datasources` / `datasourceOptions`). */
|
|
2821
|
-
type TableColumnsController = {
|
|
2822
|
-
items: TableColumnsControllerItem[];
|
|
2823
|
-
/** Schema option per column id (`value` === id) — includes `field`, `tableName`, etc. */
|
|
2824
|
-
optionById: ReadonlyMap<string, ColumnSelectionOption>;
|
|
2825
|
-
byId: ReadonlyMap<string, TableColumnsControllerItem>;
|
|
2826
|
-
/** Ready-made rows for table/column-picker UIs (`id`, `label`, `format` display string). */
|
|
2827
|
-
columnList: TableColumnListItem[];
|
|
2828
|
-
/** Build the `columns` array for `setReport({ columns })` from ordered ids. */
|
|
2829
|
-
getSetReportColumns: (ids: string[]) => SetReportBuilderColumnInput[];
|
|
2830
|
-
reorder: (oldIndex: number, newIndex: number) => void;
|
|
2831
|
-
/** Reorder to match a full id list (e.g. after drag-and-drop column list UIs). */
|
|
2832
|
-
reorderFromOrder: (nextIds: string[]) => void;
|
|
2833
|
-
remove: (id: string) => void;
|
|
2834
|
-
toggle: (id: string) => void;
|
|
2835
|
-
update: (id: string, updates: Partial<{
|
|
2836
|
-
fieldId: string;
|
|
2837
|
-
label: string;
|
|
2838
|
-
format: string;
|
|
2839
|
-
}>) => void;
|
|
2840
|
-
/**
|
|
2841
|
-
* Build `setReport({ columns: { patch } })` for a table column sidebar edit;
|
|
2842
|
-
* `setReport` expands it to a full `columns` list and/or `chartAxes`. Returns
|
|
2843
|
-
* null only when `id` is empty.
|
|
2844
|
-
*/
|
|
2845
|
-
getColumnSidebarSetReportInput: (id: string, updates: Partial<{
|
|
2846
|
-
fieldId: string;
|
|
2847
|
-
label: string;
|
|
2848
|
-
format: string;
|
|
2849
|
-
}>) => SetReportBuilderInput | null;
|
|
2850
|
-
/**
|
|
2851
|
-
* When true (pivot + chartType table), the list mirrors `chart.columns`; reorder,
|
|
2852
|
-
* add, remove, and field swap are disabled — only label/format apply via chart axes.
|
|
2853
|
-
*/
|
|
2854
|
-
structureEditsLocked: boolean;
|
|
2855
|
-
};
|
|
2856
|
-
type ChartAxisFieldOption = {
|
|
2857
|
-
value: string;
|
|
2858
|
-
label: string;
|
|
2859
|
-
format: AxisFormat;
|
|
2860
|
-
};
|
|
2861
|
-
type ChartYAxisControllerItem = {
|
|
2862
|
-
id: string;
|
|
2863
|
-
field: string;
|
|
2864
|
-
label: string;
|
|
2865
|
-
format: AxisFormat;
|
|
2866
|
-
};
|
|
2867
|
-
type ChartAxesController = {
|
|
2868
|
-
xAxis: {
|
|
2869
|
-
field: string;
|
|
2870
|
-
format: AxisFormat;
|
|
2871
|
-
options: ChartAxisFieldOption[];
|
|
2872
|
-
formatOptions: SelectOption[];
|
|
2873
|
-
update: (updates: Partial<{
|
|
2874
|
-
field: string;
|
|
2875
|
-
format: AxisFormat;
|
|
2876
|
-
}>) => void;
|
|
2877
|
-
};
|
|
2878
|
-
yAxis: {
|
|
2879
|
-
items: ChartYAxisControllerItem[];
|
|
2880
|
-
options: ChartAxisFieldOption[];
|
|
2881
|
-
formatOptions: SelectOption[];
|
|
2882
|
-
add: (field?: string) => void;
|
|
2883
|
-
remove: (id: string) => void;
|
|
2884
|
-
reorder: (oldIndex: number, newIndex: number) => void;
|
|
2885
|
-
update: (id: string, updates: Partial<{
|
|
2886
|
-
field: string;
|
|
2887
|
-
label: string;
|
|
2888
|
-
format: AxisFormat;
|
|
2889
|
-
}>) => void;
|
|
2890
|
-
};
|
|
2891
|
-
};
|
|
2892
2623
|
type ColumnSelectorChangeValue = string[];
|
|
2893
|
-
/**
|
|
2894
|
-
* Table column sidebar edit under {@link SetReportBuilderInput.columns}: expands
|
|
2895
|
-
* inside `setReport` to a full `columns` array and/or `chartAxes` (pivot table chart).
|
|
2896
|
-
*/
|
|
2897
|
-
type SetReportTableColumnSidebarPatch = {
|
|
2898
|
-
patch: {
|
|
2899
|
-
id: string;
|
|
2900
|
-
label?: string;
|
|
2901
|
-
format?: string;
|
|
2902
|
-
fieldId?: string;
|
|
2903
|
-
};
|
|
2904
|
-
};
|
|
2905
2624
|
type AggregationStateItem = Partial<{
|
|
2906
2625
|
valueField: string;
|
|
2907
2626
|
valueField2?: string;
|
|
2908
2627
|
aggregationType: AggregationType;
|
|
2909
|
-
/** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
|
|
2910
|
-
valueFieldTable?: string;
|
|
2911
2628
|
}>;
|
|
2912
2629
|
type AggregationOption = {
|
|
2913
2630
|
key: string;
|
|
2914
2631
|
label: string;
|
|
2915
|
-
value
|
|
2632
|
+
value?: string;
|
|
2916
2633
|
options: SelectOption[];
|
|
2917
2634
|
};
|
|
2918
|
-
type AxisFormat = QuillReportInternal['yAxisFields'][number]['format'];
|
|
2919
|
-
type QueryBuilderFieldValueOption = {
|
|
2920
|
-
name: string;
|
|
2921
|
-
label: string;
|
|
2922
|
-
value: string;
|
|
2923
|
-
};
|
|
2924
|
-
type UseFormQueryBuilderField = {
|
|
2925
|
-
name: string;
|
|
2926
|
-
label: string;
|
|
2927
|
-
inputType: string;
|
|
2928
|
-
quillFieldType: QueryBuilderFieldType;
|
|
2929
|
-
values?: QueryBuilderFieldValueOption[];
|
|
2930
|
-
};
|
|
2931
|
-
type UseFormQueryBuilderProps = {
|
|
2932
|
-
fields: UseFormQueryBuilderField[];
|
|
2933
|
-
listsAsArrays: true;
|
|
2934
|
-
getOperators: (field: string, misc?: {
|
|
2935
|
-
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2936
|
-
}) => QueryBuilderOperatorOption[];
|
|
2937
|
-
getInputType: (field: string, operator: string, misc?: {
|
|
2938
|
-
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2939
|
-
}) => 'text' | 'number' | 'date' | 'checkbox';
|
|
2940
|
-
getValueEditorType: (field: string, operator: string, misc?: {
|
|
2941
|
-
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2942
|
-
}) => 'multiselect' | undefined;
|
|
2943
|
-
getValues: (field: string, operator: string, misc?: {
|
|
2944
|
-
fieldData?: Partial<UseFormQueryBuilderField>;
|
|
2945
|
-
}) => QueryBuilderFieldValueOption[];
|
|
2946
|
-
};
|
|
2947
|
-
/** Maps table column format dropdown values to persisted report column `format` (matches `setReport({ columns })` / `update`). */
|
|
2948
|
-
declare function tableColumnFormatFromUiSelection(raw: string): string;
|
|
2949
|
-
/** Shape expected by chart config sidebars that mirror `AxisConfig` (e.g. Quill Chat ConfigForm). */
|
|
2950
|
-
type UseFormAxisConfig = {
|
|
2951
|
-
xAxis: {
|
|
2952
|
-
field: string;
|
|
2953
|
-
label: string;
|
|
2954
|
-
format: string;
|
|
2955
|
-
show: boolean;
|
|
2956
|
-
rotation: number;
|
|
2957
|
-
fontSize: number;
|
|
2958
|
-
};
|
|
2959
|
-
yAxis: {
|
|
2960
|
-
fields: Array<{
|
|
2961
|
-
field: string;
|
|
2962
|
-
label: string;
|
|
2963
|
-
format: string;
|
|
2964
|
-
color: string;
|
|
2965
|
-
}>;
|
|
2966
|
-
label: string;
|
|
2967
|
-
show: boolean;
|
|
2968
|
-
min: string;
|
|
2969
|
-
max: string;
|
|
2970
|
-
fontSize: number;
|
|
2971
|
-
};
|
|
2972
|
-
legend: {
|
|
2973
|
-
show: boolean;
|
|
2974
|
-
};
|
|
2975
|
-
};
|
|
2976
|
-
type SetReportChartAxesInput = {
|
|
2977
|
-
xAxis?: Partial<{
|
|
2978
|
-
field: string;
|
|
2979
|
-
/** Custom X-axis title; empty string clears the override and restores the report/field default. */
|
|
2980
|
-
label: string;
|
|
2981
|
-
format: AxisFormat | string;
|
|
2982
|
-
}>;
|
|
2983
|
-
yAxis?: {
|
|
2984
|
-
fields: Array<{
|
|
2985
|
-
field: string;
|
|
2986
|
-
label?: string;
|
|
2987
|
-
format?: AxisFormat | string;
|
|
2988
|
-
}>;
|
|
2989
|
-
};
|
|
2990
|
-
};
|
|
2991
2635
|
interface SetReportBuilderInput {
|
|
2992
|
-
|
|
2993
|
-
* Column picker ids, a full column list, or `{ patch: { id, … } }` for sidebar
|
|
2994
|
-
* edits (expanded inside `setReport` into a full list and/or `chartAxes`).
|
|
2995
|
-
*/
|
|
2996
|
-
columns?: ColumnSelectorChangeValue | SetReportBuilderColumnInput[] | SetReportTableColumnSidebarPatch;
|
|
2636
|
+
columns?: ColumnSelectorChangeValue | ReportBuilderColumn[];
|
|
2997
2637
|
filters?: Filter[];
|
|
2998
2638
|
groupRowsBy?: string;
|
|
2999
2639
|
groupColumnsBy?: string;
|
|
@@ -3001,171 +2641,25 @@ interface SetReportBuilderInput {
|
|
|
3001
2641
|
index: number;
|
|
3002
2642
|
value: string;
|
|
3003
2643
|
};
|
|
3004
|
-
sort?: ReportBuilderSort[]
|
|
2644
|
+
sort?: ReportBuilderSort[];
|
|
3005
2645
|
limit?: ReportBuilderLimit | null;
|
|
3006
2646
|
chartType?: string;
|
|
3007
|
-
/** When set, updates chart legend visibility (same source as `showLegend` from `useReport`). */
|
|
3008
|
-
showLegend?: boolean;
|
|
3009
|
-
/** When set, merges into chart axis edits (use with returned `xAxis` / `yAxis` / options). */
|
|
3010
|
-
chartAxes?: SetReportChartAxesInput;
|
|
3011
|
-
/**
|
|
3012
|
-
* Schema table names for datasource / multi-table picker UIs.
|
|
3013
|
-
* Empty array clears the override (report base tables apply again).
|
|
3014
|
-
*/
|
|
3015
|
-
datasources?: string[];
|
|
3016
2647
|
}
|
|
3017
|
-
interface
|
|
2648
|
+
interface UseFormOptions {
|
|
3018
2649
|
useInMemoryEngines?: boolean;
|
|
3019
|
-
reportOverride?: QuillReportInternal | null;
|
|
3020
|
-
initialReportBuilderState?: ReportBuilderState | null;
|
|
3021
|
-
/**
|
|
3022
|
-
* When the report payload has no `dashboardName` and the client has no
|
|
3023
|
-
* `defaultDashboard`, use this for engine tasks that require a dashboard
|
|
3024
|
-
* (e.g. filter unique values).
|
|
3025
|
-
*/
|
|
3026
|
-
destinationDashboardName?: string;
|
|
3027
|
-
/**
|
|
3028
|
-
* When true (default), filter pickers, pivot row/column group-by options,
|
|
3029
|
-
* aggregation field dropdowns, and filter-builder field lists only include
|
|
3030
|
-
* columns from the selected datasource
|
|
3031
|
-
* tables (`setReport({ datasources })` / report base tables)—not other tables that
|
|
3032
|
-
* happen to be FK-joinable but were not selected. When false, behaviour matches
|
|
3033
|
-
* the prior schema-wide option lists when no table scope applies.
|
|
3034
|
-
*/
|
|
3035
|
-
restrictFieldOptionsToSelectedDatasources?: boolean;
|
|
3036
2650
|
}
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
* (e.g. missing client, dashboard name, or report state).
|
|
3041
|
-
*/
|
|
3042
|
-
type UseReportSaveChangesFn = () => Promise<unknown>;
|
|
3043
|
-
/**
|
|
3044
|
-
* @param reportIdArg When omitted, the hook can bootstrap a report via `saveReport`
|
|
3045
|
-
* (`create-report`) on the first `setReport({ datasources })`, after schema is available.
|
|
3046
|
-
* Use `destinationDashboardName` so the server can resolve a dashboard for create-report.
|
|
3047
|
-
*/
|
|
3048
|
-
declare function useReport(reportIdArg?: string, options?: UseReportOptions): {
|
|
3049
|
-
/** True while `report-builder-unique-values` runs for filter value options (not chart/table load). */
|
|
3050
|
-
filterUniqueValuesLoading: boolean;
|
|
3051
|
-
limit: ReportBuilderLimit | null;
|
|
3052
|
-
chartTypes: {
|
|
3053
|
-
label: string;
|
|
3054
|
-
value: string;
|
|
3055
|
-
}[];
|
|
3056
|
-
columnsOptions: ColumnSelectionOption[];
|
|
3057
|
-
tableColumnOptions: ColumnSelectionOption[];
|
|
3058
|
-
tableColumns: TableColumnsController;
|
|
3059
|
-
setReport: (nextState: SetReportBuilderInput) => void;
|
|
3060
|
-
saveChanges: UseReportSaveChangesFn;
|
|
3061
|
-
setFilters: (nextFilters: QueryBuilderRuleGroup) => void;
|
|
3062
|
-
setReportBuilder: (nextState: SetReportBuilderInput) => void;
|
|
3063
|
-
/** Current report-builder slice (tables, columns, filters, pivot, sort); pass to e.g. `Chat` as `reportBuilderState`. */
|
|
3064
|
-
reportBuilderState: ReportBuilderState | undefined;
|
|
3065
|
-
filterDraftKey: string;
|
|
3066
|
-
filterDraftQueryBuilderProps: FilterDraftQueryBuilderProps;
|
|
3067
|
-
isFilterDraftDirty: boolean;
|
|
3068
|
-
isFilterDraftEmpty: boolean;
|
|
3069
|
-
commitFilterDraft: () => void;
|
|
3070
|
-
resetFilterDraft: () => void;
|
|
3071
|
-
seedFilterDraft: () => void;
|
|
3072
|
-
chart: {
|
|
3073
|
-
xAxisField: string;
|
|
3074
|
-
xAxisFormat: AxisFormat$1;
|
|
3075
|
-
xAxisLabel: string;
|
|
3076
|
-
yAxisFields: {
|
|
3077
|
-
field: string;
|
|
3078
|
-
label: string;
|
|
3079
|
-
format: AxisFormat$1;
|
|
3080
|
-
}[];
|
|
3081
|
-
columns: Column$1[];
|
|
3082
|
-
pivotQuery?: string;
|
|
3083
|
-
comparisonPivotQuery?: string;
|
|
3084
|
-
itemQuery?: string[];
|
|
3085
|
-
referencedTables?: string[];
|
|
3086
|
-
referencedColumns?: {
|
|
3087
|
-
[table: string]: string[];
|
|
3088
|
-
};
|
|
3089
|
-
error?: string;
|
|
3090
|
-
adminError?: string;
|
|
3091
|
-
triggerReload?: boolean;
|
|
3092
|
-
columnInternal: ColumnInternal[];
|
|
3093
|
-
loadingRows?: boolean;
|
|
3094
|
-
flags?: {
|
|
3095
|
-
[tenantField: string]: string[] | "QUILL_ALL_TENANTS";
|
|
3096
|
-
};
|
|
3097
|
-
reportBuilderState?: ReportBuilderState;
|
|
3098
|
-
uniqueStringsByTable?: UniqueValuesByTable;
|
|
3099
|
-
uniqueStringsByColumn?: UniqueValuesByColumn;
|
|
3100
|
-
columnUniqueValues?: UniqueValuesByColumn;
|
|
3101
|
-
uniqueValues?: UniqueValuesByColumn;
|
|
2651
|
+
declare function useForm(reportId: string, options?: UseFormOptions): {
|
|
2652
|
+
columns: ColumnSelectorChangeValue;
|
|
2653
|
+
columnsOptions: {
|
|
3102
2654
|
id: string;
|
|
3103
2655
|
name: string;
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
chartType: string;
|
|
3109
|
-
showLegend?: boolean;
|
|
3110
|
-
dateField?: {
|
|
3111
|
-
table: string;
|
|
3112
|
-
field: string;
|
|
3113
|
-
};
|
|
3114
|
-
pivot: Pivot | null;
|
|
3115
|
-
template?: boolean;
|
|
3116
|
-
order: number;
|
|
3117
|
-
compareRows: {
|
|
3118
|
-
[key: string]: string;
|
|
3119
|
-
}[];
|
|
3120
|
-
filtersApplied?: InternalFilter[];
|
|
3121
|
-
pagination?: Pagination;
|
|
3122
|
-
sort?: {
|
|
3123
|
-
field: string;
|
|
3124
|
-
direction: string;
|
|
3125
|
-
};
|
|
3126
|
-
rowCount: number;
|
|
3127
|
-
queryString: string;
|
|
3128
|
-
filterMap?: {
|
|
3129
|
-
[key: string]: {
|
|
3130
|
-
table: string;
|
|
3131
|
-
field: string;
|
|
3132
|
-
};
|
|
3133
|
-
};
|
|
3134
|
-
referenceLines?: {
|
|
3135
|
-
label: string;
|
|
3136
|
-
query: [number, number] | string;
|
|
3137
|
-
}[];
|
|
3138
|
-
referenceLineYValues?: {
|
|
3139
|
-
label: string;
|
|
3140
|
-
query: [number, number];
|
|
3141
|
-
}[];
|
|
3142
|
-
includeCustomFields?: boolean;
|
|
3143
|
-
columnsWithCustomFields?: Column$1[];
|
|
3144
|
-
pivotRows?: {
|
|
3145
|
-
[key: string]: string;
|
|
2656
|
+
columns: {
|
|
2657
|
+
id: string;
|
|
2658
|
+
name: string;
|
|
2659
|
+
type: string;
|
|
3146
2660
|
}[];
|
|
3147
|
-
pivotColumns?: ColumnInternal[];
|
|
3148
|
-
pivotRowCount?: number;
|
|
3149
|
-
} | undefined;
|
|
3150
|
-
chartLoading: boolean;
|
|
3151
|
-
table: UseFormTable;
|
|
3152
|
-
tableLoading: boolean;
|
|
3153
|
-
loading: boolean;
|
|
3154
|
-
/** Report title: matching `sourceReport.name`, else `report-name` task, else empty. */
|
|
3155
|
-
name: string;
|
|
3156
|
-
/**
|
|
3157
|
-
* Resolved report id: the `reportId` argument when provided, otherwise the id
|
|
3158
|
-
* returned from `create-report` after the first datasource selection.
|
|
3159
|
-
*/
|
|
3160
|
-
reportId: string | undefined;
|
|
3161
|
-
datasources: {
|
|
3162
|
-
id: string;
|
|
3163
|
-
label: string;
|
|
3164
|
-
}[];
|
|
3165
|
-
datasourceOptions: {
|
|
3166
|
-
id: string;
|
|
3167
|
-
label: string;
|
|
3168
2661
|
}[];
|
|
2662
|
+
filters: Filter[];
|
|
3169
2663
|
groupRowsBy: string | undefined;
|
|
3170
2664
|
groupRowsByOptions: SelectOption[];
|
|
3171
2665
|
groupColumnsBy: string | undefined;
|
|
@@ -3174,162 +2668,53 @@ declare function useReport(reportIdArg?: string, options?: UseReportOptions): {
|
|
|
3174
2668
|
valueField: string;
|
|
3175
2669
|
valueField2?: string;
|
|
3176
2670
|
aggregationType: AggregationType;
|
|
3177
|
-
/** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
|
|
3178
|
-
valueFieldTable?: string;
|
|
3179
2671
|
}>[];
|
|
3180
|
-
aggregationOptions: AggregationOption[];
|
|
3181
2672
|
aggregationDescriptionOptions: {
|
|
3182
2673
|
label: string;
|
|
3183
2674
|
value: string;
|
|
3184
2675
|
}[];
|
|
3185
|
-
|
|
3186
|
-
|
|
2676
|
+
aggregationOptions: AggregationOption[];
|
|
2677
|
+
sort: {
|
|
3187
2678
|
label: string;
|
|
3188
2679
|
value: string;
|
|
3189
2680
|
}[];
|
|
3190
|
-
|
|
3191
|
-
|
|
2681
|
+
sortOptions: SelectOption[];
|
|
2682
|
+
chartTypes: {
|
|
3192
2683
|
label: string;
|
|
3193
2684
|
value: string;
|
|
3194
2685
|
}[];
|
|
3195
|
-
|
|
3196
|
-
columnIds: ColumnSelectorChangeValue;
|
|
3197
|
-
/** Selected columns + `reorder` / `toggle` / `update` / `remove`. */
|
|
3198
|
-
columns: TableColumnsController;
|
|
3199
|
-
/** Schema columns for current datasources — pool for the table column picker. */
|
|
3200
|
-
columnOptions: ColumnSelectionOption[];
|
|
3201
|
-
xAxis: {
|
|
3202
|
-
field: string;
|
|
3203
|
-
format: AxisFormat;
|
|
3204
|
-
options: ChartAxisFieldOption[];
|
|
3205
|
-
formatOptions: SelectOption[];
|
|
3206
|
-
update: (updates: Partial<{
|
|
3207
|
-
field: string;
|
|
3208
|
-
format: AxisFormat;
|
|
3209
|
-
}>) => void;
|
|
3210
|
-
};
|
|
3211
|
-
xAxisOptions: {
|
|
3212
|
-
value: string;
|
|
2686
|
+
chartTypeOptions: {
|
|
3213
2687
|
label: string;
|
|
3214
|
-
format: string;
|
|
3215
|
-
}[];
|
|
3216
|
-
yAxis: {
|
|
3217
|
-
items: ChartYAxisControllerItem[];
|
|
3218
|
-
options: ChartAxisFieldOption[];
|
|
3219
|
-
formatOptions: SelectOption[];
|
|
3220
|
-
add: (field?: string) => void;
|
|
3221
|
-
remove: (id: string) => void;
|
|
3222
|
-
reorder: (oldIndex: number, newIndex: number) => void;
|
|
3223
|
-
update: (id: string, updates: Partial<{
|
|
3224
|
-
field: string;
|
|
3225
|
-
label: string;
|
|
3226
|
-
format: AxisFormat;
|
|
3227
|
-
}>) => void;
|
|
3228
|
-
};
|
|
3229
|
-
yAxisOptions: {
|
|
3230
2688
|
value: string;
|
|
3231
|
-
label: string;
|
|
3232
|
-
format: string;
|
|
3233
|
-
}[];
|
|
3234
|
-
/** Same strings as `axisSelectFormatLabels` (X/Y share chart format presets). */
|
|
3235
|
-
xAxisFormatOptions: string[];
|
|
3236
|
-
yAxisFormatOptions: string[];
|
|
3237
|
-
/** Table column format dropdown labels (same set as chart axis formats). */
|
|
3238
|
-
tableFormatOptions: string[];
|
|
3239
|
-
showLegend: boolean;
|
|
3240
|
-
axisConfig: UseFormAxisConfig;
|
|
3241
|
-
availableFields: {
|
|
3242
|
-
id: string;
|
|
3243
|
-
label: string;
|
|
3244
|
-
type: string;
|
|
3245
2689
|
}[];
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
chartAxisOptions: {
|
|
3251
|
-
xAxis: {
|
|
3252
|
-
value: string;
|
|
3253
|
-
label: string;
|
|
3254
|
-
format: string;
|
|
3255
|
-
}[];
|
|
3256
|
-
yAxis: {
|
|
3257
|
-
value: string;
|
|
3258
|
-
label: string;
|
|
3259
|
-
format: string;
|
|
3260
|
-
}[];
|
|
3261
|
-
};
|
|
3262
|
-
hasTableDrivenColumnOrder: boolean;
|
|
3263
|
-
filters: QueryBuilderRuleGroup;
|
|
3264
|
-
filterQueryBuilderProps: UseFormQueryBuilderProps;
|
|
3265
|
-
};
|
|
3266
|
-
|
|
3267
|
-
/** Normalize react-querybuilder filter trees before stack conversion / persistence. */
|
|
3268
|
-
type QueryBuilderDisplayRule = {
|
|
3269
|
-
id?: unknown;
|
|
3270
|
-
field?: unknown;
|
|
3271
|
-
operator?: unknown;
|
|
3272
|
-
value?: unknown;
|
|
3273
|
-
};
|
|
3274
|
-
type QueryBuilderDisplayGroup = {
|
|
3275
|
-
combinator?: unknown;
|
|
3276
|
-
rules: unknown[];
|
|
3277
|
-
};
|
|
3278
|
-
declare const isQueryBuilderDisplayGroup: (value: unknown) => value is QueryBuilderDisplayGroup;
|
|
3279
|
-
declare const isQueryBuilderDisplayRule: (value: unknown) => value is QueryBuilderDisplayRule;
|
|
3280
|
-
declare const stripQueryBuilderTransientFields: (value: unknown, seen?: WeakMap<object, unknown>) => unknown;
|
|
3281
|
-
/** Merge relative-date rule values against a prior tree (typically last committed filters). */
|
|
3282
|
-
declare const normalizeRelativeDateRules: (nextQuery: unknown, previousQuery: unknown) => unknown;
|
|
3283
|
-
/** Strip + relative-date normalization used by `useReport` `setFilters` and draft-vs-committed UI. */
|
|
3284
|
-
declare function prepareQueryBuilderFiltersForSet(next: unknown, previousCommitted: unknown): unknown;
|
|
3285
|
-
/**
|
|
3286
|
-
* Whether a react-querybuilder draft differs from committed filters in a way that matters
|
|
3287
|
-
* for Apply (ignores transient `id` / `path`, etc.).
|
|
3288
|
-
*/
|
|
3289
|
-
declare function areQueryBuilderFilterDraftsDirty(draft: unknown, committed: unknown): boolean;
|
|
3290
|
-
/** Number of leaf filter rules (excludes empty groups). */
|
|
3291
|
-
declare function countFilterRules(value: unknown): number;
|
|
3292
|
-
|
|
3293
|
-
type ReportDetailProps = {
|
|
3294
|
-
/** Display name from the loaded report (e.g. `useReport` `name`). Rendered above the chart when non-empty. */
|
|
3295
|
-
reportTitle?: string;
|
|
3296
|
-
chart?: any;
|
|
3297
|
-
chartLoading: boolean;
|
|
3298
|
-
table?: {
|
|
3299
|
-
columns?: unknown[];
|
|
3300
|
-
rows?: unknown[];
|
|
3301
|
-
};
|
|
3302
|
-
tableLoading: boolean;
|
|
3303
|
-
showLegend?: boolean;
|
|
3304
|
-
/** Strip QuillTable's outer frame when chart type is `table` (cell borders unchanged). */
|
|
3305
|
-
hideTableChartOuterBorder?: boolean;
|
|
2690
|
+
chartType: string | undefined;
|
|
2691
|
+
chart: QuillReportInternal | undefined;
|
|
2692
|
+
limit: ReportBuilderLimit | null;
|
|
2693
|
+
setReport: (nextState: SetReportBuilderInput) => void;
|
|
3306
2694
|
};
|
|
3307
|
-
declare function ReportDetail({ reportTitle, chart, chartLoading, table, tableLoading, showLegend, hideTableChartOuterBorder, }: ReportDetailProps): react_jsx_runtime.JSX.Element;
|
|
3308
2695
|
|
|
3309
2696
|
declare const quillFormat: ({ value, format, }: {
|
|
3310
2697
|
value: any;
|
|
3311
2698
|
format: string;
|
|
3312
2699
|
}) => string;
|
|
3313
2700
|
|
|
3314
|
-
/** Refetch dashboard config and filters; optional report upsert/delete and filter overrides. */
|
|
3315
|
-
type UseDashboardReload = (overrideDashboardName?: string, fetchFromServer?: boolean, reportAction?: {
|
|
3316
|
-
report: QuillReport | {
|
|
3317
|
-
id: string;
|
|
3318
|
-
};
|
|
3319
|
-
action: 'upsert' | 'delete';
|
|
3320
|
-
}, overrideFilters?: {
|
|
3321
|
-
filters: InternalDashboardFilter[];
|
|
3322
|
-
editedFilterLabel?: string;
|
|
3323
|
-
refetchReports?: boolean;
|
|
3324
|
-
}, options?: {
|
|
3325
|
-
preserveExistingDateFilter?: boolean;
|
|
3326
|
-
}) => Promise<void>;
|
|
3327
2701
|
declare const useDashboardInternal: (dashboardName: string | null, customFilters?: InternalFilter[]) => {
|
|
3328
2702
|
data: DashboardConfig | null;
|
|
3329
2703
|
dashboardFilters: InternalDashboardFilter[] | null;
|
|
3330
2704
|
isLoading: boolean | undefined;
|
|
3331
2705
|
isDashboardFilterLoading: (filterName: string) => boolean | undefined;
|
|
3332
|
-
reload:
|
|
2706
|
+
reload: (overrideDashboardName?: string, fetchFromServer?: boolean, reportAction?: {
|
|
2707
|
+
report: QuillReport | {
|
|
2708
|
+
id: string;
|
|
2709
|
+
};
|
|
2710
|
+
action: "upsert" | "delete";
|
|
2711
|
+
}, overrideFilters?: {
|
|
2712
|
+
filters: InternalDashboardFilter[];
|
|
2713
|
+
editedFilterLabel?: string;
|
|
2714
|
+
refetchReports?: boolean;
|
|
2715
|
+
}, options?: {
|
|
2716
|
+
preserveExistingDateFilter?: boolean;
|
|
2717
|
+
}) => Promise<void>;
|
|
3333
2718
|
setSectionOrder: (sectionOrder: {
|
|
3334
2719
|
section: string;
|
|
3335
2720
|
_id?: string;
|
|
@@ -3385,12 +2770,6 @@ declare const useDashboards: () => {
|
|
|
3385
2770
|
}) => Promise<void>;
|
|
3386
2771
|
deleteDashboard: (name: string) => Promise<void>;
|
|
3387
2772
|
};
|
|
3388
|
-
/**
|
|
3389
|
-
* `reload` is the same reference as `useDashboardInternal(dashboardName).reload`.
|
|
3390
|
-
* Use after structural changes or report upsert/delete; use `applyFilters` for
|
|
3391
|
-
* filter-value updates; use `forceCacheRefresh` to bypass cached report payloads
|
|
3392
|
-
* when cache is on. Calling `reload` every render adds network load.
|
|
3393
|
-
*/
|
|
3394
2773
|
declare const useDashboard: (dashboardName: string, config?: {
|
|
3395
2774
|
pageSize?: number;
|
|
3396
2775
|
cacheEnabled?: boolean;
|
|
@@ -3415,7 +2794,6 @@ declare const useDashboard: (dashboardName: string, config?: {
|
|
|
3415
2794
|
} | Filter>) => void;
|
|
3416
2795
|
lastUpdated: number;
|
|
3417
2796
|
forceCacheRefresh: () => void;
|
|
3418
|
-
reload: UseDashboardReload;
|
|
3419
2797
|
};
|
|
3420
2798
|
declare const useDashboardReport: (reportId: string, config?: {
|
|
3421
2799
|
initialFilters?: Filter[];
|
|
@@ -3428,6 +2806,29 @@ declare const useDashboardReport: (reportId: string, config?: {
|
|
|
3428
2806
|
fetchNextPage: () => Promise<void>;
|
|
3429
2807
|
};
|
|
3430
2808
|
|
|
2809
|
+
/**
|
|
2810
|
+
* Represents a table object returned from /schema2/:id
|
|
2811
|
+
*/
|
|
2812
|
+
type Table = {
|
|
2813
|
+
_id: string;
|
|
2814
|
+
isSelectStar: boolean;
|
|
2815
|
+
displayName: string;
|
|
2816
|
+
name: string;
|
|
2817
|
+
description?: string;
|
|
2818
|
+
columns: ColumnInternal[];
|
|
2819
|
+
viewQuery: string;
|
|
2820
|
+
customFieldInfo: any;
|
|
2821
|
+
broken?: boolean;
|
|
2822
|
+
error?: string;
|
|
2823
|
+
ownerTenantFields?: string[];
|
|
2824
|
+
};
|
|
2825
|
+
interface UniqueValuesByTable {
|
|
2826
|
+
[table: string]: UniqueValuesByColumn;
|
|
2827
|
+
}
|
|
2828
|
+
interface UniqueValuesByColumn {
|
|
2829
|
+
[column: string]: string[];
|
|
2830
|
+
}
|
|
2831
|
+
|
|
3431
2832
|
type ForeignKeyMap = {
|
|
3432
2833
|
[table: string]: {
|
|
3433
2834
|
foreignTable: string;
|
|
@@ -3519,7 +2920,7 @@ type ReportBuilder = {
|
|
|
3519
2920
|
sortField: string;
|
|
3520
2921
|
sortDirection: 'ASC' | 'DESC';
|
|
3521
2922
|
} | undefined, fieldKey: 'rowField' | 'columnField' | 'aggregations' | 'rowLimit' | 'sort') => Promise<void>;
|
|
3522
|
-
filteredSchema: Table
|
|
2923
|
+
filteredSchema: Table[];
|
|
3523
2924
|
foreignKeyMap: ForeignKeyMap;
|
|
3524
2925
|
schemaData: any;
|
|
3525
2926
|
client: any;
|
|
@@ -3708,27 +3109,27 @@ type CustomField = {
|
|
|
3708
3109
|
};
|
|
3709
3110
|
|
|
3710
3111
|
declare const useVirtualTables: () => {
|
|
3711
|
-
data: Table
|
|
3112
|
+
data: Table[];
|
|
3712
3113
|
isLoading: boolean;
|
|
3713
3114
|
loadingTables: {
|
|
3714
3115
|
[key: string]: boolean;
|
|
3715
3116
|
};
|
|
3716
3117
|
reloadAll: (client: any, caller?: string) => Promise<{
|
|
3717
|
-
schema: Table
|
|
3118
|
+
schema: Table[];
|
|
3718
3119
|
customFields: {
|
|
3719
3120
|
[tableName: string]: CustomField[];
|
|
3720
3121
|
} | null;
|
|
3721
3122
|
isSchemaLoading: boolean;
|
|
3722
3123
|
}>;
|
|
3723
3124
|
reloadSome: (client: any, tableIds: string[], caller?: string) => Promise<{
|
|
3724
|
-
schema: Table
|
|
3125
|
+
schema: Table[];
|
|
3725
3126
|
customFields: {
|
|
3726
3127
|
[tableName: string]: CustomField[];
|
|
3727
3128
|
} | null;
|
|
3728
3129
|
isSchemaLoading: boolean;
|
|
3729
3130
|
}>;
|
|
3730
|
-
refreshSome: (client: any, tables: Table
|
|
3731
|
-
schema: Table
|
|
3131
|
+
refreshSome: (client: any, tables: Table[]) => Promise<{
|
|
3132
|
+
schema: Table[];
|
|
3732
3133
|
customFields: {
|
|
3733
3134
|
[tableName: string]: CustomField[];
|
|
3734
3135
|
} | null;
|
|
@@ -3742,8 +3143,8 @@ type ClientFeatures = {
|
|
|
3742
3143
|
};
|
|
3743
3144
|
type QuillProviderClient = {
|
|
3744
3145
|
name: string;
|
|
3745
|
-
|
|
3746
|
-
|
|
3146
|
+
id?: string;
|
|
3147
|
+
clientId?: string;
|
|
3747
3148
|
queryEndpoint: string;
|
|
3748
3149
|
streamEndpoint?: string;
|
|
3749
3150
|
queryHeaders?: HeadersInit;
|
|
@@ -3784,7 +3185,7 @@ type QuillTenant = {
|
|
|
3784
3185
|
};
|
|
3785
3186
|
|
|
3786
3187
|
interface QuillFetchOptions {
|
|
3787
|
-
client: Pick<QuillProviderClient, 'clientId' | 'queryEndpoint' | 'queryHeaders' | 'withCredentials'>;
|
|
3188
|
+
client: Pick<QuillProviderClient, 'id' | 'clientId' | 'queryEndpoint' | 'queryHeaders' | 'withCredentials'>;
|
|
3788
3189
|
task: string;
|
|
3789
3190
|
method?: string;
|
|
3790
3191
|
metadata: any;
|
|
@@ -3862,6 +3263,42 @@ interface LimitPopoverComponentProps {
|
|
|
3862
3263
|
disabled?: boolean;
|
|
3863
3264
|
}
|
|
3864
3265
|
|
|
3266
|
+
interface TableComponentProps {
|
|
3267
|
+
rows: object[];
|
|
3268
|
+
rowCount?: number;
|
|
3269
|
+
rowCountIsLoading?: boolean;
|
|
3270
|
+
columns: {
|
|
3271
|
+
label: string;
|
|
3272
|
+
field: string;
|
|
3273
|
+
}[];
|
|
3274
|
+
currentPage: number;
|
|
3275
|
+
sort?: {
|
|
3276
|
+
field: string;
|
|
3277
|
+
direction: string;
|
|
3278
|
+
};
|
|
3279
|
+
className?: string;
|
|
3280
|
+
containerStyle?: React$1.CSSProperties;
|
|
3281
|
+
isLoading?: boolean;
|
|
3282
|
+
hideCSVDownloadButton?: boolean;
|
|
3283
|
+
downloadCSV?: () => void;
|
|
3284
|
+
LoadingComponent?: () => React$1.JSX.Element;
|
|
3285
|
+
DownloadCSVButtonComponent?: (props: ButtonComponentProps) => React$1.JSX.Element;
|
|
3286
|
+
rowsPerPage?: number;
|
|
3287
|
+
emptyStateLabel?: string;
|
|
3288
|
+
onPageChange?: (page: number) => void;
|
|
3289
|
+
onSortChange?: (sort: {
|
|
3290
|
+
field: string;
|
|
3291
|
+
direction: string;
|
|
3292
|
+
}) => void;
|
|
3293
|
+
headerBackgroundColor?: string;
|
|
3294
|
+
footerBackgroundColor?: string;
|
|
3295
|
+
borderRadius?: string | number;
|
|
3296
|
+
borderLeft?: string;
|
|
3297
|
+
borderRight?: string;
|
|
3298
|
+
borderTop?: string;
|
|
3299
|
+
borderBottom?: string;
|
|
3300
|
+
}
|
|
3301
|
+
|
|
3865
3302
|
interface DateRangePickerComponentProps {
|
|
3866
3303
|
preset: string;
|
|
3867
3304
|
label?: string;
|
|
@@ -4334,4 +3771,4 @@ interface ReportTableProps {
|
|
|
4334
3771
|
}
|
|
4335
3772
|
declare const ReportTable: ({ reportBuilder, TableComponent, }: ReportTableProps) => react_jsx_runtime.JSX.Element;
|
|
4336
3773
|
|
|
4337
|
-
export { ALL_TENANTS, AddColumns, AddFilters, AddLimit, AddPivot, AddSort, type AxisFormat
|
|
3774
|
+
export { ALL_TENANTS, AddColumns, AddFilters, AddLimit, AddPivot, AddSort, type AxisFormat, type ButtonComponentProps, Calculation, type ChangelogEntry, Chart, ChartDisplay, ChartEditor, type ChartEditorProps, type ChartProps, Chat, type ChatProps, 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 QuillFetchOptions, type QuillPreviousMonthInterval, type QuillPreviousQuarterInterval, QuillProvider, type QuillProviderProps, type QuillReport, type QuillReportProps, type QuillResults, 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$1 as Table, type TableComponentProps, type TableProps, type TabsComponentProps, type TextComponentProps, type TextInputComponentProps, ThemeContext, downloadCSV, quillFormat as format, quillFetch, useAllReports, useAskQuill, useChangelogRefresh, useDashboard, useDashboardInternal, useDashboardReport, useDashboardReports, useDashboards, useExport, useForm, useMemoizedRows, useQuill, useReportBuilder, useReports, useTenants, useVirtualTables };
|