diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index a7b47b15fb..9113f8a900 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "6.63.0", + "version": "6.63.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "6.63.0", + "version": "6.63.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 673847c65e..fed787725a 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "6.63.0", + "version": "6.63.1", "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 68e4c6a114..45a82714fe 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 6.63.1 +*Released*: 8 October 2025 +- Filter.actionValueFromFilter fix to move decode columnName out of getDisplayValue() + ### version 6.63.0 *Released*: 7 October 2025 - Issue 53934: Remove stored amount "too precise" validation check on setting amount modal diff --git a/packages/components/src/public/QueryModel/grid/actions/Filter.test.ts b/packages/components/src/public/QueryModel/grid/actions/Filter.test.ts index 825a93c28f..3172249a41 100644 --- a/packages/components/src/public/QueryModel/grid/actions/Filter.test.ts +++ b/packages/components/src/public/QueryModel/grid/actions/Filter.test.ts @@ -37,7 +37,7 @@ describe('FilterAction::actionValueFromFilter', () => { const filter = Filter.create('U mg$SL', '10', Filter.Types.EQUAL); const value: ActionValue = action.actionValueFromFilter(filter); expect(value.displayValue).toBe('U mg/L = 10'); - expect(value.value).toBe('"U mg$SL" = 10'); + expect(value.value).toBe('"U mg/L" = 10'); }); test('with label from QueryColumn', () => { @@ -80,4 +80,17 @@ describe('FilterAction::actionValueFromFilter', () => { const value: ActionValue = action.actionValueFromFilter(filter, col); expect(value.displayValue).toBe('TimeCol = 01:02:00'); }); + + test('decodePart label vs column name', () => { + const col = new QueryColumn({ shortCaption: '$Bool Field./,$&' }); + const filter = Filter.create('$DBoolField$P$S$C$D$A', true, Filter.Types.EQUAL); + + let value: ActionValue = action.actionValueFromFilter(filter, col); + expect(value.displayValue).toBe('$Bool Field./,$& = true'); + expect(value.value).toBe('"$Bool Field./,$&" = true'); + + value = action.actionValueFromFilter(filter); + expect(value.displayValue).toBe('$BoolField./,$& = true'); + expect(value.value).toBe('"$BoolField./,$&" = true'); + }); }); diff --git a/packages/components/src/public/QueryModel/grid/actions/Filter.ts b/packages/components/src/public/QueryModel/grid/actions/Filter.ts index 54207b7ddc..2dfcca1c10 100644 --- a/packages/components/src/public/QueryModel/grid/actions/Filter.ts +++ b/packages/components/src/public/QueryModel/grid/actions/Filter.ts @@ -160,8 +160,8 @@ export class FilterAction implements Action { filterType: Filter.IFilterType, rawValue: string | string[] ): { displayValue: string; inputValue: string } { - let value: string, inputValue: string; - const displayParts = [decodePart(columnName), resolveSymbol(filterType)]; + let inputValue: string, value: string; + const displayParts = [columnName, resolveSymbol(filterType)]; const inputDisplayParts = [`"${displayParts[0]}"`, displayParts[1]]; // need to quote column name for input display if (!filterType.isDataValueRequired()) { @@ -210,7 +210,7 @@ export class FilterAction implements Action { actionValueFromFilter(filter: Filter.IFilter, column?: QueryColumn, isReadOnly?: string): ActionValue { const label = column?.shortCaption; - const columnName = filter.getColumnName(); + const columnName = decodePart(filter.getColumnName()); const filterType = filter.getFilterType(); const operator = resolveSymbol(filter.getFilterType()); let value = filter.getValue();