@quillsql/react 2.16.41 → 2.16.42
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 +2532 -11420
- package/dist/index.d.cts +112 -677
- package/dist/index.d.ts +112 -677
- package/dist/index.js +2250 -11141
- package/package.json +2 -3
package/dist/index.d.ts
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;
|
|
@@ -1609,10 +1533,8 @@ interface ChartDisplayProps extends WithConfig {
|
|
|
1609
1533
|
showLegend?: boolean;
|
|
1610
1534
|
tableRowsLoading?: boolean;
|
|
1611
1535
|
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
1536
|
}
|
|
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,
|
|
1537
|
+
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, }: ChartDisplayProps) => react_jsx_runtime.JSX.Element;
|
|
1616
1538
|
|
|
1617
1539
|
/**
|
|
1618
1540
|
* Props for the Quill Table component.
|
|
@@ -1680,7 +1602,6 @@ interface TableProps {
|
|
|
1680
1602
|
columns?: {
|
|
1681
1603
|
label: string;
|
|
1682
1604
|
field: string;
|
|
1683
|
-
format?: string;
|
|
1684
1605
|
}[];
|
|
1685
1606
|
/**
|
|
1686
1607
|
* The placeholder filename to use when downloading this table as a csv file.
|
|
@@ -1756,12 +1677,6 @@ interface TableProps {
|
|
|
1756
1677
|
* Styles the top-level container of the Table.
|
|
1757
1678
|
*/
|
|
1758
1679
|
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
1680
|
/** An array of dashboard filters that are indicated by the frontend dev. */
|
|
1766
1681
|
filters?: Filter[];
|
|
1767
1682
|
}
|
|
@@ -1796,7 +1711,7 @@ interface TableProps {
|
|
|
1796
1711
|
* ### Table API
|
|
1797
1712
|
* @see https://docs.quillsql.com/components/table
|
|
1798
1713
|
*/
|
|
1799
|
-
declare const Table: ({ TableComponent, ...props }: TableProps) => react_jsx_runtime.JSX.Element | null;
|
|
1714
|
+
declare const Table$1: ({ TableComponent, ...props }: TableProps) => react_jsx_runtime.JSX.Element | null;
|
|
1800
1715
|
|
|
1801
1716
|
/**
|
|
1802
1717
|
* Props for the Quill SQLEditor component.
|
|
@@ -2697,303 +2612,26 @@ interface ChatProps {
|
|
|
2697
2612
|
agentEndpoint?: string;
|
|
2698
2613
|
suggestions?: string[];
|
|
2699
2614
|
}
|
|
2700
|
-
type ChatModelId = 'gemini-2-flash' | 'gemini-2.5-flash' | 'gemini-3-flash-preview' | 'gpt-5.1' | 'opus-4.5' | 'kimi-k2.5';
|
|
2701
2615
|
declare function Chat({ selectedDashboard, ChartViewComponent, agentEndpoint, suggestions, }: ChatProps): react_jsx_runtime.JSX.Element;
|
|
2702
2616
|
|
|
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
2617
|
type SelectOption = {
|
|
2767
2618
|
label: string;
|
|
2768
2619
|
value: string;
|
|
2769
2620
|
};
|
|
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
2621
|
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
2622
|
type AggregationStateItem = Partial<{
|
|
2906
2623
|
valueField: string;
|
|
2907
2624
|
valueField2?: string;
|
|
2908
2625
|
aggregationType: AggregationType;
|
|
2909
|
-
/** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
|
|
2910
|
-
valueFieldTable?: string;
|
|
2911
2626
|
}>;
|
|
2912
2627
|
type AggregationOption = {
|
|
2913
2628
|
key: string;
|
|
2914
2629
|
label: string;
|
|
2915
|
-
value
|
|
2630
|
+
value?: string;
|
|
2916
2631
|
options: SelectOption[];
|
|
2917
2632
|
};
|
|
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
2633
|
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;
|
|
2634
|
+
columns?: ColumnSelectorChangeValue | ReportBuilderColumn[];
|
|
2997
2635
|
filters?: Filter[];
|
|
2998
2636
|
groupRowsBy?: string;
|
|
2999
2637
|
groupColumnsBy?: string;
|
|
@@ -3001,171 +2639,25 @@ interface SetReportBuilderInput {
|
|
|
3001
2639
|
index: number;
|
|
3002
2640
|
value: string;
|
|
3003
2641
|
};
|
|
3004
|
-
sort?: ReportBuilderSort[]
|
|
2642
|
+
sort?: ReportBuilderSort[];
|
|
3005
2643
|
limit?: ReportBuilderLimit | null;
|
|
3006
2644
|
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
2645
|
}
|
|
3017
|
-
interface
|
|
2646
|
+
interface UseFormOptions {
|
|
3018
2647
|
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
2648
|
}
|
|
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;
|
|
2649
|
+
declare function useForm(reportId: string, options?: UseFormOptions): {
|
|
2650
|
+
columns: ColumnSelectorChangeValue;
|
|
2651
|
+
columnsOptions: {
|
|
3102
2652
|
id: string;
|
|
3103
2653
|
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;
|
|
2654
|
+
columns: {
|
|
2655
|
+
id: string;
|
|
2656
|
+
name: string;
|
|
2657
|
+
type: string;
|
|
3146
2658
|
}[];
|
|
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
2659
|
}[];
|
|
2660
|
+
filters: Filter[];
|
|
3169
2661
|
groupRowsBy: string | undefined;
|
|
3170
2662
|
groupRowsByOptions: SelectOption[];
|
|
3171
2663
|
groupColumnsBy: string | undefined;
|
|
@@ -3174,162 +2666,53 @@ declare function useReport(reportIdArg?: string, options?: UseReportOptions): {
|
|
|
3174
2666
|
valueField: string;
|
|
3175
2667
|
valueField2?: string;
|
|
3176
2668
|
aggregationType: AggregationType;
|
|
3177
|
-
/** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
|
|
3178
|
-
valueFieldTable?: string;
|
|
3179
2669
|
}>[];
|
|
3180
|
-
aggregationOptions: AggregationOption[];
|
|
3181
2670
|
aggregationDescriptionOptions: {
|
|
3182
2671
|
label: string;
|
|
3183
2672
|
value: string;
|
|
3184
2673
|
}[];
|
|
3185
|
-
|
|
3186
|
-
|
|
2674
|
+
aggregationOptions: AggregationOption[];
|
|
2675
|
+
sort: {
|
|
3187
2676
|
label: string;
|
|
3188
2677
|
value: string;
|
|
3189
2678
|
}[];
|
|
3190
|
-
|
|
3191
|
-
|
|
2679
|
+
sortOptions: SelectOption[];
|
|
2680
|
+
chartTypes: {
|
|
3192
2681
|
label: string;
|
|
3193
2682
|
value: string;
|
|
3194
2683
|
}[];
|
|
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;
|
|
2684
|
+
chartTypeOptions: {
|
|
3213
2685
|
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
2686
|
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
2687
|
}[];
|
|
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;
|
|
2688
|
+
chartType: string | undefined;
|
|
2689
|
+
chart: QuillReportInternal | undefined;
|
|
2690
|
+
limit: ReportBuilderLimit | null;
|
|
2691
|
+
setReport: (nextState: SetReportBuilderInput) => void;
|
|
3306
2692
|
};
|
|
3307
|
-
declare function ReportDetail({ reportTitle, chart, chartLoading, table, tableLoading, showLegend, hideTableChartOuterBorder, }: ReportDetailProps): react_jsx_runtime.JSX.Element;
|
|
3308
2693
|
|
|
3309
2694
|
declare const quillFormat: ({ value, format, }: {
|
|
3310
2695
|
value: any;
|
|
3311
2696
|
format: string;
|
|
3312
2697
|
}) => string;
|
|
3313
2698
|
|
|
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
2699
|
declare const useDashboardInternal: (dashboardName: string | null, customFilters?: InternalFilter[]) => {
|
|
3328
2700
|
data: DashboardConfig | null;
|
|
3329
2701
|
dashboardFilters: InternalDashboardFilter[] | null;
|
|
3330
2702
|
isLoading: boolean | undefined;
|
|
3331
2703
|
isDashboardFilterLoading: (filterName: string) => boolean | undefined;
|
|
3332
|
-
reload:
|
|
2704
|
+
reload: (overrideDashboardName?: string, fetchFromServer?: boolean, reportAction?: {
|
|
2705
|
+
report: QuillReport | {
|
|
2706
|
+
id: string;
|
|
2707
|
+
};
|
|
2708
|
+
action: "upsert" | "delete";
|
|
2709
|
+
}, overrideFilters?: {
|
|
2710
|
+
filters: InternalDashboardFilter[];
|
|
2711
|
+
editedFilterLabel?: string;
|
|
2712
|
+
refetchReports?: boolean;
|
|
2713
|
+
}, options?: {
|
|
2714
|
+
preserveExistingDateFilter?: boolean;
|
|
2715
|
+
}) => Promise<void>;
|
|
3333
2716
|
setSectionOrder: (sectionOrder: {
|
|
3334
2717
|
section: string;
|
|
3335
2718
|
_id?: string;
|
|
@@ -3385,12 +2768,6 @@ declare const useDashboards: () => {
|
|
|
3385
2768
|
}) => Promise<void>;
|
|
3386
2769
|
deleteDashboard: (name: string) => Promise<void>;
|
|
3387
2770
|
};
|
|
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
2771
|
declare const useDashboard: (dashboardName: string, config?: {
|
|
3395
2772
|
pageSize?: number;
|
|
3396
2773
|
cacheEnabled?: boolean;
|
|
@@ -3415,7 +2792,6 @@ declare const useDashboard: (dashboardName: string, config?: {
|
|
|
3415
2792
|
} | Filter>) => void;
|
|
3416
2793
|
lastUpdated: number;
|
|
3417
2794
|
forceCacheRefresh: () => void;
|
|
3418
|
-
reload: UseDashboardReload;
|
|
3419
2795
|
};
|
|
3420
2796
|
declare const useDashboardReport: (reportId: string, config?: {
|
|
3421
2797
|
initialFilters?: Filter[];
|
|
@@ -3428,6 +2804,29 @@ declare const useDashboardReport: (reportId: string, config?: {
|
|
|
3428
2804
|
fetchNextPage: () => Promise<void>;
|
|
3429
2805
|
};
|
|
3430
2806
|
|
|
2807
|
+
/**
|
|
2808
|
+
* Represents a table object returned from /schema2/:id
|
|
2809
|
+
*/
|
|
2810
|
+
type Table = {
|
|
2811
|
+
_id: string;
|
|
2812
|
+
isSelectStar: boolean;
|
|
2813
|
+
displayName: string;
|
|
2814
|
+
name: string;
|
|
2815
|
+
description?: string;
|
|
2816
|
+
columns: ColumnInternal[];
|
|
2817
|
+
viewQuery: string;
|
|
2818
|
+
customFieldInfo: any;
|
|
2819
|
+
broken?: boolean;
|
|
2820
|
+
error?: string;
|
|
2821
|
+
ownerTenantFields?: string[];
|
|
2822
|
+
};
|
|
2823
|
+
interface UniqueValuesByTable {
|
|
2824
|
+
[table: string]: UniqueValuesByColumn;
|
|
2825
|
+
}
|
|
2826
|
+
interface UniqueValuesByColumn {
|
|
2827
|
+
[column: string]: string[];
|
|
2828
|
+
}
|
|
2829
|
+
|
|
3431
2830
|
type ForeignKeyMap = {
|
|
3432
2831
|
[table: string]: {
|
|
3433
2832
|
foreignTable: string;
|
|
@@ -3519,7 +2918,7 @@ type ReportBuilder = {
|
|
|
3519
2918
|
sortField: string;
|
|
3520
2919
|
sortDirection: 'ASC' | 'DESC';
|
|
3521
2920
|
} | undefined, fieldKey: 'rowField' | 'columnField' | 'aggregations' | 'rowLimit' | 'sort') => Promise<void>;
|
|
3522
|
-
filteredSchema: Table
|
|
2921
|
+
filteredSchema: Table[];
|
|
3523
2922
|
foreignKeyMap: ForeignKeyMap;
|
|
3524
2923
|
schemaData: any;
|
|
3525
2924
|
client: any;
|
|
@@ -3708,27 +3107,27 @@ type CustomField = {
|
|
|
3708
3107
|
};
|
|
3709
3108
|
|
|
3710
3109
|
declare const useVirtualTables: () => {
|
|
3711
|
-
data: Table
|
|
3110
|
+
data: Table[];
|
|
3712
3111
|
isLoading: boolean;
|
|
3713
3112
|
loadingTables: {
|
|
3714
3113
|
[key: string]: boolean;
|
|
3715
3114
|
};
|
|
3716
3115
|
reloadAll: (client: any, caller?: string) => Promise<{
|
|
3717
|
-
schema: Table
|
|
3116
|
+
schema: Table[];
|
|
3718
3117
|
customFields: {
|
|
3719
3118
|
[tableName: string]: CustomField[];
|
|
3720
3119
|
} | null;
|
|
3721
3120
|
isSchemaLoading: boolean;
|
|
3722
3121
|
}>;
|
|
3723
3122
|
reloadSome: (client: any, tableIds: string[], caller?: string) => Promise<{
|
|
3724
|
-
schema: Table
|
|
3123
|
+
schema: Table[];
|
|
3725
3124
|
customFields: {
|
|
3726
3125
|
[tableName: string]: CustomField[];
|
|
3727
3126
|
} | null;
|
|
3728
3127
|
isSchemaLoading: boolean;
|
|
3729
3128
|
}>;
|
|
3730
|
-
refreshSome: (client: any, tables: Table
|
|
3731
|
-
schema: Table
|
|
3129
|
+
refreshSome: (client: any, tables: Table[]) => Promise<{
|
|
3130
|
+
schema: Table[];
|
|
3732
3131
|
customFields: {
|
|
3733
3132
|
[tableName: string]: CustomField[];
|
|
3734
3133
|
} | null;
|
|
@@ -3862,6 +3261,42 @@ interface LimitPopoverComponentProps {
|
|
|
3862
3261
|
disabled?: boolean;
|
|
3863
3262
|
}
|
|
3864
3263
|
|
|
3264
|
+
interface TableComponentProps {
|
|
3265
|
+
rows: object[];
|
|
3266
|
+
rowCount?: number;
|
|
3267
|
+
rowCountIsLoading?: boolean;
|
|
3268
|
+
columns: {
|
|
3269
|
+
label: string;
|
|
3270
|
+
field: string;
|
|
3271
|
+
}[];
|
|
3272
|
+
currentPage: number;
|
|
3273
|
+
sort?: {
|
|
3274
|
+
field: string;
|
|
3275
|
+
direction: string;
|
|
3276
|
+
};
|
|
3277
|
+
className?: string;
|
|
3278
|
+
containerStyle?: React$1.CSSProperties;
|
|
3279
|
+
isLoading?: boolean;
|
|
3280
|
+
hideCSVDownloadButton?: boolean;
|
|
3281
|
+
downloadCSV?: () => void;
|
|
3282
|
+
LoadingComponent?: () => React$1.JSX.Element;
|
|
3283
|
+
DownloadCSVButtonComponent?: (props: ButtonComponentProps) => React$1.JSX.Element;
|
|
3284
|
+
rowsPerPage?: number;
|
|
3285
|
+
emptyStateLabel?: string;
|
|
3286
|
+
onPageChange?: (page: number) => void;
|
|
3287
|
+
onSortChange?: (sort: {
|
|
3288
|
+
field: string;
|
|
3289
|
+
direction: string;
|
|
3290
|
+
}) => void;
|
|
3291
|
+
headerBackgroundColor?: string;
|
|
3292
|
+
footerBackgroundColor?: string;
|
|
3293
|
+
borderRadius?: string | number;
|
|
3294
|
+
borderLeft?: string;
|
|
3295
|
+
borderRight?: string;
|
|
3296
|
+
borderTop?: string;
|
|
3297
|
+
borderBottom?: string;
|
|
3298
|
+
}
|
|
3299
|
+
|
|
3865
3300
|
interface DateRangePickerComponentProps {
|
|
3866
3301
|
preset: string;
|
|
3867
3302
|
label?: string;
|
|
@@ -4334,4 +3769,4 @@ interface ReportTableProps {
|
|
|
4334
3769
|
}
|
|
4335
3770
|
declare const ReportTable: ({ reportBuilder, TableComponent, }: ReportTableProps) => react_jsx_runtime.JSX.Element;
|
|
4336
3771
|
|
|
4337
|
-
export { ALL_TENANTS, AddColumns, AddFilters, AddLimit, AddPivot, AddSort, type AxisFormat
|
|
3772
|
+
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 };
|