From f17713d294350ed12476b077ff7635169992425e Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 11 Dec 2025 13:22:41 -0600 Subject: [PATCH 01/28] Chart builder updates for series line type option --- .../components/releaseNotes/components.md | 4 + .../components/chart/ChartColorInputs.tsx | 91 +++++++++++++------ .../internal/components/chart/constants.ts | 6 ++ .../src/internal/components/chart/models.ts | 2 +- 4 files changed, 73 insertions(+), 30 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index ece69808c2..553a2438f7 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -5,6 +5,10 @@ Components, models, actions, and utility functions for LabKey applications and p *Released*: 10 December 2025 - CharBuilderModal: add UI for legend position +### version TBD +*Released*: TBD +- Chart builder updates for series line type option + ### version 7.2.0 *Released*: 9 December 2025 - Chart builder updates for series color scale options diff --git a/packages/components/src/internal/components/chart/ChartColorInputs.tsx b/packages/components/src/internal/components/chart/ChartColorInputs.tsx index 6ad57a187a..501508c79a 100644 --- a/packages/components/src/internal/components/chart/ChartColorInputs.tsx +++ b/packages/components/src/internal/components/chart/ChartColorInputs.tsx @@ -3,7 +3,7 @@ import classNames from 'classnames'; import { Utils } from '@labkey/api'; import { ChartConfig, ChartConfigSetter, MeasureOption } from './models'; import { ColorPickerInput } from '../forms/input/ColorPickerInput'; -import { COLOR_OPTIONS_PER_TYPE, COLOR_PALETTE_OPTIONS, SHAPE_OPTIONS } from './constants'; +import {COLOR_OPTIONS_PER_TYPE, COLOR_PALETTE_OPTIONS, LINE_TYPE_OPTIONS, SHAPE_OPTIONS} from './constants'; import { SelectInput } from '../forms/input/SelectInput'; import { selectDistinctRows } from '../../query/api'; import { QueryModel } from '../../../public/QueryModel/QueryModel'; @@ -346,6 +346,17 @@ const SeriesLineStyleInput: FC = memo(({ chartConfig, [onSeriesOptionChange, selectedSeries] ); + const onSeriesLineTypeChange = useCallback( + (_: never, value: string) => { + onSeriesOptionChange(selectedSeries, 'lineType', value); + }, + [onSeriesOptionChange, selectedSeries] + ); + + const onSeriesLineTypeRemove = useCallback(() => { + onSeriesOptionChange(selectedSeries, 'lineType', undefined); + }, [onSeriesOptionChange, selectedSeries]); + const onSeriesShapeChange = useCallback( (_: never, value: string) => { onSeriesOptionChange(selectedSeries, 'shape', value); @@ -383,36 +394,58 @@ const SeriesLineStyleInput: FC = memo(({ chartConfig, {selectedSeries && ( -
-
-
Color
- + <> +
+
+
Color
+ +
+
+
Shape
+ + {seriesOptionMap[selectedSeries]?.shape && ( + + )} +
-
-
Shape
- - {seriesOptionMap[selectedSeries]?.shape && ( - - )} +
+
+
Line Type
+ + {seriesOptionMap[selectedSeries]?.lineType && ( + + )} +
-
+ )} ); diff --git a/packages/components/src/internal/components/chart/constants.ts b/packages/components/src/internal/components/chart/constants.ts index eeb55ea396..c2ed078354 100644 --- a/packages/components/src/internal/components/chart/constants.ts +++ b/packages/components/src/internal/components/chart/constants.ts @@ -35,6 +35,12 @@ export const SHAPE_OPTIONS = [ { label: 'Cross', value: 'x' }, ]; +export const LINE_TYPE_OPTIONS = [ + { label: 'Solid', value: 'solid' }, + { label: 'Dashed', value: 'dashed' }, + { label: 'Dotted', value: 'dotted' }, +]; + export const COLOR_OPTIONS_PER_TYPE = { boxFillColor: ['bar_chart', 'box_plot'], colorPaletteScale: ['bar_chart', 'box_plot', 'line_plot', 'scatter_plot', 'pie_chart'], diff --git a/packages/components/src/internal/components/chart/models.ts b/packages/components/src/internal/components/chart/models.ts index a315673b75..ce5d00a1d4 100644 --- a/packages/components/src/internal/components/chart/models.ts +++ b/packages/components/src/internal/components/chart/models.ts @@ -9,8 +9,8 @@ export interface ChartLabels { export interface MeasureOption { color?: string; + lineType?: string; shape?: string; - // lineType?: string; } export interface ChartConfig { From cc83aaff6d1befba57e9d7a10d8b8f2cbce570c5 Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 11 Dec 2025 13:23:42 -0600 Subject: [PATCH 02/28] 7.3.0-chartSeriesLineType.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 60a2646b52..a40ccef0be 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.3.0", + "version": "7.3.0-chartSeriesLineType.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.3.0", + "version": "7.3.0-chartSeriesLineType.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index b5e284d630..6af5019bed 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.3.0", + "version": "7.3.0-chartSeriesLineType.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 171107d19673c0409d34dc6f067751975822973a Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 15 Dec 2025 14:07:53 -0600 Subject: [PATCH 03/28] 7.3.2-chartSeriesLineType.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- packages/components/releaseNotes/components.md | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 79ed0edb40..e84229531c 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.3.2", + "version": "7.3.2-chartSeriesLineType.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.3.2", + "version": "7.3.2-chartSeriesLineType.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 1d556a43bb..1e5f5844f8 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.3.2", + "version": "7.3.2-chartSeriesLineType.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index bc3eaa5690..efde886106 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,10 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version TBD +*Released*: TBD +- Chart builder updates for series line type option + ### version 7.3.2 *Released*: 15 December 2025 - ConditionalFormatOptions refactor to use ColorPickerInput @@ -15,10 +19,6 @@ Components, models, actions, and utility functions for LabKey applications and p *Released*: 10 December 2025 - CharBuilderModal: add UI for legend position -### version TBD -*Released*: TBD -- Chart builder updates for series line type option - ### version 7.2.0 *Released*: 9 December 2025 - Chart builder updates for series color scale options From 381aff749ae31a04d6f400e5e8ac79896214a23a Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 15 Dec 2025 15:59:32 -0600 Subject: [PATCH 04/28] LineTypeOptionRenderer for solid/dashed/dotted --- .../components/chart/ChartColorInputs.tsx | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/packages/components/src/internal/components/chart/ChartColorInputs.tsx b/packages/components/src/internal/components/chart/ChartColorInputs.tsx index 501508c79a..4215942394 100644 --- a/packages/components/src/internal/components/chart/ChartColorInputs.tsx +++ b/packages/components/src/internal/components/chart/ChartColorInputs.tsx @@ -83,6 +83,38 @@ function shapeValueRenderer(option) { return ; } +interface LineTypeOptionRendererProps { + isValueRenderer: boolean; + name: string; +} + +// export for jest testing +export const LineTypeOptionRenderer: FC = memo(({ name, isValueRenderer }) => { + const dashedPath = ; + const dottedPath = ; + const solidPath = ; + + const className = classNames('chart-builder-type-option', { 'chart-builder-type-option--value': isValueRenderer }); + return ( + + + {name === 'dashed' && dashedPath} + {name === 'dotted' && dottedPath} + {name === 'solid' && solidPath} + + + ); +}); +LineTypeOptionRenderer.displayName = 'LineTypeOptionRenderer'; + +function lineTypeOptionRenderer(option) { + return ; +} + +function lineTypeValueRenderer(option) { + return ; +} + interface SeriesOptionRendererProps { isValueRenderer: boolean; name: string; @@ -434,11 +466,11 @@ const SeriesLineStyleInput: FC = memo(({ chartConfig, inputClass="" menuPlacement="top" onChange={onSeriesLineTypeChange} + optionRenderer={lineTypeOptionRenderer} options={LINE_TYPE_OPTIONS} placeholder="Auto" value={seriesOptionMap[selectedSeries]?.lineType} - // optionRenderer={lineTypeOptionRenderer} - // valueRenderer={lineTypeValueRenderer} + valueRenderer={lineTypeValueRenderer} /> {seriesOptionMap[selectedSeries]?.lineType && ( From 769a05fc1ec25be0e2d15fa6799aefd735f62281 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 15 Dec 2025 16:00:06 -0600 Subject: [PATCH 05/28] Chart builder option for show/hide data points for line chart type --- .../components/releaseNotes/components.md | 3 +- .../components/chart/ChartSettingsPanel.tsx | 43 +++++++++++++++++-- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index efde886106..088888e6e6 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -3,7 +3,8 @@ Components, models, actions, and utility functions for LabKey applications and p ### version TBD *Released*: TBD -- Chart builder updates for series line type option +- Chart builder updates for per-series line type option +- Chart builder option for show/hide data points for line chart type ### version 7.3.2 *Released*: 15 December 2025 diff --git a/packages/components/src/internal/components/chart/ChartSettingsPanel.tsx b/packages/components/src/internal/components/chart/ChartSettingsPanel.tsx index aadf27baa9..8533b5c3c3 100644 --- a/packages/components/src/internal/components/chart/ChartSettingsPanel.tsx +++ b/packages/components/src/internal/components/chart/ChartSettingsPanel.tsx @@ -280,7 +280,6 @@ export const ChartSettingsPanel: FC = memo(props => { setChartConfig, setChartModel, } = props; - const legendPos = chartConfig.legendPos; const showTrendline = hasTrendline(chartType); const fields = chartType.fields.filter(f => f.name !== 'trendline'); @@ -330,17 +329,37 @@ export const ChartSettingsPanel: FC = memo(props => { const legendOptions = useMemo(() => { return [ - { label: 'Right', selected: !legendPos || legendPos === 'right', value: 'right' }, - { label: 'Bottom', selected: legendPos === 'bottom', value: 'bottom' }, + { label: 'Right', selected: !chartConfig.legendPos || chartConfig.legendPos === 'right', value: 'right' }, + { label: 'Bottom', selected: chartConfig.legendPos === 'bottom', value: 'bottom' }, ]; - }, [legendPos]); + }, [chartConfig.legendPos]); const onLegendPosChange = useCallback( value => setChartConfig(current => ({ ...current, legendPos: value })), [setChartConfig] ); + const hideDataPointsOptions = useMemo(() => { + return [ + { + label: 'Show', + selected: + chartConfig.geomOptions.hideDataPoints === undefined || + chartConfig.geomOptions.hideDataPoints === false, + value: 'false', + }, + { label: 'Hide', selected: chartConfig.geomOptions.hideDataPoints === true, value: 'true' }, + ]; + }, [chartConfig.geomOptions.hideDataPoints]); + + const onHideDataPointsChange = useCallback( + value => + setChartConfig(current => ({ ...current, geomOptions: { ...current.geomOptions, hideDataPoints: value === 'true' } })), + [setChartConfig] + ); + const showLegendPos = chartType.name !== 'pie_chart'; + const showPointsOption = chartType.name === 'line_plot'; return (
@@ -424,6 +443,22 @@ export const ChartSettingsPanel: FC = memo(props => {
)} + {showPointsOption && ( +
+
+ +
+ +
+
+
+ )} +
); From 2c7a1990b4e98cfda2234b2c336acd0c7fbf3e61 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 15 Dec 2025 16:00:32 -0600 Subject: [PATCH 06/28] misc styling and layout/spacing updates for chart settings panel --- .../components/chart/ChartColorInputs.tsx | 10 ++++----- .../components/chart/ChartSettingsPanel.tsx | 21 ++++++++++--------- packages/components/src/theme/charts.scss | 13 +++++++++--- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/packages/components/src/internal/components/chart/ChartColorInputs.tsx b/packages/components/src/internal/components/chart/ChartColorInputs.tsx index 4215942394..0a49389b94 100644 --- a/packages/components/src/internal/components/chart/ChartColorInputs.tsx +++ b/packages/components/src/internal/components/chart/ChartColorInputs.tsx @@ -427,8 +427,8 @@ const SeriesLineStyleInput: FC = memo(({ chartConfig,
{selectedSeries && ( <> -
-
+
+
Color
= memo(({ chartConfig, value={seriesOptionMap[selectedSeries]?.color} />
-
+
Shape
= memo(({ chartConfig, )}
-
-
-
+
Line Type
= memo(props => { {showLegendPos && ( -
- - -
- +
+
+ +
+ +
)} diff --git a/packages/components/src/theme/charts.scss b/packages/components/src/theme/charts.scss index 41375a5898..e51975a0ec 100644 --- a/packages/components/src/theme/charts.scss +++ b/packages/components/src/theme/charts.scss @@ -219,21 +219,28 @@ overflow-y: auto; } +.chart-color-inputs { + display: flex; +} +.chart-color-input { + flex: 1; +} + .chart-builder-modal__chart-preview h4, .chart-settings h4 { margin: 0 0 8px; } -.chart-settings__legend-pos-values { +.chart-settings__radio-group-values { display: flex; gap: 8px; } -.chart-settings__legend-pos-values .radio-input-wrapper input { +.chart-settings__radio-group-values .radio-input-wrapper input { margin-right: 4px; } -.chart-settings__legend-pos-values .radioinput-label { +.chart-settings__radio-group-values .radioinput-label { cursor: pointer; } From 7262c3f3e680fbe01d3d466fbd03ce875423789a Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 15 Dec 2025 16:06:02 -0600 Subject: [PATCH 07/28] 7.3.2-chartSeriesLineType.1 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index e84229531c..89d9a981f5 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.0", + "version": "7.3.2-chartSeriesLineType.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.0", + "version": "7.3.2-chartSeriesLineType.1", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 1e5f5844f8..61d985ef28 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.0", + "version": "7.3.2-chartSeriesLineType.1", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 11b1fdf6352b4b4b86a15b493b701dc7d8360d77 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 15 Dec 2025 16:07:11 -0600 Subject: [PATCH 08/28] jest test fixes for ChartBuilderModal.test.tsx --- .../internal/components/chart/ChartBuilderModal.test.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/src/internal/components/chart/ChartBuilderModal.test.tsx b/packages/components/src/internal/components/chart/ChartBuilderModal.test.tsx index 17d689796c..2cae537727 100644 --- a/packages/components/src/internal/components/chart/ChartBuilderModal.test.tsx +++ b/packages/components/src/internal/components/chart/ChartBuilderModal.test.tsx @@ -272,7 +272,7 @@ describe('ChartBuilderModal', () => { await userEvent.click(typeDropdown); const lineOption = screen.getByText('Line'); await userEvent.click(lineOption); - expect(document.querySelectorAll('input')).toHaveLength(17); + expect(document.querySelectorAll('input')).toHaveLength(19); LINE_PLOT_TYPE.fields.forEach(field => { if (field.name !== 'trendline') { expect(document.querySelectorAll(`input[name="${field.name}"]`)).toHaveLength(1); @@ -421,7 +421,7 @@ describe('ChartBuilderModal', () => { ); validate(false, true, true); - expect(document.querySelectorAll('input')).toHaveLength(17); + expect(document.querySelectorAll('input')).toHaveLength(19); expect(document.querySelector('input[name=x]').getAttribute('value')).toBe('field1'); expect(document.querySelector('input[name=y]').getAttribute('value')).toBe('field2'); expect(document.querySelectorAll('input[name=aggregate-method]')).toHaveLength(0); @@ -459,7 +459,7 @@ describe('ChartBuilderModal', () => { ); validate(false, true, true); - expect(document.querySelectorAll('input')).toHaveLength(17); + expect(document.querySelectorAll('input')).toHaveLength(19); expect(document.querySelector('input[name=x]').getAttribute('value')).toBe('field1'); expect(document.querySelector('input[name=y]').getAttribute('value')).toBe('field2'); expect(document.querySelectorAll('input[name=aggregate-method]')).toHaveLength(0); From a31b44ba78e633b537bd69119f718e2e56100e39 Mon Sep 17 00:00:00 2001 From: cnathe Date: Tue, 16 Dec 2025 08:50:31 -0600 Subject: [PATCH 09/28] update data attribute for SeriesOptionRenderer --- .../src/internal/components/chart/ChartColorInputs.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/components/src/internal/components/chart/ChartColorInputs.tsx b/packages/components/src/internal/components/chart/ChartColorInputs.tsx index 0a49389b94..788fb7a6d3 100644 --- a/packages/components/src/internal/components/chart/ChartColorInputs.tsx +++ b/packages/components/src/internal/components/chart/ChartColorInputs.tsx @@ -129,7 +129,7 @@ export const SeriesOptionRenderer: FC = memo( 'chart-builder-type-option--value': isValueRenderer, }); return ( - + {value && ( <> {name} From 9163fcaacaf3863c315c1f76f1e3073766f71044 Mon Sep 17 00:00:00 2001 From: cnathe Date: Tue, 16 Dec 2025 08:50:53 -0600 Subject: [PATCH 10/28] 7.3.2-chartSeriesLineType.2 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 89d9a981f5..2057e7f444 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.1", + "version": "7.3.2-chartSeriesLineType.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.1", + "version": "7.3.2-chartSeriesLineType.2", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 61d985ef28..c89493279a 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.1", + "version": "7.3.2-chartSeriesLineType.2", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 1bad69aaee1983b4d02b02776f94764580cb0d22 Mon Sep 17 00:00:00 2001 From: cnathe Date: Tue, 16 Dec 2025 09:06:07 -0600 Subject: [PATCH 11/28] ChartColorInputs.tsx per series options to use
-
- - - {seriesOptionMap[selectedSeries]?.shape && ( - - )} -
+ {!chartConfig.geomOptions?.hideDataPoints && ( +
+ + + {seriesOptionMap[selectedSeries]?.shape && ( + + )} +
+ )}
Date: Mon, 22 Dec 2025 09:53:11 -0600 Subject: [PATCH 25/28] 7.3.2-fb-chartSeriesLineType.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 17bafc74d5..0ad5b5b7ed 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.7", + "version": "7.3.2-fb-chartSeriesLineType.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.7", + "version": "7.3.2-fb-chartSeriesLineType.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index dfb52ddde8..82655a20da 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.3.2-chartSeriesLineType.7", + "version": "7.3.2-fb-chartSeriesLineType.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From c81c58474ee5cae7fc894ab55a0b1d8f4caef5c8 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 22 Dec 2025 15:22:44 -0600 Subject: [PATCH 26/28] npm run lint-branch-fix --- .../components/chart/ChartColorInputs.test.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/components/src/internal/components/chart/ChartColorInputs.test.tsx b/packages/components/src/internal/components/chart/ChartColorInputs.test.tsx index c81d042d93..066b44f62b 100644 --- a/packages/components/src/internal/components/chart/ChartColorInputs.test.tsx +++ b/packages/components/src/internal/components/chart/ChartColorInputs.test.tsx @@ -3,7 +3,13 @@ import { render } from '@testing-library/react'; import { ChartConfig } from './models'; import { LABKEY_VIS } from '../../constants'; -import { ChartColorInputs, SeriesOptionRenderer, ShapeOptionRenderer, showColorOption, LineTypeOptionRenderer } from './ChartColorInputs'; +import { + ChartColorInputs, + LineTypeOptionRenderer, + SeriesOptionRenderer, + ShapeOptionRenderer, + showColorOption, +} from './ChartColorInputs'; import { makeTestQueryModel } from '../../../public/QueryModel/testUtils'; import { SchemaQuery } from '../../../public/SchemaQuery'; @@ -167,14 +173,14 @@ describe('LineTypeOptionRenderer', () => { test('dashed line type', () => { render(); - expect(document.querySelector('svg path').getAttribute("stroke-dasharray")).toBe('6,6'); - expect(document.querySelector('svg path').getAttribute("stroke-linecap")).toBe(null); + expect(document.querySelector('svg path').getAttribute('stroke-dasharray')).toBe('6,6'); + expect(document.querySelector('svg path').getAttribute('stroke-linecap')).toBe(null); }); test('dotted line type', () => { render(); - expect(document.querySelector('svg path').getAttribute("stroke-dasharray")).toBe('0.1,6'); - expect(document.querySelector('svg path').getAttribute("stroke-linecap")).toBe('round'); + expect(document.querySelector('svg path').getAttribute('stroke-dasharray')).toBe('0.1,6'); + expect(document.querySelector('svg path').getAttribute('stroke-linecap')).toBe('round'); }); }); From fe691d00d70ef9756614ef7b6681a2dab5c2f9b0 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 22 Dec 2025 16:26:24 -0600 Subject: [PATCH 27/28] Update release notes with version number and release date --- packages/components/releaseNotes/components.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index 8b7432347d..111de213b5 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,8 +1,8 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages -### version TBD -*Released*: TBD +### version 7.5.0 +*Released*: 22 December 2025 - Chart builder updates for per-series line type option - Chart builder option for show/hide data points for line chart type From 9ca79700b0a2dd799f435947797753e3cff74879 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 22 Dec 2025 16:27:31 -0600 Subject: [PATCH 28/28] 7.5.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 783022bee8..e26368360d 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "7.4.0", + "version": "7.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.4.0", + "version": "7.5.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 89f51e1006..2b42d0392b 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.4.0", + "version": "7.5.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [