@tellaro/tql 3.2.0 → 4.0.0
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.js +86 -79
- package/dist/src/chart/index.d.ts +1 -1
- package/dist/src/chart/index.js +39 -26
- package/dist/src/chart/mappers.d.ts +861 -69
- package/dist/src/chart/mappers.js +502 -201
- package/dist/src/completionProvider.d.ts +11 -0
- package/dist/src/completionProvider.js +99 -59
- package/dist/src/index.d.ts +3 -3
- package/dist/src/parser.d.ts +36 -0
- package/dist/src/parser.js +263 -151
- package/dist/src/tokenizer.d.ts +20 -0
- package/dist/src/tokenizer.js +123 -104
- package/dist/src/types.d.ts +114 -3
- package/dist/tql.css +1 -1
- package/dist/vue/TqlChart.vue.js +1 -1
- package/dist/vue/TqlChart.vue2.js +148 -130
- package/package.json +1 -1
|
@@ -573,22 +573,669 @@ export declare function pieChartOptions(vizParams?: Record<string, unknown>, don
|
|
|
573
573
|
};
|
|
574
574
|
};
|
|
575
575
|
};
|
|
576
|
-
/**
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
576
|
+
/** A grouped result's `group_by` entry, whichever spelling it arrived in. */
|
|
577
|
+
interface GroupLevel {
|
|
578
|
+
field: string | null;
|
|
579
|
+
key: string;
|
|
580
|
+
bucketType: string;
|
|
581
|
+
interval?: string;
|
|
582
|
+
}
|
|
583
|
+
/** The levels of a grouped result: metadata objects, or legacy field-name strings. */
|
|
584
|
+
export declare function groupLevels(stats: Record<string, unknown>): GroupLevel[];
|
|
585
|
+
type Row = Record<string, unknown>;
|
|
586
|
+
/**
|
|
587
|
+
* The numeric value a row charts: the first aggregate (the single-aggregation key, or the
|
|
588
|
+
* first entry of `aggregations`), else `value`/`count`, else `doc_count`. `null` when the
|
|
589
|
+
* aggregate is null (an empty bucket's avg/min/max), so a line shows a gap rather than a 0.
|
|
590
|
+
*/
|
|
591
|
+
export declare function rowMetricValue(row: Row): number | null;
|
|
592
|
+
/** The level key of the time axis: a date_histogram level, or a level whose rows carry epochs. */
|
|
593
|
+
export declare function timeLevelKey(stats: Record<string, unknown>): string | null;
|
|
594
|
+
/** A time-axis point: `x` is epoch milliseconds. */
|
|
595
|
+
export interface TimePoint {
|
|
596
|
+
x: number;
|
|
597
|
+
y: number | null;
|
|
598
|
+
}
|
|
599
|
+
/** Chart.js time-axis data: no labels, one dataset per series of `{x, y}` points. */
|
|
600
|
+
export interface TimeSeriesData {
|
|
580
601
|
labels: string[];
|
|
581
|
-
datasets: unknown
|
|
602
|
+
datasets: Array<Record<string, unknown> & {
|
|
603
|
+
label: string;
|
|
604
|
+
data: TimePoint[];
|
|
605
|
+
}>;
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Time-axis data for line/area/bar charts over a date_histogram level.
|
|
609
|
+
*
|
|
610
|
+
* Each series is one value of the first non-time level (the terms split of
|
|
611
|
+
* `by date_histogram(@timestamp, 1h), host.name`), or a single series. Points are sorted by
|
|
612
|
+
* time; a series missing at a time present elsewhere gets `y: null` (a gap, stacked as 0).
|
|
613
|
+
* The Other row of `with other` is its own grey series.
|
|
614
|
+
*/
|
|
615
|
+
export declare function timeSeriesData(result: TqlStatsResult, chartType: string): TimeSeriesData | null;
|
|
616
|
+
/** Chart.js `time.unit` for a date_histogram interval (`1h` → `hour`, `week` → `week`). */
|
|
617
|
+
export declare function timeUnitForInterval(interval: string | undefined): string | undefined;
|
|
618
|
+
/**
|
|
619
|
+
* Options for a time x-axis (`scales.x.type = "time"`).
|
|
620
|
+
*
|
|
621
|
+
* Chart.js's time scale needs a DATE ADAPTER registered by the consumer -- e.g.
|
|
622
|
+
* `import "chartjs-adapter-luxon"` once at app start. This module never imports one, so it
|
|
623
|
+
* stays free of Chart.js and adapter dependencies; without an adapter Chart.js throws when the
|
|
624
|
+
* chart is created.
|
|
625
|
+
*/
|
|
626
|
+
export declare function timeSeriesOptions(result: TqlStatsResult, chartType: string): {
|
|
627
|
+
interaction: {
|
|
628
|
+
mode: "index";
|
|
629
|
+
intersect: boolean;
|
|
630
|
+
};
|
|
631
|
+
plugins: {
|
|
632
|
+
legend: {
|
|
633
|
+
display: boolean;
|
|
634
|
+
labels: {
|
|
635
|
+
color: string;
|
|
636
|
+
font: {
|
|
637
|
+
size: number;
|
|
638
|
+
};
|
|
639
|
+
padding: number;
|
|
640
|
+
usePointStyle: boolean;
|
|
641
|
+
pointStyleWidth: number;
|
|
642
|
+
filter: ((item: {
|
|
643
|
+
text?: string;
|
|
644
|
+
}) => boolean) | undefined;
|
|
645
|
+
};
|
|
646
|
+
};
|
|
647
|
+
tooltip: {
|
|
648
|
+
displayColors: boolean;
|
|
649
|
+
callbacks: undefined;
|
|
650
|
+
enabled: boolean;
|
|
651
|
+
mode: "index" | "nearest";
|
|
652
|
+
intersect: boolean;
|
|
653
|
+
backgroundColor: string;
|
|
654
|
+
titleColor: string;
|
|
655
|
+
bodyColor: string;
|
|
656
|
+
borderColor: string;
|
|
657
|
+
borderWidth: number;
|
|
658
|
+
cornerRadius: number;
|
|
659
|
+
padding: number;
|
|
660
|
+
titleFont: {
|
|
661
|
+
size: number;
|
|
662
|
+
weight: "600";
|
|
663
|
+
};
|
|
664
|
+
bodyFont: {
|
|
665
|
+
size: number;
|
|
666
|
+
};
|
|
667
|
+
boxPadding: number;
|
|
668
|
+
};
|
|
669
|
+
title: {
|
|
670
|
+
display: boolean;
|
|
671
|
+
text: string;
|
|
672
|
+
color: string;
|
|
673
|
+
font: {
|
|
674
|
+
size: number;
|
|
675
|
+
weight: "600";
|
|
676
|
+
};
|
|
677
|
+
padding: {
|
|
678
|
+
top: number;
|
|
679
|
+
bottom: number;
|
|
680
|
+
};
|
|
681
|
+
};
|
|
682
|
+
datalabels: {
|
|
683
|
+
display: boolean;
|
|
684
|
+
color?: undefined;
|
|
685
|
+
font?: undefined;
|
|
686
|
+
anchor?: undefined;
|
|
687
|
+
align?: undefined;
|
|
688
|
+
offset?: undefined;
|
|
689
|
+
formatter?: undefined;
|
|
690
|
+
} | {
|
|
691
|
+
display: string | boolean;
|
|
692
|
+
color: string;
|
|
693
|
+
font: {
|
|
694
|
+
size: number;
|
|
695
|
+
weight: "500";
|
|
696
|
+
};
|
|
697
|
+
anchor: "end";
|
|
698
|
+
align: "top";
|
|
699
|
+
offset: number;
|
|
700
|
+
formatter: ((value: number) => string) | undefined;
|
|
701
|
+
};
|
|
702
|
+
};
|
|
703
|
+
scales: {
|
|
704
|
+
x: {
|
|
705
|
+
type: "time";
|
|
706
|
+
stacked: boolean;
|
|
707
|
+
offset: boolean;
|
|
708
|
+
time: {
|
|
709
|
+
unit: string;
|
|
710
|
+
} | {
|
|
711
|
+
unit?: undefined;
|
|
712
|
+
};
|
|
713
|
+
ticks: {
|
|
714
|
+
maxRotation: number;
|
|
715
|
+
autoSkip: boolean;
|
|
716
|
+
maxTicksLimit: number;
|
|
717
|
+
callback: undefined;
|
|
718
|
+
color: string;
|
|
719
|
+
font: {
|
|
720
|
+
size: number;
|
|
721
|
+
};
|
|
722
|
+
padding: number;
|
|
723
|
+
};
|
|
724
|
+
title: {
|
|
725
|
+
display: boolean;
|
|
726
|
+
text: string;
|
|
727
|
+
color: string;
|
|
728
|
+
font: {
|
|
729
|
+
size: number;
|
|
730
|
+
};
|
|
731
|
+
padding: {
|
|
732
|
+
top: number;
|
|
733
|
+
};
|
|
734
|
+
};
|
|
735
|
+
grid: {
|
|
736
|
+
color: string;
|
|
737
|
+
drawTicks: boolean;
|
|
738
|
+
};
|
|
739
|
+
border: {
|
|
740
|
+
color: string;
|
|
741
|
+
};
|
|
742
|
+
};
|
|
743
|
+
y: {
|
|
744
|
+
stacked: boolean;
|
|
745
|
+
beginAtZero: boolean;
|
|
746
|
+
min: number | undefined;
|
|
747
|
+
max: number | undefined;
|
|
748
|
+
title: {
|
|
749
|
+
display: boolean;
|
|
750
|
+
text: string;
|
|
751
|
+
color: string;
|
|
752
|
+
font: {
|
|
753
|
+
size: number;
|
|
754
|
+
};
|
|
755
|
+
padding: {
|
|
756
|
+
bottom: number;
|
|
757
|
+
};
|
|
758
|
+
};
|
|
759
|
+
ticks: {
|
|
760
|
+
stepSize?: number | undefined;
|
|
761
|
+
color: string;
|
|
762
|
+
font: {
|
|
763
|
+
size: number;
|
|
764
|
+
};
|
|
765
|
+
padding: number;
|
|
766
|
+
callback: ((value: number | string) => string) | undefined;
|
|
767
|
+
};
|
|
768
|
+
grid: {
|
|
769
|
+
color: string;
|
|
770
|
+
};
|
|
771
|
+
border: {
|
|
772
|
+
display: boolean;
|
|
773
|
+
};
|
|
774
|
+
};
|
|
775
|
+
};
|
|
776
|
+
responsive: boolean;
|
|
777
|
+
maintainAspectRatio: boolean;
|
|
778
|
+
indexAxis: "y" | "x";
|
|
779
|
+
animation: {
|
|
780
|
+
duration: number;
|
|
781
|
+
easing: "easeOutQuart";
|
|
782
|
+
};
|
|
783
|
+
layout: {
|
|
784
|
+
padding: {
|
|
785
|
+
top: number;
|
|
786
|
+
right: number;
|
|
787
|
+
bottom: number;
|
|
788
|
+
left: number;
|
|
789
|
+
};
|
|
790
|
+
};
|
|
582
791
|
};
|
|
583
|
-
/**
|
|
584
|
-
export
|
|
792
|
+
/** One cell of a `chartjs-chart-matrix` heatmap. */
|
|
793
|
+
export interface HeatmapCell {
|
|
794
|
+
x: string;
|
|
795
|
+
y: string;
|
|
796
|
+
v: number | null;
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* Heatmap data for `chartjs-chart-matrix`: x = the first group level, y = the second (or the
|
|
800
|
+
* metric's name when there is one level), v = the metric. Cell colour scales with `v / max`.
|
|
801
|
+
*
|
|
802
|
+
* Data only: the consumer registers `MatrixController` and `MatrixElement`.
|
|
803
|
+
*/
|
|
804
|
+
export declare function heatmapData(result: TqlStatsResult): {
|
|
805
|
+
labels: string[];
|
|
806
|
+
xLabels: string[];
|
|
807
|
+
yLabels: string[];
|
|
808
|
+
datasets: {
|
|
809
|
+
label: string;
|
|
810
|
+
data: HeatmapCell[];
|
|
811
|
+
backgroundColor: (ctx: {
|
|
812
|
+
raw?: HeatmapCell;
|
|
813
|
+
}) => string;
|
|
814
|
+
borderColor: string;
|
|
815
|
+
borderWidth: number;
|
|
816
|
+
width: (ctx: {
|
|
817
|
+
chart: {
|
|
818
|
+
chartArea?: {
|
|
819
|
+
width: number;
|
|
820
|
+
};
|
|
821
|
+
};
|
|
822
|
+
}) => number;
|
|
823
|
+
height: (ctx: {
|
|
824
|
+
chart: {
|
|
825
|
+
chartArea?: {
|
|
826
|
+
height: number;
|
|
827
|
+
};
|
|
828
|
+
};
|
|
829
|
+
}) => number;
|
|
830
|
+
}[];
|
|
831
|
+
};
|
|
832
|
+
/** Options for the heatmap: two category axes in data order. */
|
|
833
|
+
export declare function heatmapOptions(result: TqlStatsResult): {
|
|
834
|
+
plugins: {
|
|
835
|
+
legend: {
|
|
836
|
+
display: boolean;
|
|
837
|
+
};
|
|
838
|
+
tooltip: {
|
|
839
|
+
callbacks: {
|
|
840
|
+
title: () => string;
|
|
841
|
+
label: (ctx: {
|
|
842
|
+
raw: HeatmapCell;
|
|
843
|
+
}) => string;
|
|
844
|
+
};
|
|
845
|
+
enabled: boolean;
|
|
846
|
+
mode: "index" | "nearest";
|
|
847
|
+
intersect: boolean;
|
|
848
|
+
backgroundColor: string;
|
|
849
|
+
titleColor: string;
|
|
850
|
+
bodyColor: string;
|
|
851
|
+
borderColor: string;
|
|
852
|
+
borderWidth: number;
|
|
853
|
+
cornerRadius: number;
|
|
854
|
+
padding: number;
|
|
855
|
+
titleFont: {
|
|
856
|
+
size: number;
|
|
857
|
+
weight: "600";
|
|
858
|
+
};
|
|
859
|
+
bodyFont: {
|
|
860
|
+
size: number;
|
|
861
|
+
};
|
|
862
|
+
displayColors: boolean;
|
|
863
|
+
boxPadding: number;
|
|
864
|
+
};
|
|
865
|
+
title: {
|
|
866
|
+
display: boolean;
|
|
867
|
+
text: string;
|
|
868
|
+
color: string;
|
|
869
|
+
font: {
|
|
870
|
+
size: number;
|
|
871
|
+
weight: "600";
|
|
872
|
+
};
|
|
873
|
+
padding: {
|
|
874
|
+
top: number;
|
|
875
|
+
bottom: number;
|
|
876
|
+
};
|
|
877
|
+
};
|
|
878
|
+
datalabels: {
|
|
879
|
+
display: boolean;
|
|
880
|
+
color?: undefined;
|
|
881
|
+
font?: undefined;
|
|
882
|
+
anchor?: undefined;
|
|
883
|
+
align?: undefined;
|
|
884
|
+
offset?: undefined;
|
|
885
|
+
formatter?: undefined;
|
|
886
|
+
} | {
|
|
887
|
+
display: string | boolean;
|
|
888
|
+
color: string;
|
|
889
|
+
font: {
|
|
890
|
+
size: number;
|
|
891
|
+
weight: "500";
|
|
892
|
+
};
|
|
893
|
+
anchor: "end";
|
|
894
|
+
align: "top";
|
|
895
|
+
offset: number;
|
|
896
|
+
formatter: ((value: number) => string) | undefined;
|
|
897
|
+
};
|
|
898
|
+
};
|
|
899
|
+
scales: {
|
|
900
|
+
x: {
|
|
901
|
+
type: "category";
|
|
902
|
+
labels: string[];
|
|
903
|
+
offset: boolean;
|
|
904
|
+
grid: {
|
|
905
|
+
display: boolean;
|
|
906
|
+
};
|
|
907
|
+
ticks: {
|
|
908
|
+
color: string;
|
|
909
|
+
font: {
|
|
910
|
+
size: number;
|
|
911
|
+
};
|
|
912
|
+
maxRotation: number;
|
|
913
|
+
autoSkip: boolean;
|
|
914
|
+
maxTicksLimit: number;
|
|
915
|
+
padding: number;
|
|
916
|
+
callback: ((value: number | string) => string) | undefined;
|
|
917
|
+
};
|
|
918
|
+
};
|
|
919
|
+
y: {
|
|
920
|
+
type: "category";
|
|
921
|
+
labels: string[];
|
|
922
|
+
offset: boolean;
|
|
923
|
+
grid: {
|
|
924
|
+
display: boolean;
|
|
925
|
+
};
|
|
926
|
+
ticks: {
|
|
927
|
+
color: string;
|
|
928
|
+
};
|
|
929
|
+
};
|
|
930
|
+
};
|
|
931
|
+
responsive: boolean;
|
|
932
|
+
maintainAspectRatio: boolean;
|
|
933
|
+
indexAxis: "y" | "x";
|
|
934
|
+
animation: {
|
|
935
|
+
duration: number;
|
|
936
|
+
easing: "easeOutQuart";
|
|
937
|
+
};
|
|
938
|
+
layout: {
|
|
939
|
+
padding: {
|
|
940
|
+
top: number;
|
|
941
|
+
right: number;
|
|
942
|
+
bottom: number;
|
|
943
|
+
left: number;
|
|
944
|
+
};
|
|
945
|
+
};
|
|
946
|
+
interaction: {
|
|
947
|
+
mode: "index" | "nearest";
|
|
948
|
+
intersect: boolean;
|
|
949
|
+
};
|
|
950
|
+
};
|
|
951
|
+
/** One bubble of a `chartjs-chart-geo` bubble map. */
|
|
952
|
+
export interface GeoPoint {
|
|
953
|
+
/** chartjs-chart-geo reads `latitude`/`longitude`; `lat`/`lon` are the same numbers */
|
|
954
|
+
latitude: number;
|
|
955
|
+
longitude: number;
|
|
956
|
+
lat: number;
|
|
957
|
+
lon: number;
|
|
958
|
+
value: number | null;
|
|
959
|
+
/** The cell key (`z/x/y` or a geohash) */
|
|
960
|
+
key: string;
|
|
961
|
+
}
|
|
962
|
+
/** Centre of a geotile (`z/x/y`) or geohash cell, for rows that carry no `bucket_meta`. */
|
|
963
|
+
export declare function decodeGeoCell(key: string): {
|
|
964
|
+
lat: number;
|
|
965
|
+
lon: number;
|
|
966
|
+
} | null;
|
|
967
|
+
/**
|
|
968
|
+
* Bubble-map data for `chartjs-chart-geo`: one point per geo cell at its centre, sized by the
|
|
969
|
+
* metric; one dataset per value of a second level when there is one.
|
|
970
|
+
*
|
|
971
|
+
* Data only: the consumer registers `BubbleMapController`, `GeoFeature`, `ProjectionScale`
|
|
972
|
+
* and `SizeScale`, and supplies the basemap `outline` (e.g. world-atlas countries) on the
|
|
973
|
+
* dataset before rendering.
|
|
974
|
+
*/
|
|
975
|
+
export declare function mapData(result: TqlStatsResult): {
|
|
976
|
+
labels: string[];
|
|
977
|
+
datasets: {
|
|
978
|
+
label: string;
|
|
979
|
+
data: GeoPoint[];
|
|
980
|
+
backgroundColor: string;
|
|
981
|
+
borderColor: string;
|
|
982
|
+
borderWidth: number;
|
|
983
|
+
}[];
|
|
984
|
+
};
|
|
985
|
+
/** Options for the bubble map (chartjs-chart-geo's projection + size scales). */
|
|
986
|
+
export declare function mapOptions(result: TqlStatsResult): {
|
|
987
|
+
responsive: boolean;
|
|
988
|
+
maintainAspectRatio: boolean;
|
|
989
|
+
animation: {
|
|
990
|
+
duration: number;
|
|
991
|
+
easing: "easeOutQuart";
|
|
992
|
+
};
|
|
993
|
+
plugins: {
|
|
994
|
+
legend: {
|
|
995
|
+
display: boolean;
|
|
996
|
+
};
|
|
997
|
+
title: {
|
|
998
|
+
display: boolean;
|
|
999
|
+
text: string;
|
|
1000
|
+
color: string;
|
|
1001
|
+
};
|
|
1002
|
+
tooltip: {
|
|
1003
|
+
callbacks: {
|
|
1004
|
+
label: (ctx: {
|
|
1005
|
+
raw: GeoPoint;
|
|
1006
|
+
}) => string;
|
|
1007
|
+
};
|
|
1008
|
+
};
|
|
1009
|
+
};
|
|
1010
|
+
scales: {
|
|
1011
|
+
projection: {
|
|
1012
|
+
axis: "x";
|
|
1013
|
+
projection: string;
|
|
1014
|
+
};
|
|
1015
|
+
size: {
|
|
1016
|
+
axis: "x";
|
|
1017
|
+
size: [number, number];
|
|
1018
|
+
};
|
|
1019
|
+
};
|
|
1020
|
+
};
|
|
1021
|
+
/**
|
|
1022
|
+
* Chart types the mappers do NOT render. A request for one of these -- or for any type not in
|
|
1023
|
+
* {@link chartJsType}'s table -- gets an {@link UnsupportedChart} marker, never a bar chart.
|
|
1024
|
+
* `table`, `number` and `gauge` are rendered without Chart.js (TqlChart draws the last two).
|
|
1025
|
+
*/
|
|
1026
|
+
export declare const UNSUPPORTED_CHART_TYPES: readonly ["treemap", "sunburst", "chord", "nested_pie", "nested_donut"];
|
|
1027
|
+
/** Returned instead of chart data/options for a type the mappers do not render. */
|
|
1028
|
+
export interface UnsupportedChart {
|
|
1029
|
+
unsupported: true;
|
|
1030
|
+
/** The TQL chart type that was requested */
|
|
1031
|
+
type: string;
|
|
1032
|
+
/** A sentence for the "not supported" state */
|
|
1033
|
+
reason: string;
|
|
1034
|
+
}
|
|
1035
|
+
/** Narrow a {@link buildChartData} / {@link buildChartOptions} result. */
|
|
1036
|
+
export declare function isUnsupportedChart(value: unknown): value is UnsupportedChart;
|
|
1037
|
+
/**
|
|
1038
|
+
* Map a TQL viz type to its Chart.js chart type, or `null` when the mappers do not render it.
|
|
1039
|
+
*
|
|
1040
|
+
* `heatmap` → `"matrix"` (chartjs-chart-matrix) and `map` → `"bubbleMap"` (chartjs-chart-geo):
|
|
1041
|
+
* both controllers are the CONSUMER's to register. Anything unmapped returns `null` — it used
|
|
1042
|
+
* to fall through to `"bar"`, which drew a treemap or a chord diagram as an unrelated bar chart.
|
|
1043
|
+
*/
|
|
1044
|
+
export declare function chartJsType(tqlType: string): string | null;
|
|
1045
|
+
/** Options for {@link buildChartData} / {@link buildChartOptions}. */
|
|
1046
|
+
export interface BuildChartOptions {
|
|
1047
|
+
/**
|
|
1048
|
+
* Draw date_histogram results on a Chart.js time axis (default true). Pass `false` when no
|
|
1049
|
+
* date adapter is registered: the x axis is then categorical with the ISO keys as labels.
|
|
1050
|
+
*/
|
|
1051
|
+
timeAxis?: boolean;
|
|
1052
|
+
}
|
|
1053
|
+
/** Build Chart.js data for any chart type, or an {@link UnsupportedChart} marker. */
|
|
1054
|
+
export declare function buildChartData(result: TqlStatsResult, chartType: string, opts?: BuildChartOptions): {
|
|
1055
|
+
labels: string[];
|
|
1056
|
+
datasets: unknown[];
|
|
1057
|
+
} | UnsupportedChart;
|
|
1058
|
+
/** Build Chart.js options for any chart type, or an {@link UnsupportedChart} marker. */
|
|
1059
|
+
export declare function buildChartOptions(result: TqlStatsResult, chartType: string, opts?: BuildChartOptions): {
|
|
1060
|
+
responsive: boolean;
|
|
1061
|
+
maintainAspectRatio: boolean;
|
|
1062
|
+
indexAxis: "y" | "x";
|
|
1063
|
+
animation: {
|
|
1064
|
+
duration: number;
|
|
1065
|
+
easing: "easeOutQuart";
|
|
1066
|
+
};
|
|
1067
|
+
layout: {
|
|
1068
|
+
padding: {
|
|
1069
|
+
top: number;
|
|
1070
|
+
right: number;
|
|
1071
|
+
bottom: number;
|
|
1072
|
+
left: number;
|
|
1073
|
+
};
|
|
1074
|
+
};
|
|
1075
|
+
interaction: {
|
|
1076
|
+
mode: "index" | "nearest";
|
|
1077
|
+
intersect: boolean;
|
|
1078
|
+
};
|
|
1079
|
+
plugins: {
|
|
1080
|
+
legend: {
|
|
1081
|
+
display: boolean;
|
|
1082
|
+
labels: {
|
|
1083
|
+
color: string;
|
|
1084
|
+
font: {
|
|
1085
|
+
size: number;
|
|
1086
|
+
};
|
|
1087
|
+
padding: number;
|
|
1088
|
+
usePointStyle: boolean;
|
|
1089
|
+
pointStyleWidth: number;
|
|
1090
|
+
filter: ((item: {
|
|
1091
|
+
text?: string;
|
|
1092
|
+
}) => boolean) | undefined;
|
|
1093
|
+
};
|
|
1094
|
+
};
|
|
1095
|
+
title: {
|
|
1096
|
+
display: boolean;
|
|
1097
|
+
text: string;
|
|
1098
|
+
color: string;
|
|
1099
|
+
font: {
|
|
1100
|
+
size: number;
|
|
1101
|
+
weight: "600";
|
|
1102
|
+
};
|
|
1103
|
+
padding: {
|
|
1104
|
+
top: number;
|
|
1105
|
+
bottom: number;
|
|
1106
|
+
};
|
|
1107
|
+
};
|
|
1108
|
+
tooltip: {
|
|
1109
|
+
enabled: boolean;
|
|
1110
|
+
mode: "index" | "nearest";
|
|
1111
|
+
intersect: boolean;
|
|
1112
|
+
backgroundColor: string;
|
|
1113
|
+
titleColor: string;
|
|
1114
|
+
bodyColor: string;
|
|
1115
|
+
borderColor: string;
|
|
1116
|
+
borderWidth: number;
|
|
1117
|
+
cornerRadius: number;
|
|
1118
|
+
padding: number;
|
|
1119
|
+
titleFont: {
|
|
1120
|
+
size: number;
|
|
1121
|
+
weight: "600";
|
|
1122
|
+
};
|
|
1123
|
+
bodyFont: {
|
|
1124
|
+
size: number;
|
|
1125
|
+
};
|
|
1126
|
+
displayColors: boolean;
|
|
1127
|
+
boxPadding: number;
|
|
1128
|
+
callbacks: {
|
|
1129
|
+
title: (items: Array<{
|
|
1130
|
+
label: string;
|
|
1131
|
+
}>) => string;
|
|
1132
|
+
label: (ctx: {
|
|
1133
|
+
dataset: {
|
|
1134
|
+
label?: string;
|
|
1135
|
+
};
|
|
1136
|
+
parsed: {
|
|
1137
|
+
y: number;
|
|
1138
|
+
x: number;
|
|
1139
|
+
};
|
|
1140
|
+
formattedValue: string;
|
|
1141
|
+
}) => string;
|
|
1142
|
+
};
|
|
1143
|
+
};
|
|
1144
|
+
datalabels: {
|
|
1145
|
+
display: boolean;
|
|
1146
|
+
color?: undefined;
|
|
1147
|
+
font?: undefined;
|
|
1148
|
+
anchor?: undefined;
|
|
1149
|
+
align?: undefined;
|
|
1150
|
+
offset?: undefined;
|
|
1151
|
+
formatter?: undefined;
|
|
1152
|
+
} | {
|
|
1153
|
+
display: string | boolean;
|
|
1154
|
+
color: string;
|
|
1155
|
+
font: {
|
|
1156
|
+
size: number;
|
|
1157
|
+
weight: "500";
|
|
1158
|
+
};
|
|
1159
|
+
anchor: "end";
|
|
1160
|
+
align: "top";
|
|
1161
|
+
offset: number;
|
|
1162
|
+
formatter: ((value: number) => string) | undefined;
|
|
1163
|
+
};
|
|
1164
|
+
};
|
|
1165
|
+
scales: {
|
|
1166
|
+
x: {
|
|
1167
|
+
stacked: boolean;
|
|
1168
|
+
title: {
|
|
1169
|
+
display: boolean;
|
|
1170
|
+
text: string;
|
|
1171
|
+
color: string;
|
|
1172
|
+
font: {
|
|
1173
|
+
size: number;
|
|
1174
|
+
};
|
|
1175
|
+
padding: {
|
|
1176
|
+
top: number;
|
|
1177
|
+
};
|
|
1178
|
+
};
|
|
1179
|
+
ticks: {
|
|
1180
|
+
color: string;
|
|
1181
|
+
font: {
|
|
1182
|
+
size: number;
|
|
1183
|
+
};
|
|
1184
|
+
maxRotation: number;
|
|
1185
|
+
autoSkip: boolean;
|
|
1186
|
+
maxTicksLimit: number;
|
|
1187
|
+
padding: number;
|
|
1188
|
+
callback: ((value: number | string) => string) | undefined;
|
|
1189
|
+
};
|
|
1190
|
+
grid: {
|
|
1191
|
+
color: string;
|
|
1192
|
+
drawTicks: boolean;
|
|
1193
|
+
};
|
|
1194
|
+
border: {
|
|
1195
|
+
color: string;
|
|
1196
|
+
};
|
|
1197
|
+
};
|
|
1198
|
+
y: {
|
|
1199
|
+
stacked: boolean;
|
|
1200
|
+
beginAtZero: boolean;
|
|
1201
|
+
min: number | undefined;
|
|
1202
|
+
max: number | undefined;
|
|
1203
|
+
title: {
|
|
1204
|
+
display: boolean;
|
|
1205
|
+
text: string;
|
|
1206
|
+
color: string;
|
|
1207
|
+
font: {
|
|
1208
|
+
size: number;
|
|
1209
|
+
};
|
|
1210
|
+
padding: {
|
|
1211
|
+
bottom: number;
|
|
1212
|
+
};
|
|
1213
|
+
};
|
|
1214
|
+
ticks: {
|
|
1215
|
+
stepSize?: number | undefined;
|
|
1216
|
+
color: string;
|
|
1217
|
+
font: {
|
|
1218
|
+
size: number;
|
|
1219
|
+
};
|
|
1220
|
+
padding: number;
|
|
1221
|
+
callback: ((value: number | string) => string) | undefined;
|
|
1222
|
+
};
|
|
1223
|
+
grid: {
|
|
1224
|
+
color: string;
|
|
1225
|
+
};
|
|
1226
|
+
border: {
|
|
1227
|
+
display: boolean;
|
|
1228
|
+
};
|
|
1229
|
+
};
|
|
1230
|
+
};
|
|
1231
|
+
} | {
|
|
585
1232
|
responsive: boolean;
|
|
586
1233
|
maintainAspectRatio: boolean;
|
|
587
|
-
indexAxis: "y" | "x";
|
|
588
1234
|
animation: {
|
|
589
1235
|
duration: number;
|
|
590
1236
|
easing: "easeOutQuart";
|
|
591
1237
|
};
|
|
1238
|
+
cutout: string | number;
|
|
592
1239
|
layout: {
|
|
593
1240
|
padding: {
|
|
594
1241
|
top: number;
|
|
@@ -597,13 +1244,10 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
597
1244
|
left: number;
|
|
598
1245
|
};
|
|
599
1246
|
};
|
|
600
|
-
interaction: {
|
|
601
|
-
mode: "index" | "nearest";
|
|
602
|
-
intersect: boolean;
|
|
603
|
-
};
|
|
604
1247
|
plugins: {
|
|
605
1248
|
legend: {
|
|
606
1249
|
display: boolean;
|
|
1250
|
+
position: "top" | "bottom" | "left" | "right";
|
|
607
1251
|
labels: {
|
|
608
1252
|
color: string;
|
|
609
1253
|
font: {
|
|
@@ -612,9 +1256,7 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
612
1256
|
padding: number;
|
|
613
1257
|
usePointStyle: boolean;
|
|
614
1258
|
pointStyleWidth: number;
|
|
615
|
-
|
|
616
|
-
text?: string;
|
|
617
|
-
}) => boolean) | undefined;
|
|
1259
|
+
boxHeight: number;
|
|
618
1260
|
};
|
|
619
1261
|
};
|
|
620
1262
|
title: {
|
|
@@ -631,6 +1273,13 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
631
1273
|
};
|
|
632
1274
|
};
|
|
633
1275
|
tooltip: {
|
|
1276
|
+
callbacks: {
|
|
1277
|
+
title: () => string;
|
|
1278
|
+
label: (ctx: {
|
|
1279
|
+
label: string;
|
|
1280
|
+
parsed: number;
|
|
1281
|
+
}) => string;
|
|
1282
|
+
};
|
|
634
1283
|
enabled: boolean;
|
|
635
1284
|
mode: "index" | "nearest";
|
|
636
1285
|
intersect: boolean;
|
|
@@ -650,20 +1299,82 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
650
1299
|
};
|
|
651
1300
|
displayColors: boolean;
|
|
652
1301
|
boxPadding: number;
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
1302
|
+
};
|
|
1303
|
+
datalabels: {
|
|
1304
|
+
display: boolean;
|
|
1305
|
+
color?: undefined;
|
|
1306
|
+
font?: undefined;
|
|
1307
|
+
anchor?: undefined;
|
|
1308
|
+
align?: undefined;
|
|
1309
|
+
offset?: undefined;
|
|
1310
|
+
formatter?: undefined;
|
|
1311
|
+
} | {
|
|
1312
|
+
display: string | boolean;
|
|
1313
|
+
color: string;
|
|
1314
|
+
font: {
|
|
1315
|
+
size: number;
|
|
1316
|
+
weight: "500";
|
|
1317
|
+
};
|
|
1318
|
+
anchor: "end";
|
|
1319
|
+
align: "top";
|
|
1320
|
+
offset: number;
|
|
1321
|
+
formatter: ((value: number) => string) | undefined;
|
|
1322
|
+
};
|
|
1323
|
+
};
|
|
1324
|
+
} | {
|
|
1325
|
+
interaction: {
|
|
1326
|
+
mode: "index";
|
|
1327
|
+
intersect: boolean;
|
|
1328
|
+
};
|
|
1329
|
+
plugins: {
|
|
1330
|
+
legend: {
|
|
1331
|
+
display: boolean;
|
|
1332
|
+
labels: {
|
|
1333
|
+
color: string;
|
|
1334
|
+
font: {
|
|
1335
|
+
size: number;
|
|
1336
|
+
};
|
|
1337
|
+
padding: number;
|
|
1338
|
+
usePointStyle: boolean;
|
|
1339
|
+
pointStyleWidth: number;
|
|
1340
|
+
filter: ((item: {
|
|
1341
|
+
text?: string;
|
|
1342
|
+
}) => boolean) | undefined;
|
|
1343
|
+
};
|
|
1344
|
+
};
|
|
1345
|
+
tooltip: {
|
|
1346
|
+
displayColors: boolean;
|
|
1347
|
+
callbacks: undefined;
|
|
1348
|
+
enabled: boolean;
|
|
1349
|
+
mode: "index" | "nearest";
|
|
1350
|
+
intersect: boolean;
|
|
1351
|
+
backgroundColor: string;
|
|
1352
|
+
titleColor: string;
|
|
1353
|
+
bodyColor: string;
|
|
1354
|
+
borderColor: string;
|
|
1355
|
+
borderWidth: number;
|
|
1356
|
+
cornerRadius: number;
|
|
1357
|
+
padding: number;
|
|
1358
|
+
titleFont: {
|
|
1359
|
+
size: number;
|
|
1360
|
+
weight: "600";
|
|
1361
|
+
};
|
|
1362
|
+
bodyFont: {
|
|
1363
|
+
size: number;
|
|
1364
|
+
};
|
|
1365
|
+
boxPadding: number;
|
|
1366
|
+
};
|
|
1367
|
+
title: {
|
|
1368
|
+
display: boolean;
|
|
1369
|
+
text: string;
|
|
1370
|
+
color: string;
|
|
1371
|
+
font: {
|
|
1372
|
+
size: number;
|
|
1373
|
+
weight: "600";
|
|
1374
|
+
};
|
|
1375
|
+
padding: {
|
|
1376
|
+
top: number;
|
|
1377
|
+
bottom: number;
|
|
667
1378
|
};
|
|
668
1379
|
};
|
|
669
1380
|
datalabels: {
|
|
@@ -689,7 +1400,25 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
689
1400
|
};
|
|
690
1401
|
scales: {
|
|
691
1402
|
x: {
|
|
1403
|
+
type: "time";
|
|
692
1404
|
stacked: boolean;
|
|
1405
|
+
offset: boolean;
|
|
1406
|
+
time: {
|
|
1407
|
+
unit: string;
|
|
1408
|
+
} | {
|
|
1409
|
+
unit?: undefined;
|
|
1410
|
+
};
|
|
1411
|
+
ticks: {
|
|
1412
|
+
maxRotation: number;
|
|
1413
|
+
autoSkip: boolean;
|
|
1414
|
+
maxTicksLimit: number;
|
|
1415
|
+
callback: undefined;
|
|
1416
|
+
color: string;
|
|
1417
|
+
font: {
|
|
1418
|
+
size: number;
|
|
1419
|
+
};
|
|
1420
|
+
padding: number;
|
|
1421
|
+
};
|
|
693
1422
|
title: {
|
|
694
1423
|
display: boolean;
|
|
695
1424
|
text: string;
|
|
@@ -701,17 +1430,6 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
701
1430
|
top: number;
|
|
702
1431
|
};
|
|
703
1432
|
};
|
|
704
|
-
ticks: {
|
|
705
|
-
color: string;
|
|
706
|
-
font: {
|
|
707
|
-
size: number;
|
|
708
|
-
};
|
|
709
|
-
maxRotation: number;
|
|
710
|
-
autoSkip: boolean;
|
|
711
|
-
maxTicksLimit: number;
|
|
712
|
-
padding: number;
|
|
713
|
-
callback: ((value: number | string) => string) | undefined;
|
|
714
|
-
};
|
|
715
1433
|
grid: {
|
|
716
1434
|
color: string;
|
|
717
1435
|
drawTicks: boolean;
|
|
@@ -753,14 +1471,13 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
753
1471
|
};
|
|
754
1472
|
};
|
|
755
1473
|
};
|
|
756
|
-
} | {
|
|
757
1474
|
responsive: boolean;
|
|
758
1475
|
maintainAspectRatio: boolean;
|
|
1476
|
+
indexAxis: "y" | "x";
|
|
759
1477
|
animation: {
|
|
760
1478
|
duration: number;
|
|
761
1479
|
easing: "easeOutQuart";
|
|
762
1480
|
};
|
|
763
|
-
cutout: string | number;
|
|
764
1481
|
layout: {
|
|
765
1482
|
padding: {
|
|
766
1483
|
top: number;
|
|
@@ -769,40 +1486,16 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
769
1486
|
left: number;
|
|
770
1487
|
};
|
|
771
1488
|
};
|
|
1489
|
+
} | {
|
|
772
1490
|
plugins: {
|
|
773
1491
|
legend: {
|
|
774
1492
|
display: boolean;
|
|
775
|
-
position: "top" | "bottom" | "left" | "right";
|
|
776
|
-
labels: {
|
|
777
|
-
color: string;
|
|
778
|
-
font: {
|
|
779
|
-
size: number;
|
|
780
|
-
};
|
|
781
|
-
padding: number;
|
|
782
|
-
usePointStyle: boolean;
|
|
783
|
-
pointStyleWidth: number;
|
|
784
|
-
boxHeight: number;
|
|
785
|
-
};
|
|
786
|
-
};
|
|
787
|
-
title: {
|
|
788
|
-
display: boolean;
|
|
789
|
-
text: string;
|
|
790
|
-
color: string;
|
|
791
|
-
font: {
|
|
792
|
-
size: number;
|
|
793
|
-
weight: "600";
|
|
794
|
-
};
|
|
795
|
-
padding: {
|
|
796
|
-
top: number;
|
|
797
|
-
bottom: number;
|
|
798
|
-
};
|
|
799
1493
|
};
|
|
800
1494
|
tooltip: {
|
|
801
1495
|
callbacks: {
|
|
802
1496
|
title: () => string;
|
|
803
1497
|
label: (ctx: {
|
|
804
|
-
|
|
805
|
-
parsed: number;
|
|
1498
|
+
raw: HeatmapCell;
|
|
806
1499
|
}) => string;
|
|
807
1500
|
};
|
|
808
1501
|
enabled: boolean;
|
|
@@ -825,6 +1518,19 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
825
1518
|
displayColors: boolean;
|
|
826
1519
|
boxPadding: number;
|
|
827
1520
|
};
|
|
1521
|
+
title: {
|
|
1522
|
+
display: boolean;
|
|
1523
|
+
text: string;
|
|
1524
|
+
color: string;
|
|
1525
|
+
font: {
|
|
1526
|
+
size: number;
|
|
1527
|
+
weight: "600";
|
|
1528
|
+
};
|
|
1529
|
+
padding: {
|
|
1530
|
+
top: number;
|
|
1531
|
+
bottom: number;
|
|
1532
|
+
};
|
|
1533
|
+
};
|
|
828
1534
|
datalabels: {
|
|
829
1535
|
display: boolean;
|
|
830
1536
|
color?: undefined;
|
|
@@ -846,4 +1552,90 @@ export declare function buildChartOptions(result: TqlStatsResult, chartType: str
|
|
|
846
1552
|
formatter: ((value: number) => string) | undefined;
|
|
847
1553
|
};
|
|
848
1554
|
};
|
|
849
|
-
|
|
1555
|
+
scales: {
|
|
1556
|
+
x: {
|
|
1557
|
+
type: "category";
|
|
1558
|
+
labels: string[];
|
|
1559
|
+
offset: boolean;
|
|
1560
|
+
grid: {
|
|
1561
|
+
display: boolean;
|
|
1562
|
+
};
|
|
1563
|
+
ticks: {
|
|
1564
|
+
color: string;
|
|
1565
|
+
font: {
|
|
1566
|
+
size: number;
|
|
1567
|
+
};
|
|
1568
|
+
maxRotation: number;
|
|
1569
|
+
autoSkip: boolean;
|
|
1570
|
+
maxTicksLimit: number;
|
|
1571
|
+
padding: number;
|
|
1572
|
+
callback: ((value: number | string) => string) | undefined;
|
|
1573
|
+
};
|
|
1574
|
+
};
|
|
1575
|
+
y: {
|
|
1576
|
+
type: "category";
|
|
1577
|
+
labels: string[];
|
|
1578
|
+
offset: boolean;
|
|
1579
|
+
grid: {
|
|
1580
|
+
display: boolean;
|
|
1581
|
+
};
|
|
1582
|
+
ticks: {
|
|
1583
|
+
color: string;
|
|
1584
|
+
};
|
|
1585
|
+
};
|
|
1586
|
+
};
|
|
1587
|
+
responsive: boolean;
|
|
1588
|
+
maintainAspectRatio: boolean;
|
|
1589
|
+
indexAxis: "y" | "x";
|
|
1590
|
+
animation: {
|
|
1591
|
+
duration: number;
|
|
1592
|
+
easing: "easeOutQuart";
|
|
1593
|
+
};
|
|
1594
|
+
layout: {
|
|
1595
|
+
padding: {
|
|
1596
|
+
top: number;
|
|
1597
|
+
right: number;
|
|
1598
|
+
bottom: number;
|
|
1599
|
+
left: number;
|
|
1600
|
+
};
|
|
1601
|
+
};
|
|
1602
|
+
interaction: {
|
|
1603
|
+
mode: "index" | "nearest";
|
|
1604
|
+
intersect: boolean;
|
|
1605
|
+
};
|
|
1606
|
+
} | {
|
|
1607
|
+
responsive: boolean;
|
|
1608
|
+
maintainAspectRatio: boolean;
|
|
1609
|
+
animation: {
|
|
1610
|
+
duration: number;
|
|
1611
|
+
easing: "easeOutQuart";
|
|
1612
|
+
};
|
|
1613
|
+
plugins: {
|
|
1614
|
+
legend: {
|
|
1615
|
+
display: boolean;
|
|
1616
|
+
};
|
|
1617
|
+
title: {
|
|
1618
|
+
display: boolean;
|
|
1619
|
+
text: string;
|
|
1620
|
+
color: string;
|
|
1621
|
+
};
|
|
1622
|
+
tooltip: {
|
|
1623
|
+
callbacks: {
|
|
1624
|
+
label: (ctx: {
|
|
1625
|
+
raw: GeoPoint;
|
|
1626
|
+
}) => string;
|
|
1627
|
+
};
|
|
1628
|
+
};
|
|
1629
|
+
};
|
|
1630
|
+
scales: {
|
|
1631
|
+
projection: {
|
|
1632
|
+
axis: "x";
|
|
1633
|
+
projection: string;
|
|
1634
|
+
};
|
|
1635
|
+
size: {
|
|
1636
|
+
axis: "x";
|
|
1637
|
+
size: [number, number];
|
|
1638
|
+
};
|
|
1639
|
+
};
|
|
1640
|
+
} | UnsupportedChart;
|
|
1641
|
+
export {};
|