From 5a896b70419f367057eb22d366f1f4fca6795ccd Mon Sep 17 00:00:00 2001 From: XingY Date: Mon, 12 Jan 2026 10:54:19 -0800 Subject: [PATCH 01/20] Multi value text choices --- packages/components/package-lock.json | 12 +- packages/components/package.json | 4 +- .../CalculatedFieldOptions.tsx | 4 +- .../ConditionalFormattingAndValidation.tsx | 2 +- .../components/domainproperties/DomainRow.tsx | 2 +- .../DomainRowExpandedOptions.tsx | 1 + .../domainproperties/PropDescType.ts | 16 +++ .../components/domainproperties/actions.ts | 7 +- .../components/domainproperties/constants.ts | 2 + .../components/domainproperties/models.tsx | 21 +++- .../components/editable/LookupCell.tsx | 4 +- .../internal/components/editable/actions.ts | 5 +- .../internal/components/editable/models.ts | 25 +++-- .../components/forms/detail/DetailDisplay.tsx | 2 +- .../components/forms/input/SelectInput.tsx | 2 +- .../forms/input/TextChoiceInput.tsx | 2 + .../search/FilterFacetedSelector.tsx | 104 ++++++++++++++---- .../components/search/QueryFilterPanel.tsx | 44 ++++---- .../src/internal/components/search/utils.ts | 19 +++- .../internal/renderers/DefaultRenderer.tsx | 2 +- .../internal/renderers/MultiValueRenderer.tsx | 8 +- .../components/src/internal/util/utils.ts | 22 ++-- packages/components/src/public/QueryColumn.ts | 6 + 23 files changed, 235 insertions(+), 81 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index ba5e5982d8..29cedcaa38 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,16 +1,16 @@ { "name": "@labkey/components", - "version": "7.12.0", + "version": "7.13.0-fb-mvtc.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "7.12.0", + "version": "7.13.0-fb-mvtc.4", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.1", + "@labkey/api": "1.45.0-fb-mvtc.2", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", @@ -3535,9 +3535,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.44.1", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.1.tgz", - "integrity": "sha512-VUS4KLfwAsE45A3MnJUU3j97ei0ncQHv6OVVAN3kitID0xe8+mZ7B39zETVye3Dqgwa8TbYvsCp2t46QmBmwVQ==", + "version": "1.45.0-fb-mvtc.2", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.45.0-fb-mvtc.2.tgz", + "integrity": "sha512-26xRLDWTZTOIGvoseGCeLVzMlwftHs6oxOlft6uhdmJpYBdm6+AyK2w+jU0Fns5SaEtaZAGofrBJFi8zCXttCg==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { diff --git a/packages/components/package.json b/packages/components/package.json index 716b7874b0..be9e510058 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "7.12.0", + "version": "7.13.0-fb-mvtc.4", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ @@ -50,7 +50,7 @@ "homepage": "https://github.com/LabKey/labkey-ui-components#readme", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.44.1", + "@labkey/api": "1.45.0-fb-mvtc.2", "@testing-library/dom": "~10.4.1", "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", diff --git a/packages/components/src/internal/components/domainproperties/CalculatedFieldOptions.tsx b/packages/components/src/internal/components/domainproperties/CalculatedFieldOptions.tsx index 25db7d7c16..73223882c0 100644 --- a/packages/components/src/internal/components/domainproperties/CalculatedFieldOptions.tsx +++ b/packages/components/src/internal/components/domainproperties/CalculatedFieldOptions.tsx @@ -12,7 +12,7 @@ import { DOMAIN_FIELD_CLIENT_SIDE_ERROR, DOMAIN_FIELD_VALUE_EXPRESSION, SEVERITY import { DomainField, DomainFieldError, SystemField } from './models'; import { SectionHeading } from './SectionHeading'; import { isFieldFullyLocked, isFieldPartiallyLocked } from './propertiesUtil'; -import { CALCULATED_TYPE, PropDescType } from './PropDescType'; +import { CALCULATED_TYPE, MULTI_CHOICE_TYPE, PropDescType } from './PropDescType'; import { parseCalculatedColumn } from './actions'; // export for jest testing @@ -47,7 +47,7 @@ export const getColumnTypeMap = ( colTypeMap[df.Name] = df.DataType.toUpperCase(); }); domainFields?.forEach(df => { - if (df.dataType.name !== CALCULATED_TYPE.name) { + if (df.dataType.name !== CALCULATED_TYPE.name && df.dataType.name !== MULTI_CHOICE_TYPE.name) { colTypeMap[df.name] = df.dataType.name.toLowerCase() === 'int' ? 'INTEGER' : df.dataType.name.toUpperCase(); } }); diff --git a/packages/components/src/internal/components/domainproperties/ConditionalFormattingAndValidation.tsx b/packages/components/src/internal/components/domainproperties/ConditionalFormattingAndValidation.tsx index b642c6585c..5101302fcc 100644 --- a/packages/components/src/internal/components/domainproperties/ConditionalFormattingAndValidation.tsx +++ b/packages/components/src/internal/components/domainproperties/ConditionalFormattingAndValidation.tsx @@ -206,7 +206,7 @@ export class ConditionalFormattingAndValidation extends PureComponent - {expanded && !isFieldFullyLocked(field.lockType) && !appPropertiesOnly && ( + {expanded && !isFieldFullyLocked(field.lockType) && !appPropertiesOnly && DomainField.allowAdvancedSettings(field) && (