+ {isLoading && !data ? (
+
+ Loading Chart Data...
+
+ ) : isError && error ? (
+
+ ) : responseFormatError ? (
+
+ ) : data?.data.length === 0 ? (
+
+ No data found within time range.
+
+ ) : (
+
+
+
+
+ } interval={0} />
+
+ config.numberFormat
+ ? formatNumber(v, config.numberFormat)
+ : String(v)
+ }
+ tick={{ fontSize: 11, fill: '#888' }}
+ width={60}
+ />
+ }
+ />
+
+ {barChartData.map(entry => (
+ |
+ ))}
+
+
+
+
+ )}
+
+ );
+};
diff --git a/packages/app/src/components/DBEditTimeChartForm/EditTimeChartForm.tsx b/packages/app/src/components/DBEditTimeChartForm/EditTimeChartForm.tsx
index 1352583c36..afec0224ba 100644
--- a/packages/app/src/components/DBEditTimeChartForm/EditTimeChartForm.tsx
+++ b/packages/app/src/components/DBEditTimeChartForm/EditTimeChartForm.tsx
@@ -185,6 +185,7 @@ export default function EditTimeChartForm({
compareToPreviousPeriod,
numberFormat,
groupByColumnsOnLeft,
+ limit,
] = useWatch({
control,
name: [
@@ -193,6 +194,7 @@ export default function EditTimeChartForm({
'compareToPreviousPeriod',
'numberFormat',
'groupByColumnsOnLeft',
+ 'limit',
],
});
@@ -212,6 +214,7 @@ export default function EditTimeChartForm({
compareToPreviousPeriod,
numberFormat,
groupByColumnsOnLeft,
+ limit,
}),
[
alignDateRangeToGranularity,
@@ -219,6 +222,7 @@ export default function EditTimeChartForm({
compareToPreviousPeriod,
numberFormat,
groupByColumnsOnLeft,
+ limit,
],
);
@@ -462,15 +466,19 @@ export default function EditTimeChartForm({
fillNulls,
compareToPreviousPeriod,
groupByColumnsOnLeft,
+ limit,
}: ChartConfigDisplaySettings) => {
setValue('numberFormat', numberFormat);
setValue('alignDateRangeToGranularity', alignDateRangeToGranularity);
setValue('fillNulls', fillNulls);
setValue('compareToPreviousPeriod', compareToPreviousPeriod);
setValue('groupByColumnsOnLeft', groupByColumnsOnLeft);
+ if (displayType === DisplayType.Bar) {
+ setValue('limit', limit);
+ }
onSubmit();
},
- [setValue, onSubmit],
+ [setValue, onSubmit, displayType],
);
const tableConnection = useMemo(
diff --git a/packages/app/src/utils/tilePositioning.ts b/packages/app/src/utils/tilePositioning.ts
index 8c7ad121ea..94bd4a027b 100644
--- a/packages/app/src/utils/tilePositioning.ts
+++ b/packages/app/src/utils/tilePositioning.ts
@@ -73,6 +73,7 @@ export function getDefaultTileSize(displayType?: DisplayType): {
switch (displayType) {
case DisplayType.Line:
case DisplayType.StackedBar:
+ case DisplayType.Bar:
return { w: 12, h: 10 };
case DisplayType.Table:
diff --git a/packages/app/tests/e2e/page-objects/DashboardPage.ts b/packages/app/tests/e2e/page-objects/DashboardPage.ts
index 7c5424bf53..823b368a47 100644
--- a/packages/app/tests/e2e/page-objects/DashboardPage.ts
+++ b/packages/app/tests/e2e/page-objects/DashboardPage.ts
@@ -30,7 +30,14 @@ export type TileConfig = {
groupBy?: string;
markdown?: string;
};
-type SeriesType = 'time' | 'number' | 'table' | 'search' | 'markdown' | 'pie';
+type SeriesType =
+ | 'time'
+ | 'number'
+ | 'table'
+ | 'search'
+ | 'markdown'
+ | 'pie'
+ | 'bar';
/**
* Series data structure for chart verification
* Supports all chart types: time, number, table, search, markdown
@@ -504,7 +511,9 @@ export class DashboardPage {
const type: SeriesData['type'] =
config.displayType === 'line' || config.displayType === 'stacked_bar'
? 'time'
- : config.displayType;
+ : config.displayType === 'bar'
+ ? 'bar'
+ : config.displayType;
const groupBy = config.groupBy ? [config.groupBy] : undefined;
const selectItems = Array.isArray(config.select) ? config.select : [];
diff --git a/packages/common-utils/src/rawSqlParams.ts b/packages/common-utils/src/rawSqlParams.ts
index 1062e2f3f8..5850cd9666 100644
--- a/packages/common-utils/src/rawSqlParams.ts
+++ b/packages/common-utils/src/rawSqlParams.ts
@@ -76,6 +76,10 @@ export const QUERY_PARAMS_BY_DISPLAY_TYPE: Record<
QUERY_PARAMS.intervalSeconds,
QUERY_PARAMS.intervalMilliseconds,
],
+ [DisplayType.Bar]: [
+ QUERY_PARAMS.startDateMilliseconds,
+ QUERY_PARAMS.endDateMilliseconds,
+ ],
[DisplayType.Table]: [
QUERY_PARAMS.startDateMilliseconds,
QUERY_PARAMS.endDateMilliseconds,
@@ -110,6 +114,7 @@ export const DATE_RANGE_WHERE_EXAMPLE_SQL = `WHERE TimestampTime >= fromUnixTime
export const QUERY_PARAM_EXAMPLES: Record