diff --git a/README.md b/README.md index 1e21de6109..aec488683f 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,12 @@ This repository defines npm packages available in the @labkey scope. ## Package listing - + | Package | Status | Description | | --- | --- | --- | | [@labkey/build](packages/build/README.md) | | LabKey client-side build assets. | [@labkey/components](packages/components/README.md) | [![Build Status](https://teamcity.labkey.org/app/rest/builds/buildType:(id:LabKey_Trunk_Premium_InternalSuites_GlassComponentsUnitTest)/statusIcon)](https://teamcity.labkey.org/viewType.html?buildTypeId=LabKey_Trunk_Premium_InternalSuites_GlassComponentsUnitTest) | All components, models, actions, and utility functions for LabKey applications and pages -| [@labkey/eslint-config-base](packages/eslint-config-base/README.md) | | Base ESLint configuration with TypeScript and Prettier support. -| [@labkey/eslint-config-react](packages/eslint-config-react/README.md) | | Extends the base configuration with React support. +| [@labkey/eslint-config](packages/eslint-config/README.md) | | ESLint configuration with TypeScript, React and Prettier support. | [@labkey/test](packages/test/README.md) | [![Build Status](https://teamcity.labkey.org/app/rest/builds/buildType:(id:LabkeyTrunk_ModuleSuites_ApiSuites_LabkeyTestIntegration)/statusIcon)](https://teamcity.labkey.org/viewType.html?buildTypeId=LabkeyTrunk_ModuleSuites_ApiSuites_LabkeyTestIntegration) | Utilities and configurations for running JavaScript tests with LabKey Server. | [@labkey/themes](packages/themes/README.md) | | UI themes for LabKey Server. @@ -44,10 +43,3 @@ You can then import `@labkey/components` in your application as follows: ```js import { Grid } from '@labkey/components'; ``` - -# Linting and Prettifying - -First, install the `@labkey/eslint-config-base` or `@labkey/eslint-config-react` as appropriate. -Once configured, you can run eslint in a variety of ways as described in the [README](packages/eslint-config-base/README.md) for eslint-config-base - - diff --git a/packages/build/README.md b/packages/build/README.md index 2d10f73914..e125faf2a3 100644 --- a/packages/build/README.md +++ b/packages/build/README.md @@ -13,6 +13,3 @@ npm install @labkey/build The `webpack` directory has configs that can be used to build LabKey client-side React pages. See the [README](./webpack/README.md) in that directory for further information. - -## Release Notes -Release notes for this package are available [here](./releaseNotes/build.md). diff --git a/packages/build/releaseNotes/build.md b/packages/build/releaseNotes/build.md deleted file mode 100644 index 47f5d51858..0000000000 --- a/packages/build/releaseNotes/build.md +++ /dev/null @@ -1,334 +0,0 @@ -# @labkey/build - -### version 9.0.0 -*Released*: 9 March 2026 -- Update TypeScript compiler `lib` and `target` options to `"ES2023"' - -### version 8.9.0 -*Released*: 26 February 2026 -- Package updates - -### version 8.8.0 -*Released*: 4 February 2026 -- Package updates - -### version 8.7.0 -*Released*: 5 November 2025 -- Package updates - -### version 8.6.0 -*Released*: 11 July 2025 -- Package updates - -### version 8.5.0 -*Released*: 21 April 2025 -- Package updates - -### version 8.4.0 -*Released*: 17 February 2025 -- Add `source-map-loader` as a dependency -- Add webpack rule for processing source maps using `source-map-loader`. This is set up to specifically target `@labkey` packages. - -### version 8.3.0 -*Released*: 5 November 2024 -- Package updates - -### version 8.2.0 -*Released*: 31 October 2024 -- Add `__mocks__` to `tsconfig.json` excludes - -### version 8.0.0 -*Released*: 29 October 2024 -- support "dependencies" on entry points -- remove "passwordGauge.js", "vis/vis", and "vis/genericChart/genericChartHelper.js" dependencies from default generated view.xml -- retain "clientapi" dependency in default generated view.xml - -### version 7.7.1 -*Released*: 10 September 2024 -- Add `date-fns/format` and `date-fns-tz` to list of external packages. - -### version 7.7.0 -*Released*: 9 September 2024 -- Update external dependencies for drag-n-drop packages. - -### version 7.6.0 -*Released*: 29 August 2024 -- Remove moment-specific processing in package bundling. -- Update external dependencies for these date packages. - -### version 7.5.0 -*Released*: 27 July 2024 -- Add option to add requiresLogin and requiresNoPermission to entry points - -### version 7.4.0 -*Released*: 24 July 2024 -- Package updates -- Update TypeScript compiler `target` option to `"ES2021"' -- Update TypeScript compiler `lib` option to `["ES2021", "DOM", "DOM.Iterable"]` - -### version 7.3.0 -*Released*: 26 March 2024 -- Package updates - -### version 7.2.0 -*Released*: 13 March 2024 -- Issue 49870: add passwordGauge.js dependency to app.template.xml - -### version 7.1.0 -*Released*: 29 February 2024 -- add `isAppview` attribute to app.template.xml - -### version 7.0.2 -*Released*: 27 December 2023 -- Update TypeScript compiler `lib` option to `["es2019", "dom", "dom.iterable"]` - -### version 7.0.1 -*Released*: 26 December 2023 -- Issue 49331: Include `nonce` in `app.template.xml` to support CSP in `appDev.view` - -### version 7.0.0 -*Released*: 20 December 2023 -- Replace `react-hot-loader` with `react-refresh` -- Add dependency on `@pmmmwh/react-refresh-webpack-plugin` for `ReactRefreshWebpackPlugin` -- Add `@remix-run/router`, `normalizr` and `react-router-dom` to externals - -### version 6.16.1 -*Released*: 20 October 2023 -* Export @labkey/api path in link mode - -### version 6.16.0 -*Released*: 13 October 2023 -* Add @labkey/ehr to start-link paths -* Make start-link paths optional - -### version 6.15.0 -*Released*: 21 September 2023 -* Package updates - -### version 6.14.0 -*Released* : 26 July 2023 -* Add JSX files to loaders test. - -### version 6.13.0 -*Released*: 12 July 2023 -* Add support for @labkey/premium/search package - -### version 6.12.0 -*Released* : 6 June 2023 -* declare `@testing-library` as externals. -* skip processing of `**/*.*test.*` files - -### version 6.11.0 -*Released* : 23 May 2023 -* webpack updates for `@labkey/premium/entities` package - * move of `@labkey/components/entities` from ui-components repo to `@labkey/premium/entities` - -### version 6.10.0 -*Released*: 14 April 2023 -* Exclude `.ispec.tsx?` files from compilation -* Remove `redux-actions` from externals dependencies - -### version 6.9.0 -*Released*: 6 January 2023 -* Package updates -* Disable "collapse_vars" minification optimization in production build - -### version 6.8.1 -*Released*: 30 December 2022 -* Update path for premium package src after code move within that repo - -### version 6.8.0 -*Released*: 19 December 2022 -* webpack updates for `@labkey/premium/storage` package - * move of `@labkey/freezermanager` from inventory module to `@labkey/premium/storage` - -### version 6.7.0 -*Released*: 16 December 2022 -* webpack updates for `@labkey/premium/workflow` package - * move of `@labkey/workflow` from sampleManagement module to `@labkey/premium/workflow` - -### version 6.6.0 -*Released*: 12 December 2022 -* webpack updates for `@labkey/premium/eln` package - * move of `@labkey/eln` from labbook module to `@labkey/premium/eln` - -### version 6.5.0 -*Released*: 8 December 2022 -* webpack updates for `@labkey/premium` package - * move of `@labkey/components/assay` subpackage to `@labkey/premium/assay` - -### version 6.4.0 -*Released*: 2 November 2022 -* Package updates - -### version 6.3.2 -*Released*: 26 October 2022 -* webpack alias fix for `npm run start` - -### version 6.3.1 -*Released*: 20 October 2022 -* webpack updates for @labkey/components `assay` subpackage - * add `@labkey/components/assay` alias for `npm run start-link` - * add `@labkey/components/assay` to "externals" to keep it out of bundles - -### version 6.3.0 -*Released*: 10 October 2022 -* Revert changes for build packages as ES Modules -* webpack updates for @labkey/components `entities` subpackage - * add `@labkey/components/entities` alias for `npm run start-link` - * add `@labkey/components/entities` to "externals" to keep it out of bundles - * add `BundleAnalyzerPlugin` to package.config.js - -### version 6.2.1 -*Released*: 23 September 2022 -* Update typescript_dev module loader rule regex to match Windows and Unix path operators. - -### version 6.2.0 -*Released*: 14 September 2022 -* Build packages as ES Modules -* Add babel.config.js for jest tests - * Needed for any package or app that consumes our packages, see the note in the file for more info. -* Add optional `ANALYZE` flag to our build - * Add `ANALYZE=true` to build args to enable the webpack bundle analyzer - -### version 6.1.7 -*Released*: 30 August 2022 -* Add CircularDependencyPlugin to package.config.js - -### version 6.1.6 -*Released*: 18 August 2022 -* Pin versions to latest equivalent version - -### version 6.1.5 -*Released*: 22 July 2022 -* Bump webpack, wepback-cli, webpack-dev-server dependencies - -### version 6.1.4 -*Released*: 21 July 2022 -* Add additional packages to externals -* Remove reactn from externals - -### version 6.1.3 -*Released*: 17 May 2022 -* Remove `moment-jdateformatparser` from external dependency list. - -### version 6.1.2 -*Released*: 9 May 2022 -* Add remirror and redux dependencies to package build excludes -* Add eln to aliases in dev build - -### version 6.1.1 -*Released:* 28 April 2022 -* Exclude test files from dev build - -### version 6.1.0 -*Released*: 27 April 2002 -* Add shared package build (package.config.js) -* Update tsconfig.json -* Add eln path to shared app builds - -### version 6.0.0 -*Released*: 27 March 2022 -* Package updates. -* Refactor builds to use `sass` instead of `node-sass`. -* Suppress logging of scss warnings in development builds. Continue to be logged in production builds. - -### version 5.0.1 -*Released*: 21 March 2022 -* Bump node-sass to 7.0.1 -* Bump sass-loader to 12.6.0 - -### version 5.0.0 -*Released*: 5 January 2022 -* Migrate webpack-dev-server from v3 to v4 -* Update webpack, npm v8 compatible package-lock.json - -### version 4.0.1 -*Released*: 1 September 2021 -* Dependabot package updates - -### version 4.0.0 -*Released*: 9 June 2021 -* Move build output to resources/gen - * This is a breaking change because this change requires you to update the path you import your scripts from if you - use `LABKEY.requiresScript` or `dependencies.add` in a JSP. Examples: - * `LABKEY.requiresScript('/gen/', () => {})` -> `LABKEY.requiresScript('gen/', () => {})` - * `dependencies.add("/gen/");` -> `dependencies.add("gen/");` - -### version 3.1.0 -*Released*: 3 June 2021 -* Use current working directory to determine module name and modules directory - * This removes the need for LK_MODULE and LK_MODULE_CONTAINER build vars - -### version 3.0.0 -*Released*: 1 June 2021 -* Package updates - -### version 2.1.0 -*Released*: 10 March 2021 -* Changes to support webpack aliases from /src and theme/SCSS assets - * update to use /src path for LINK - * update to include aliases for theme/scss assets (for both dev/prod build and watch case) - * update to watchOptions ignored to use undefined instead of empty array in LINK case - -### version 2.0.1 -*Released 5 March 2021* -* Fix generation of file paths in lib.template.xml - -### version 2.0.0 -*Released 4 March 2021* -* Upgrade to Webpack 5 - * Also upgraded all other build plugins -* Use babel loaders instead of ts-loader for typescript -* Refactor constants to re-use more configurations across builds -* Add tsconfig.json - -### version 1.1.2 -*Released*: 12 January 2021 -* Add minify options to HtmlWebpackPlugin configurations - -### version 1.1.1 -*Released*: 12 January 2021 -* Remove, no longer used, postcss-loader - -### version 1.1.0 -*Released*: 11 January 2021 -* Add option to add permissionClasses to entry points - -### version 1.0.0 -*Released*: 7 January 2021 -* postcss-loader: inline the postcss.config.js properties - -### version 0.5.1 -*Released*: 22 December 2020 -* Dependabot package updates - -### version 0.5.0 -*Released*: 16 December 2020 -* Item 8226: Add support for webpack aliasing of @labkey/workflow package - -### version 0.4.1 -*Released*: 11 November 2020 -* Add tsconfig path for freezerManagerPath - -### version 0.4.0 -*Released*: 28 October 2020 -* Add explicit package.json dependencies for @labkey/build - -### version 0.3.0 -*Released*: 28 October 2020 -* Generate files into views/gen instead of views for better cleaning and caching possibilities - -### 0.2.0 -*Released*: 27 October 2020 -* Use a LABKEY_UI_COMPONENTS_HOME environment variable from the user's setup to define the - path for the webpack aliasing of @labkey packages when using "npm run start-link" - -### version 0.1.0 -*Released*: 26 October 2020 -* Initial package contents with webpack config assets ported over from platform/webpack (with additions to fit scenarios from other modules) -* Conditionalize labkeyUIComponentsPath in webpack/constants.js based on LK_MODULE_CONTAINER -* Add optional npm start port WATCH_PORT webpack env var -* Add optional LINK webpack env var to toggle @labkey/components resolve alias path -* Add optional PROD_SOURCE_MAP webpack env var to allow a module to override the default devtool setting of 'nosources-source-map' -* Allow for entryPoint configs to define "template" property for use in app.view.xml diff --git a/packages/components/README.md b/packages/components/README.md index f925f02a3a..ec3d9b94db 100644 --- a/packages/components/README.md +++ b/packages/components/README.md @@ -1,6 +1,6 @@ # @labkey/components -[API Docs](./docs/public.md) | [Change Log](./releaseNotes/components.md) | [License](./LICENSE.txt) | [![Build Status](https://teamcity.labkey.org/app/rest/builds/buildType:(id:LabKey_Trunk_Premium_InternalSuites_GlassComponentsUnitTest)/statusIcon)](https://teamcity.labkey.org/viewType.html?buildTypeId=LabKey_Trunk_Premium_InternalSuites_GlassComponentsUnitTest) +[API Docs](./docs/public.md) | [License](./LICENSE.txt) | [![Build Status](https://teamcity.labkey.org/app/rest/builds/buildType:(id:LabKey_Trunk_Premium_InternalSuites_GlassComponentsUnitTest)/statusIcon)](https://teamcity.labkey.org/viewType.html?buildTypeId=LabKey_Trunk_Premium_InternalSuites_GlassComponentsUnitTest) This package contains React components, models, actions, and utility functions for LabKey applications and pages. @@ -32,7 +32,7 @@ npm install --legacy-peer-deps ``` This will install all dependencies for the component packages. -Once this is complete you can utilize npm to build and test the package. +Once this is complete, you can use npm to build and test the package. ```sh npm run build @@ -40,17 +40,15 @@ npm test ``` ### Technologies -For doing development of LabKey UI Components, you should be familiar with the following technologies: -* [React](https://reactjs.org/) - used for building the UI components -* [Bootstrap](https://getbootstrap.com/docs/3.4/) - for consistent, responsive styling -* [React-Bootstrap](https://5c507d49471426000887a6a7--react-bootstrap.netlify.com/) - bootstrap styling for react components -* [Typescript](https://www.typescriptlang.org/docs/home.html) - for typing of javascript objects -* [Immer](https://immerjs.github.io/immer/docs/introduction) - for immutability of normal JavaScript objects, arrays, Sets, and Maps. -* [Jest](https://jestjs.io/docs/en/getting-started.html) - for unit testing of components -* [Enzyme](https://airbnb.io/enzyme/) - testing utility library - -Note that we are currently not using the latest versions of Bootstrap and React-Bootstrap, amongst others, because there -have been some significant changes between our current version and the latest version of these libraries, so when looking for docs, +For doing development of @labkey/components, you should be familiar with the following technologies: +* [React](https://react.dev/) – used for building the UI components +* [Bootstrap](https://getbootstrap.com/docs/3.4/) – for consistent, responsive styling +* [Typescript](https://www.typescriptlang.org/) – for typing of JavaScript objects +* [Immer](https://immerjs.github.io/immer/) – for immutability of normal JavaScript objects, arrays, Sets, and Maps. +* [Jest](https://jestjs.io/docs/en/getting-started.html) – for unit testing of components + +Note that we are currently not using the latest versions of Bootstrap, amongst others, because there have been some +significant changes between our current version and the latest version of these libraries. When looking for docs, be sure to look at the ones corresponding to the version we are using. ### Local Development diff --git a/packages/components/docs/localDev.md b/packages/components/docs/localDev.md index 2d82196fc1..9f86f5f22e 100644 --- a/packages/components/docs/localDev.md +++ b/packages/components/docs/localDev.md @@ -9,12 +9,6 @@ some guides to best practices for doing front-end development: * [QueryModel API](./QueryModel.md) * [Jest Testing Recommendations](./jest.md) -Generally, when doing development, you should: - -* Place source code in a `src` subdirectory (note the distinction between the `internal` code and `public` code. -* Place typing files in a `src/typings` subdirectory. -* Add documentation a-plenty and update the package [release notes](../releaseNotes/components.md) as you add/fix/update the package. - ### Local Development When making modifications to the existing package, you should: @@ -23,8 +17,6 @@ next [SemVer](https://semver.org/) version that will include your changes, `fb-m feature branch with underscores replaced by hyphens and the `.0` is just a starting point for the prerelease versioning. This `.0` version will be incremented with each alpha package version you want to publish and test in your LabKey module. See [below](#version-numbering) for more on version numbering. -* Update the `releaseNotes/labkey/components.md` file to document what is changing in this version. Note that the final release -version number and date will be set just before you merge your feature branch. * See the [publishing](#publishing) section for how to publish a package. #### Testing @@ -123,7 +115,7 @@ npm run lint-fix "./src/components/**/*" ``` ### Package Bundle Size -Periodically we should review the @labkey/components package bundle size to make sure that there +Periodically, we should review the @labkey/components package bundle size to make sure that there aren't any inadvertent dependencies or files getting included in the bundle. To do this, we have used the `webpack-bundle-analyzer` npm package. See [docs](https://github.com/webpack-contrib/webpack-bundle-analyzer) for more details. @@ -188,7 +180,6 @@ prerelease command to `npm version prerelease` and it will bump the alpha versio way as before. 1. Once your feature branch is complete and ready to merge, you do one more package version update to what will be the "release" version (i.e. `0.2.0` in this scenario). -1. First update the release notes for the package for the version you're about to publish. Commit these changes. 1. Now you can set the package version by once again running the `npm version` command, however, this time the first argument will be one of `patch`, `minor`, or `major` depending on the change you've made. See [npm version](https://docs.npmjs.com/cli/v8/commands/npm-version?v=true) command documentation for more details. @@ -201,24 +192,23 @@ alpha versions of that package for this feature branch. ### labkey-ui-components 1. Do one final merge of the `develop` branch into your feature branch for `labkey-ui-components`. -2. Run one final lint of your changes, `npm run lint-branch-fix`, and review the changes applied. -3. Update the `releaseNotes/labkey/components.md` file with what will be your release version number and release date. -4. Run the commands to build and test: `npm run build`, `npm test`. -5. Push your final set of commits from `labkey-ui-components` to GitHub so that TeamCity can do a final run of the jest tests. -6. Message the Frontend dev room chat about starting the pull request merge. This is to make sure two people aren't - merging at the same time which might result in conflicting package version numbers. -7. Check on the [TeamCity](https://teamcity.labkey.org) build status and jest test status (also shown in the PR). -8. Run the command to publish: `npm publish`. -9. Merge the pull requests for `labkey-ui-components`. -10. Message the Frontend dev room chat that the merge is complete. +1. Run one final lint of your changes, `npm run lint-branch-fix`, and review the changes applied. +1. Run the commands to build and test: `npm run build`, `npm test`. +1. Push your final set of commits from `labkey-ui-components` to GitHub so that TeamCity can do a final run of the jest tests. +1. Message the Frontend dev room chat about starting the pull request merge. This is to make sure two people aren't + merging at the same time, which might result in conflicting package version numbers. +1. Check on the [TeamCity](https://teamcity.labkey.org) build status and jest test status (also shown in the PR). +1. Run the command to publish: `npm publish`. +1. Merge the pull requests for `labkey-ui-components`. +1. Message the Frontend dev room chat that the merge is complete. ### LabKey modules 1. Update any LabKey module `package.json` files where you are using / applying these changes with this final release version number (then do the regular `npm install --legacy-peer-deps` for that module, build, etc. and push those -`package.json` and `package-lock.json` file changes to github as well). -2. Merge the PRs for your LabKey module changes. -3. Remove any of the alpha package versions from [Artifactory](https://labkey.jfrog.io/artifactory/webapp/#/home) +`package.json` and `package-lock.json` file changes to GitHub as well). +1. Merge the PRs for your LabKey module changes. +1. Remove any of the alpha package versions from [Artifactory](https://labkey.jfrog.io/ui) that you had published during development for this feature branch. - To do this all at once and for all packages, use the `prugeNpmAlphaVersions` gradle task as follows: ```commandline @@ -233,7 +223,7 @@ that you had published during development for this feature branch. - Alternatively, you can do this manually and one at a time: 1. Navigate to the `@labkey/components` [tree node](https://labkey.jfrog.io/artifactory/webapp/#/artifacts/browse/tree/General/libs-client-local/@labkey/components/-/@labkey) of the `libs-client-local` artifact. - 1. Right click on the name of the alpha package version in the tree on the left and choose `delete` (or use the + 1. Right-click on the name of the alpha package version in the tree on the left and choose `delete` (or use the `Actions > Delete` in the upper right), note that you must be logged in to see this option. ## Making hotfix patches to a release branch @@ -247,11 +237,11 @@ LabKey server. There are a few extra steps in this process, described below: That is, if the module uses `0.41.2`, but we have already produced `0.41.3` and `0.41.4`, you need to use `0.41.4` as the branch starting point since you'll presumably be making another bug fix release and can't use the versions already published. 1. Once you know that package version number, track down the commit hash for it in - the [github commit list](https://github.com/LabKey/labkey-ui-components/commits/develop) off of the develop branch. + the [GitHub commit list](https://github.com/LabKey/labkey-ui-components/commits/develop) off of the develop branch. 1. Create the release branch using that commit hash, `git checkout -b release20.3-SNAPSHOT `, and - push that release branch to github. + push that release branch to GitHub. 1. Create a new hotfix branch off of that new release branch, `git checkout -b 20.3_fb_myFeatureBranchWithFixes`. -1. Use the regular process to develop and test your changes and push those changes up to github. +1. Use the regular process to develop and test your changes and push those changes up to GitHub. 1. Create the pull request from your new hotfix feature branch and set the target of the pull request to the release branch. 1. After all code review and triage is complete and you are ready to merge, do the regular merge steps for `labkey-ui-components` (see the steps in the section above). Note that the new release version you will use for your changes @@ -268,5 +258,5 @@ LabKey server. There are a few extra steps in this process, described below: 1. Create a new branch and merge in the hotfix changes: 1. `git checkout -b fb_mergeFrom203` 1. `git merge release20.3-SNAPSHOT` - 1. Treat this new branch as a regular feature branch off of develop (i.e. publish an alpha package to test in platform/etc., + 1. Treat this new branch as a regular feature branch off of develop (i.e., publish an alpha package to test in platform/etc., review TeamCity results, get code review, merge as usual using the steps in the section above). diff --git a/packages/components/releaseNotes/archived/base.md b/packages/components/releaseNotes/archived/base.md deleted file mode 100644 index 6d120a0d3d..0000000000 --- a/packages/components/releaseNotes/archived/base.md +++ /dev/null @@ -1,217 +0,0 @@ -# @glass/base - -Base components, models, and utility functions for LabKey applications and pages - -## Release Notes ## - -### version 0.23.0 -*Released*: 22 November 2019 -* port FilesListing from Biologics - -### version 0.22.1 -*Released*: 19 November 2019 -* Change styling of DeleteIcon - -### version 0.22.0 -*Released*: 18 November 2019 -* Section component - make title prop optional -* schemas.ts - add core.Users table to default set of SchemaQuerys - -### version 0.21.2 -*Released*: 13 November 2019 -* export WHERE_FILTER_TYPE - -### version 0.21.1 -*Released*: 8 November 2019 -* Item 6493: LabelHelpTip updates for size, customStyle, required, and iconComponent props -* Fix for buildURL helper to pass LABKEY.container.path as default instead of undefined - -### version 0.21.0 -*Released*: 5 November 2019 -* Modify getImportURL for AssayDefinitionModel to use the sample model's filters if present -* Add QueryGridModel properties for hideEmptyViewSelector and hideEmptyChartSelector -* Add DragDropHandle, DeleteIcon and FieldExpansionToggle components for use when rearranging -fields with properties (factoring out of domainproperties) - -### version 0.20.2 -*Released*: 5 November 2019 -* Fix Issue 38186 - - QueryGridModel.getAllColumns() now uses column metadata from the current view when possible. - -### version 0.20.1 -*Released*: 25 October 2019 -* Added optional styling property for WizardNavButtons.tsx - - -### version 0.20.0 -*Released*: 24 October 2019 -* Add formatDate, formatDateTime - -### version 0.19.0 -*Released*: 26 September 2019 -* Add isFiltered method to QueryGridModel for better support of selection on filtered grids - -### version 0.18.0 -*Released*: 20 September 2019 -* Fix issue 38127: All number fields are treated as double fields when imported from an xls for preview grid - -### version 0.17.0 -*Released*: 19 September 2019 -* Add getIconURL helper for QueryInfo - -### version 0.16.0 -*Released*: 18 September 2019 -* Add TESTS_ONLY_RESET_DOM_COUNT - * This is a tests only method that allows us to reset the counter used to generate unique ids, this way snapshot - tests have the same results when run in a suite or individually. -* QueryGridModel: Add `reportId` as a default URL param. -* Remove incorrect ImageProps and Image definitions from react-bootstrap.d.ts -* Remove unused imports in various stories. - -### version 0.15.3 -*Released*: 17 September 2019 -* Add constants for sampleManagement schema - -### version 0.15.2 -*Released*: 9 September 2019 -* Updated LabelHelpTip to make id attribute a property -* Updated AddEntityButton to include LabelHelpTip and associated optional properties -* added AddEntityButton story - -### version 0.15.1 -*Released*: 6 September 2019 -* Add standard button classes to AddEntityButton - -### version 0.15.0 -*Released*: 3 September 2019 -* move AssayProtocolModel (and related actions) from base to domainproperties -* add FileAttachmentForm option to skipPreviewGrid display - -### version 0.14.1 -*Released*: 21 August 2019 -* Small style update to labelHelpTip - -### version 0.14.0 -*Released*: 16 August 2019 -* add LoadingModal - -### version 0.13.0 -*Released*: 16 August 2019 -* update @labkey/dependencies version to 0.0.8 -* export getActionErrorMessage method for consistent error message display after an action has failed. -* update QueryGridMode.getFilters to add in baseFilters even if a key value is provided (to support overriding -a default filter that limits the set of values such that it may not include the key given, e.g., for assay runs -that have been replaced) -* change signature of fileMatchesAcceptedFormat to take a file name instead of a File (since that's all we use) -* Refactor FileAttachmentForm to accept a list of initial file names to show and initial preview data -* add getServerFilePreview method for retrieving preview data of file already on the server -* add optional parameter to getActionErrorMessage to indicate if the refresh suggestion should be shown or not. - -### version 0.12.1 -*Released*: 15 August 2019 -* add shownInDetailsView, getDetailsDisplayColumns and getUpdateDisplayColumns to QueryGridModel - -### version 0.12.0 -*Released*: 13 August 2019 -* add getUserProperties function (which calls user-getUserProperties API) -* change the DesignAssayPermission package path for move to assay module (from study) - -### version 0.11.2 -*Released*: 8 Aug 2019 -* add css class for DetailEditing panel divider - -### version 0.11.1 -*Released*: 31 July 2019 -* Update to @labkey/dependencies version 0.0.7 -* export processSchemas for usage in domainproperties package - -### version 0.11.0 -*Released*: 24 July 2019 -* port FileAttachmentFormModel and Footer from Biologics -* add getDomainColumns() to AssayDefinitionModel -* export SubMenuItemProps and ISubItem for Biologics use cases -* Fix [issue 38011](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=38011) - properly detect -when a lookup field has not changed when editing values in the grid. - -### version 0.10.0 -*Released*: 17 July 2019 -* add GridMessages to Grid component -* add QCAnalyst permission and add qcEnabled flag to AssayProtocolModel -* enables hot reloading of CSS in Storybook for all packages - -### version 0.9.0 -*Released*: 17 July 2019 -* Add LabelHelpTip as a general component for adding help tips and popovers next to a form label - -### version 0.8.2 -*Released*: 10 July 2019 -* Modify ConfirmModal properties so most are optional - -### version 0.8.1 -*Released*: 10 July 2019 -* Export misc assay models and date utility functions for Biologics usages (AssayDomainTypes, AssayLink, AssayUploadTabs, getDateFormat, isSampleLookup) -* Port recent changes to glass components from Biologics dev and bug fixes (SubMenuItem popover key, AssayDefinitionModel functions for getting sample columns, add WhereFilterType) - -### version 0.8.0 -*Released*: 8 July 2019 -* Add DesignSampleSetPermission to PermissionTypes - -### version 0.7.0 -*Released*: 3 July 2019 -* Add unorderedEqual for checking of two arrays have the same elements in any order -* export dismissNotifications -* add optional parameters to SelectionMenuItem for maximum number of selected items and for specifying noun used in messages -* add method getCommonDataValues to create a map containing the data values shared across multiple rows of data (represented as a map) -* add getPkData method to QueryGridModel - -### version 0.6.0 -*Released*: 19 June 2019 -* Include FilePreviewGrid functionality with FileAttachmentForm -* Add createGeneralAssayDesign, importGeneralAssayRun, and inferDomainFromFile actions and InferDomainResponse model -* port Cards (renamed from Dashboard) and WizardNavButtons from Biologics -* new ToggleButtons component -* add 'Download Template' button option to FileAttachmentForm component - -### version 0.5.3 -*Released*: 05 June 2019 -* Use release version of @labkey/dependencies - -### version 0.5.1 -*Released*: 05 June 2019 -* Update external package versions - -### version 0.5.0 -*Released*: 04 June 2019 -* port SVGIcon and CreatedModified from Biologics -* port AssayDefinitionModel and fetchAllAssays from Biologics -* ManageDropdownButton and SelectionMenuItem - -### version 0.4.0 -*Released*: 03 June 2019 -* port caseInsensitive, similaritySortFactory, spliceURL functions from Biologics -* port AssayProtocolModel and fetchProtocol model from Biologics -* export datePlaceholder function -* export capitalizeFirstChar utility method -* Add method inserting columns into QueryInfo - -### version 0.3.0 -*Released*: 03 June 2019 -* Add ConfirmModal component - -### version 0.2.0 -*Released*: 22 May 2019 -* PaginationButtons component and PaginationButtonsProps - -### version 0.1.8 -*Released*: 25 April 2019 -* Add FileAttachmentForm and related components - -### version 0.1.7 -*Released*: 23 April 2019 -* React bootstrap typings - augment @types/react-bootstrap and make shareable - -### version 0.1.6 -*Released*: 16 April 2019 -* initial documented release - - diff --git a/packages/components/releaseNotes/archived/domainproperties.md b/packages/components/releaseNotes/archived/domainproperties.md deleted file mode 100644 index 9e834ceb33..0000000000 --- a/packages/components/releaseNotes/archived/domainproperties.md +++ /dev/null @@ -1,245 +0,0 @@ -# @glass/domainproperties - -Domain property related components for LabKey domains - -## Release Notes ## - -### version 0.0.55 -*Released*: 22 November 2019 -* Package patch update for changes to @glass/base v0.23.0 - -### version 0.0.54 -*Released*: 19 November 2919 -Package patch update for changes to @glass/base v0.22.1 - -### version 0.0.53 -*Released*: 19 November 2019 -* Issues 39033-39035: Fix SM assay designer usages with extra app validation for sample lookup field - -### version 0.0.52 -*Released*: 18 November 2019 -* Package patch update for changes to @glass/base v0.22.0 - -### version 0.0.51 -*Released*: 13 November 2019 -* Package patch update for changes to @glass/base v0.21.2 - -### version 0.0.50 -*Released*: 12 November 2019 -* Item 6528: More assay and domain designer feedback changes, bug fixes, and polish - -### version 0.0.49 -*Released*: 8 November 2019 -* Item 6493: Assay designer feedback changes, bug fixes, and polish -* Package patch update for changes to @glass/base 0.21.1 - -### version 0.0.48 -*Released*: 5 November 2019 -* Use some css classes factored out into base for DomainRow and DomainForm - -### version 0.0.47 -*Released*: 5 November 2019 -* Package patch update to fix downstream package.lock files - -### version 0.0.46 -*Released*: 5 November 2019 -* Package patch update for changes to @glass/base v0.20.2 - -### version 0.0.45 -*Released*: 31 October 2019 -* Item 6451: Domain designer feedback changes, bug fixes, and polish -* Issue 38685: UX Assay Designer: Default values for select fields -* Issue 38771: Assay designer: default value type not set/respected for assay properties - -### version 0.0.44 -*Released*: 25 October 2019 -* Update AssayDesignerPanels & DomainForm to accept a header renderer -* Added Sample_Type for simplified lookup to SampleSets -* Added newDesignFields property to initialize the DomainForm with when creating -* Added RANGE_URIS constant to expose range uri values - -### version 0.0.43 -*Released*: 24 October 2019 -* Package patch update for changes to @glass/base v0.20.0 - -### version 0.0.42 -*Released*: 23 October 2019 -* Item 5917: Conditional Formatting and Property Validators - * Add Conditional Formatting and Property Validators section to expanded Domain Row - * Add Conditional Formatting options dialog - * Add Regex Validator options dialog - * Add Range Validator options dialog for appropriate data types - * Add Default Values options to Advanced Settings - -### version 0.0.41 -*Released*: 17 October 2019 -* Item 6199: support other assay provider types in AssayDesignerPanels and AssayPropertiesPanel - * update fetchProtocol to work for getting template based on provider name and for copy assay scenario - * remove default AssayProtocolModel creation from AssayDesignerPanels component and require a model be passed in as props - * AssayPropertiesPanel support for additional top-level properties and conditional display of those props based on provider type - * remove createGeneralAssayDesign helper in favor of saveAssayDesign (which takes an AssayProtocolModel) - * better helpURL support for AssayDesignerPanels and AssayPropertiesPanel - * support domain lookup field type support for locked fields (i.e. should show lookup option values, even if they are not in the virtual schema) - * rename lookup fields QuerySelect to TargetTableSelect to avoid confusion with other QuerySelect component - * for assays, set field lockType based on assay protocol mandatory fields list - -### version 0.0.40 -*Released*: 26 September 2019 -* Package patch update for changes to @glass/base v0.19.0 - -### version 0.0.39 -*Released*: 26 September 2019 -* Add container attribute to IDomainDesign and DomainDesign -* Add container attribute to AssayProtocolModel - -### version 0.0.38 -*Released*: 20 September 2019 -* Package patch update for changes to @glass/base v0.18.0 - -### version 0.0.37 -*Released*: 19 September 2019 -* Package patch update for changes to @glass/base v0.17.0 - -### version 0.0.36 -*Released*: 17 September 2019 -* Update @glass/base dependency to 0.16.0 - -### version 0.0.35 -*Released*: 17 September 2019 -* Package patch update for changes to @glass/base v0.15.3 - -### version 0.0.34 -*Released*: 9 September 2019 -* updated jest snaps - -### version 0.0.33 -*Released*: 6 September 2019 -* Sticky field headers -* Drag n drop handlers and updated drag n drop styling -* Expand row on type or name field click -* Updated header and empty domain state -* Search field and handler -* Remove attachment and file options where not applicable - -### version 0.0.32 -*Released*: 3 September 2019 -* AssayPropertiesPanel for top level assay design properties for create/update (note: currently only supports the assay options relevant for the Sample Management app) -* move AssayProtocolModel (and related actions) from base to domainproperties -* add saveAssayDesign function which calls assay-saveProtocol.api -* DomainForm updates for allowing panel expand/collapse, mark as complete, and infer from file empty state -* AssayDesignerPanels component to wrap AssayPropertiesPanel with DomainForms for General assay domains (batch, run, data) - -### version 0.0.31 -*Released*: 21 August 2019 -* Epic 6000: Domain designer Advanced Settings. - - Advanced settings added to each domain property - - PHI and various display settings - -### version 0.0.30 -*Released*: 18 August 2019 -* Epic 5859: Error validation and display in domain designer - - Add/highlight/clear client side warnings on invalid names - - Add/highlight/clear server side errors - - Banner messages for both client and server side warnings/errors - -### version 0.0.29 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.14.0 - -### version 0.0.28 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.13.0 - -### version 0.0.27 -*Released*: 15 August 2019 -* Package patch update for changes to @glass/base v0.12.1 - -### version 0.0.26 -*Released*: 13 August 2019 -* Package patch update for changes to @glass/base v0.12.0 - -### version 0.0.25 -*Released*: 8 Aug 2019 -* Package patch update for changes to @glass/base v0.11.2 - -### version 0.0.24 -*Released*: 31 July 2019 -* Item 5718: Domain designer lookup field support - -### version 0.0.23 -*Released*: 24 July 2019 -* Package patch update for changes to @glass/base v0.11.0 - -### version 0.0.22 -*Released*: 17 July 2019 -* Package patch update for changes to @glass/base v0.10.0 - -### version 0.0.21 -*Released*: 17 July 2019 -* Epic 5862: Domain designer type dependent fields. - - Add data type dependent section to expanded row fields. - - Numeric, boolean, text and date/time sections added. - -### version 0.0.20 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.2 - -### version 0.0.19 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.1 - -### version 0.0.18 -*Released*: 8 July 2019 -* Package patch update for changes to @glass/base v0.8.0 - -### version 0.0.17 -*Released*: 3 July 2019 -* Package patch update for changes to @glass/base v0.7.0 - -### version 0.0.16 -*Released*: 19 June 2019 -* Add DomainForm boolean property for showHeader, default true - -### version 0.0.15 -*Released*: 05 June 2019 -* Update package for changes to @glass/base v0.5.2 - -### version 0.0.13 -*Released*: 05 June 2019 -* Update external package versions - -### version 0.0.12 -*Released*: 04 June 2019 -* Update package for changes to @glass/base v0.5.0 - -### version 0.0.11 -*Released*: 03 June 2019 -* Update package for changes to @glass/base v0.4.0 - -### version 0.0.10 -*Released*: 03 June 2019 -* Epic 5420: Domain Designer, allow add/remove of field rows in domain - - updated display for domain state with no fields - - including drag-n-drop to reorder fields -* Epic 5716: Domain Designer, add expended field inputs for description, url, label, and import aliases - -### version 0.0.9 -*Released*: 22 May 2019 -* Package patch update for changes to @glass/base v0.2.0 - -### version 0.0.8 -*Released*: 26 April 2019 -* Epic 5419: Domain Designer, Edit standard settings name/type/required - - initial version of the DomainForm and DomainRow components - - including hot reloading of scss changes for the glass domainproperties package - - initial stories for DomainFieldsDisplay and DomainForm for storybook - -### version 0.0.7 -*Released*: 25 April 2019 -* Add FileAttachmentForm and related components to @glass/base - -### version 0.0.5 -*Released*: 8 April 2019 -* initial documented release - - diff --git a/packages/components/releaseNotes/archived/navigation.md b/packages/components/releaseNotes/archived/navigation.md deleted file mode 100644 index 4d8e899fad..0000000000 --- a/packages/components/releaseNotes/archived/navigation.md +++ /dev/null @@ -1,150 +0,0 @@ -# @glass/navigation - -Application navigation elements and functions - -## Release Notes ## - -### version 0.4.15 -*Released*: 26 September 2019 -* Package patch update for changes to @glass/base v0.19.0 - -### version 0.4.14 -*Released*: 20 September 2019 -* Package patch update for changes to @glass/base v0.18.0 - -### version 0.4.13 -*Released*: 19 September 2019 -* Package patch update for changes to @glass/base v0.17.0 - -### version 0.4.12 -*Released*: 17 September 2019 -* Update @glass/base dependency to 0.16.0 - -### version 0.4.11 -*Released*: 17 September 2019 -* Package patch update for changes to @glass/base v0.15.3 - -### version 0.4.10 -*Released*: 16 September 2019 -* add chevron above nav menu to connect button and product menu and avatar and user menu - -### version 0.4.9 -*Released*: 12 September 2019 -* add to emptyURL and emptyURLText to MenuSectionConfig - -### version 0.4.8 -*Released*: 9 September 2019 -* Package patch update for changes to @glass/base v0.15.2 - -### version 0.4.7 -*Released*: 6 September 2019 -* Package patch update for changes to @glass/base v0.15.1 - -### version 0.4.6 -*Released*: 4 September 2019 -* support parsing url query params in MenuItemModel.create -* change ProductMenu to support stacked menus - -### version 0.4.5 -*Released*: 3 September 2019 -* Package patch update for changes to @glass/base v0.15.0 - -### version 0.4.4 -*Released*: 21 August 2019 -* Package patch update for changes to @glass/base v0.14.1 - -### version 0.4.3 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.14.0 - -### version 0.4.2 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.13.0 - -### version 0.4.1 -*Released*: 15 August 2019 -* Package patch update for changes to @glass/base v0.12.1 - -### version 0.4.0 -*Released*: 13 August 2019 -* Issue 38167: fix NavigationBar elements layout for bootstrap xs vs sm screen size -* add hasSectionItems to ProductMenuModel - -### version 0.3.9 -*Released*: 8 Aug 2019 -* Package patch update for changes to @glass/base v0.11.2 - -### version 0.3.8 -*Released*: 31 July 2019 -* Package patch update for changes to @glass/base v0.11.1 - -### version 0.3.7 -*Released*: 24 July 2019 -* Package patch update for changes to @glass/base v0.11.0 - -### version 0.3.6 -*Released*: 17 July 2019 -* Package patch update for changes to @glass/base v0.10.0 -* enables hot reloading of CSS in Storybook for all packages - -### version 0.3.5 -*Released*: 17 July 2019 -* Package patch update for changes to @glass/base v0.9.0 - -### version 0.3.4 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.2 - -### version 0.3.3 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.1 - -### version 0.3.2 -*Released*: 8 July 2019 -* Package patch update for changes to @glass/base v0.8.0 - -### version 0.3.1 -*Released*: 3 July 2019 -* Package patch update for changes to @glass/base v0.7.0 - -### version 0.3.0 -*Released*: 19 June 2019 -* Add NavigationBar searchPlaceholder optional string property -* Apply naturalSort for items in ProductMenuSection - -### version 0.2.3 -*Released*: 05 June 2019 -* Update package for changes to @glass/base v0.5.2 - -### version 0.2.1 -*Released*: 05 June 2019 -* Update external package versions - -### version 0.2.0 -*Released*: 04 June 2019 -* Breadcrumb components from Biologics -* Implementation for SearchBox component in header navigation bar - -### version 0.1.11 -*Released*: 03 June 2019 -* Update package for changes to @glass/base v0.4.0 - -### version 0.1.10 -*Released*: 03 June 2019 -* Package patch update for changes to @glass/base v0.3.0 - -### version 0.1.9 -*Released*: 22 May 2019 -* Package patch update for changes to @glass/base v0.2.0 - -### version 0.1.8 -*Released*: 25 April 2019 -* Add FileAttachmentForm and related components to @glass/base - -### version 0.1.7 -*Released*: 23 April 2019 -* React bootstrap typings - augment @types/react-bootstrap and make shareable - -### version 0.1.5 -*Released*: 12 April 2019 -* initial documented release diff --git a/packages/components/releaseNotes/archived/omnibox.md b/packages/components/releaseNotes/archived/omnibox.md deleted file mode 100644 index 9a0663ac43..0000000000 --- a/packages/components/releaseNotes/archived/omnibox.md +++ /dev/null @@ -1,146 +0,0 @@ -# @glass/omnibox - -LabKey component that takes a set of actions (like filter, sort, search) and exposes them as a single input for applying those actions to a QueryGrid. - -## Release Notes ## - -### version 0.2.1 -*Released*: 26 September 2019 -* Package patch update for changes to @glass/base v0.19.0 - -### version 0.2.0 -*Released*: 23 September 2019 -* Issue 37558: Expose additional filter types to OmniBox component (is blank, is not blank, contains, does not contain, starts with, does not start with) - -### version 0.1.40 -*Released*: 20 September 2019 -* Package patch update for changes to @glass/base v0.18.0 - -### version 0.1.39 -*Released*: 19 September 2019 -* Package patch update for changes to @glass/base v0.17.0 - -### version 0.1.38 -*Released*: 17 September 2019 -* Update @glass/base dependency to 0.16.0 - -### version 0.1.37 -*Released*: 17 September 2019 -* Package patch update for changes to @glass/base v0.15.3 - -### version 0.1.36 -*Released*: 9 September 2019 -* Package patch update for changes to @glass/base v0.15.2 - -### version 0.1.35 -*Released*: 6 September 2019 -* Package patch update for changes to @glass/base v0.15.1 - -### version 0.1.34 -*Released*: 3 September 2019 -* Package patch update for changes to @glass/base v0.15.0 - -### version 0.1.33 -*Released*: 21 August 2019 -* Package patch update for changes to @glass/base v0.14.1 - -### version 0.1.32 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.14.0 - -### version 0.1.31 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.13.0 - -### version 0.1.30 -*Released*: 15 August 2019 -* Package patch update for changes to @glass/base v0.12.1 - -### version 0.1.29 -*Released*: 13 August 2019 -* Package patch update for changes to @glass/base v0.12.0 - -### version 0.1.28 -*Released*: 8 Aug 2019 -* Package patch update for changes to @glass/base v0.11.2 - -### version 0.1.27 -*Released*: 31 July 2019 -* Package patch update for changes to @glass/base v0.11.1 - -### version 0.1.26 -*Released*: 24 July 2019 -* Package patch update for changes to @glass/base v0.11.0 - -### version 0.1.25 -*Released*: 17 July 2019 -* Fix @glass/base dependencies for omnibox package - -### version 0.1.24 -*Released*: 17 July 2019 -* Package patch update for changes to @glass/base v0.10.0 - -### version 0.1.23 -*Released*: 17 July 2019 -* Package patch update for changes to @glass/base v0.9.0 - -### version 0.1.22 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.2 - -### version 0.1.21 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.1 - -### version 0.1.20 -*Released*: 8 July 2019 -* Package patch update for changes to @glass/base v0.8.0 - -### version 0.1.19 -*Released*: 3 July 2019 -* Package patch update for changes to @glass/base v0.7.0 - -### version 0.1.18 -*Released*: 19 June 2019 -* Package patch update for changes to @glass/base v0.6.0 - -### version 0.1.17 -*Released*: 05 June 2019 -* Update package for changes to @glass/base v0.5.2 - -### version 0.1.15 -*Released*: 05 June 2019 -* Update external package versions - -### version 0.1.14 -*Released*: 04 June 2019 -* Update package for changes to @glass/base v0.5.0 - -### version 0.1.13 -*Released*: 03 June 2019 -* Update package for changes to @glass/base v0.4.0 - -### version 0.1.12 -*Released*: 03 June 2019 -* Package patch update for changes to @glass/base v0.3.0 - -### version 0.1.11 -*Released*: 27 May 2019 -* Issue 37379: fix to allow omnibox to trigger Search function simply typing in search term - -### version 0.1.10 -*Released*: 22 May 2019 -* Package patch update for changes to @glass/base v0.2.0 - -### version 0.1.8 -*Released*: 25 April 2019 -* Add FileAttachmentForm and related components to @glass/base - -### version 0.1.7 -*Released*: 23 April 2019 -* React bootstrap typings - augment @types/react-bootstrap and make shareable - -### version 0.1.5 -*Released*: 12 April 2019 - -* initial documented release diff --git a/packages/components/releaseNotes/archived/querygrid.md b/packages/components/releaseNotes/archived/querygrid.md deleted file mode 100644 index 3a3f354332..0000000000 --- a/packages/components/releaseNotes/archived/querygrid.md +++ /dev/null @@ -1,415 +0,0 @@ -# @glass/querygrid - -Query Grid for LabKey schema/query data views - -## Release Notes ## - -### version ??? -*Released*: ??? -* Move `domainproperties` and `base` packages into `querygrid` - * Old README for `domainproperties` can be found [here](./domainproperties.md) - * Old README for `base` can be found [here](./base.md) - -### version 0.24.1 -*Released*: 22 November 2019 -* Package patch update for changes to @glass/base v0.23.0 - -### version 0.24.0 -*Released*: 19 November 2019 -* update EditorModel with methods for converting from queryGrid results to the data format expected by -the editable grid -* move EditableGridLoader, EditableGridLoaderForSelection, EditableGridPanelForUpdate, EditableGridModal, BulkUpdateForm -from sampleManagement -* allow selectRows results to be passed in to LookupSelectInput -* in EditableGrid, change single-row deletion from delicate right-click on row number to separate icon column -* add optional toolTip property to EditableColumnMetadata to allow display of overlay tip in column headers - -### version 0.23.2 -*Released*: 19 Nov 2019 -* Issue 33849: change UserSelectInput to use getUsersWithPermissions instead of getUsers so we get all users -with a particular set of permissions, not just those in some project or global group. - -### version 0.23.1 -*Released*: 19 November 2019 -* Package patch update for changes to @glass/domainproperties v0.0.53 - -### version 0.23.0 -*Released*: 18 November 2019 -* Add components for user profile management in app - ChangePasswordModal, UserDetailHeader, UserProfile -* QueryFormInputs - add disabledFields property -* QueryInfoForm - add disabledFields and showErrorsAtBottom properties -* FileInput - fix so that FieldLabel respects the showLabel boolean property -* TextAreaInput, TextInput - fix for initial state isDisabled to only be based off of initiallyDisabled prop -* NavigationBar, UserMenu - add showSwitchToLabKey boolean, default to true - -### version 0.22.4 -*Released*: 14 November 2019 -* Fix Issue 38804 - -### version 0.22.3 -*Released*: 13 November 2019 -* Add headerURL to MenuSectionConfig - -### version 0.22.2 -*Released*: 12 November 2019 -* Package patch update for changes to @glass/domainproperties v0.0.50 - -### version 0.22.1 -*Released*: 8 November 2019 -* Item 6493: fix for containerPath encoding issue with buildURL() helper -* Package patch update for changes to @glass/domainproperties v0.0.49 -* Package patch update for changes to @glass/base 0.21.1 - -### version 0.22.0 -*Released*: 5 November 2019 -* Add getFilterListFromQuery -* Add optional parameters to getSelection and pass through from getSelected so filters in the query string are used -* Add optional properties for LookupSelectInput to allow filtering and sorting of options -* Port UserSelect (as UserSelectInput) from Biologics -* Add support for app metadata for QueryGridModel hideEmptyViewSelector and hideEmptyChartSelector -* Fix problem with selection state after applying filters (as manifesting in GridSelectionBanner) - -### version 0.21.8 -*Released*: 5 November 2019 -* Package patch update for changes to @glass/base v0.20.2, @glass/domainproperties 0.0.47 - -### version 0.21.7 -*Released*: 5 November 2019 -* Issue 36835: Dataclass grids with attachment-type fields do not display images inline in grid - * Fix logic in FileColumnRenderer to render any file column (instead of just fileLinks). - -### version 0.21.6 -*Released*: 5 November 2019 -* Package patch update for changes to @glass/base v0.20.2, @glass/domainproperties 0.0.46 - -### version 0.21.5 -*Released*: 4 November 2019 -* Add onChangeTab to QueryGridPanel - -### version 0.21.4 -*Released*: 31 October 2019 -* Package patch update for changes to @glass/domainproperties v0.0.45 - -### version 0.21.3 -*Released*: 31 October 2019 -* Issue 38807: get a full calendar of months, even at the end of the month - -### version 0.21.2 -*Released*: 25 October 2019 -* Package patch update for changes to @glass/base 0.20.1 -* Package patch update for changes to @glass/domainproperties 0.0.44 - -### version 0.21.1 -*Released*: 24 October 2019 -* Add getUrlString to MenuItemModel - -### version 0.21.0 -*Released*: 18 October 2019 -* Fix image scaling problem in image modal (Issue 36957) -* Add story for QueryGridPanel with images -* Refactor mock.tsx - -### version 0.20.1 -*Released*: 17 October 2019 -* Package patch update for changes to @glass/domainproperties v0.0.41 - -### version 0.20.0 -*Released*: 8 October 2019 -* Move `omnibox` package into `querygrid` - * Old README for `omnibox` can be found [here](./omnibox.md) -* Move `navigation` package into `querygrid` - * Old README for `navigation` can be found [here](./navigation.md) - -### version 0.19.2 -*Released*: 7 October 2019 -* Export LookupSelectInput - -### version 0.19.1 -*Released*: 27 September 2019 -* Issue 38373: remove inline style from assay results data text area input for white-space nowrap - -### version 0.19.0 -*Released*: 26 September 2019 -* Update QueryGrid actions to account for filtering -* Always show the GridSelectionBanner - -### version 0.18.0 -*Released*: 26 September 2019 -* Add containerPath to QuerySelect -* Remove ReactSelectOption interface - -### version 0.17.1 -*Released*: 25 September 2019 -* Fix editable grid Cell selected blur handling - -### version 0.17.0 -*Released*: 25 September 2019 -* Issue 38527: move "Import Samples from File" link for SampleInsertPanel next to Sample Type input - -### version 0.16.4 -*Released*: 24 September 2019 -* Remove "DataOutputs/DataFileUrl" from re-import post data as it doesn't map to anything on the server side (automated test fix) - -### version 0.16.3 -*Released*: 23 September 2019 -* Update validation of sample set import aliases - -### version 0.16.2 -*Released*: 23 September 2019 -* Package patch update for changes to @glass/omnibox v0.2.0 - -### version 0.16.1 -*Released*: 20 September 2019 -* Package patch update for changes to @glass/base v0.18.0 - -### version 0.16.0 -*Released*: 20 September 2019 -* initialize parents for SampleInsertPanel bulk insert - -### version 0.15.0 -*Released*: 19 September 2019 -* Port of Lineage components, models, actions from Biologics - -### version 0.14.1 -*Released*: 19 September 2019 -* Pick up assay run and definition hits from search results - -### version 0.14.0 -*Released*: 18 September 2019 -* Move `report-list` package into `querygrid` - * Old README for `report-list` can be found [here](./report-list.md) -* Update ReportList to improve rendering for Grids, Charts, and unsupported report types -* Rename flattenApiResponse to flattenBrowseDataTreeResponse - * Also added a new argument called urlMapper `(report: IDataViewInfo) => AppURL` -* Add `PreviewGrid` component -* Make QueryGridPanel components render charts based on URL parameter - * Part of this change means we always render the omnibox below the other QueryGridPanel buttons -* Update @glass/base dependency to 0.16.0 -* Update @glass/domainproperties dependency to 0.0.36 -* Update @glass/omnibox dependency to 0.1.38 - -### version 0.13.8 -*Released*: 17 September 2019 -* Add property to QueryGrid to allow for setting the active tab for multi-grid displays - -### version 0.13.7 -*Released*: 12 September 2019 -* SampleSetDetailsPanel fields touch up - -### version 0.13.6 -*Released*: 12 September 2019 -* add emptyGridMsg to EditableGrid -* SampleInsertPanel: add import link, update text, remove "bypass grid option", start with 0 rows -* RunDataPanel: start with 0 rows - -### version 0.13.5 -*Released*: 9 September 2019 -* Changes to support Epic #5692: parent alias component in Sample Management - * Updated SampleSetDetailsPanel to enable adding import aliases - * Added SampleSetAliasRow: UI component for rendering import parent aliases - * Added action initSampleSetSelects to get set of Options to use in selecting sample sets - * Added action to getSampleSet directly from MaterialSource because of alias mapping column - * Added ParentAlias model -* Updated LabelOverlay to optionally use LabelHelpTip based on optional prop -* Added some styles -* updated test data - -### version 0.13.4 -*Released*: 6 September 2019 -* Package patch update for changes to @glass/base v0.15.1 -* Package patch update for changes to @glass/domainproperties v0.0.33 -* Package patch update for changes to @glass/omnibox v0.1.35 - -### version 0.13.3 -*Released*: 3 September 2019 -* Package patch update for changes to @glass/base v0.15.0 - -### version 0.13.2 -*Released*: 21 August 2019 -* Package patch update for changes to @glass/base v0.14.1 - -### version 0.13.1 -*Released*: 19 August 2019 -* Allow showing * in required field's label when checkRequiredFields is false for QueryInfoForm or QueryFormInput - -### version 0.13.0 -*Released*: 16 August 2019 -* add deleteAssayDesign method, AssayDesignDeleteConfirmModal - -### version 0.12.0 -*Released*: 16 August 2019 -* add ImportWithRenameConfirmModal and checkForDuplicateAssayFiles method -* add AssayReimportHeader component -* add actions for getRunDataModel, getRunRow, getBatchDataModel, getBatchRow -* update AssayImportPanels to accept an optional runId for pre-populating -* add optional queryColumns parameter for Detail component to be able to modify the columns in the detail view -* in RunDataPanel, support display of previous run's data when reimporting. -* add param to support cascade delete of replaced runs in deleteAssayRuns API call - -### version 0.11.7 -*Released*: 15 August 2019 -* Issue 37827: update Detail and DetailEditing display columns - -### version 0.11.6 -*Released*: 13 August 2019 -* Package patch update for changes to @glass/base v0.12.0 - -### version 0.11.5 -*Released*: 8 Aug 2019 -* Add "appEditable", "asSubPanel", "title", "cancelText", "onEditToggle", and "submitText" to DetailEditing -* fix "Invalid prop 'value' of type 'number' supplied to 'Input'" error on bulk form - -### version 0.11.4 -*Released*: 5 Aug 2019 -* Issue 38097: improve lookup search perf using ~q filter - -### version 0.11.3 -*Released*: 31 July 2019 -* Package patch update for changes to @glass/base v0.11.1 - -### version 0.11.2 -*Released*: 30 Jul 2019 -* Update SearchResultCard to show Sample Sets - -### version 0.11.1 -*Released*: 25 July 2019 -* Issue 37993: add missing "isUpdate" parameter for call to updateSampleSet - -### version 0.11.0 -*Released*: 24 July 2019 -* port FormStep and related helpers from Biologics -* port handleInputTab and handleTabKeyOnTextArea from Biologics -* add AssayWizardModel, BatchPropertiesPanel, RunPropertiesPanel, and RunDataPanel from Biologics -* port AssayUploadGridLoader, AssayUploadResultModel, uploadAssayRunFiles and importAssayRun from Biologics -* add deleteAssayRuns method, AssayRunDeleteConfirmModal, and AssayResultDeleteConfirmModal -* factor out AssayImportSubMenuItem and getImportItemsForAssayDefinitions and port from Biologics -* port loadSelectedSamples from Biologics and export getSelection - -### version 0.10.3 -*Released*: 23 July 2019 -* Add columnFilter to QueryInfoForm - -### version 0.10.2 -*Released*: 23 July 2019 -* For QueryInfoForm, add ability to disable Submit until change is made -* For QueryInfoForm, add onFormChange handler - -### version 0.10.1 -*Released*: 17 July 2019 -* Fix @glass/base dependencies for omnibox package - -### version 0.10.0 -*Released*: 17 July 2019 -* add support for messages to QueryGrid -* enables hot reloading of CSS in Storybook for all packages - -### version 0.9.1 -*Released*: 17 June 2019 -* Update package for changes to @glass/base v0.9.0 - -### version 0.9.0 -*Released*: 10 July 2019 -* Update SampleDeleteConfirmModal to account for restrictions on deleting samples -* Add getSampleDeleteConfirmationData method for use in delete confirmations - -### version 0.8.1 -*Released*: 10 July 2019 -* Issue 37915: add asterisk to required Name field in sample set details panel -* Port createQueryGridModelFilteredBySample from Biologics - -### version 0.8.0 -*Released*: 8 July 2019 -* Add createSampleSet, updateSampleSet, and deleteSampleSet functions -* Add SampleSetDetailsPanel and SampleSetDeleteConfirmModal components - -### version 0.7.0 -*Released*: 3 July 2019 -* For QueryInfoForm, add placeholders using queryColumn captions -* Add optional footer for QueryInfoForm -* Add optional second type of submit button (either submit to grid or submit to save) for QueryInfoForm -* Expose more formatting properties for EditableGrid (bordered, condensed, striped) -* Add readOnlyColumns property to EditableGrid so you can display a set of columns that are not editable -* Add option to EditableGrid to show update columns instead of insert columns -* Add styling properties to EditableGridPanel (bsStyle, className) -* Add FieldLabel component for showing labels particularly in the QueryInfoForm -* Add option to QueryInfoForm to show enable/disable toggle -* Update styling of DetailEditing to be more consistent with other forms -* Re-implement CheckboxInput to not use Checkbox from formsy-react-components -* Add getSelectedData method for retrieving all data for the selectedIds in a QueryGridModel - - -### version 0.6.2 -*Released*: 3 July 2019 -* EditableGrid updates to only use LookupCell and initLookups for lookup queries that are public - -### version 0.6.1 -*Released*: 24 June 2019 -* Issue 37773: QueryGridPanel has inconsistent padding on button groups with and without paging - -### version 0.6.0 -*Released*: 19 June 2019 -* Port importData function and related interfaces from Biologics -* Add content prop to LabelOverlay -* Add onTargetSampleSetChange prop to SampleInsertPanel - -### version 0.5.3 -*Released*: 05 June 2019 -* Update package for changes to @glass/base v0.5.2 - -### version 0.5.1 -*Released*: 05 June 2019 -* Update external package versions - -### version 0.5.0 -*Released*: 04 June 2019 -* Port HeatMap components from Biologics -* PageDetailHeader, DetailEditing, updateRows, deleteRows, and related actions/models from Biologics -* Select (now called LookupSelectInput) input from Biologics -* SearchResultsPanel, SearchResultCard, SearchResultsModel, and searchUsingIndex from Biologics -* SampleDeleteConfirmModal - -### version 0.4.0 -*Released*: 03 June 2019 -* Port QueryFormInputs and the various input fields from Biologics -* Port QuerySelect, SelectInput and related actions/models from Biologics -* Add optional remove parameter to the gridInvalidate methods -* Port URLService, AssayResolver, AssayRunResolver, ListResolver, and SamplesResolver from Biologics -* Port insertRows function from Biologics -* Update package for changes to @glass/base -* Add option for AddRowsControl to have a "quick add" menu option as well -* When removing queryGridModel, also remove the corresponding editGridModel -* Add DATA_CLASSES schema -* convert InsertRowsResponse to class and export it -* add addColumns, changeColumn, and removeColumn for modifying an EditableGrid model (and the corresponding QueryGriModel) -* change AddRowsControl to allow deletion of value in the input field (setting to undefined instead of min value) -* add validateData method to EditorModel for validating required fields and uniqueness -* Add SampleInsertPanel (with EditableGrid component) - -### version 0.3.2 -*Released*: 03 June 2019 -* Package patch update for changes to @glass/base v0.3.0 - -### version 0.3.1 -*Released*: 27 May 2019 -* Package patch update for fix in omnibox package (issue 37379) - -### version 0.3.0 -*Released*: 22 May 2019 -* Package minor update for changes to @glass/base v0.2.0 - -### version 0.2.0 -*Released*: 29 April 2019 -* Update EditableGrid to allow for bulk removal of rows in the grid -* Update EditableGrid to allow for read-only columns and placeholder text - -### version 0.1.8 -*Released*: 25 April 2019 -* Add FileAttachmentForm and related components to @glass/base - -### version 0.1.7 -*Released*: 23 April 2019 -* React bootstrap typings - augment @types/react-bootstrap and make shareable - -### version 0.1.6 -*Released*: 16 April 2019 -* initial documented release diff --git a/packages/components/releaseNotes/archived/report-list.md b/packages/components/releaseNotes/archived/report-list.md deleted file mode 100644 index 8ca8a24c81..0000000000 --- a/packages/components/releaseNotes/archived/report-list.md +++ /dev/null @@ -1,107 +0,0 @@ -# @glass/report-list - -LabKey component that takes a set of reports (as returned by the reports browseDataTree API action) and renders them in -a list. - -## Release Notes ## - -### version 0.1.25 -*Released*: 17 September 2019 -* Package patch update for changes to @glass/base v0.15.3 - -### version 0.1.24 -*Released*: 9 September 2019 -* Package patch update for changes to @glass/base v0.15.2 - -### version 0.1.23 -*Released*: 6 September 2019 -* Package patch update for changes to @glass/base v0.15.1 - -### version 0.1.22 -*Released*: 3 September 2019 -* Package patch update for changes to @glass/base v0.15.0 - -### version 0.1.21 -*Released*: 21 August 2019 -* Package patch update for changes to @glass/base v0.14.1 - -### version 0.1.20 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.14.0 - -### version 0.1.19 -*Released*: 16 August 2019 -* Package patch update for changes to @glass/base v0.13.0 - -### version 0.1.18 -*Released*: 15 August 2019 -* Package patch update for changes to @glass/base v0.12.1 - -### version 0.1.17 -*Released*: 13 August 2019 -* Package patch update for changes to @glass/base v0.12.0 - -### version 0.1.16 -*Released*: 8 Aug 2019 -* Package patch update for changes to @glass/base v0.11.2 - -### version 0.1.15 -*Released*: 31 July 2019 -* Package patch update for changes to @glass/base v0.11.1 - -### version 0.1.14 -*Released*: 24 July 2019 -* Package patch update for changes to @glass/base v0.11.0 - -### version 0.1.13 -*Released*: 17 July 2019 -* Package patch update for changes to @glass/base v0.10.0 - -### version 0.1.12 -*Released*: 17 July 2019 -* Package patch update for changes to @glass/base v0.9.0 - -### version 0.1.11 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.2 - -### version 0.1.10 -*Released*: 10 July 2019 -* Package patch update for changes to @glass/base v0.8.1 - -### version 0.1.9 -*Released*: 8 July 2019 -* Package patch update for changes to @glass/base v0.8.0 - -### version 0.1.8 -*Released*: 3 July 2019 -* Package patch update for changes to @glass/base v0.7.0 - -### version 0.1.7 -*Released*: 19 June 2019 -* Package patch update for changes to @glass/base v0.6.0 - -### version 0.1.6 -*Released*: 05 June 2019 -* Update package for changes to @glass/base v0.5.2 - -### version 0.1.4 -*Released*: 05 June 2019 -* Update external package versions - -### version 0.1.3 -*Released*: 04 June 2019 -* Package patch update for changes to @glass/base v0.5.0 - -### version 0.1.2 -*Released*: 03 June 2019 -* Package patch update for changes to @glass/base v0.4.0 - -### version 0.1.1 -*Released*: 03 June 2019 -* Package patch update for changes to @glass/base v0.3.0 - -### version 0.1.0 -*Released*: 21 May 2019 -* initial documented release - diff --git a/packages/components/releaseNotes/components-archive.md b/packages/components/releaseNotes/components-archive.md deleted file mode 100644 index 7cc75f01b9..0000000000 --- a/packages/components/releaseNotes/components-archive.md +++ /dev/null @@ -1,6374 +0,0 @@ -# @labkey/components -Archived release notes for prior versions - -### version 3.2.4 -*Released*: 29 December 2023 -- remove AliquotedFrom from samples grid export/editable grid export -- Issue 49082: remove QueryModel from localStorage on error - -### version 3.2.3 -*Released*: 29 December 2023 -- Issue 41718: Domain Designer List Field Imports should observe auto-increment fields - -### version 3.2.2 -*Released*: 27 December 2023 -- Bump @labkey/build -- Replace Immer `Draft` with `produce` as the former declaration pattern can cause compilation problems. - -### version 3.2.1 -*Released*: 27 December 2023 -- Support cross-folder sample import - - add util for check isCrossProjectImportEnabled - -### version 3.2.0 -*Released*: 22 December 2023 -- Add support for searching or storage locations - -### version 3.1.2 -*Released*: 22 December 2023 -* update package.json to pin devDependencies versions by dropping tilde - * this fixes the @types/react version mismatch between the packages and apps with start-link - -### version 3.1.1 -*Released*: 21 December 2023 -* withQueryModels: fix issue when operating outside of a React Router context - -### version 3.1.0 -*Released*: 21 December 2023 -- Change `domain` and `security` API wrappers to use `selectRows` -- Update `api.security.getAuditLogDate` to not need to specify additional columns -- Update `GroupDetailsPanel` to use API wrapper from context -- Improve typings of `SecurityAPIWrapper` - -### version 3.0.1 -*Released*: 21 December 2023 -- Rehydrate the package-lock.json for the components package - -### version 3.0.0 -*Released*: 20 December 2023 -* Breaking Changes: - * Upgrade react-router dependency to react-router-dom version 6.x - * If you use react-router you will need to upgrade - * If you have history pinned in your dependencies you should remove it - * withQueryModels updated to be compatible with React Router 6.x - -* Other Changes: - * Note: all other changes listed here have to do with our upgrade of React Router, they're not considered breaking because they are all on our internal APIs which you should not be using - * URL helpers: - * use ReactRouter SetURLSearchParams instead of InjectedRouter and Location - * remove resetParameters - * remove Location type - * add getQueryParams - * Update components to use React Router Hooks - * Don't export UsersGridPanel or PermissionAssignments - * AppRouteResolver: fetch now returns Promise instead of Promise - * SubNav is no longer exported - * Removed unused constants - * SECURITY_LOGOUT - * SECURITY_SERVER_UNAVAILABLE - * SECURITY_SESSION_TIMEOUT - * Removed RoutingTableState and RoutingTableReducers - * Removed withRouteLeave - * useRouteLeave: remove `router` and `routes` props - -### version 2.399.1 -*Released*: 19 December 2023 -- Update @labkey/api and use moveRows() function -- Include fix for Issue 49164: Datepicker in editable grid needs to account for the sticky footer when at the bottom of the grid - -### version 2.399.0 -*Released*: 15 December 2023 -- Consolidate move entities to MoveRowsAction in query controller - - update API call controller and actions and update params to match new moveRows API format - -### version 2.398.0 -*Released*: 14 December 2023 -- In-app messaging for product updates - - Add `ReleaseNote` component - - Updated Help icon to be a menu - -### version 2.397.2 -*Released*: 13 December 2023 -- Issue 49237: From app settings page, set defaultDateFormat whenever defaultDateTimeFormat is changed - -### version 2.397.1 -*Released*: 13 December 2023 -- Issue 49086: Add onChange callback for AssayTaskInput to fix some initialization timing issues - -### version 2.397.0 -*Released*: 12 December 2023 -* Add `getPermissionRestrictionMessage` utility method. - -### version 2.396.3 -*Released*: 12 December 2023 -- Issue 49199: Field Editor name input fix for jumping cursor to end of input - - Regression from change to this.setState and this.props.onChange call sequence from https://github.com/LabKey/labkey-ui-components/pull/1273 - - Also include minor fix for row/col display issue on permission assignments app page (issue 48895) - -### version 2.396.2 -*Released*: 11 December 2023 -- Secure Issue 49250: BarTender: CSP parsing of the Service URL fails for relative and partial URIs - -### version 2.396.1 -*Released*: 7 December 2023 -- Issue 49005: Field editor assigning a lookup to exp.Materials then switching to Samples type should retain schema/query for lookup - -### version 2.396.0 -*Released*: 1 December 2023 -- FormsyReactComponents.tsx fix for handling of rowClassName prop - -### version 2.395.4 -*Released*: 30 November 2023 -- Adds support for shift-select across multiple rows in any components that leverage `GridPanel` or `EditableGrid` - -### version 2.395.3 -*Released*: 30 November 2023 -- Issue 49148: use LabelOverlay as label for TextChoiceInput fields -- Issue 49111: resolve URLs for workflow jobs to app URLs - -### version 2.395.2 -*Released*: 29 November 2023 -- Issue 49113: Better handling for ListDesignerPanels case where the only error is a form error for saveDomain() -- Include DomainException class in index.ts -- Further usage of scrollDomainErrorIntoView() in DataClassDesigner - -### version 2.395.1 -*Released*: 28 November 2023 -* Merge release23.11-SNAPSHOT to develop: - * includes changes from 2.390.5 - -### version 2.395.0 -*Released*: 23 November 2023 -- Happy Thanksgiving! -- Provide logically equivalent implementations for some `formsy-react-components` components. Only props that are used or are useful are supported (e.g. `changeDebounceInterval` is not supported). -- Replace all usages of `formsy-react-components` components within the `@labkey/components` package with internal equivalent components. -- Remove `formsy-react-components` dependency - -### version 2.394.1 -*Released*: 22 November 2023 -* Issue 48817: Update some wording in the NameIdSettings panel - -### version 2.394.0 -*Released*: 22 November 2023 -* Assay Transform Script UX update - * AssayPropertiesInput update for transform script display and allowing add via file drop (places files in @scripts dir) - * AttachmentCard updates to support description and use getIconFontCls for default iconFontCls based on name - * WebDav update to add uploadWebDavFileToUrl() and support overwrite param, default true - * Issue 49087: When the save of an assay run failsin the apps, the error message is hidden behind the sticky buttons at the bottom - -### version 2.393.2 -*Released*: 15 November 2023 -* Merge release23.11-SNAPSHOT to develop: - * includes changes from 2.390.3 and 2.390.4 - -### version 2.393.1 -*Released*: 10 November 2023 -* Improve cross-project actions: Import job notifications - * Use the Query.ContainerFilter.allInProject container filter in getUserNotifications API call and PipelineJobsPage queryConfig - -### version 2.393.0 -*Released*: 10 November 2023 -- Replace all usages of `RootMaterialLSID` with `RootMaterialRowId` - -### version 2.392.2 -*Released*: 8 November 2023 -* Issue 48999: Unable to "Select them in the grid" when created trigger script runs after samples are added - * Add reselectRowCounts to InsertRowsResponse - -### version 2.392.1 -*Released*: 8 November 2023 -* Merge release23.11-SNAPSHOT to develop: - * includes changes from 2.390.1 and 2.390.2 - -### version 2.392.0 -*Released*: 7 November 2023 -* Remove utils/global.ts, which removes initBrowserHistoryState and getBrowserHistory -* URL.ts: - * Add `router` and `location` arg to util methods and update usages - * Remove getLocation, update usages to use react-router instead -* UsersGridPanel: use withRouter instead of directly listening to URL changes via history - -### version 2.391.2 -*Released*: 4 November 2023 -* Issue 48751: LKSM/LKB: Respect sort order of sources or samples for lineage sample creation - * Add saveOrderedSnapshotSelection util - -### version 2.391.1 -*Released*: 2 November 2023 -* Issue 48804: Scroll error message at bottom of domain designer into view -* fix `FormButtons` handling of single child case - -### version 2.391.0 -*Released*: 1 November 2023 -* Issue 48828: Don't show sample insights panel while editing in the grid - - add `onEditToggle` optional prop for `SampleTabbedGridPanel` - -### version 2.390.6 -*Released*: 5 February 2023 -* Issue 49589: LKSM/LKB: More jumping behavior on Chrome & not Firefox - -### version 2.390.5 -*Released*: 27 November 2023 -* Issue 49155: Get proper raw value for measurement units in grid - -### version 2.390.4 -*Released*: 10 November 2023 -* Fix for reportId url param check in locationHasQueryParamSettings - -### version 2.390.3 -*Released*: 9 November 2023 -* Issue 49074: We support move operations for assays as well as delete, but don't need to check references for move -* Issue 49077: Remove tool tip indicating assay designs cannot be renamed. - -### version 2.390.2 -*Released*: 6 November 2023 -* Issue 49019: Grid session filters/sorts/etc. are not applied as expected when model loads queryInfo from API instead of cache - * the additional render cycle from the query details API call causes the withQueryModels componentDidUpdate to detect a URL param change and then remove the filters/sorts/etc. that were just applied from the session state - -### version 2.390.1 -*Released*: 3 November 2023 -- Issue 48836: Update `URLResolver.resolveLineageItem` to resolve the name of the data type from the query name - -### version 2.390.0 -*Released*: 31 October 2023 -* Issue 41677: Include single field uniqueness constraint option in field editor - * Add domain kind property for allowUniqueConstraintProperties - * Add new checkbox option to the field Advanced Settings dialog - * DomainField update to serialize and de-serialize the "uniqueConstraint" prop based on the DomainDesign "indices" - -### version 2.389.0 -*Released*: 31 October 2023 -- getUsersWithPermissions: Add optional includeInactive flag - -### version 2.388.2 -*Released*: 31 October 2023 -- Issue 48961: Make sure Name (id) fields are shown, but read-only, in editable grids for update - -### version 2.388.1 -*Released*: 30 October 2023 -* ToggleButton updates - * ImportDataFilePreview update to remove usage and replace with a checkbox - * QueryInfoForm fix for ToggleIcon alignment with various form input types - -### version 2.388.0 -*Released*: 27 October 2023 -- Remove dependency on `react-redux` -- Remove configuration of `Provider` and `Router` from `AppContexts` - -### version 2.387.0 -*Released*: 27 October 2023 -- Issue 48969: add loadAllQueryInfos method to withQueryModels actions -- Update ExportModal to show all system views (prefixed by ~~) as 'Default' -- Update ExportModal to pre-select models with counts > 0 when using `tabRowCounts` - -### version 2.386.0 -*Released*: 26 October 2023 -- Add ability to create, edit, and delete sample, source, and assay domains from subfolders -- export new `isSharedDefinition` method in `App` object -- Issue 48921: Use sort order from model for printing labels - -### version 2.385.0 -*Released*: 25 October 2023 -- EditableGrid: Add more specific classNames to button bar buttons -- EditableDetailPanel: Use FormButtons -- DetailPanel/EditableDetailPanel: Remove actions prop -- DetailPanelHeader: convert to FC, simplify props, render panel-heading div - -### version 2.384.0 -*Released*: 25 October 2023 -* remove react-bootstrap-toggle dependency from @labkey/components -* remove ToggleWithInputFields.tsx and replace usages with ToggleButtons or ToggleIcon components -* remove unused CustomToggle.tsx component - -### version 2.383.2 -*Released*: 23 October 2023 -* AssayImportPanels.tsx fix for grid cell updates to use applyEditableGridChangesToModels() - -### version 2.383.1 -*Released*: 20 October 2023 -- Assay Design Rename - - enable rename on assaydesign update mode for gpat assays - - Use new assayauditevent for assay audits - -### version 2.383.0 -*Released*: 19 October 2023 -* Issue 48347: Update field editor "User" data type to allow lookup validator option - -### version 2.382.2 -*Released*: 18 October 2023 -- Issue 48901: R Reports not filtering runs in assay - -### version 2.382.1 -*Released*: 18 October 2023 -- Issue 48855: Update @labkey/api for better parsing of Content-Disposition header - -### version 2.382.0 -Released*: 18 October 2023 -- Introduce `AssayAPIWrapper` to better support calls to assay endpoints from within components. -- Rename `fetchAllAssays` and `fetchProtocol` to `getAssayDefinitions and `getProtocol` respectively. -- Update `getAssayDefinitions` (formerly `fetchAllAssays`) to utilize the newly exposed `Assay.getAssays` endpoint wrapper. -- Update `withAssayModels` component to use `api.assay` in place of the `AssayLoader` pattern. -- Add `SchemaQuery.hasSchemaQuery` for more succinct comparison of `SchemaQuery` objects where it only matters if the `schemaName` and `queryName` match. -- Recognize the `plateLsid` URL parameter in `AssayImportPanels` to support selection of a plate. - -### version 2.381.3 -*Released*: 18 October 2023 -- Issue 48854: Trim leading spaces for field values in domain forms - -### version 2.381.2 -*Released*: 18 October 2023 -* Merge release23.10-SNAPSHOT to develop: - * includes changes from 2.373.5 - -### version 2.381.1 -*Released*: 16 October 2023 -- Issue 48312: Update messaging for race condition when adding to storage - -### version 2.381.0 -*Released*: 16 October 2023 -- Add helper for App.freezerManagerIsCurrentApp() -- Add containerFilter to EditableColumnMetadata -- Refactor from getOrderedSelectedMappedKeys to getOrderedSelectedMappedKeysFromQueryModel - -### version 2.380.1 -*Released*: 13 October 2023 -- Add UI for making non-default views sharable - -### version 2.379.0 -*Released*: 11 October 2023 -- Issue 48082: Improve verbs used when updating or merging data -- Don't pre-select False for an undefined Boolean filter field - -### version 2.378.0 -*Released*: 10 October 2023 -- Add ModalButtons - - Update all Modals using WizardNavButtons to use ModalButtons -- Use FormButtons - - WizardNavButtons - - CreateProjectPage - - GroupAssignments - - QueryInfoForm - - PermissionAssignments - - AssayImportPanels -- Simplify props for WizardNavButtons - - Many props weren't used, or weren't needed -- Fix scrollbar issues on Projects and Permissions Pages -- Fix scrollbar issues with menu-section - -### version 2.377.0 -*Released*: 10 October 2023 -- Issue 48814: Counts in tabs don't always have commas -- Issue 48818: Update BarTender Label configuration to not use toggle selector - -### version 2.376.0 -*Released*: 9 October 2023 -* Issue 48287: Improve behavior for Picklist buttons - * Don't check sample status before adding to picklists since there is no restriction for picklists - * Limit the number of samples that can be added at one time - -### version 2.375.3 -*Released*: 6 October 2023 -- Issue 48240: Assay Result field creation using JSON file results in lookup failure - -### version 2.375.2 -*Released*: 5 October 2023 -- Choose a default filter for field types that don't offer text choices - -### version 2.375.1 -*Released*: 4 October 2023 -* Show SourceID on SourceEvents Audit Table - * Added DATACLASS_DATA_UPDATE_AUDIT_QUERY for Biologic audit logs - -### version 2.375.0 -*Released*: 4 October 2023 -- Rename `LabelPrintingProviderProps` to `LabelPrintingContext`. Rename `LabelPrintingProvider` to `LabelPrintingContextProvider`. -- Add `createLabelTemplateList` to APIWrapper -- Streamline request creation and error handling in APIWrapper -- Add error handling to `LabelPrintingContextProvider` -- Update `BarTenderSettingsForm` to no longer use `withLabelPrintingContext` as this component does not rely on label context. Improve loading/error rendering. -- Remove `withLabelPrintingContext` - -### version 2.374.2 -*Released*: 4 October 2023 -* Merge release23.10-SNAPSHOT to develop: - * includes changes from 2.373.4 - -### version 2.374.1 -*Released*: 2 October 2023 -* Issue 48709: Choose date on month change instead of just highlighting it - -### version 2.374.0 -*Released*: 2 October 2023 -* Add FormButtons component -* BaseDomainDesigner: use FormButtons -* Domain Designer components: remove useTheme and successBsStyle props -* Add isApp and getSubmitButtonClass util methods - -### version 2.373.4 -*Released*: 2 October 2023 -* Issue 48781: LKSM/LKB: Groups using wrong icon - -### version 2.373.5 -*Released*: 12 October 2023 -* Issue 48377: Account for read only cells when pasting in EditableGrid - -### version 2.373.4 -*Released*: 2 October 2023 -* Issue 48781: LKSM/LKB: Groups using wrong icon - -### version 2.373.3 -*Released*: 2 October 2023 -* add some keys to Fragments to get rid of warnings about missing keys - -### version 2.373.2 -*Released*: 29 September 2023 -* AuditQueriesListingPage: load via withQueryModels - -### version 2.373.1 -*Released*: 29 September 2023 -* Update help text for alias fields in support of defaulting to using the aliases as parents when inserting entities - -### version 2.373.0 -*Released*: 27 September 2023 -- Projects Administration Improvements - - Changed UserMenu to UserMenuGroup: split user items to into help, admin and user sections. - - Admin page header and navbar updates - - updated style, removed notification and search, removed folder menu, updated subnav - - Added WithDirtyCheckLink and VerticalScrollPanel component to support side by side panels - - AdminSettingsPage updates - - Removed project level settings: name/label, data type exclusion, freezer exclusion - - Add support for viewing/updating Home level application setting from child project - - ProjectManagementPage updates - - Added ProjectListing component and related utils to support project selection - - Allow cross folder project setting view/update - - Support project settings as well as certain application setting folder override - - PermissionManagementPage updates - - Removed BasePermission - - Updated ProjectManagementPage from grid to side to side project/setting layout and support cross folder view/update - - Support ApplicationAdminPermission update on the same panel with project level permissions. - - Moved ProtectedDataSettingsPanel and RequestsSettingsPanel from Biologics to components -- Issue 48623: LKSM: revert to initial sampleCount or rootSampleCount when updating fails - -### version 2.372.0 -*Released*: 27 September 2023 -- Add container filter to `PROJECT_AUDIT_QUERY` configuration and filter by `projectId` to get desired results. -- Support displaying `children` in `AuditDetails` component for displaying error/loading state. -- Display dropdown indicator on date cells in `EditableGrid`. -- Update `DatePickerInput` to expose `onCalendarClose` and use to handle selecting a date cell after the calendar has closed. -- Update `UserLink` to not attempt to fetch details for negative `userId` values (as you might find in the audit log) - -### version 2.371.0 -*Released*: 25 September 2023 -* Render file output in R Reports -* Improve Chart Styling - -### version 2.370.0 -*Released*: 21 September 2023 -- Package updates -- Remove `yarn.lock` and introduce `package-lock.json` -- Update scripts to refer to use `npm` -- Update documentation to refer to `npm` instead of `yarn`. Rewrite portions that describe versioning process steps. -- Update lint process to use `npm` - -### version 2.369.2 -*Released*: 21 September 2023 -- Sample type RootMaterialLSID refactoring - -### version 2.369.1 -*Released*: 21 September 2023 -- Remove “Plate Metadata” field in Assay Import Wizard - -### version 2.369.0 -*Released*: 21 September 2023 -* `QueryModel`: add `useSavedSettings` flag -* `QueryModel`: serialize `maxRows` to URl when using `bindURL` - * Serialized as `pageSize` to match the page offset param -* `withQueryModels`: honor `useSavedSettings` flag - -### version 2.368.2 -*Released*: 14 September 2023 -- Issue 48458: remove duplicate processing of combined nodes. -- Issue 48459: sort items in `DetailsListLineageItems` by name - -### version 2.368.1 -*Released*: 14 September 2023 -- Add missing toLocaleString() calls - -### version 2.368.0 -*Released*: 14 September 2023 -- Issue 48610: app grid column header element to trigger click on child
-- Issue 48283: app megamenu does not close after choosing a project icon (i.e. dashboard or settings) -- Issue 48196: if the domain column has been setup with a "url" prop, use it in the EditInlineField value display - -### version 2.367.1 -*Released*: 13 September 2023 -* Merge release23.9-SNAPSHOT to develop: - * includes changes from 2.364.1 and 2.364.2 - -### version 2.367.0 -*Released*: 11 September 2023 -**Customize View** -- Factor `ColumnSelectionModal` out of `CustomizeGridViewModal` to share implementation of column set selection modal with plate customization. - -**EditableGrid** -- Introduce `EditableGridEvent` to allow for easier identification of change event/actions that are occuring -- Update `EditableGridChange` to specify the `EditableGridEvent` -- Add utility methods `isDataChangeEvent` and `isSelectionEvent` to `EditorModel` - -**QueryInfo** -- Update `getQueryDetails` to accept either `schemaName/queryName` or `schemaQuery` and have it be enforced by the typings. -- Update `getQueryDetails` to always use `method: 'POST'` as certain arguments are supported as Arrays (e.g. `fields`). -- Update `getQueryDetails` to extend `Query.GetQueryDetailsOptions` to support the `fields` parameter. This parameter allows for explicitly requesting columns to be on the `QueryInfo` that may otherwise not be included in any of the associated views. -- Update `getQueryDetailsCacheKey` and `invalidateQueryDetailsCache` to include specified `fields` in the cache key. -- Change `invalidateQueryDetailsCache` to, by default, invalidate all cache keys associated with the specified `schemaQuery`. Previously, only explicit matches plus container insensitive matches were invalidated. An `exactKeyMatch` argument has been added for removal of only exact matches (defaults to false). - -**QueryModel** -- Introduce new `requiredColumnsAsQueryInfoFields` setting that will request `requiredColumns` on the model as `fields` on the associated `queryInfo`. Defaults to false. - -**Domain** -- Update `fetchDomainDetails` endpoint wrapper to extend `Domain.GetDomainDetailsOptions` -- Update `saveDomain` endpoint wrapper to take options - -### version 2.366.1 -*Released*: 11 September 2023 -- Issue 48542: Update layout and message when discarding after changing status - -### version 2.366.0 -*Released*: 11 September 2023 -- App listing page - move details panel to hover tooltip in header - - misc styling updates for LabelHelpTip and DetailDisplay - - add new DesignerDetailTooltip component - -### version 2.365.3 -*Released*: 8 September 2023 -- Issue 48329: LKSM: Sample Finder query performance issues - - Only query for a single column during loadTotalCount - -### version 2.365.2 -*Released*: 7 September 2023 -- Issue 48252: LKSM/LKB: Editable Grid - Sparse multi-select doesn't work well with copy/paste - - We now don't cut or copy sparse selections -- Issue 48435: LKSM/LKB: Editable Grid - Many keyboard shortcuts delete cell contents -- Issue 48251: LKSM/LKB: Editable Grid - Shift-arrows don't select cells -- EditableGrid: Make modified arrow key shortcuts work with macOS - -### version 2.365.1 -*Released*: 4 September 2023 -- Add SamplesTabbedGridPanelComponent to SampleTypeAppContext - -### version 2.365.0 -*Released*: 1 September 2023 -- Add `saveDomain` to `DomainPropertiesAPIWrapper` -- Add `updateUserDetails` to `SecurityAPIWrapper` -- Export internal `BaseDomainDesigner` -- Update `EditableGrid` to account for optional `addControlProps` -- Removes `UserProvider` in favor of `useUserProperties` hook - -### version 2.364.2 -*Released*: 11 September 2023 -- Issue 48608: Replace `/Z+/gi` characters with `xxx` when translating moment format to date-fns format -- Support partial reverse translation of `xxx` from date-fns to moment - -### version 2.364.1 -*Released*: 6 September 2023 -- Issue 48596: ResponsiveMenuButtonGroup fix for empty button group -- Issue 48594: Show project look and feel form for starter edition too -- Issue 48607: Don't use spread operator for array construction to avoid javascript error - -### version 2.364.0 -*Released*: 31 August 2023 -- Issue 47376: User Detail Modal - add className to be able to distinguish modal from others -- Issue 47197: Add 'Cancel' button on the group management and permissions pages - -### version 2.363.0 -*Released*: 30 August 2023 -- protect against missing displayColumns -- Issue 48362: Add `toLocaleString` calls when rendering numbers to get thousands separators. - -### version 2.362.4 -*Released*: 30 August 2023 -- Update interfaces for `AppContext` to include `containerFilter` - -### version 2.362.3 -*Released*: 30 August 2023 -- Support sampleCounter naming pattern - - Added "Naming Pattern Elements/Tokens" section to NameIdSettings - - Updated getGenId/setGenId util to use new API - - Added hasExistingSamples, getSampleCounter and saveSampleCounter util - -### version 2.362.2 -*Released*: 30 August 2023 -- SVGChart: Inject containerFilter into query config returned from server -- RReport: use containerFilterName query arg - -### version 2.362.1 -*Released*: 29 August 2023 -- Issue 47763: Remove unnecessary DataFileUrl column from requiredColumns in Assay Runs grid - -### version 2.362.0 -*Released*: 28 August 2023 -- Render Charts above grid - -### version 2.361.3 -*Released*: 28 August 2023 -- Issue 48364: Sample assay report SQL syntax error in WHERE clause for sample field with space in name - -### version 2.361.2 -*Released*: 24 August 2023 -- Rename `parseTimeFormat` to `parseDateFNSTimeFormat` -- Return constant time formats for 12-hour and 24-hour time formats. - -### version 2.361.1 -*Released*: 24 August 2023 -- EditableGrid change to allow for tabAdditionalBtn prop instead of cancelBtnProps - -### version 2.361.0 -*Released*: 23 August 2023 -- withRouteLeave: Fix issue with not passing all withRouter props forward -- QueryInfoForm: Remove onCancel (it was unused) -- ProfilePage: Remove need for onBack/setReloadRequired, remove cancel button - -### version 2.360.3 -*Released*: 23 August 2023 -- When loading all models, load selections if there is a way to do so. - -### version 2.360.2 -*Released*: 22 August 2023 -- Added a `parseTimeFormat` method to determine the time format portion of a date format. -- Supply `timeFormat` parsed from the `dateFormat` for usages of `DatePicker`. - -### version 2.360.1 -*Released*: 21 August 2023 -- Remove updateDomainPanelClassList - - Manually toggle the necessary classname in the component instead of manually manipulationg the DOM -- Update tests to no longer attempt to make network requests - -### version 2.360.0 -*Released*: 21 August 2023 -- Add isRReportEnabled helper -- Add RReport component -- Move SVG rendering to SVGChart component -- Make Chart render RReports and SVGCharts -- Refactor Chart to re-render when filter array changes -- Add APIWrapper for Chart - - not exposed via context - -### version 2.359.4 -*Released*: 18 August 2023 -- Migrated components are `DeleteConfirmationModal`, `EntityDeleteConfirmModal` and `EntityDeleteConfirmModalDisplay`. -- Add `getSnapshotSelections` and `setSnapshotSelections` to `QueryAPIWrapper`. -- Add `getDeleteConfirmationData` to `EntityAPIWrapper`. - -### version 2.359.3 -*Released*: 18 August 2023 -- ISSUE 48479: DOM update (i.e. removeChild) errors when components update with Google Translate enabled - - fix is to wrap conditional text elements in `` tags - - see https://github.com/facebook/react/issues/11538 - -### version 2.359.2 -*Released*: 17 August 2023 -- Update getEntityTypeOptions to allow skip project level data exception check -- Fix CF for querying data during project creation - -### version 2.359.1 -*Released*: 15 August 2023 -- EditableGrid prop for tabContainerCls - -### version 2.359.0 -*Released*: 14 August 2023 -- Remove xhr-mock -- Remove all xhr-mock utilities -- Convert various components to use APIWrappers or dependency injection for methods that fetch data -- Convert some tests to use shallow, preventing them from making network requests -- Delete unused test data -- incrementClientSideMetricCount: Don't make API call in test env - -### version 2.358.2 -*Released*: 8 August 2023 -- Update parsing of duplicate key errors to account for single-field keys - -### version 2.358.1 -*Released*: 8 August 2023 -- Issue 48367: Remove no-data styling from Sample Finder tabs - -### version 2.358.0 -*Released*: 8 August 2023 -- GridPanel ButtonBar - - Slightly change DOM layout to make size calculations easier - - Do not render buttons until we've first loaded data -- Update ResponsiveMenuButtonGroup to calculate available space and render as many buttons as possible - - Buttons that cannot fit will be rendered under a more menu -- QueryInfo: appEditableTable is no longer private - - We need to be able to set this property for tests - -### version 2.357.0 -*Released*: 1 August 2023 -- EditableGrid prop to hideTopControls -- EditableGrid null checks for tabBtnProps and cancelBtnProps - -### version 2.356.2 -*Released*: 31 July 2023 -* Issue 48291: Sample Manager: bulk update form gives (Amount) must be a number error - -### version 2.356.1 -*Released*: 28 July 2023 -- Issue 48333: When creating samples from sources, don't check sample status of parents (that aren't samples) - -### version 2.356.0 -*Released*: 27 July 2023 -- Upon using a multi-value filter that is not BETWEEN, make value input a textarea - -### version 2.355.1 -*Released*: 27 July 2023 -- Updates to allow sources to have parent sources - -### version 2.355.0 -Released*: 26 July 2023 -- Introduce `SearchCategory.Plate`. -- Update various search interfaces to use `SearchCategory` - -### version 2.354.1 -Released*: 25 July 2023 -* Merge release23.7-SNAPSHOT to develop: - * includes changes from 2.349.6 - -### version 2.354.0 -*Released*: 24 July 2023 -* Add Project level date/time to App Settings page - * Add ProjectLookAndFeelForm - -### version 2.353.0 -Released*: 21 July 2023 -- Add to Storage From Grid - add preview to select location modal - - ItemsLegend support for borderColor on HorizontalBarLegendData - -### version 2.352.0 -Released*: 20 July 2023 -- Convert `EditorModel.selectionCells` to a `string[]`. -- Precompute new property `EditorModel.isSparseSelection`. -- Add `dragDelay` to reduce redundant render cycles when clicking on cells. -- Split out `BorderMask` properties on the `Cell` interface. -- Add and export interface for `EditableGridChange`. - -### version 2.351.1 -Released*: 20 July 2023 -* Merge release23.7-SNAPSHOT to develop: - * includes changes from 2.349.5 - -### version 2.351.0 -*Released*: 14 July 2023 -- Expose `inputId` prop from `react-select` on `SelectInput` -- Delete `parseDataTextToRunRows` as it is no longer utilized -- Rename `IAssayUploadOptions` to `AssayUploadOptions` -- Add devDependency on `blob-polyfill` to support `Blob` and `File` interactions within tests. Only exposed in RTL tests. - -### version 2.350.5 -*Released*: 13 July 2023 -* Issue 48050 and 48209: Update parsing of duplicate key error messages for Postgres - -### version 2.350.4 -*Released*: 12 July 2023 -* Merge release23.7-SNAPSHOT to develop: - * includes changes from 2.349.4 - -### version 2.350.3 -*Released*: 12 July 2023 -- Issue 48209 and 48050: Add parsing of duplicate-key error message to try to extract the duplicate name -- Issue 48214: Update messaging on Save Grid View modal -- Issue 48224: Add 'noun' prop for empty state message - -### version 2.350.2 -*Released*: 7 July 2023 -* Split out aliquot calculated columns by sample status - * Show filter action values on grid for lookup columns that's not included in the current view - -### version 2.350.1 -*Released*: 6 July 2023 -- Issue 47501: App specialty assay creation should not remove locked fields from Batch domain - - add isDeletable() to DomainField - -### version 2.350.0 -*Released*: 4 July 2023 -- Add `onKeyDown` event handling for `TAB` and `ESCAPE` for dropdown cells. -- Expose `onKeyDown` event handling prop on `SelectInput`. -- Introduce `showDropdownIndicator`, `showIndicatorSeparator` and `showDropdownMenu` render bits on `SelectInput`. -- Default dropdown cells to `showIndicatorSeparator=false` to better match editable grid styling. -- Fix round-tripping values within the "Alias" column on an editable grid via an `AliasGridInput` processing component. -- Introduce types of `CellCoordinates` and `GridColumnCellRenderer`. -- Update `SampleStatusInput` handling of `containerFilter` to use prop override pattern instead of `delete`. - -### version 2.349.6 -*Released*: 21 July 2023 -* Fix Issue #48014: BarTender Test connection health check - -### version 2.349.5 -*Released*: 10 July 2023 -* Remove BaseSearchPage and SearchForm -* Export SEARCH_PAGE_DEFAULT_SIZE, SearchPanel - -### version 2.349.4 -*Released*: 7 July 2023 -* Add ability to customize message for useNotAuthorized hook. - -### version 2.349.3 -*Released*: 1 July 2023 -* Issue 48188: Selecting 'All non-PHI' or 'Custom template' under 'Index each item as a separate document' doesn't persist - -### version 2.349.2 -*Released*: 30 June 2023 -* Consolidates `internal/utils` into `editable/utils` and removes `internal/utils`. -* Move some utilities into `editable/actions` to prevent circular dependencies. -* Fix a usage of `useCallback` in `DateInputCell`. - -### version 2.349.1 -*Released*: 30 June 2023 -* Import Samples Across Sample Types UI - * update handleEntityFileImport() to add null check for queryInfo param - -### version 2.349.0 -*Released*: 29 June 2023 -- Add new route key for cross-type listing pages -- export method for getting sample types and rowIds from a transactionAuditId -- Issue 48178: Fix URL resolution for sample types that start with numbers - -### version 2.348.1 -*Released*: 28 June 2023 -- Issue 48165: LKSM: Cannot read properties of undefined (reading 'selected') -- Fix tableAlias for getFilterLabKeySql - -### version 2.348.0 -*Released*: 28 June 2023 -- Move editable grid actions to internal/components/editable/actions.ts -- Remove the `I` prefix on various interfaces - - `IGridLoader`, `IEditableGridLoader`, `IGridData`, `IGridResponse`, `IGetSelectedResponse`, `ISelectResponse` - -### version 2.347.2 -*Released*: 27 June 2023 -- Project setting updates for Data in Project and Project Storage needs a manual refresh to take effect - -### version 2.347.1 -*Released*: 27 June 2023 -* Create Storage on Sample Import - * add StorageUnit column to SAMPLE_STORAGE_COLUMNS const - -### version 2.347.0 -*Released*: 27 June 2023 -- Update entity creation for sample and source creation - - Use URL to determine whether to show file upload or grid - - export HREF constants for different creation modes - -### version 2.346.1 -*Released*: 26 June 2023 -* Add scope to ontology search queries - * add scope that includes Shared folder (where ontologies reside) - * switch from deprecated searchUsingIndex - -### version 2.346.0 -*Released*: 26 June 2023 -- EditableGrid Improvements - - Improve drag fill behavior to support multiple columns, prefixed numbers, and dates - - Improve paste behavior to expand pasted content into selections that are a multiple of the pasted content - - Improve selection rendering - - Convert readOnlyRows, lockedRows, insertColumns, updateColumns, readOnlyColumns to non-immutable data types - - Move EditableGrid actions to editable folder - - Handle lookups when using drag fill - - Implement cut & paste - - Fix issue with paste overriding read only columns - -### version 2.345.3 -*Released*: 21 June 2023 -* Moving entities between projects - Assay Data - * Modified EntityMoveModal to work with assay runs - -### version 2.345.2 -*Released*: 21 June 2023 -- Export `EntityMoveConfirmationModal` for use with notebooks. - -### version 2.345.1 -*Released*: 19 June 2023 -- Issue 48067: Add metrics for action buttons on editable grid - -### version 2.345.0 -*Released*: 8 June 2023 -- Revise `QueryAPIWrapper` to support a number of additional API endpoints including query view APIs. -- Refactor a number of components to utilize the `APIWrapper` pattern and update associated tests. -- Remove `getDataClassDetails` from top-level export as it has been added to the `DomainPropertiesAPIWrapper`. - -### version 2.344.0 -*Released*: 6 June 2023 -- Introduce React Testing Library -- Add `test-enzyme` and `test-react` scripts. Call both via `yarn test`. -- Declare alternative `jest.setup.react.ts` to support RTL-specific imports. -- Declare `enzymeTestHelpers` and `reactTestLibraryHelpers` to house utilities specific to each library. -- Add initial example tests for using RTL. - -### version 2.343.1 -*Released*: 2 June 2023 -- Field editor fix for community usage to check for SM module during getFolderExcludedDataTypes() call - -### version 2.343.0 -*Released*: 2 June 2023 -- Introduce enums for `SearchCategory` and new `SearchField` -- Add `SearchAPIWrapper` to allow for component usage of the search endpoint -- Search endpoint wrapper for applications now defaults to `experimentalCustomJson=true` and `normalizeUrls=true`. -- Add optional `requestHandler` to allow for cancellation of promised requests -- Refactor and deprecate `searchUsingIndex` method for resolving search results -- SelectInput: expose `openMenuOnClick` prop - -### version 2.342.1 -*Released*: 1 June 2023 -* Migrate SCSS for /entities subpackage components that moved to @labkey/premium - -### version 2.342.0 -*Released*: 31 May 2023 -* Data type domain exclude projects - * Add DataTypeProjectsPanel to show panel in field editor for selecting excluded projects for a given data type domain - * implement for Sample Type designer, Data Class designer (sources and non-built in registry), Assay Designer - * Misc updates to admin panel titles for consistency - -### version 2.341.3 -*Released*: 31 May 2023 -* Project level data type - handle lookups and remove experimental flag - * remove isProductProjectDataTypeSelectionEnabled experimental flag and enable function - * filter schema and query names for Look Up fields in designer based on selected target container's data type exclusion config - * support user supplied lookupValueFilters for LookupCell - -### version 2.341.2 -*Released*: 30 May 2023 -* Issue 47556: Update color for placeholder text in grids -* Issue 47964: Adjust `AncestorRenderer` to display field values that are negative -* Issue 47960: Update messaging about limit on sample creation -* Issue 47546: Update style for tabs so they don't appear disabled; update font for subnav - -### version 2.341.1 -*Released*: 26 May 2023 -* Fix await without try/catch - -### version 2.341.0 -*Released*: 25 May 2023 -* Project level data type - exclude on UI - * Added App.getProjectDataExclusion utils to get the exclusion for the current folder context - * Exclude assay designs from withAssayModel - * Exclude data types from BarChartViewer - * Added FolderAPIWrapper.getDataTypeExcludedProjects util to get the list of excluded projects for a specific data type - * Modified EntityMoveConfirmationModal to exclude target data types from dropdowns - * Modified initParentOptionsSelects util to exclude data types - -### version 2.340.0 -*Released* : 24 May 2023 -* Issue 47548: App menu folder sections to include icon links to dashboard and admin pages directly - -### version 2.339.0 -*Released* : 23 May 2023 -* move /entities subpackage to @labkey/premium package and remove from this repo -* add some missing components to index.ts needed by @labkey/premium - -### version 2.338.0 -*Released* : 17 May 2023 -* Project level data type configuration schema and UI - * Added DataTypeSelector and ProjectDataTypeSelections components - * Modified CreateProjectPage and AdminSettingsPage to include project data selection panels - * Added ProjectFreezerSelectionComponent and projectDataTypes to AdminAppContext - * Added utils to get, update and add project data exclusion settings - -### version 2.337.0 -*Released*: 15 May 2023 -* Issue 47784: When there is ony one sample type in a tabbed grid, default to that type's tab instead of "All Samples" - -### version 2.336.2 -*Released* : 15 May 2023 -* Update shouldShowProductNavigation() to include check for LKB app instead of just hasPremiumModule - -### version 2.336.1 -*Released* : 12 May 2023 -* Issue 47794: App sample type assay button to show assay submenu items in disabled state - -### version 2.336.0 -*Released* : 12 May 2023 -* Issue 47024: WindowFocusCheckExpiredSession to add tab focus window listener to check for expired session in apps - -### version 2.335.0 -*Released* : 11 May 2023 -- Add support for moving sources (data classes) - - Refactor components for samples - - Add properties to EntityDataType - -### version 2.334.0 -*Released*: 8 May 2023 -* Add ExtendedMap -* Convert QueryInfo to plain JS class - * Convert all Immutable properties to JS based types or ExtendedMap - * Convert all usages of QueryInfo to expect updated types - * Remove insertColumns in favor of ExtendedMap.mergeAt -* ViewInfo: Remove logic from constructor - - All transformation logic moved to fromJsonForTests - -### version 2.333.3 -*Released*: 7 May 2023 -* Bulk edit improvement - * limit the number of items that can be edited in Bulk to 1000 - * only select key columns and columns that are editable for bulk edit and edit in grid - -### Version 2.333.2 -#Released*: 3 May 2023 -- Issue 46747: Update lookup resolver to go to LKS when lookup is defined outside the app - -### version 2.333.1 -*Released*: 3 May 2023 -* Adjust usages of auditBehavior to always use AuditBehaviorTypes.DETAILED - * remove auditBehavior optional props since they were always passed in as DETAILED - * remove getSampleAuditBehavior() since it was always using DETAILED - -### version 2.333.0 -*Released*: 2 May 2023 -* Add expired sample indicator in UI - * add new ExpirationDateColumnRenderer and wire up to grid cell and DetailDisplay - * modify SampleAiquotDetailHeader to show expired icon for aliquot parent expiration date field - * modify ItemsLegends to be able to display expired icon - -### version 2.332.4 -*Released*: 2 May 2023 -* Update @labkey/api package version - -### version 2.332.3 -*Released*: 1 May 2023 -* Move samples between project updates and containerFilter changes - * Picklist All Samples grid update to filter out unresolved samples - * SampleMoveMenuItem update to provide an onSuccess callback, to allow the LKFM grid to reload models accordingly - -### version 2.332.2 -*Released*: 1 May 2023 -* Issue 47822: export getSampleStatusContainerFilter - -### version 2.332.1 -*Released*: 28 April 2023 -* Issue 47749: Assay re-import run from tmp file to use TSV loader for file preview -* Issue 47576: AssayImportPanels change so that if there are wrapped columns that are marked as userEditable and shownInInsertView, include them in the form / UI - -### version 2.332.0 -*Released*: 27 April 2023 -- Issue 47756: Use categories to filter search results server-side instead of client-side - -### version 2.331.0 -*Released*: 26 April 2023 -* Performance Evaluation for Data at Scale - Improve Insert/UpdateRows calls - * add skipReselectRows param to insertRows/updateRows calls when detailed rows in response is not needed - -### version 2.330.0 -*Released*: 26 April 2023 -* Move samples between projects UI updates - * add new SampleMoveMenuItem and EntityMoveModal to be used by the SamplesEditButton - * add getMoveConfirmationData and moveSamples API action calls - * handle selectionKey for useSnapshotSelection case - * add move menu item to sample overview page and usage of EntityMoveModal - -### version 2.329.1 -*Released*: 20 April 2023 -- Support for restricted issue lists - - Adds configuration to the issue list admin page to enable/disable restricted issue lists. - - Optional site and project group selection to allow group members to access restricted issues. - - This feature is controlled via a module property. - -### version 2.329.0 -*Released*: 20 April 2023 -* Issue 47656: Add metrics for pagination usage and page sizing -* Issue 47657: Remove adding BarTender templates from within subfolder Projects - -### version 2.328.1 -*Released*: 20 April 2023 -* Issue 47743: Sample Finder mis-renders data cards in queries with both "All Sample Types" and Assay cards - -### version 2.328.0 -*Released*: 19 April 2023 -- Issue 47509: Better handling of samples with numeric names on assay import - - the editable grid will always use key values (i.e. RowIds) for lookups, so set allowLookupByAlternateKey to false - - on re-import run if the original run was imported via editable grid, the sample Ids will be rowIds so set allowLookupByAlternateKey to false - -### version 2.327.0 -*Released*: 18 April 2023 -* Media consistency improvements - -### version 2.326.0 -*Released*: 15 April 2023 -- Entities subpackage migration - - Moved `AssayResultsForSamplesButton`, `EntityCrossProjectSelectionConfirmModal`, `EntityDeleteConfirmModal`, `EntityInsertPanel` and `FindDerivativesButton` to subpackage. - - Moved `getOriginalParentsFromLineage` to `@labkey/components` to align endpoint wrappers for use in `EntityAPIWrapper`. -- `EntityInsertPanel`: - - Refactor initialization to separate concerns for initializing import aliases, name expression previews, `insertModel` and editable grid models. - - Defer construction of column metadata until after load. Previously results were just thrown away. - - Update all direct calls to endpoints to utilize `ComponentAPIWrapper` provided implementations. - - `getInferredFieldWarnings` and `getNoUpdateFieldWarnings` are no longer static methods as this served no purpose - - Refactored `getWarningFieldList` into `WarningFieldList` component - - Remove superfluous render wrapping -- `ComponentAPIWrapper`: - - Add `getEntityTypeData`, `getOriginalParentsFromLineage` and `handleEntityFileImport` to `EntityAPIWrapper`. Update associated usages where possible to use API wrapper. - - Add `fetchDomainDetails` to `DomainPropertiesAPIWrapper` - - Update `getDefaultAPIWrapper()` for `ComponentAPIWrapper` to instantiate wrappers once. Makes `api` easier for reuse in components to prevent redundant render cycles. -- Streamline some sample action implementations to use `async/await` and remove redundant error handling wrapping. - -### version 2.325.1 -*Released*: 12 April 2023 -- Sample Derivation: limit selected data requests - -### version 2.325.0 -*Released*: 10 April 2023 -* Follow up consolidation of search pages to a shared component - -### version 2.324.0 -*Released*: 10 April 2023 -* Issue 47648: Make "Contains" the default filter - -### version 2.323.7 -*Released*: 10 April 2023 -* Issue 47647: App permissions page needs to check for project container perm when loading group memberships - -### version 2.323.6 -*Released*: 10 April 2023 -* Issue 47660: QueryModel with bindURL isn't reloading totalCount on URL filter change - -### version 2.323.5 -*Released*: 7 April 2023 -* Issue 47633: display project data in home folder when "queryProductProjectDataListingScoped" experimental flag is enabled. - -### version 2.323.4 -*Released*: 5 April 2023 -* Add loading state to domain designer initialization. - -### version 2.323.3 -*Released*: 5 April 2023 -* Issue 47571: Make sure project settings panel shows up even when the premium module is not available. -* Issue 47544: Don't show [blank] filter option if all distinct values are returned and none is blank. -* Issue 47532: For the UserProfile form, exclude lastActivity column explicitly -* Issue 47100: Update documentation link for sample ID lookup fields. -* Issue 47464: Update documentation link for ontology integration from LKSM. - -### version 2.323.2 -*Released*: 4 April 2023 -* UserDetailsPanel fix for currentProductId vs targetProductId in URL generation -* SampleAssayDetails fix to check for both hasSampleTypeAssayDesigns and hasAssayResults when displaying empty msg - -### version 2.323.1 -*Released*: 4 April 2023 -* Merge release23.3-SNAPSHOT to develop: - * includes changes from 2.302.4 - -### version 2.323.0 -*Released*: 1 April 2023 -* Enable lineage relationship between custom data classes in apps - * Extract parent alias handling code from SampleTypeDesigner and SampleTypePropertiesPanel to DomainParentAliases and utils - * Support parent alias for DataClassDesigner - -### version 2.322.0 -*Released*: 31 March 2023 -* Search behavior improvements - * Added a SearchPanel component to be shared between Apps - * Cleaned up some styling and layout items - * Added paging to search results - * Removed advanced filtering options - -### version 2.321.0 -*Released*: 31 March 2023 -- Allow for specifying other options on requests made by `useContainerUser`. -- Consolidate usage of `SampleStorageLocationComponentProps` and `SampleStorageMenuComponentProps` types by exporting for external reference. - -### version 2.320.1 -*Released*: 31 March 2023 -- Aliquot panel perf improvements by removing the unnecessary call to get the total row count and extra storage related columns - -### version 2.320.0 -*Released*: 30 March 2023 -* Issue 47570: Remove admin pages for Users and Groups in subfolders - -### version 2.319.0 -*Released*: 30 March 2023 -- Graph Options - - Add `LineageSettings` component that allows for manipulation of settings for the graph. - - Expose graph options "gear" icon via `LineageGraph` component. -- Combine Nodes - - Create a `LineageNode` instance that replaces all combined nodes in processing. - - Factor out `applyCombineSize` method to encapsulate `combineSize` logic. - - Factor our `processCombinedNode` method to encapsulate construction of edges from a combined node. - -### version 2.318.1 -*Released*: 30 March 2023 -* Issue 47575: Populating editable grid from bulk update doesn't account for aliquot- or sample-only fields - -### version 2.318.0 -*Released*: 30 March 2023 -* Issue 47346: App Sample details Assay data tab loading slowly - * AssayDefinitionModel.createSampleFilter change to generate a where clause that uses a "RowId IN ()" instead of "OR clause" - -### version 2.317.0 -*Released*: 29 March 2023 -* Convert Immutable classes to plain JS classes - - ViewInfo - - DataViewInfo - - LastActionStatus - -### version 2.316.0 -*Released*: 29 March 2023 -* Issue 47520: LKB: Sample Finder shows no samples when Assay does not have sample ID populated - * modify filtering on AssayNotInFilter to exclude null result -* Sample Finder: Sample Properties & Built in reports - * new SamplePropertyDataType EntityDataType - * add built-in report section to SampleFinderSavedViewsMenu - * support relative date filter value in DatePickerInput - * add parsing, display and labkey sql util for relative date filter - * modify QueryFilterPanel to allow provided list of fields - * update card/json util to no longer persist full entityDataType object - -### version 2.315.1 -*Released*: 28 March 2023 -* Merge release23.3-SNAPSHOT to develop: - * includes changes from 2.302.3 - -### version 2.315.0 -*Released*: 27 March 2023 -* Update sample statuses to inherit from the parent and no longer support creation in subfolders -* Update `ManageSampleStatusesPanel` - * Display statuses from higher up the hierarchy as locked statuses - * Don't allow adding new statuses when in sub-folders - -### version 2.314.1 -*Released*: 24 March 2023 -* Sample aliquots panel should not show "Assay Data with Aliquots" when isAssayEnabled false - -### version 2.314.0 -*Released*: 23 March 2023 -* Issue 47408: Filter units in bulk update to match sample type display units -* Issue 47408: Coalesce and check for updates using the display values for amounts and units -* Issue 47517: Update Label for Name field for SM Source typ in Default System Fields - -### version 2.313.1 -*Released*: 23 March 2023 -* Issue 47229: Support all characters within aliases - -### version 2.313.0 -*Released*: 23 March 2023 -* Issue 47503: Sample Manager: Sample Finder not working for sample type with double quotes in name -* Issue 47077: Sample Finder taking a really long time to load results - * skip autoload for sample finder result grids - * improve sample finder hidden custom view handling - * use a single query to get row counts for all sample finder result grids - * add tabRowCounts as a prop for TabbedGridPanel - -### version 2.312.0 -*Released*: 21 March 2023 -* Sample assay grid and aliquot summary to only query for data from assays that have data for that sample/aliquot ID set - * previously was just querying for all assay designs with a sample lookup - * getDistinctAssaysPerSample() to query for the distinct set of assay design names with data for given sample rowIDs - -### version 2.311.0 -*Released*: 21 March 2023 -* Issue 43559: Domain designer throws error on invalid lookup - -### version 2.310.0 -*Released*: 17 March 2023 -* withQueryModels to separate query to get the totalCount from the query to get the model data rows - * loadRows query to always use includeTotalCount false and then conditionally make a second query with includeTotalCount true - * update Pagination and SelectionStatus to wait for new totalCountLoadingState - * PaginationInfo update to include loading check for max/rowCount text display - * reset totalCountLoadingState when filters change on a QueryModel since we need to reload totalRowCount - * add option to reloadTotalCount via loadModel() and loadAllModels() - * QueryModel action to resetTotalCountState for all models - -### version 2.309.0 -*Released*: 16 March 2023 -* Fix sample field partitioning to account for media not in storage - -### version 2.308.0 -*Released*: 14 March 2023 -* Issue #47326: Allow setting a default BarTender label - -### version 2.307.2 -*Released*: 10 March 2023 -* Issue 47422: LKSM: Renaming Sample Type results in Not Found error -* Issue 47407: Sample Manager: Update from file for Storage Editor without Edit Perm shoulnd't be available -* Issue 47406: Sample Manager: "Sample Id" column should be readonly on Edit Samples Grid / Storage Details tab -* Issue 47474: LKSM: Setting a field as required when editable on Samples & Aliquots errors - -### version 2.307.1 -*Released*: 8 March 2023 -* Merge release23.3-SNAPSHOT to develop: - * includes changes from 2.302.1 and 2.302.2 - -### version 2.307.0 -*Released*: 7 March 2023 -* selectRows and selectRowsDeprecated update to default to includeTotalCount false when not provided by usage config - * switch usages of totalRows to rowCount were applicable - * SelectionMenuItem shouldn't actually care about rowCount when deciding if it is disabled - -### version 2.306.0 -*Released*: 7 March 2023 -* Issue 47127: Update wording for delete reply menu item and use title casing -* Issue 47333: When editing items individually is not possible, remove that tab -* Remove extraneous columns from inventory columns -* add `smaller-font` utility class - -### version 2.305.0 -*Released*: 6 March 2023 -* Issue 47391: LKFM user menu items should match primary application -* Issue 47352: Product/Mega-menu has extra white space when sections are not displayed for permissions or product configuration reasons -* Issue 47390: Primary application should take into account the current URL controller for LKB and LKSM case - -### version 2.304.2 -*Released*: 3 March 2023 -* Issue 47224: Refactor `SamplesDeriveButton` to reduce redundant calls and not make unnecessary, expensive calls - -### version 2.304.1 -*Released*: 3 March 2023 -* Issue 47084: App Sample type grids issue the query for the grid twice - -### version 2.304.0 -*Released*: 1 March 2023 -* Refactor all reducers declared by this package to no longer utilize `handleActions`. -* Remove `redux-actions` as a dependency. - -### version 2.303.0 -*Released*: 1 March 2023 -* Migrate inventory.item.volume to exp.materials.storedAmount and inventory.item.volumeUnits to exp.materials.Units - * Update `SamplesEditableGrid` for move of amount and units from inventory.item to exp.materials - * Move measurement- and sample amount-related methods and models from ui-premium to here - * Relabel "Stored Amount" to "Amount" - * Separate editing of Stored Amount and Freeze/Thaw count on - * Account for storedAmount and Units fields now on samples grids - * Don't display amount and units in details display - -### version 2.302.5 -*Released*: 2 June 2023 -- Backport Issue designer UI to support restricted issue lists to 23.3 - - see changes for v2.329.1 - -### version 2.302.4 -*Released*: 30 March 2023 -- Issue 47502: ProductMenu should use isAppHomeFolder to determine containerPath for fetchContainers call - -### version 2.302.3 -*Released*: 27 March 2023 -- Issue 47569: Remove setting for inheriting permissions for the Site Roles and Assignments - -### version 2.302.2 -*Released*: 03 March 2023 -- Issue 47306: Resolve Permissions page error by skipping no-resolvable users. -- Resolve bug in redirection location upon project deletion - -### version 2.302.1 -*Released*: 02 March 2023 -- Issue 47202: Options to reduce payload of getContainers.api response - - Field editor only needs the base set of container info for lookups so use new props to reduce response object size (includeWorkbookChildren and includeStandardProperties) - -### version 2.302.0 -*Released*: 28 February 2023 -- SampleStatusTag to query for status type if not provided -- getSampleStatuses() boolean property for whether API should include inUse information or not -- Issue 47411: Include viewName in selectDistinct query for FilterFacetedSelector - -### version 2.301.0 -*Released*: 28 February 2023 -- Add ability to delete projects while in-app - -### version 2.300.1 -*Released*: 28 February 2023 -- Add a `focusSeed` method to the `VisGraph` component which fits the graph to the seed node and then zooms in to an appropriate level. -- Revise `fitGraph` to take determine whether the graph should be focused on the seed. - -### version 2.300.0 -*Released*: 28 February 2023 -- FilterFacetedSelector fix to better handle selection filters when we don't have all distinct values (i.e. > 250 facet filter values) - - don't compare current selection to allValues if we don't have allValues - - don't default to selected/checked if we don't have allValues - - handle case with search/filter input but not max distinct options - - Issue 47266: For a grid the filter dialog does not enable the 'Apply' button if I type in a value unless I uncheck the [All] option first - - Issue 47247: LKSM: Filtering values >250 doesn't save selection -- Issue 46870: Don't allow selection/inclusion of multi-valued lookup fields from Ancestors - -### version 2.299.0 -*Released*: 27 February 2023 -- QueryColumn: convert to plain class -- AppURL: convert to plain class -- Container: convert to plain class -- User: convert to plain class -- QuerySort: convert to plain class -- WebDavFile: convert to plain class - -### version 2.298.0 -*Released*: 25 February 2023 -- Support Enable/Disable “System Default Fields” - - add disabledSystemFields property to DomainDesign and QueryInfo - - allow updating Enabled property for SystemFields - -### version 2.297.1 -*Released*: 24 February 2023 -- Issue 47392: Parent link to registry data types not resolving - -### version 2.297.0 -*Released*: 24 February 2023 -- Introduce `getContainerFilterForFolder` to specify container filter specific to listing data in the current folder context. -- Use `getContainerFilterForFolder` for listing data on `SampleListingPage` and `QueryListingPage`. -- Explicitly support container filters on grid selection endpoint wrappers (e.g. `getSelected`, `selectAll`, etc). -- Add wrappers for new experimental flags for product projects. -- Update `SampleAliquotsSummary` to consolidate loading logic to present consistent loading behavior. -- Update `SampleTimelinePageBase` to consolidate loading logic to present consistent loading behavior. -- BarChartViewer: respect container filter settings -- Addresses Issue 47371: Harden MultiValueRenderer - -### version 2.296.1 -*Released*: 23 February 2023 -- Add perm check helper hasSampleWorkflowDeletePermission() -- update @labkey/api package version - -### version 2.296.0 -*Released*: 22 February 2023 -- QueryLookup: convert to regular class, add filterGroups attribute, use filterGroups in getQueryFilters -- QueryFormInputs: Add optional "operation" prop - - Add equivalent prop to QueryInfoForm, AssayImportPanels (and child components), BulkAddUpdateForm, LookupCell -- DetailDisplay: use QueryColumn.getQueryFilters when rendering QuerySelect - -### version 2.295.0 -*Released*: 22 February 2023 -- QueryModel switch to default to includeTotalCount false - - add QueryModel prop for includeTotalCount, default to false - - update all grid panel QueryConfig usages to includeTotalCount true - -### version 2.294.0 -*Released*: 21 February 2023 -- Add LK version to app admin settings page header - fix for non-premium app case - -### version 2.293.6 -*Released*: 20 February 2023 -- Add “ExpirationDate” field to exp.material - - Add Expiration Date to the set of aliquot fields - -### version 2.293.5 -*Released*: 17 February 2023 -- Issue 46465: Grid actions that use a selectionKey doesn't get expected selections when filters applied to grid - - make sure setSnapshotSelections() is called before selectionKey based call to getSampleOperationConfirmationData() - -### version 2.293.4 -*Released*: 16 February 2023 -- Issue 46767: DatePicker valid dates start at year 1000 (i.e. new Date('1000-01-01')) - - set the DatePicker as disabled in an invalid date is used, still allows it to be removed - -### version 2.293.3 -*Released*: 15 February 2023 -* Issue 47322: Ensure node requests are grouped by schema/query - -### version 2.293.2 -*Released*: 15 February 2023 -* Fix EntityInsertPanel UI issues - * fix alignment of parent type inputs on sample creation grid - * fix extra caret on entity insert panel when alias cells are present - -### version 2.293.1 -*Released*: 15 February 2023 -* Merge release23.2-SNAPSHOT to develop: - * includes changes from 2.288.2 and 2.288.3 - -### version 2.293.0 -*Released*: 15 February 2023 -- Add LK version to app admin settings page header - -### version 2.292.1 -*Released*: 13 February 2023 -- Issue 47190: Don't warn about required fields added to default grid from lookups - -### version 2.292.0 -*Released*: 10 February 2023 -- Add Default System Fields to Domain Designer for Sample Types and Data Classes - -### version 2.291.0 -*Released*: 8 February 2023 -* UserLinkList: Fix issue with keys -* AttachmentCard: Add optional onCopyLink prop - -### version 2.290.3 -*Released*: 8 February 2023 -* Merge release23.2-SNAPSHOT to develop: - * includes changes from 2.288.1 - -### version 2.290.2 -*Released*: 6 February 2023 -* Issue 47035: Sample Aliquot grid should allow for edit - * Use SamplesTabbedGridPanel for SampleAliquotsGridPanel - -### version 2.290.1 -*Released*: 3 February 2023 -- Move getReportInfos.api to reports controller since it does not rely on study module - -### version 2.290.0 -*Released*: 2 February 2023 -* SchemaQuery: Convert to vanilla class, remove getQuery, getSchema, getView, create - * Use new SchemaQuery(schemaName, queryName, viewName) instead of SchemaQuery.create -* Remove unused resolveSchemaQuery - -### version 2.289.0 -*Released*: 2 February 2023 -* Update links from users to display user detail data via modal for those who have permission - * add modal version of UserDetailsPanel, via UserDetailsRenderer and UserLink - * update list display of GroupsList, EffectiveRolesList, and MembersList - * shows user permissions on the User Management page - * use UserDetailsRenderer as default renderer for columns with user lookup - * use UserLink and UserLinkList in various components that render user displayName - * update UserDetailsPanel so that permissions and group listing items are links to admin groups/permissions page - * add dirty state check for user Profile page navigation - -### version 2.288.3 -*Released*: 14 February 2023 -- Issue 47257: Cannot delete samples from a grid that has a filter applied - - make sure setSnapshotSelections() is called before selectionKey based call to getCrossFolderSelectionResult() - -### version 2.288.2 -*Released*: 14 February 2023 -- Issue 47303: fix bad URL redirection from SamplesCreatedSuccessMessage - -### version 2.288.1 -*Released*: 6 February 2023 -- Issue 46618: Retain result row ordering in `formatSavedResults` and `formatResults` when processing results of `QuerySelect` queries. -- Add the `hasSortKey` property to the `QueryColumn` model. Now supported by `query-getQueryDetails.api`. - -### version 2.288.0 -*Released*: 1 February 2023 -- Create components for `SamplesCreatedSuccessMessage` and `SamplesImportSuccessMessage`. Utilize `withRouter`. -- Add URL utility to `removeParameters()`. -- Default implementation of `sampleWizardURL` is now `getSampleWizardURL()`. Update typings to be more easily exported. - -### version 2.287.0 -*Released*: 30 January 2023 -- Get product menu sections separately from user menu since they are no longer displayed together - -### version 2.286.2 -*Released*: 28 January 2023 -* Issue 46949: Sample timeline detail links to sources instead of registry for LKB - -### version 2.286.1 -*Released*: 28 January 2023 -* Projects: disallow project-specific data type creation - * Hide create data type urls from ProductMenuSection - * Show 'Not Found' page for SampleTypeDesignPage - * Hide 'Create Sample Type' button from SampleTypeListingPage - * Hide create url link from Sample/Assay EmptyAlert - -### version 2.286.0 -*Released*: 27 January 2023 -* Handle update and clarify merge - use DIB for updateRows - * use LSID as keys for updateRows and saveRows for samples and dataclasses -* Issue 47152: Having a field that can be edited by both aliquots and samples after an "aliquot only" will not get populated on sample create. -* Issue 47162: Using file import to create aliquots does not behave as expected if the column header is "Aliquoted From" and not "AliquotedFrom" - -### version 2.285.1 -*Released*: 27 January 2023 -- `waitForLifeCycle` now supports `ShallowWrapper` components (and can be used with `shallow()`) -- `EntityFieldFilterModal` update unit tests to match expected behavior and remove test-specific workarounds from component. -- Wrap `CreateSamplesSubMenuBaseImpl` with `withRouterProps` to support in-app navigation. -- Rename `SamplesDeriveButtonBase` to `SamplesDeriveButton`. -- Remove redundant prop declarations for `CreateSamplesSubMenuBaseProps` and `CreateSamplesSubMenuProps` and `SamplesDeriveButtonProps` - -### version 2.285.0 -*Released*: 27 January 2023 -* Add `help` prop to `SelectInput` and render without colliding with error message rendering. -* Add `REGISTRY_AUDIT_QUERY` events to be displayed in only in LKB. -* Update `getAuditQueries()` to require a `ModuleContext` parameter. -* Issue 45729: Inform user that commas are not supported for values in the alias field - -### version 2.284.0 -*Released*: 25 January 2023 -* Enable adding user audit comments when deleting Samples, Sources, and Assays & the associated entity types - -### version 2.283.2 -*Released*: 23 January 2023 -* Fix issue with react keys in Navigation - -### version 2.283.1 -*Released*: 20 January 2023 -* Issue 46344: Display group membership on profile page - -### version 2.283.0 -*Released*: 17 January 2023 -* Issue 47066: Adjust timeline to show created date and created by user in timeline's current status, even if detailed audit logging was not on. -* Issue 47059: Show grid customization on sample-type-specific grids on Find By Ids page. - -### version 2.282.0 -*Released*: 17 January 2023 -* Handle update and clarify merge - enable update action for apps - * Remove isImportWithUpdateEnabled experimental flag - -### version 2.281.0 -*Released*: 16 January 2023 -* Updates for notebook consistency - * ProductMenu fix so that column section header `
` don't look clickable - * Consolidate status-tag with notebook tags, rename as status-pill / pill.scss - * FileAttachmentArea.tsx compact mode - -### version 2.280.1 -*Released*: 13 January 2023 -* Show "View All Activity" link in `ServerActivityList` when there are any items in the list -* Use `PIPELINE_MAPPER` in `ServerActivityList` to resolve `ActionLinkUrl` when possible -* Make sure `ServerNofifications` button closes after clicking a link in it. - -### version 2.280.0 -*Released*: 12 January 2023 -* QueryColumn: Add shownInLookupView -* QueryInfo: Add getLookupViewColumns -* QuerySelect - * remove previewOptions, we now render additional columns based on the shownInLookupView attribute of QueryColumn - * update default option renderer to only render column captions when multiple columns are set to show in lookup views -* AssayImportPanels: remove showQuerySelectPreviewOptions - -### version 2.279.1 -*Released*: 9 January 2023 -* Issue 47020: Use unique grid id so selections are not shared between FindByIds queries -* Issue 47003: don't try to load rows if queryInfo is not yet loaded. -* Issue 46876: Remove links from audit log entries that lead to LKS - -### version 2.279.0 -*Released*: 8 January 2023 -* pull forward v2.275.1 changes - -### version 2.278.0 -*Released*: 6 January 2023 -* Update `react-select` to `5.7.0`. -* Remove `@types/react-select` as types are now provided by `react-select`. -* Update `@labkey/build`. - -### version 2.277.2 -*Released*: 6 January 2023 -* Issue 46733: Editable for aliquots only/Required Field: Adding Samples gives error - -### version 2.277.1 -*Released*: 6 January 2023 -* Issue 46574: Filter Panel boolean labels are not clickable -* Issue 46765: Grid cell sample status input requires multiple clicks to open select options menu -* Issue 46837: Checkbox inputs with label render incorrectly on col-sm size -* Issue 46581: Editable Grid doesn't de-focus cells if you click outside the table - -### version 2.277.0 -*Released*: 4 January 2023 -* Remove UserAvatars - * It is no longer used by our apps -* Remove AssayButtons.tsx - -### version 2.276.1 -*Released*: 3 January 2023 -* Issue 46767: DatePicker valid dates start at year 1000 (i.e. new Date('1000-01-01')) - * update `parseDate` to add an optional minDate param for valid dates for DatePicker selected date -* Issue 46839: Allow click on search input icon for grid panel to apply search value - -### version 2.276.0 -*Released*: 3 January 2023 -* App header Projects and Menu misc fixes - * don't show projects column when user only has perm to a single subfolder - * add new app icons with lighter background color for use in menu Dashboard link - * adjust hover styling of menu items and menu widths for various screen sizes - * show 'Home Project' for title when in /home container -* Issue 46299: Lineage Graph: Make Font Larger -* Issue 46593:App template download button ignores custom XML metadata override for sample types - -### version 2.275.1 -*Released*: 6 January 2023 -* Fix race condition that causes LabelTemplates table creation to fail - -### version 2.275.0 -*Released*: 29 December 2022 -* Add support for tracking and using multiple BarTender Label templates - * Changed from input to an Admin managed list - * Default template used as first entry in above list, and property removed - -### version 2.274.2 -*Released*: 28 December 2022 -* Issue 46853: LKSM/LKB Projects: should allow derivation of samples within projects when parent/source is in Home -* Issue 46696: Metrics: Sample Finder with Assay Results as Filter -* Issue 46997: Increase allowed pooling parents limit - -### version 2.274.1 -*Released*: 28 December 2022 -* Don't use text-capitalize class in PageHeader. It doesn't always do what we want -* Don't provide default `itemLabel` in `BulkUpdateForm` to allow for shorter messaging -* Convert to lower case in `BulkUpdateForm` where it is expected -* Add `typeIcon` field to `EntityDataType` - -### version 2.274.0 -*Released*: 28 December 2022 -* App header Projects and Menu consolidation - * ProductMenuButton to hold state for folderItems - * FolderMenu component to render within ProductMenu - * ProductMenu component use state variable for ProductMenuModel object for current and selected folder - * Add createProductUrlFromPartsWithContainer() to create menu links for selected container when not current - * Pass containerPath through to create methods of MenuSectionModel and MenuItemModel - * Update menuSectionConfig generation utils to remove appBase prop - * Styling updates for header project/menu button and menu sections / columns - * Remove MenuSectionModel itemLimit - * Remove some user menu items and add a conditional Dashboard section to the menu - -### version 2.273.4 -*Released*: 27 December 2022 -* View Assay Results report fix for selectionKey when coming from sample > aliquots grid - -### version 2.273.3 -*Released*: 21 December 2022 -* Issue 46923: Use lookup container filter as default in LookupCell -* Issue 46932: Don't show fields that are not filterable in filter modal -* Issue 46974: Update delete warning messages to correspond to enabled features - -### version 2.273.2 -*Released*: 20 December 2022 -* Issue 46908: Assure that columns added via `addToSystemView` in metadata are carried through to saved views - -### version 2.273.1 -*Released*: 19 December 2022 -* Remove premature return from renderLabel in TextInput -* Set maxLength property on ProjectProperties name field - -### version 2.273.0 -*Released*: 15 December 2022 -* Update FM UI to use "Storage" instead of "Freezer" - * Update audit query name - * Update mega-menu empty state messaging - -### version 2.272.0 -*Released*: 15 December 2022 -* UI for samples/sources/dataclasses import with Update in apps - * Add check for isImportWithUpdateEnabled - * Modify EntityInsertPanel to distinguish import vs update/merge - * Modify SamplesEditButton to allow 'Update from File' - -### version 2.271.0 -*Released*: 15 December 2022 -* Updates for data class consistency - * remove HeatMap and Cards view from app landing pages - * add project/folder column to app landing page grid views - * remove overview subtitle from listing page subtitle - -### version 2.270.0 -*Released*: 13 December 2022 -* Issue 46465: Support filtered selections when acting on items in grids - * Reorder parameters in `getOperationConfirmationData` and relatives to account for additional `useSnapshotSelection` parameter when `selectionKey` is provided - * Add `useSnapshotSelection` parameter in several methods that get data for various actions - * Update `CreateSamplesSubMenuBase`, `EntityDeleteModal`, `EntityLineageEditModal`, `PicklistEditModal` and relatives to set and use snapshot selections when grid is filtered -* When setting filters, reset selectionsLoadingState if also loading selections - -### version 2.269.1 -*Released*: 12 December 2022 -* Issue 46841: Require permission/role when creating a new user via app modal - -### version 2.269.0 -*Released*: 12 December 2022 -* Updates for picklist consistency - * remove checkbox to change sharing state of picklist from overview page - -### version 2.268.1 -*Released*: 12 December 2022 -* Issue 46681: Don't show the assay button for Aliquots if assays is not enabled -* Issue 46023: Exclude General assay provider when choosing a speciality assay - -### version 2.268.0 -*Released*: 8 December 2022 -* Updates for creation of @labkey/premium package - * move /assay subpackage to new repo / package and remove from this repo - * add some missing components to index.ts needed by @labkey/premium - -### version 2.267.2 -*Released*: 7 December 2022 -* Issue 46843: Remove export notification for tabbed grids - -### version 2.267.1 -*Released*: 7 December 2022 -* Merge release22.12-SNAPSHOT to develop: - * includes changes from 2.263.1 - -### version 2.267.0 -*Released*: 6 December 2022 -* Add samples to storage in the order they are in grid - * added getOrderedSelectedMappedKeys util to get remapped ordered selections from grid - * modify getSelectedPicklistSamples to return ordered samples from selected ids - -### version 2.266.1 -*Released*: 6 December 2022 -* Fix Issue 46607: On smaller formats the parent in the subnav consumes the majority of the space - -### version 2.266.0 -*Released*: 6 December 2022 -* Updates for workflow consistency: status-tag styling - * LKSM fix for assay creation URL for empty app state - * revert panel heading font size when panel is within the tabbed grid panel - * AssayDesignPage update to hide template button from header - -### version 2.265.0 -*Released*: 1 December 2022 -* AssayProtocolModel: Add hasBatchFields -* Fix circular deps between entrypoints - * Moved several interfaces from entities and assay entrypoints to main entrypoint - -### version 2.264.0 -*Released*: 1 December 2022 -* Updates for form consistency in apps: textarea resizing - * only allow for vertical resizing, not horizontal - -### version 2.263.1 -*Released*: 2 December 2022 -* Remove ID/Name Settings from `CreateProjectPage`. -* Coalesce usage of `IDNameHelpTip` and `PrefixDescription` now that they are no longer utilized separately. - -### version 2.263.0 -*Released*: 30 November 2022 -* Fully hide DOM for `FolderMenu` when rendering `NavigationBar` when respecting `!showFolderMenu`. -* `QuerySelect` skip processing of stale requests. -* Introduce `setProductProjects` to update moduleContext in React context and global context. -* Update moduleContext and invalidate query details cache upon creation of the first project. - -### version 2.262.0 -*Released*: 30 November 2022 -* Update `PicklistOverview` to show project column when there are project folders present -* Add `ProjectColumnRenderer` to remove link to container from Project columns - -### version 2.261.3 -*Released*: 30 November 2022 -* Update default panel heading styling for apps - * Panel default heading update to increase font size, set background to white, remove title bottom border, and remove title bottom padding - -### version 2.261.2 -*Released*: 29 November 2022 -* Issue 46756: Change aliquots grid to use default view instead of details view -* Issue 46737: Use the proper selection key when constructing URL for assay import - -### version 2.261.1 -*Released*: 29 November 2022 -* Various projects container filtering fixes - * disallow assay import for child samples at Home project - * added isAppHomeFolder util to check folder with app folder type - * fix cross folder audit log event detail - -### version 2.261.0 -*Released*: 28 November 2022 -* WebDav helper for deleting directories and files: deleteWebDavResource() -* Allow for container GUID to be used instead of containerPath in webdav helpers - -### version 2.260.0 -*Released*: 28 November 2022 -* Updates for Admin page consistency - * AdminSettingsPage refactor and port from LKB and LKSM - * Rename GroupManagement to GroupManagementPage - * AuditQueriesListingPage update to get user from context so that apps don't have to wrap it - * UserManagementPage update to get extraRoles from AdminAppContext - * PermissionManagementPage port from LKB and LKSM and get extraRoles from AdminAppContext - * AccountSettingsPage port from LKB and LKSM and get premium components from AdminAppContext - * Remove settings-panel-title and revert all admin settings panels back to panel-default headings - * NameIdSettings to conditionally show prefix input for LKB only - * Remove "You have unsaved changes" alert from several components - * Rename util/Date.ts getDateFormat -> getMomentDateFormat and getDateTimeFormat -> getMomentDateTimeFormat - -### version 2.259.0 -*Released*: 22 November 2022 -* Update `addColumns`, `changeColumn`, and `removeColumns` editable grid actions to update the new `columns` array on the `EditorModel`. -* Process directly against `EditorModel.columns` in `EditorModel.getRawDataFromGridData()` rather than relying on all column oriented properties aligning with the initial configuration. -* Introduce `EditorModel.getRawDataFromModel()` as a wrapped replacement for `EditorModel.getRawDataFromGridData()` to reduce redundant processing of the data on a `QueryModel`. -* Remove concept of `getEditableValue` on the renderer for editable grid cells. This pattern is no longer needed. - -### version 2.258.0 -*Released*: 22 November 2022 -* Update label on `ManageDropdownButton` to contain the word "Manage" -* Remove need for mega-create button on `AssayListingPage` -* Rename `SampleTypePage` to `SampleTypeListingPage` and incorporate empty state behavior from LKSM -* Rename `SampleSetHeatMap` to `SampleTypeHeatMap` and explicitly filter out media sample types -* Rename `SampleSetCards` to `SampleTypeCards` and explicitly filter out media sample types -* Update `PicklistCreationMenuItem` to also work as a non-menu item -* Fix problem in `AssayImportSubMenuItem` not respecting the `requireSelection` property - -### version 2.257.0 -*Released*: 22 November 2022 -* Detail panel editMode fix for show/hide labels - * defaultTitleRenderer to pass required prop to LabelOverlay - * DetailDisplay processFields should always set hideLabel to true in editingMode - * DetailDisplay update resolveDetailEditRenderer to use wrapped input components instead of formsy-react-components directly - * LabelOverlay rendering of asterisk for required prop to match in formsy case - * AppendUnitsInput: utilize TextInput, pass through showLabel prop - -### version 2.256.0 -*Released*: 18 November 2022 -* Introduce `includeViewColumns` bit on `QuerySelectModel` and set based on `previewOptions` prop of `QuerySelect` during initialization. -* Add `requiredColumns` prop to `QuerySelect` to allow for usages to explicitly request that certain columns be included in the underlying query. -* Exclude `viewName` on the `SchemaQuery` from the key on the `QueryInfo` cache. -* Convert `QuerySelect.initSelect` action to an async implementation. -* Fix memoization dependencies in `SampleIndexNav`. - -### version 2.255.0 -*Released*: 18 November 2022 -* Adding Label printing to export menu for more sample tabbed grids - * Hiding Label option on the 'All Samples' tab as it doesn't currently fit our grid methodology -* Added labels to Sample's Aliquots grid as well - -### version 2.254.1 -*Released*: 18 November 2022 -* Issue 46724: Unable to set PHI level for newly added field - -### version 2.254.0 -*Released*: 17 November 2022 -* Remove Copy-And-Paste tab from Assay Upload page -* Conditionalize display of some workflow- and assay-related actions -* Update AssayImportPanel to check for data in the grid before enabling import -* Update EditorModel.hasRawValue to account for null and undefined - -### version 2.253.0 -*Released*: 17 November 2022 -* Updates for Sample Type consistency of Samples create/import page - * Refactor SampleImportPage.tsx from LKB and SampleInsertPage.tsx from LKSM as SampleCreatePage.tsx - * Add misc props to SampleTypeAppContext for SampleCreatePage.tsx - * Issue 46693: Disable Sample Grid Derive menu options with >1000 selected - * Issue 46163: Changing Aliquot sample type does not change the filter of the AliquotFrom column - * Issue 45483: allowed creation types in bulk insert modal to be based on if sample parent types exist and based on the creation type for the page - * LKB fix to allow parent type change when creating media with initial parent that is a DataClass - -### version 2.252.0 -*Released*: 17 November 2022 -* Refactor ListDesignerPanels and related components - * No longer use custom checkbox component - * Convert most components to FC - * Add types to props, improve other types - * Use children instead of custom prop to pass components - * Don't use inline defined anonymous functions for handlers - -### version 2.251.0 -*Released*: 16 November 2022 -* Assay display pages consistency - * Add AssayGridPanel component, a combination of AssayRowsGridPanel from LKSM, AssayRuns and AssayResults from lKB - * Add AssayOverviewPage, AssayBatchOverviewPage, AssayBatchListingPage, AssayRunListingPage, AssayResultListingPage, - AssayListingPage, AssayRunListingPage, AssayQCModal, AssaysSubNav, AssayUploadPage, AssayDesignSelect - * Update AssayAppContext and SampleTypeAppContext - -### version 2.250.0 -*Released*: 15 November 2022 -* Projects in Sample Manager - * Add App.hasProductProjects util - * Hide FolderMenu when no projects are created - -### version 2.249.1 -*Released*: 15 November 2022 -* Add FindDerivativesMenuItem to SampleActionsButton -* Fix containerFilter for finding samples by assays queries -* Updated getSearchFiltersFromObjs util to set required assay card properties when coming from assay grids - -### version 2.249.0 -*Released*: 10 November 2022 -* Assay Design page consistency - * hideFilePropertyType for the Data domain only for LKSM - * Move AssayDesignPage from LKSM and LKB here - * Move SampleRequiredDomainHeader from LKSM to here - -### version 2.248.0 -*Released*: 10 November 2022 -* Updates for Sample Type consistency of Samples listing page - * Refactor SampleListingPage.tsx from LKSM and LKB to share - * Add misc components and props to SampleTypeAppContext - * move selectGridIdsFromTransactionId from LKSM app - * add sort for app type listing grids by name asc - * domain-field-row styling fix to only apply the border-top: none within the domain-form - -### version 2.247.0 -*Released*: 9 November 2022 -* Remove fortawesome dependencies - * Replaced all usages of FontAwesomeIcon with spans that use the appropriate classes -* Remove CollapsiblePanel component -* Convert some components to FC -* Refactor DomainRowWarning -* Remove ValidatorModal from exports -* Refactor usages of ValidatorModal -* Add RangeValidationOptionsModal to exports - -### version 2.246.2 -*Released*: 9 November 2022 -* Merge release22.11-SNAPSHOT to develop: - * includes changes from 2.242.4, 2.242.5, 2.242.6, 2.242.7, 2.242.8, 2.242.9 - -### version 2.246.1 -*Released*: 7 November 2022 -* Update various help links -* Fix construction of help links to in-page anchors work - -### version 2.246.0 -*Released*: 4 November 2022 -* Updates for Sample Type consistency of Sample detail pages - * Refactor sample pages from LKB and LKSM and move shared pages to components packages - * Create context in SampleDetailPage base components to be consumed in other smaple detail pages - -### version 2.245.0 -*Released*: 4 November 2022 -* Refactor for more assay component and page reuse - * Move assay buttons into AssaysButtons file - * Move AssayHeader component here from LKSM - * in `isPropertyTypeAllowed`, respect the `show` properties even if `appPropetiesOnly` is false - * Add optional property for hiding study properties in assay designer - -### version 2.244.0 -*Released*: 3 November 2022 -* Refactor `resolveInputRenderer` and enhance typings with `InputRendererFactory`. -* Update usages of `resolveRenderer` to resolve a component which can be rendered inline. -* Introduce defined types for `SelectInputChange` and `QuerySelectChange`. -* Coalesce handling of single and multi-value lookup cell change events into `onCellSelectChange`. -* Extract constant props for `SelectInput`s rendered to editable grid cells. -* Update `AliasInput` and `AssayTaskInput` to extend `SelectInputProps` and extract props specific to the component. -* Update the `onChange` prop signature for `SelectInput` to provide the components props rather than a reference to the underlying `ReactSelect` instance. - -### version 2.243.0 -*Released*: 2 November 2022 -* Move configuration of `ts-jest` to the `transformers` section as the `globals` pattern is now deprecated. -* Remove `use-immer` dependency in `@labkey/components` and refactor its sole usage `AssayPicker`. -* Move `jest`, `@types/enzyme`, and `@types/jest` to be `devDependencies` for `@labkey/components`. - -### version 2.242.9 -*Released*: 7 November 2022 -* Issues 46591 and 46651: Fix displays and links for freezer names that have slashes in them - -### version 2.242.8 -*Released*: 4 Nov 2022 -* Better Fix for Issue 45944: Use functional substitution when decoding key for MenuItem keys. - -### version 2.242.7 -*Released*: 4 November 2022 -* Issue 46648: Add missing dependencies in SampleFinderSection for assay loading state - -### version 2.242.6 -*Released*: 3 Nov 2022 -* Fix Issue 45944: Decode $ in MenuItem keys - -### version 2.242.5 -*Released*: 2 November 2022 -* Generate audit log URL using updated pattern from #965 -* Add explicit typings to constant `AuditQuery` instances. - -### version 2.242.4 -*Released*: 2 November 2022 -* EditInlineField: remove showToggle prop, always render edit icon at end of content -* ThreadEditor: Don't render user icon -* Fix Issue 46604 -* Add scroll-margin to Domain Editor to assist with test failures - -### version 2.242.3 -*Released*: 31 October 2022 -* Issue 44598: PHI TextChoice domain fields now warn - -### version 2.242.2 -*Released*: 31 October 2022 -* Add ELN audit queries to audit log listing. - -### version 2.242.1 -*Released*: 31 October 2022 -* Update sample type download template URL to use query name as prefix -* Remove colon after field label for audit details -* Remove colons after user detail labels -* Remove colons after EditInlineField labels -* Don't put empty aliquots message in the table (remove extraneous horizontal line) -* In ParentEntityEditPanel, don't show hr unless editing when there are no parents - -### version 2.242.0 -*Released*: 28 October 2022 -* Issue 46460: Filter by date only (not time) -* Issue 46292: Sample Manager: Grid column URL doesn't respect urlTarget property configured in in query metadata -* Issue 45405: Async import status from other folders are registering in the current LKSM folder. - -### version 2.241.3 -*Released*: 27 October 2022 -* Fix Issue 45553 - * We now render grid header dropdown menus in a portal -* Add usePortalRef hook - * Useful when you want to use ReactDOM's createPortal, it will automatically create a DOM element to use with - createPortal, and clean it up when it is no longer used. - -### version 2.241.2 -*Released*: 27 October 2022 -* Issue 46378: Update labeling for aliquot fields -* Use title casing more consistently -* Issue 46553: Use Details view when getting data for original parent panel to avoid customized default view - -### version 2.241.1 -*Released*: 26 October 2022 -* Update `ExportOptions` to include optional `containerFilter` and `containerPath` properties. -* Fallback to `getContainerFilter()` when determining the container filter for export. - -### version 2.241.0 -*Released*: 26 October 2022 -* Assay Results for Selected Samples - * refactor getSelectedSampleIdsFromSelectionKey() and getURLParamsForSampleSelectionKey() from workflow package to be used in multiple app cases - * refactor getSamplesAssayGridQueryConfigs() from SampleAssayDetails component to be reused in AssayResultsForSamplesPage - * new AssayResultsForSamplesPage, AssayResultsForSamplesMenuItem, and AssayResultsForSamplesButton components - * add Assay Runs summary grid as tab to SampleAssayDetail - * add FindDerivativesMenuItem to go with FindDerivativesButton - * remove Sample Comparison Report rendering and creation menu item - * Issue 46554: App Sample Assay menu doesn't show any options if > 1000 samples selected - -### version 2.240.0 -*Released*: 26 October 2022 -* Updates for Sample Type consistency - * Limit selection for pooling only based on max parents per sample. - * Consolidate from LKB `SampleCreateMenuItem` and LKSM `CreateSamplesSubMenu` into a common `CreateSamplesMenuItem` - * Port LKB `Samples/Pages/Header.tsx` and LKSM `SampleHeader` into single `SampleHeader` implementation - * Remove Parsers.splitCamelCase for setting QueryInfo.queryLabel and schemaLabel. -* Issue 46568: Update `SamplesTabbedGridPanel` to assure we have a model before de-referencing. -* Fix AssayImportSubMenu when checking cross-folder data from picklists - -### version 2.239.0 -*Released*: 25 October 2022 -* Freezer Management: Adding samples across terminal storage locations - * Support tabbed Bulk Edit and Editable Grid - * Exclude readonly cells from being updated by bulk update - * support queryFilters for select input fields in bulk update form - -### version 2.238.0 -*Released*: 25 October 2022 -* Update `QueryModel.getRequestColumnsString()` to support inclusion of `updateColumns` in when building a request columns string. -* Refactor and privatize usage of `getLineageEditorUpdateColumns` by making this a part of `LineageEditableGridLoaderFromSelection` initialization. -* Factor out `initEditableGridModel` (singular) from `initEditableGridModels` (multiple). This allowed for consolidated usage for `EntityInsertPanel`. -* Deprecate `loadEditorModelData` in favor of `initEditableGridModel`. -* Introduce `EditorMode` for `IEditableGridLoader` to make it more clear what purpose this loader is used for and make it easier to interpolate which columns, etc should be utilized. -* Make prop pass-through on `DetailPanelWithModel` more succinct. Support all properties. -* Fix hook dependencies in `SamplesTabbedGridPanel`. - -### version 2.237.1 -*Released*: 25 October 2022 -* Update logic for `isAssayQCEnabled` check. - -### version 2.237.0 -*Released*: 25 October 2022 -* App Sample Type Consistency for Sample Type Designer - * refactor SampleTypeDesignPage from LKB app to be used in LKSM as well - * add SampleTypeAppContext to pass app specific properties to the designer - -### version 2.236.4 -*Released*: 24 October 2022 -* Update `AssayImportSubMenuItem` to check for cross-folder selection when in the project container -* Update container filters for assay import panels to use `currentPlusProjecAndShared` - -### version 2.236.3 -*Released*: 24 October 2022 -* ThreadBlock: Don't render user avatars - -### version 2.236.1 -*Released*: 20 October 2022 -* Components package update to split out `assay` components as separate entry point (subpackage) - * Create new /assay/index.ts file and dir and move assay related app components - * add assay entry point to package.config.js and package.json - -### version 2.236.0 -*Released*: 20 October 2022 -* Add `isAssayQCEnabled` to work in conjunction with new `AssayQC` product feature. -* Rename `isRequestsEnabled` to `isAssayRequestsEnabled`. -* Define `filterMediaSampleTypes` to centralize creation of filters for excluding Media-based Sample Types. -* Refactor `AssayPropertiesPanel` to more easily respect application settings checks via `useServerContext` hook. -* Update `AssayPropertiesPanel` to check for presence of `study` module when linking in study settings. -* Update `AssayPropertiesPanel` to respect `isAssayQCEnabled` when displaying `QCStatesInput`. - -### version 2.235.0 -*Released*: 19 October 2022 -* EditInlineField: Add showToggle prop -* Remove Footer -* Add new app layout styles - * Update NavigationBar and SubNav to account for new layout styles - * SubNav is now always visible when present, it no longer scrolls into and out of view -* components now wrap children in a div -* DomainForm: Don't use react-sticky for sticky header - * This removes the containerTop prop from DomainForm, AssayDesignerPanels, DataclassDesigner, DatasetDesignerPanels, - IssueLIstDefDesignerPanels, and SampleTypeDesigner - -### version 2.234.0 -*Released*: 19 October 2022 -* Issue 46037: Exclude samples from bogus 'Material' sample type created by some plate-based assays (e.g., NAB) - * Add `SAMPLES_WITH_TYPES_FILTER` constant - * Apply filter for lookups to exp.materials in query selects - -### version 2.233.3 -*Released*: 17 October 2022 -* Update `GridPanel` to set `calcWidths` only when room is needed for extra icons -* Update `QueryConfig` to include an optional `filterArray` property that can be passed through to `QueryModel` - -### version 2.233.2 -*Released*: 14 October 2022 -* Issue 46472: Assay field editor update to remove check for spaces in transform script path when "Save Script Data for Debugging" is checked - -### version 2.233.1 -*Released*: 13 October 2022 -* Issue 46504: Assay name is not correct in SampleFinder's Assay filter picker - * Use assay label instead of name in facet selector - -### version 2.233.0 -*Released*: 13 October 2022 -* App Sample Type Consistency - * Refactor SampleTypePage from apps to share via entities subpackage - * Refactor SampleNav from apps to share via entities subpackage -* Issue 45792: When dragging and dropping columns from grid headers, menu stays open and in the original location - -### version 2.232.0 -*Released*: 10 October 2022 -* Components package update to split out `entities` components as separate entry point (subpackage) - * move SampleTypeBasePage.tsx from LKSM to be used in both apps as a test case - * create /src/entities dir and move components there that are to be included in /src/entities/index.ts - * add components package.config.js which extends build/package.config.js using webpack-merge - * revert package build as ES Modules - -### version 2.231.0 -*Released*: 9 October 2022 -* Add File/Attachment link behavior option to domain designer - -### version 2.230.1 -*Released*: 6 October 2022 -* Add EditorWithoutDelete role to `HOSTED_APPLICATION_SECURITY_ROLES` - -### version 2.230.0 -*Released*: 5 October 2022 -* Add `isComplianceEnabled` and `isMediaEnabled` utility method for apps. -* Add `Media` as a `ProductFeature` enumeration. - -### version 2.229.0 -*Released*: 4 October 2022 -* Issue 45878: LKSM: Remove option to not send an email to new users - -### version 2.228.0 -*Released*: 03 October 2022 -* Group Management followup - * Adds unit tests - * Fixes Project Groups bugs - * Visual updates to dropdown and profile page's group information - -### version 2.227.0 -*Released*: 03 October 2022 -* Issue 46436: Add optional containerPath prop to fetchDomain - -### version 2.226.0 -*Released*: 01 October 2022 -* Update EditableGrid -> Cell to use input renderer if available on column -* Update BulkUpdateForm to allow required columns -* Update AssayTaskInput to be input renderer for BulkUpdateForm and EditableGrid -* Update SampleStatusInput to be input renderer for EditableGrid due to EditableGrid update - - -### version 2.225.0 -*Released*: 30 September 2022 -* FindDerivativesButton added to samples/sources/registry grids - * take the model view and user filters and create the sample finder sessionStorage object - * allow passthrough of base/context filter to be applied for certain scenarios - * disable button if an invalid filter is added to grid (i.e. a filter on a MVFK field that doesn't work in Sample Finder) -* fix for "Showing all samples with ... parents" filter to use getExpDescendantOfFilter() -* add QueryModel helper to get just the view filters from the queryInfo / viewName - -### version 2.224.0 -*Released*: 30 September 2022 -* For consistency and to reduce redundancy, remove name of domain from header on several domain properties panels - (left in place for panels shown in LKS pages where the name redundancy is less obvious) -* Small updates to styling of ItemsLegend - -### version 2.223.0 -*Released*: 30 September 2022 -* Sample Finder assay result filters - * Added COLUMN_IN_FILTER_TYPE and COLUMN_NOT_IN_FILTER_TYPE - * Added Assay card to SampleFinderSection and wired up assay filters for Finder - * Modified QueryFilterPanel and EntityFieldFilterModal to allow "Without data from this type" checkbox - -### version 2.222.1 -*Released*: 28 September 2022 -* Issue 46395: add `hasOrdinal` property to SampleButtonProps so we can retain ordering when adding to storage from a FindByIds page - -### version 2.222.0 -*Released*: 27 September 2022 -* WebDav helper for creating directories: createWebDavDirectory() - -### version 2.221.0 -*Released*: 27 September 2022 -* Add Audit Logs in subNav for admin pages and alphabetize subNav tabs -* Updates for change in route to audit page with eventType as a url parameter -* Update NavItem logic for active tab to exclude parameters in URL when comparing paths - -### version 2.220.0 -*Released*: 26 September 2022 -* Introduce `GlobalStateContext` which is an extensible context made available to all of our applications. -* Add `ModuleContext` type and consolidate logic to resolve module context from optional parameter. -* Add `FolderMenuContext` to expose global way to refresh the folder menu. Add hooks `useFolderMenuContext` and refactor `useSubNavContext`. -* Introduce `FolderAPIWrapper` to wrap folder-specific API endpoints. -* Add `CreateProjectPage` and `ProjectManagementPage` page components for project creation and project listing. -* Define `ProjectSettings` component which encapsulates behavior for the administration of project name and label modifications. - -### version 2.219.0 -*Released*: 22 September 2022 -* SamplesEditButton check for has delete perm when showing delete menu item divider -* Add PermissionRoles.EditorWithoutDelete to APPLICATION_SECURITY_ROLES -* Add PermissionRoles.EditorWithoutDelete to roles options in CreateUsersModal -* update @labkey/api package version - -### version 2.218.2 -*Released*: 20 September 2022 -* TabbedGridPanel fix to not assume that component is wrapped in NotificationsContextProvider - -### version 2.218.1 -*Released*: 16 September 2022 -* Issue 46256: Custom view handling of slash in fieldKey - -### version 2.218.0 -*Released*: 14 September 2022 -* Export BarTenderConfiguration -* Export LabelPrintingProvider -* Move all label actions to label APIWrapper -* Update build - -### version 2.217.0 -*Released*: 14 September 2022 -* Projects, Enhance UX to disallow cross folder actions earlier - * Added EntityCrossProjectSelectionConfirmModal - * Update "Folder" terminology to "Project" - * Wire up cross folder selection check for EntityLineageEditMenuItem, SampleDeleteMenuItem, SamplesEditButton - * Fix CF for ParentEntityEditPanel and SingleParentEntityPanel - -### version 2.216.1 -*Released*: 14 September 2022 -* Merge release22.9-SNAPSHOT into develop (#2) - -### version 2.216.0 -*Released*: 12 September 2022 -* Add Label Print Modal component and menu options to SampleTabbedGrid - -### version version 2.215.0 -*Released*: 9 September 2022 -* Implement Group Management - -### version 2.214.1 -*Released*: 7 September 2022 -* Merge release22.9-SNAPSHOT into develop - -### version 2.214.0 -*Released*: 5 September 2022 -* Issue 45403: Include App specified samplesGridRequiredColumns in requiredColumns array for QueryConfig - -### version 2.213.4 -*Released*: 8 September 2022 -* Add defensive type-check when calling `trim()` for form value processing. - -### version 2.213.3 -*Released*: 6 September 2022 -* QuerySelect: Allow optionRenderer prop to be passed -* Remove circular dependencies in QuerySelect and Lineage models - -### version 2.213.2 -*Released*: 6 September 2022 -* Make sure assay functionality is enabled in community edition - -### version 2.213.1 -*Released*: 1 September 2022 -* Issue 44457: Editable grid Bulk Insert and Bulk Update error with lookup to sample table with String key - * fix in actions.ts to only call parseInt on val if !isNaN - -### version 2.213.0 -*Released*: 31 August 2022 -* Fix problems related to grid customization (Issues 46137 and 46121) - * Use viewName in more places so data corresponds to the current view - * Use Detail view instead of default view in places where we need to be sure certain values are found, even if the default view is filtered - * Add `selectionKey` method in `QueryModel` that includes viewName - * add `getKey` method to `SchemaQuery` and deprecate resolveSchemaQuery -* Issue 46098: Get all sample types when getting type count -* Update `QueryModel.isLoading` to return false if there are load errors - -### version 2.212.4 -*Released*: 31 August 2022 -* Remove experimental feature flag for App grid lock left col on horizontal scroll - -### version 2.212.3 -*Released*: 31 August 2022 -* Issue 46210: Details panel editing removes file attachments when other fields are edited -* Fix for DatePickerInput handling of date format with 'YY' instead of 'YYYY' - -### version 2.212.2 -*Released*: 31 August 2022 -* Update EntityInsertPanel for dynamic parent options -* Title and text options for sample creation/editing modal and detail panels - -### version 2.212.1 -*Released*: 30 August 2022 -* Update width of megamenu to be responsive - -### version 2.212.0 -*Released*: 30 August 2022 -* Remove circular dependencies - * refactor all imports from index.ts - * refactor files to remove circular dependencies pointed out by webpack plugin - -### version 2.211.4 -*Released*: 26 August 2022 -* upgrade Spring from 4.x to 5.x - * Remove redundant GET parameters from handleEntityFileImport util - -### version 2.211.3 -*Released*: 26 August 2022 -* Issue 45857: Improve styling for left column locking in app grids (experimental feature) - -### version 2.211.2 -*Released*: 25 August 2022 -* Misc grid menu and button fixes for 22.9 - * Issue 45958: Safari dropdown / scroll bar z-index issue for editable grid - * Issue 45666: Sample grid "More" menu is puzzling when no other menu is present - * Issue 45746: Show more grid options menus at narrower screen widths when possible - * Issue 45965: Use "locked" lock icon to mean locked in Text Choice field editor - -### version 2.211.1 -*Released*: 25 August 2022 -* Issue 46148: Add multitabbed grid view to Stored Items table - * Allow TabbedGridPanel excel handler to be used by getGridPanelDisplay - -### version 2.211.0 -*Released*: 24 August 2022 -* LKSM Starter edition - * Add helper methods for checking if workflow and assay features are enabled - * Update `getAuditQueries` to return the proper set of queries for the various products - -### version 2.210.0 -*Released*: 23 August 2022 -* Sample Timeline in LKB - * Extract and move SampleTimelinePageBase, SampleEventListing and timeline utils here from LKSM - -### version 2.209.1 -*Released*: 23 August 2022 -* TabbedGridPanel update for display of panel title when grid has tabs - -### version 2.209.0 -*Released*: 22 August 2022 -* BarTender integration for LKB - * Move withLabelPrintingContext, PrintLabelsModal, BarTenderSettingsForm from LKSM - * Move label printing related actions, constants, models, SCSS from LKSM - * Add LabelPrintingProvider to AppContexts - * FindSamplesByIdsPageBase update to support conditionally add support for label printing - -### version 2.208.0 -*Released*: 18 August 2022 -* Multi-tab grids for Find Sample by Ids grids - * Added FindSamplesByIdsPageBase - -### version 2.207.2 -*Released*: 18 August 2022 -* Issue 46102: EditableDetailPanel cannot clear Multi Value Foreign Key Columns -* Pin dependencies to latest equivalent version - -### version 2.207.1 -*Released*: 15 August 2022 -* Issue 46025: Don't show "Source Events" as audit query for LKB -* Issue 46030: Don't reference "source types" in LKB aliquoting grid -* Issue 46026: Make chevron in expandable container also clickable -* Issue 46027: Don't show storage and lineage tabs when editing media data - -### version 2.207.0 -*Released*: 15 August 2022 -* Workflow job creation and update with custom fields - * EditInlineField updates to support value as RowValue from selectRows response - * EditInlineField to support QueryColumn and use resolveDetailEditRenderer() - * DomainForm addition of schemaName/queryName props to be used for text choice distinct value query - -### version 2.206.1 -*Released*: 12 August 2022 -* Add customize view modal DOM element attribute for "data-fieldkey" to help test locators - -### version 2.206.0 -*Released*: 11 August 2022 -* Multi-tab grids for Storage grids - * Support getGridPanelDisplay for TabbedGridPanel - * Move CreateSamplesSubMenu and SamplesDeriveButtonBase here from LKSM - * Modify SamplesAddButton to support productId - -### version 2.205.0 -*Released*: 11 August 2022 -* Restrict deletions of entities, including assay runs referenced in ELNs -* Update `deleteAssayRuns` interface to accept an array of rowIds instead of a single rowId (and remove from index.ts) - -### version 2.204.1 -*Released*: 9 August 2022 -* Projects - Cross-Folder Storage Actions - * Added ValueList component - -### version 2.204.0 -*Released*: 9 August 2022 -* Merge release22.8-SNAPSHOT into develop - -### version 2.203.0 -*Released*: 2 August 2022 -* Workflow job template custom fields - * Domain kind allowSampleSubjectProperties check to filter out relevant data types - * Add DomainFormDisplayOptions prop for hideImportAliases - * Minor update to styling prop for ContentGroup.tsx - * expose fetchDomainDetails() to be used in app to get domain details based on DomainKind - -### version 2.202.7 -*Released*: 9 August 2022 -* Merge release22.7-SNAPSHOT to release22.8-SNAPSHOT - -### version 2.202.6 -*Released*: 4 August 2022 -* Remove conditional code to expose Sample Finder - -### version 2.202.5 -*Released*: 29 July 2022 -* Issue 45822: incorrect unit types available when adding sample to storage - * avoid excessive loading until lookup cell is selected/focused - -### version 2.202.4 -*Released*: 29 July 2022 -* Issue 45509: Remove inaccurate tool tip -* Issue 45947: Don't allow saving views with reserved names -* Issue 45866: Improve performance of FilterFacetedSelector by loading only 250 items and not searching with each click. - -### version 2.202.3 -*Released*: 28 July 2022 -* Sample Finder: support containerFilter on expDescendantOfSelectClause - -### version 2.202.2 -*Released*: 28 July 2022 -* Issue 44917: Resolve search icon for uncategorized data classes - * Resolve icons to the data class name value iff the data class is assigned a category (e.g. "registry", "source", etc). - * Fallback to default (via undefined) rather than explicitly processing as "default". - -### version 2.202.1 -*Released*: 26 July 2022 -* Move `jest` and `enzyme` from devDependencies to dependencies -* remove @labkey/components package internal imports of App from index.ts - -### version 2.202.0 -*Released*: 26 July 2022 -* Issue 45722: Editable grid support for column fill actions - * initially only support for a single column selection range - * initial support for copying a cell value, or set of selected values, down a column on cell handle drag - * initial support for numeric fill sequence for a column if initSelection has int or decimal values - * allow cell key handler for CTRL+D to fill down a single column - -### version 2.201.2 -*Released*: 26 July 2022 -* Merge release22.7-SNAPSHOT to develop - * Includes changes from version 2.194.7 - -### version 2.201.1 -*Released*: 21 July 2022 -* Issue 45822: incorrect unit types available when adding sample to storage - * Support getFilteredLookupKeys at cell level based on value of another cell. - * For example, the storage unit dropdown options might vary for each row on the editable grid, based on the row's selected sample type. - -### version 2.201.0 -*Released*: 21 July 2022 -* Remove jQuery as a dependency -* Export waitForLifecycle, mountWithServerContext, mountWithAppServerContext, wrapDraggable - -### version 2.200.2 -*Released*: 21 July 2022 -* Merge release22.7-SNAPSHOT to develop - * Includes changes from version 2.194.6 - -### version 2.200.1 -*Released*: 18 July 2022 -* Issue 45817: LKSM sample finder misc issues re: save and manage modal - -### version 2.200.0 -*Released*: 14 July 2022 -* Remove reactn dependency - * convert notifications to use a NotificationsContext (plus useNotificationsContext and withNotificationsContext) - * Refactor message prop for NotificationItemProps to be ReactNode or callback function - * EditableGridPanelForUpdate update so that it stores and display data errors as an Alert instead of having app use createNotification - * DetailEditRenderer.tsx fix for displaying date picker input for case where initial value is empty (regression from changes in 2.196.1) - -### version 2.199.0 -*Released*: 14 July 2022 -* Issue 45815: Show view name in tabbed export modal -* Issue 45686: Change "Create Samples" to "Add Samples" on dashboard button - -### version 2.198.1 -*Released*: 13 July 2022 -* Merge release22.7-SNAPSHOT to develop - * Includes changes from version 2.194.3, 2.194.4, and 2.194.5 - -### version 2.198.0 -*Released*: 12 July 2022 -Added SearchScope enum and ContainerFilter mapping utility method - -### version 2.197.0 -*Released*: 12 July 2022 -* Issue 45479: Add getIsDirty and setIsDirty callback in editable grids so we warn on page leave but not on export - -### version 2.196.1 -*Released*: 12 July 2022 -* Issue 44518: Use date picker for date fields in editable grid. - * Add DateInputCell - * Remove QueryDateInput and usage - -### version 2.196.0 -*Released*: 7 July 2022 -* Item 10437: Aliquot Field Inheritance - * Update DerivationDataScopeFieldOptions, SampleTypeDesigner, EntityInsertPanel and SamplesBulkUpdateForm to support aliquot & sample options - -### version 2.195.1 -*Released*: 7 July 2022 -* Issue 44599: Field editor PHI Level doesn't show correct value for a field if the admin user does not have that level of PHI access - * AdvancedSettings.tsx update to show current PHI level as select option and disable the input if current value is above max for user - -### version 2.195.0 -*Released*: 7 July 2022 -* Issue 45149: "Assay Results" tabbed grid can remove tabs if you filter a grid to zero rows - * store in state the set of queryModels with data after all have loaded - -### version 2.194.10 -*Released*: 2 August 2022 -* Misc dataset domain designer issue fixes - * Issue 45942: While creating a new dataset via infer from fields, clicking Add Field results in JS error - * Issue 45704: Multiple error messages provide less detail than a single error message during dataset creation - -### version 2.194.9 -*Released*: 2 August 2022 -* Issue 45860: ConceptPicker doesn't apply selected value - -### version 2.194.8 -*Released*: 29 July 2022 -* Issue 45975: useContainerUser resolving incorrect container - -### version 2.194.7 -*Released*: 22 July 2022 -* Issue 45852: External links should include 'noopener' in 'ref' attribute - * round 2: this was missed from the changes in 2.194.6 - -### version 2.194.6 -*Released*: 14 July 2022 -* Issue 45852: External links should include 'noopener' in 'ref' attribute - -### version 2.194.5 -*Released*: 12 July 2022 -* Issue 45836: Export for editable grid should export display values instead of ids for lookups - -### version 2.194.4 -*Released*: 7 July 2022 -* Add and export Row, RowValue types -* HorizontalBarSection: Update design -* App.isProductProjectsEnabled: Add optional moduleContext - -### version 2.194.3 -*Released*: 7 July 2022 -* Update styling for checkbox that appears in grid header input fields - -### version 2.194.2 -*Released*: 5 July 2022 -* Sort folders by their `title` property. -* Apply contextual container filter to `selectDistinctRows` requests. -* Update `getSamplesIdsNotFound` to use the scoped version of `selectDistinctRows`. -* Export `selectDistinctRows`. - -### version 2.194.1 -*Released*: 5 July 2022 -* Fixes for EntityInsertPanel and EntityInsertGridRequiredFieldAlert to support Biologics registry - -### version 2.194.0 -*Released*: 5 July 2022 -* Issue 43943: App grid column header locking on scroll - * set fixed height for GridPanel usage of - * add SCSS for `position: sticky;` on GridPanel `thead` - * fix to disable column dnd when editing column label - * experimental feature: lock left column in app grid on horizontal scroll - * note: not currently applied to the editable grid case - -### version 2.193.0 -*Released*: 4 July 2022 -* Add ability to edit the column title (caption) from the column header - -### version 2.192.3 -*Released*: 1 July 2022 -* Issue 45177: enable ontology filters for Sample Finder - -### version 2.192.2 -*Released*: 30 June 2022 -* Issue 45725: MegaMenu truncate and text wrap consistency - -### version 2.192.1 -*Released*: 30 June 2022 -* Issue 45776: adjust BarChartViewer to resolve cross-folder item counts - -### version 2.192.0 -*Released*: 30 June 2022 -* Grid column drag-n-drop to reorder columns in grid view - * only allowed when "allowViewCustomization" is set to true - * prevent drop to left of selection checkbox column - * attempt to close any open column header menus on drag start - -### version 2.191.0 -*Released*: 29 June 2022 -* Save Grid Views - misc. polish and remove experimental feature flag - * Update view label in ManageViewsModal to indicate if view is shared or inherited - * Add error message and styling when view name exceeds the maximum name length in `ManageViewsModal` and `SaveViewModal` - * Add indicator if default view is my personal default view (set in LKS) - * Adjust styling and button text in `ManageViewsModal` - * Add in-line delete confirmation for views - * Remove experimental feature flag - -### version 2.190.3 -*Released*: 29 June 2022 -* Issue 45030: Admin > Permissions Groups click target should be the whole row - -### version 2.190.2 -*Released*: 29 June 2022 -* Entity Grid Actions for All Samples Grids - * Extend sample selection util to work with picklist and other non samples backed grids - * Move SAMPLE_MANAGEMENT.INPUT_SAMPLES_SQ schema constant here from @labkey/workflow - -### version 2.190.1 -*Released*: 29 June 2022 -* Export `getCurrentAppProperties` -* Issue 45739: when looking for import columns, trim the importName - -### version 2.190.0 -*Released*: 27 June 2022 -* Rename `getContainerFilterForInsert` to `getContainerFilterForLookups`. -* Add optional `containerFilter?: Query.ContainerFilter` prop to `BulkUpdateForm`, `EditableGrid`, `EntityInsertPanel`, and `QueryInfoForm`. -* Restructure prop declarations for `QueryInfoForm` to extend `QueryFormInputsProps`. -* Convert `BulkUpdateForm` to accept a `Set` for `selectedIds` to align with `QueryModel.selection`. - -### version 2.189.1 -*Released*: 24 June 2022 -* Issue 45385: don't export empty tabs by default - -### version 2.189.0 -*Released*: 24 June 2022 -* Save Grid Views - Update Grid Column Metadata for User Customization - * apply app query metadata to query details for lookup - * special case for assay schema to allow for metadata to be applied to all protocols base tables - * add QueryColumn property for apps to flag columns as removeFromViewCustomization - * rename addToDisplayView -> addToSystemView - -### version 2.188.3 -*Released*: 23 June 2022 -* Issue 45028: Display details view columns in lineage - -### version 2.188.2 -*Released*: 23 June 2022 -* Item 10380: Save Grid Views - Allow removal of addToDisplayView columns - * only add "addToDisplayView" fields to view for unsaved default view (i.e. system default view) - * only allow default view revert in Manage Saved Views modal if it is not the system default - * set allowViewCustomization false for a few more cases - * SpecialtyAssayPanel.tsx update to remove usage of dangerouslySetInnerHTML - -### version 2.188.1 -*Released*: 22 June 2022 -* Enable editing of column titles for fields shown in view -* Don't show `GridTitle` when grid is not editable in application. - -### version 2.188.0 -*Released*: 21 June 2022 -* Issue 45373: Sample Finder export generates ambiguous column header names - * Support advancedExportOption per TabbedGridPanel tab - -### version 2.187.1 -*Released*: 21 June 2022 -* Issue 45006: Provide link to lookup table/query in field designer - -### version 2.187.0 -*Released*: 21 June 2022 -* SubNav: Add ignoreShow prop -* SubNavWithContext: Add ignoreShowProp and setIgnoreShow setter - -### version 2.186.1 -*Released*: 21 June 2022 -* Issue 45524: Grid pagination buttons should not disappear when changing to a larger page size - -### version 2.186.0 -*Released*: 20 June 2022 -* Add Picklist menu item in megamenu -* Update picklist page routes to not rely on location query parameter -* Issue 45710: use clone of constant instead of constant for omitted column, so we can add to it. - -### version 2.185.1 -*Released*: 20 June 2022 -* Issue 45581: Field editor LookupFieldOptions shouldn't disable target table selection for alias fields in metadata editor - -### version 2.185.0 -*Released*: 17 June 2022 -* Item 10379: Save Grid Views - Manage views dialog - * Add ManageViewsModal component - -### version 2.184.0 -*Released*: 17 June 2022 -* Item 10445: CustomizeGridViewModal - Handling lookup columns - * Order columns based on `queryInfo.columns` instead of `queryInfo.allColumns` - * Show lookup fields on expand in Available Fields listing and allow them to be added to view - * Update api/`getQueryDetails()` to accept a fk for cache key - * Enabled `QueryColumn` props for `selectable` and `friendlyType` - * Include fieldKey in grid column header hover text - * Issue 45693: Filter dialog choose values click target is too big - -### version 2.183.1 -*Released*: 16 June 2022 -* Add ability to rearrange fields from `CustomizeGridViewModal` - -### version 2.183.0 -*Released*: 16 June 2022 -* Item 10293: Enable export for editable grids - -### version 2.182.0 -*Released*: 15 June 2022 -* Rename `isSubfolderDataEnabled` to `isProductProjectsEnabled` in all the places. - -### version 2.181.1 -*Released*: 15 June 2022 -* Remove QueryGridModel and related utils, actions, components, etc. - -### version 2.181.0 -*Released*: 14 June 2022 -* Item 10376: Add `CustomizeGridViewModal` for, yeah, customizing grid views - -### version 2.180.0 -*Released*: 13 June 2022 -* Item 10373: GridPanel updates to show sorts and filters saved with the view - * Show saved view filters in the grid panel filter display section - * Show saved view sorts in the grid column header icons - * Allow for saved view sorts and filters to be updated/remove alongside the user-defined sorts/filters - -### version 2.179.5 -*Released*: 10 June 2022 -* EntityInsertPanel refactor to use QueryModel based EditableGridPanel - -### version 2.179.4 -*Released*: 10 June 2022 -* Issue 45325: SamplesTabbedGridPanel shouldn't call afterSampleActionComplete when going from bulk edit modal to grid edit - -### version 2.179.3 -*Released*: 9 June 2022 -* Item 10201: Sample renaming - * Remove "Name" field from SampleBulkUpdateForm - * Enable "Name" edit for aliquot details panel - -### version 2.179.2 -*Released*: 9 June 2022 -* Remove experimental feature flag for ELN in LKSM - -### version 2.179.1 -*Released*: 6 June 2022 -* Update `@labkey/api` and `@labkey/eslint-config-react` dependencies - -### version 2.179.0 -*Released*: 6 June 2022 -* Item 10375: Save Grid Views - Save view dialog - * Enable Save action for edited views - * Add 'Save as custom view' option to views menu - * Add SaveViewModal component - -### version 2.178.0 -*Released*: 31 May 2022 -* Issue 45270: Show settings page to all admins - -### version 2.177.3 -*Released*: 31 May 2022 -* Issue 45529: Adjust width of `.container` to use more of the screen -* Issue 45290: Adjust width of search box in NavBar for better display (with lots of notifications) in medium media -* Issue 45290: Use relative positioning for search-icon - -### version 2.177.2 -*Released*: 31 May 2022 -* Issue 44707 - * Don't override background-color or text shadow in print styles - -### version 2.177.1 -*Released*: 31 May 2022 -* Issue 45451: Grid drop down menu (page size, views) does not retract after selection - -### version 2.177.0 -*Released*: 27 May 2022 -* Item 10374: Begin adding support for customizing views in our application - * Move display of custom view name into panel header - * Add header action for hiding a column and saving a new session view - * Add buttons for reverting session grid customization in panel header - -### version 2.176.0 -*Released*: 26 May 2022 -* Factor EditableGridPanelForUpdateWithLineage component out of SamplesEditableGridPanelForUpdate -* Move some entity editable grid related functions to entities/utils -* Various updates to handle Biologics lookups and MVFKs -* Add EntityAPIWrapper for data operation confirm API -* EntityLineageEditModal text and message updates for dataclasses -* Move some lineage functions to samples/actions - -### version 2.175.0 -*Released*: 26 May 2022 -* Item 10394: Updates for incorporating ELN in LKSM - * Experimental feature to toggle inclusion of ELN menu section and routes in LKSM - * LKSM menu update to add Notebooks section config - * URLResolver update for handling notebooks in search result hits - * Refactor Setting.tsx component from LKB to ui-components - -### version 2.174.1 -*Released*: 24 May 2022 -* Apply MenuItem "submenu-header" class to applicable grid menu headers -* Issue 45222: Editable grid fix for lookup cell margin-right to account for selector - -### version 2.174.0 -*Released*: 19 May 2022 -* Item 10299: Sample Finder Saving Queries - * Add SampleFinderManageViewsModal, SampleFinderSaveViewModal and SampleFinderSavedViewsMenu components - * Utils for saveFinderSearch, loadFinderSearches, loadFinderSearch, renameReport and deleteReport - * Update SampleFinderSection to show saved views and not load from session to default - -### version 2.173.0 -*Released*: 19 May 2022 -* Item 10386: Active user limit app messaging - * Add API to get user limit settings - * Display user limit message on User Management page and disable create/reactivate accordingly - * Handle user creation with and without limit errors in User Management page alerts - * Display user limit settings on Admin Settings page - -### version 2.172.0 -*Released*: 17 May 2022 -* Internalize `moment-jdateformatparser` logic into a collection of utility methods in `jDateFormatParser.ts`. -* Update versions of `moment` and `moment-timezone`. - -### version 2.171.1 -*Released*: 13 May 2022 -* Issue 45222: Editable grid doesn't automatically expand width of dropdowns to show long values - -### version 2.171.0 -*Released*: 12 May 2022 -* Item 10353: Convert EditableGridPanelForUpdate to QueryModel-based EditableGridPanel - * remove unused EditableGridLoader - * update EditableGridPanelForUpdate to initialize the dataModel and editorModel - * update EditableGridLoaderFromSelection.tsx and related components/models for QueryModel - * update EditableGridPanel.tsx for tabbed panel with multiple models - * update SampleEditableGrid actions from EntityParentTypeSelector to work with QueryModel - -### version 2.170.0 -*Released*: 12 May 2022 -* Add support for names containing commas - * Update QuerySelect initialization to escape values that contain delimiters - * Update SingleParenEntityPanel to encode parent names containing delimiters - * Update parsing of values pasted into editable grid and processing of values to be saved from the editable grid - -### version 2.169.1 -*Released*: 10 May 2022 -* Item 10305: Compound Registry Type (SMILES) - * New SMILES domain property type - -### version 2.169.0 -*Released*: 10 May 2022 -* Initialize application user's `permissionsList` directly from page context via `getServerContext().container.effectivePermissions`. -* Remove `getUserPermissions` and associated redux functionality. -* Remove `requestPermissions` bit from application model. - -### version 2.168.0 -*Released*: 9 May 2022 -* Add SubNavWithContext, SubNavContextProvider, useSubNavContext -* Add useNotAuthorized, useNotFound hooks -* Add notAuthorized prop to Page -* Refactor Notifications - * Notification renamed to Notifications - * Notifications no longer require any props - * notificationHeader was not used anywhere - * user is not needed, we now use useServerContext to get the user -* isLoginAutoRedirectEnabled - * Add moduleContext argument so tests no longer need to manually override the LABKEY object - * No longer export from ui-components -* Refactor UserManagementPage to use moduleContext from useServerContext -* Refactor PipelineStatusDetailPage to use components instead of render methods - -### version 2.167.1 -*Released*: 9 May 2022 -* Updates to EntityInsertPanel to accommodate Registry Data Class editing - * Add props to allow wrapping component to control parents - * Add prop to hide parent controls - * Update 'Parents' suffix in grid and bulk fields to only apply to data types of same type - -### version 2.167.0 -*Released*: 5 May 2022 -* SamplesAssayButton update to handle case where no assay designs are defined -* Issue 45328: Add the 'More' grid menu (Assays, Picklists, Jobs, Storage) to the sample aliquots grid - -### version 2.166.0 -*Released*: 5 May 2022 -* Issue 45140: Better support for date formats (especially dd/MM/yyy) in the apps - * Use QueryColumn date format for filter modal input date picker (via DatePickerInput) - * Use QueryColumn date format for GridPanel filter status display - * Fix for QueryInfoForm, QueryFormInputs and EditableGridPanelForUpdate use case to use QueryColumn date format in parseDate() - * Fix for EditorModel getRawDataFromGridData() to use QueryColumn date format for parseDate() - -### version 2.165.0 -*Released*: 4 May 2022 -* Adds ExportModal to enable exporting all tabs of a TabbedGrids - -### version 2.164.1 -*Released*: 2 May 2022 -* Replace usages of `parsePathName` with `ActionURL.getPathFromLocation()` from `@labkey/api`. - -### version 2.164.0 -*Released*: 2 May 2022 -* Issue 45374: LKSM issues when site "default display format for numbers" is set - * fix for getPkData() function when value is an array or List of objects/Maps - -### version 2.163.0 -*Released*: 29 April 2022 -* Remove `SharedSampleTypeAdminConfirmModal` -* Update `EntityDataType` model with additional properties -* Update `SampleSetDeletModal`, `deleteDataClass`, `deleteSampleSet`, and `deleteEntityType` to take optional `containerPath` -* Issue 45290: Adjust height of search box on Safari -* Issue 45269: If the state columns are present, don't look at a column named 'Label' for the sample status -* Update `SamplesEditableGrid` to account for custom parent types - -### version 2.162.1 -*Released*: 29 April 2022 -* Issue 45366: Export of Sample Finder results produces empty files - * Escape quote characters in export form - -### version 2.162.0 -*Released*: 29 April 2022 -* Issue 45304: Add inherit permissions control to permissions page - * Add inherit checkbox and wire up action to delete policy or save policy as expected. - * Rename `PermissionsPageContextProvider` to `withPermissionsPage` to align with our expected pattern. - * Remove the Permissions context. - * Add `fetchPolicy` to `SecurityAPIWrapper` and utilize this API from context in permission components. - -### version 2.161.0 -*Released*: 28 April 2022 -* Item 10275: Grid panel updates to make button/menu bar display responsive to screen width - * Grid panel button bar update to show 2nd row of items in md/sm layout - * Move page size menu into page number menu - * Display ResponsiveMenuButtonGroup submenus inline with header and divider - * Add ResponsiveMenuButton as a simple wrapper for app buttons to use - -### version 2.160.0 -*Released*: 27 April 2022 -* Item 10276: Add, remove or modify grid actions for various grids - * Update `PicklistCreateMenuItem` to require a selection (no longer create an empty picklist) - * Add forwarding `registerFilterType` function - -### version 2.159.0 -*Released*: 27 April 2022 -* Use shared package build -* Move exported test helpers to /internal -* Move un-exported test helpers to /test - -### version 2.158.1 -*Released*: 27 April 2022 -* Merge release22.3-SNAPSHOT to develop again - * Includes changes from version 2.138.8 - -### version 2.158.0 -*Released*: 26 April 2022 -* Item 10230: App grid action updates to buttons/menus in header bar - * Add new button components: ResponsiveMenuButtonGroup, SamplesAddButton, SamplesAssayButton - * Rename SamplesManageButton to SamplesEditButton - * SubMenu and SubMenuItem changes to support new button submenu cases - -### version 2.157.0 -*Released*: 21 April 2022 -* Factor out `componentId` prop on `QuerySelect`. - -### version 2.156.1 -*Released*: 20 April 2022 -* Merge release22.4-SNAPSHOT to develop - * Includes changes from version 2.149.7 - -### version 2.156.0 -*Released*: 20 April 2022 -* Item 10203: Support sample type and data class renaming - -### version 2.155.1 -*Released*: 19 April 2022 -* Updates to EntityInsertPanel to support Biologics data class import. - -### version 2.155.0 -*Released*: 18 April 2022 -* Remove "users" from `global` state cache and all associated methods. -* Change `getUsersWithPermissions` to return an `User[]` instead of `List`. -* Change `UserSelectInput` default to `clearCacheOnChange=false` and implement `generateKey` to handle path/perm changes. -* Refactor how `AuditDetails` fetches user permissions. -* Remove `invalidateUsers` and its usages. - -### version 2.154.2 -*Released*: 15 April 2022 -* Issue 45223: Wrap multiline text fields on line breaks -* Issue 45060: Update Sample Finder to disable buttons and cards if there are no sources / sample types defined - -### version 2.154.1 -*Released*: 13 April 2022 -* Issue 45021: Sample Finder: Filtering on a field whose name contains special characters does not work - -### version 2.154.0 -*Released*: 13 April 2022 -* Item 10253: Remove experimental feature to officially switch to new Grid Filtering UX changes - * remove OmniBox.tsx and related tests, helpers, scss, etc. (moving the items still in use to GridPanel dir) - * remove react-input-autosize dependency - -### version 2.153.1 -*Released*: 12 April 2022 -* Add a configuration option in the issue definition properties panel to select the default related issues folder. - -### version 2.153.0 -*Released*: 12 April 2022 -* Add AncestorRenderer for display of ancestor lookup columns -* Update SampleFinder to use Ancestor columns in results grids -* Update logic in `QueryModel::getColumn` for finding matching lookup columns so it handles additional layers of lookups - -### version 2.152.1 -*Released*: 11 April 2022 -* Issue 45139: grid header menu is clipped by the bounding container instead of overflowing it -* Issue 45135: grid filter modal Choose Values should include model/context filters (baseFilters or queryInfo filters) - -### version 2.152.0 -*Released*: 8 April 2022 -* Item 10213: New grid filtering UX - Support other filter types - * Add LabKey sql util for other filter types - * Show OntologyBrowserFilterPanel in FilterExpressionView - -### version 2.151.0 -*Released*: 8 April 2022 -* Improve SelectRows endpoint wrapper - * Options/arguments are now fully typed. - * Continues to retrieve the associated `QueryInfo` from `query-getQueryDetails.api`. Rejection/errors are now handled solely by `getQueryDetails()`. - * Continues to resolve application URLs via `URLResolver.resolveSelectRows()`. - * No longer wraps `Query.executeSql`. - * Requires a `schemaQuery: SchemaQuery` argument instead of separate `schemaName` and `queryName` arguments. - * Remove `caller` argument as paradigm is not necessary to support. - * The `containerFilter` argument defaults to value returned from `getContainerFilter()` (unchanged from `selectRowsDeprecated`). - * The `method` argument defaults to `POST` (unchanged from `selectRowsDeprecated`). - * The `columns` argument defaults to `'*'` (unchanged from `selectRowsDeprecated`). - -### version 2.150.0 -*Released*: 7 April 2022 -* Item 10223: GridPanel updates for search input and filter display in grid header - * add SearchBox component and display in GridPanel header bar - * add Filters button to GridPanel header to open the GridFilterModal - * display the view, filter, and search grid action values in the grid info section (previously displayed in the OmniBox input) - * add "Remove all" option to the end of the filter pill display if > 1 present - * hide omnibox when experimental feature is enabled - -### version 2.149.7 -*Released*: 14 April 2022 -* Issue 45254: QueryColumn support for "previewOptions" in QuerySelect -* Issue 45256: QuerySelect: Support "formattedValue" for display - -### version 2.149.6 -*Released*: 4 April 2022 -* Remove QueryGridPanel and related components and action/util functions - -### version 2.149.5 -*Released*: 31 March 2022 -* 45148: Handle data indices for single/multi-part fieldKeys -* Add defensive check for presence of product - -### version 2.149.4 -*Released*: 31 March 2022 -* Fix issue with Between filter type second input - -### version 2.149.3 -*Released*: 31 March 2022 -* Display custom (and standard) protocol application properties in the lineage graph - -### version 2.149.2 -*Released*: 30 March 2022 -* Fix issue where we could not add assay samples to picklist from the run details page. - -### version 2.149.1 -*Released*: 30 March 2022 -* Issue 44865: Default naming pattern is not saved during source type creation - -### version 2.149.0 -*Released*: 30 March 2022 -* Item 10191: Add grid column header filter and sort behavior - * show grid column header icon indicator if a sort and/or filter is applied to that column - * add "Clear sort" option to colum header actions - * add "Remove filter(s)" option to colum header actions - * factor out QueryFilterPanel.tsx from EntityFieldFilterModal.tsx - * add "Filter..." option to column header to show GridFilterModal and apply filters - * account for model.viewName in QueryFilterPanel - -### version 2.148.1 -*Released*: 30 March 2022 -* Issue 44709: Update Unique ID confirmation modal so it remains open until update is complete -* Add per-product metric for search usage - -### version 2.148.0 -*Released*: 29 March 2022 -* Item 9999: Shared freezers across containers - Storage View UI - * Support locked Cell state - -### version 2.147.1 -*Released*: 29 March 2022 -* Issue 45126: Job start and due dates are not saved after being updated - -### version 2.147.0 -*Released*: 28 March 2022 -* Item 10192: Support two filter clauses per field in the `FilterExpressionView` and `FilterCards` - -### version 2.146.0 -*Released*: 27 March 2022 -* Package updates for `devDependencies`. -* Refactor builds to use `sass` instead of `node-sass`. -* Utilize scss exports from dependent packages when possible. -* Add `resolve-url-loader` for handling URLs in scss sources. Required for inclusion of certain packages (e.g. font-awesome). -* Suppress logging of warnings when publishing in `@labkey/components`. Makes use of the [webpack "stats" property](https://webpack.js.org/configuration/stats/). -* Move declaration of theme/index.scss include. - -### version 2.145.2 -*Released*: 24 March 2022 -* Support `containerPath` on `LookupSelectInput` and `withAssayModels`. -* Add test utility `createMockWithRouteLeave` - -### version 2.145.1 -*Released*: 24 March 2022 -* Fix issue where models with bindURl set to true could not have default sorts/filters/etc. - -### version 2.145.0 -*Released*: 22 March 2022 -* Fix Issue 44859 - * HeaderWrapper no longer scrolls to the top of the page during update - * Page component now scrolls to top of the page on mount -* Remove circular dependency between Page and NotFound -* Refactor NavigationBar to render HeaderWrapper and sticky class - * This eliminates duplicated code between our apps - -### version 2.144.2 -*Released*: 21 March 2022 -* add `exportConfig` parameter to `getSampleTypeTemplateUrl` for better behavior for media templates - -### version 2.144.1 -*Released*: 21 March 2022 -* Item 10071: Add experimental feature flag for Sample/Aliquot Selector grid button - -### version 2.144.0 -*Released*: 18 March 2022 -* Item 10165: Provide link to download the import template for types in more places - * Extract `TemplateDownloadButton` from `FileAttachmentForm`. - * refactor method for getting sampleTypeTemplateUrl for use in LKSM and LKB - * Add `SampleTypeTemplateDownloadRenderer` and `AssayResultTemplateDownloadRenderer` for showing download button in types grid - -### version 2.143.0 -*Released*: 16 March 2022 -* Add iconDir to SearchResultCardData - * This allows apps to render icons in search results that are in non-default directories -* Make URLResolver.resolveSearchUsingIndex synchronous - * It was a promise, but it did nothing async -* Convert SearchResultCard to FC -* Refactor SearchResultCard tests - * no longer using snapshots - * add additional test cases - -### version 2.142.0 -*Released*: 15 March 2022 -* Support In-App Admin across LKB and LKSM, adding admin & user settings page distinctions, as well as profile settings. - -### version 2.141.2 -*Released*: 14 March 2022 -* Export `PICKLIST_SAMPLES_FILTER` -* Include listId in picklist gridId to disambiguate - -### version 2.141.1 -*Released*: 11 March 2022 -* Merge release22.3-SNAPSHOT to develop again - * Includes changes from version 2.138.6 - -### version 2.141.0 -*Released*: 10 March 2022 -* Support In-App Admin across LKB and LKSM. - -### version 2.140.0 -*Released*: 10 March 2022 -* Item 9748: Shared freezers across containers - * Hide 'Create a freezer' link for sub folders - * Modify useContainerUser to return containerUsers in child folders - -### version 2.139.2 -*Released*: 9 March 2022 -* URLResolver update to only handle URLs for the current container or containers in the current folder tree - -### version 2.139.1 -*Released*: 7 March 2022 -* Merge release22.3-SNAPSHOT to develop - * Includes changes from versions 2.138.1 through 2.138.5 - -### version 2.139.0 -*Released*: 7 March 2022 -* Support EditableGridPanel conversion for LKFM add and move samples use cases - * AppURL switch back to hardcoded app.view - * remove unused EditableGridModal - * loadEditorModelData update to support raw value not being an object - -### version 2.138.8 -*Released*: 26 April 2022 -* Issue 45265: Handle "name" and "listId" for list ActionMappers - -### version 2.138.7 -*Released*: 24 March 2022 -* Issue 45093: Fix production navigation menu URl action for going from LKS to app - * Revert change from PR747 to createProductURL() so that we go back to always using app action - -### version 2.138.6 -*Released*: 10 March 2022 -* Sample Finder Optimizations - * Don't use expensive `QueryableInputs` now that we have the query for descendants - * Don't load the grid until we have sample type names - -### version 2.138.5 -*Released*: 4 March 2022 -* Sample Finder Polish - * Don't clear filter values when switching between filter types - * Exclude lookup columns and the storage "Units" column for Sample types - * Add client side metric for tracking clicks on dashboard "Go to Sample Finder" button - * Start on the Choose Values tab if available - * Remove "Has Any Value" (no-op) filter type - * Change `isSampleFinderEnabled` to look for Biologics experimental flag - -### version 2.138.4 -*Released*: 3 March 2022 -* Item 9817: Sample Finder v1 polish fixes/updates - * Add padding to loading spinner - * Choose Values panel fix for long text options and empty state - * Filter modal styling fixes for list group: remove rounded corner, reduce padding, bold when active - * Update cursor behavior and hover behavior on filter cards and edit/remove icons - * Filter modal updates to better support display on narrow screen - * Add "Go to Sample Finder" button to the dashboard insights panel - -### version 2.138.3 -*Released*: 2 March 2022 -* Sample Finder Polishing - * Add `containerFilter` property to `EntityDataType` model - * Assure grid is updated after sample actions are taken - * Update grid columns to always show parent id columns and add parent type name to column name - -### version 2.138.2 -*Released*: 2 March 2022 -* Container: add isFolder, isProject, isRoot, and isSharedProject - -### version 2.138.1 -*Released*: 1 March 2022 -* Item 44544: Sample type dataset definitions should be locked similar to assays - * Generalize IDatasetModel.isFromAssay to isFromLinkedSource to handle both assay and sample type datasets - -### version 2.138.0 -*Released*: 28 February 2022 -* Item 10056: Sample Finder v1 - Wire up new lineage filters - * Added getLabKeySqlWhere util - * Added InExpAncestorsOfFilterType and InExpDescendantsOfFilterType - * Enable non-text fields for EntityFieldFilterModal (Sample Finder) - -### version 2.137.3 -*Released*: 24 February 2022 -* Item 9968: Show FM Freezer List on LKB and LKSM dashboards - * Update createProductUrl() to use ActionURL.getAction() to stay in appDev mode - * Remove NEW_FREEZER_DESIGN_HREF and MANAGE_STORAGE_UNITS_HREF - * Remove RecentAssayPanel.tsx and related code - -### version 2.137.2 -*Released*: 23 February 2022 -* Item 9945: add calls to incrementClientSideMetricCount() for sample finder related actions - * add metricFeatureArea props to SampleActionButton, SampleDeleteMenuItem, and SamplesManageButton - -### version 2.137.1 -*Released*: 23 February 2022 -* Update `EditInlineField` for input type text so input box resizes to fix input value. - -### version 2.137.0 -*Released*: 23 February 2022 -* Assay - * `deleteAssayRuns()` endpoint wrapper for `experiment-deleteRuns.api` updated accept optional `containerPath`. - * Assay designs now always saved to container specified on `AssayProtocolModel`. - * Address Issue 44845 by consolidating logic and usages for determining if a lookup column is to a Sample Type. This is done in `QueryColumn.isSampleLookup()`. -* `SampleActionsButton` - * Refactor to use `children` instead of `moreMenuItems` for component hierarchy. - * Update to allow `children` items to be displayed regardless of picklist permissions. Previously, these would not render if the user was not allowed to access picklist actions. - * Add `PermissionsType.ManagePicklists` to permissions check. -* Components - * Update `RequiresPermission` to optionally accept a `user` prop which will be used if provided instead of default from `useServerContext`. - * Refactor `DisableableMenuItem` to use `children` instead of `menuItemContent`. - * Remove `DisabledMenuItem` as it is supplanted by `DisableableMenuItem`. - * Move `fetchQueries()` and `fetchSchemas()` methods to their local component implementation usages. Done to simplify imports of `schemas/constants.ts`. -* Picklists - * Update `PicklistSamplesFilter` to filter lists by name instead of by listId. - * Incorporate container filtering into picklist requests. - * Update `PicklistSubNav` to handle errors. - * Picklist custom view save has been moved to server-side. - -### version 2.136.0 -*Released*: 21 February 2022 -* Item 9992: Add ontology type ahead search to forms - * Split out `OntologySearchInput` from the existing `OntologyTreeSearchContainer` - -### version 2.135.0 -*Released*: 21 February 2022 -* Item 10004: Sample Finder V1 - Support Choose Values - * Added FilterFacetedSelector and utils to support faceted fitler selection - -### version 2.134.0 -*Released*: 21 February 2022 -* Core components page update to use QueryModel based EditableGridPanel - * factor loadEditorModelData() out of AssayWizardModel.ts to editable/utils.ts - * export EditableGridPanel, loadEditorModelData, and EditorModelProps from index.ts - * AssayImportPanels.tsx fix for undefined location prop in core-components case - -### version 2.133.0 -*Released*: 21 February 2022 -* Item 9956: Freezer manager dashboard updates to the freezer listing panel - * ExpandableContainer update to call onClick when defined regardless of isExpandable prop - * HorizontalBarSection updates for selenium test locators - -### version 2.132.4 -*Released*: 19 February 2022 -* Migrate subfolder data experimental flag to platform. - -### version 2.132.3 -*Released*: 17 February 2022 -* Update to package to eliminate alpha version reference from node_modules -* Change return type for `useEnterEscape` - -### version 2.132.2 -*Skipped* - -### version 2.132.1 -*Released*: 16 February 2022 -* Issue 44742: Hide NameExpressionGenIdBanner when genId is not used in the current naming patterns -* Issue 44771: Misspelling on naming pattern warning dialog -* Issue 44852: Warning message when resetting the genId to a "conflicting value" is off by 1. - -### version 2.132.0 -*Released*: 16 February 2022 -* Item 9998: Add permissions for restricting read for assays and data classes - * Add utility methods for checking various read permissions - * update `assayPage` to check assay read permission -* Update `SelectionMenuItem` to accept either an `onClick` or `href` property. -* Don't show the option to discard samples when changing status if user doesn't have proper permissions - -### version 2.131.0 -*Released*: 8 February 2022 -* Issue 44711: Field editor update to show confirm modal on change of data type for saved field - * when the field is changing from any non-string -> string OR int/long -> double/float/decimal - * don't allow for Attachment or FileLink data type fields to be converted to Text/String - -### version 2.130.0 -*Released*: 8 February 2022 -* Issue 44740: Add client side metrics to track if samples/sources are being created via the grid or from file import -* Update incrementClientSideMetricCount() so it does not return a Promise but is only used asynchronously - -### version 2.129.0 -*Released*: 3 February 2022 -* **AliasInput** - * Refactor `AliasInput` "value" processing to match what is expected. This fixes several bugs with how this component displays and persists state. - * Add unit tests. -* **Data Classes** - * Support cross-folder domain editing for Data Classes. -* **Details** - * Support `containerFilter` and `containerPath` for `Detail`, `DetailPanel`, `DetailEditRenderer`, and `EditableDetailPanel`. -* **Lineage** - * Export `withLineage` and `InjectedLineage` for external use. - * Refactor how `sampleStats` are processed. -* **Query APIs** - * Improve typings for `insertRows`, `deleteRows`, and `selectRows` to reduce duplication with `@labkey/api` and provide passthrough of all configuration options. - * Update `getContainerFilter` to process the `containerPath` provided to query configurations if provided. - * Introduce `getContainerFilterForInsert`. Supplies the container filter to be used when fetching data intended for insert. -* **QuerySelect** - * Ensure all queries made by `QuerySelect` specify the same set of columns. - * Simplify and centralize `QuerySelectModel` initialization. - * Support specifying `containerFilter` on `QuerySelect`. -* **SelectInput** - * Introduce `resolveFormValue` for component users to override how the input processes the selected options into a form value. - -### version 2.128.0 -*Released*: 3 February 2022 -* Item 9815: Sample Finder v1 - Filter dialog field expression filters - * Updates to EntityFieldFilterModal, FilterCards and SampleFinderSection to wire up filtering - * Added FilterValueDisplay, FilterExpressionView and FilterFacetedSelector to support filtering - -### version 2.127.0 -*Released*: 3 February 2022 -* Remove `FieldEditorOverlay` component -* Add simple action for doing update rows on a single field (callback helper for `EditInlineField`). - -### version 2.126.0 -*Released*: 1 February 2022 -* Item 9888: Sample status help tip display of configured statuses and descriptions - * SampleStatusLegend component to query for configured statues and render as table - * helpTipRenderer - allow column metadata to specify a help tip renderer to be used in grid column header and details panel label - * EntityInsertPanel update to add SampleStatusLegend as column header metadata tooltip for SampleState / Status column - -### version 2.125.0 -*Released*: 1 February 2022 -* Item 9932: Sample Type Insights panel - * Refactor HorizontalBarSection from inventory module (previously StorageAllocationSection) - * Bar chart data helper for createPercentageBarData() and createHorizontalBarLegendData(), moved from inventory module - * Refactor ItemsLegend from inventory module - * Add SampleTypeInsightsPanel.tsx to be used in LKSM and LKB - * Issue 44633: Horizontal bar fix for borders causing line wrapping - -### version 2.124.0 -*Released*: 31 January 2022 -* Item 9923: Adding roles for storage management - * Moved `updateSampleStatus` method into inventory since it's used only when discarding samples and that now requires a specific inventory action - * Change user display role to account for storage editor and designer roles - * Update `CreateUsersModal` and `UsersGridPanel` to handle multiple roles - * Add utility method `userCanEditStorageData` - * Update `SamplesTabbedGridPanel` to account for some users not being able to update storage data - * Update `SamplesEditableGrid`, `SamplesTabbedGridPanel`, and `SamplesSelectionContextProvider` to allow for not being able to edit the sample data - -### version 2.123.0 -*Released*: 31 January 2022 -* Item #9767: Improve sample actions from assay results grid - * Add new `SampleActionsButton` to Assay Results page - * Adjust picklist creation and update actions & components - * Adjust job creation and update actions & components - * Added `getFieldLookupFromSelection` which pulls the lookups rowId value based on supplied query & field - -### version 2.122.0 -*Released*: 31 January 2022 -* Share asynchronous upload UI indicators across LKB and LKSM by pulling relevant code into ui-components - -### version 2.121.4 -*Released*: 28 January 2022 -* Item 9970: QueryFormInput change showQuerySelectPreviewOptions default prop value to false - * Update SampleStatusInput component QuerySelect previewOptions prop to false as well - -### version 2.121.3 -*Released*: 27 January 2022 -* Merge release21.11-SNAPSHOT to develop (part 2) - * Includes changes from versions 2.90.4 - -### version 2.121.2 -*Released*: 25 January 2022 -* Issue 44721: make sorting methods defensive against non-string values - -### version 2.121.1 -*Released*: 24 January 2022 -* Item 9875: Add AssayDefinitionModel requireCommentOnQCStateChange prop - -### version 2.121.0 -*Released*: 21 January 2022 -* Update `SampleTypeTabbedGridPanel` to show row count on tabs -* Added utility `isSamplesSchema` to check for `exp.materials` and `samples.X` -* Updates to `SampleFinderSection` for showing filtered tabbed grids -* Fix for Issue #44339 to allow create operations on selections from the "All Samples" grid in the tabbed grid. -* Consolidate logic for `ViewSelector` and `ViewsMenu` for finding views to include in menu -* Move `getSampleTypes` method here from inventory module and add `getSelectedSampleTypes` utility action - -### version 2.120.1 -*Released*: 20 January 2022 -* Increase z-index of react-datepicker popover - -### version 2.120.0 -*Released*: 19 January 2022 -* Declare and export the `UPDATE_USER` redux action and wire up updates via reducer. - -### version 2.119.0 -*Released*: 14 January 2022 -* Issue 44511: Ability to change a field's data type to known safe alternatives - -### version 2.118.1 -*Released*: 14 January 2022 -* Share asynchronous upload functionality across LKB and LKSM by pulling relevant code into ui-components - -### version 2.117.1 -*Released*: 13 January 2022 -* Item #9810: Consumed Status/Discarding Sample - * Added DiscardConsumedSamples, DiscardConsumedSamplesModal and SampleStatusInput components - * Modified SamplesEditableGrid, SamplesBulkUpdateForm and SampleDetailEditing to allow discarding consumed samples - -### version 2.116.0 -*Released*: 10 January 2022 -* Refactor EditableGrid to be QueryGridModel agnostic -* Add EditableGridPanel component, which is compatible with QueryModel -* Refactor AssayImportPanels/RunDataPanel to use EditableGridPanel and no longer use QueryGridModel -* Delete AssayUploadGridLoader - * EditableGridPanel removes the need for overloading GridLoaders to instantiate models - -### version 2.115.2 -*Released*: 7 January 2022 -* Fix unhandled promises - * most are addressed by adding test mock initialization - * address in Issues by refactoring how erroneous requests are handled - -### version 2.115.1 -*Released*: 5 January 2022 -* Escape typings of some built-in React HTML types - -### version 2.115.0 -*Released*: 5 January 2022 -* Item 9846: Text Choice value type ahead search - -### version 2.114.0 -*Released*: 4 January 2022 -* Added getGenId and setGenId utils -* Added NameExpressionGenIdBanner - -### version 2.113.0 -*Released*: 4 January 2022 -* Foundational work for Sample Finder feature development. - * Add experimental feature flag - * Update FindAndSearch menu - * Move SearchBox and related components into the search directory - -### version 2.112.0 -*Released*: 30 December 2021 -* Item #9782: Text Choice data type support for field editor updates to in-use values - * update to query to get in-use text choice values so that it includes "locked" and row count - * provide SQL fragment from sample type domain for how to determine "locked" text choice values - * update text choice listing icons and selected value display for info on updates and hover text - * send text choice value updates for in-use values to the server as part of POST to update domain - * prevent text choice updates and add values modal apply for duplicates and empty strings - -### version 2.111.1 -*Released*: 29 December 2021 -* Issue #44567: Hide scannable option for floating point fields due to improper matching. - -### version 2.111.0 -*Released*: 24 December 2021 -* Edit Sample Type and Data Class's Naming Pattern Prefix Expression alteration warning message - -### version 2.110.0 -*Released*: 23 December 2021 -* Item #9633: Add scannable option to SampleType numeric fields for LabKey apps - * Refactored scannable option from `TextFieldOptions` into new `ScannableOption` component - * Added ScannableOption to `NumericFieldOptions` - -### version 2.109.0 -*Released*: 23 December 2021 -* SampleTypeDesigner and DataClassDesigner - * Validate name expressions prior to save - * Show name preview on hover -* Added DesignerDetailPanel to show name preview for designer details panel -* EntityInsertPanel: show name preview on tooltip, hide double tooltip - -### version 2.108.0 -*Released*: 22 December 2021 -* Item 9758: Field editor "Text Choice" data type and UI to create, update, delete field options/values - * RegEx validator modal fix for “Fail validation when pattern matches field value” checked state on initialization - * factor out ChoicesListItem to re-use in list group cases (TextChoiceOptions, ChoosePicklistModal, ManageSasmpleStatusesPanel) - * field editor row addition of "Text Choice" data type and "Text Choice Options" section in expanded row - * field editor row updates for selected "Text Choice" data type: reset some field options set for other types, hide regex validator UI, hide text options UI - * factor out DomainRowWarning to re-use between name special character type warnings and empty text choice values details display - * TextChoiceAddValuesModal for add case and check for max allowed values - * domain design model parsing for loading existing field property validators for text choice fields - * show TextChoiceInput in EditableGrid cell for column with validValues - -### version 2.107.1 -*Released*: 22 December 2021 -* Remove experimental feature flag for enabling SM product navigation in Biologics folders - -### version 2.107.0 -*Released*: 21 December 2021 -* FolderMenu: menu provided in NavigationBar to allow users to navigate between folders - -### version 2.106.0 -*Released*: 20 December 2021 -* Update `LookupCell` to use `QuerySelect` for display -* Remove `LookupStore` - -### version 2.105.0 -*Released*: 16 December 2021 -* Item #9633: Add scannable option to SampleType text fields for LabKey apps - * Added scannable field and value property to `TextFieldOptions` - * Passed through appPropertiesOnly to `DomainRowExpandedOptions` and `TextFieldOptions` - * Added optional showScannableOption property to `DomainFormDisplayOptions` - * Added showScannableOption property to `SampleTypeDesigner` - * Added `scannable` property to `DomainField` - -### version 2.104.0 -*Released*: 15 December 2021 -* Add container select support to assay picker XAR import - -### version 2.103.1 -*Released*: 14 December 2021 -* Merge release21.12-SNAPSHOT to develop - * Includes changes from versions 2.101.1 - -### version 2.103.0 -*Released*: 10 December 2021 -* Item 9627: TextChoiceInput and usage for rendering select input for DetailEditRenderer and QueryFormInputs - -### version 2.102.0 -*Released*: 1 December 2021 -* Rename EditableGridPanel to EditableGridPanelDeprecated - * There will be a new version in a future release, and the deprecated version will eventually be removed - -### version 2.101.1 -*Released*: 7 December 2021 -* Issue 44397: Add new date util function, getJsonDateTimeFormatString(), to be used by DatePickerInput and EditableGrid insert/update case - -### version 2.101.0 -*Released*: 30 November 2021 -* Add `getContainerFilter()` for resolving default container filter based on folder context. -* Add `SecurityAPIWrapper` to support fetching containers. This is provided to components via `AppContext`. -* Specify React hooks exported by `@labkey/components` on a `Hooks` object for easier mocking. -* Update `ParentEntityEditPanel` to fetch and persist parent metadata. This allows the component to operate independent of the configuration of the model as supplied by the caller. -* Update `EditableDetailPanel` to accept `containerPath`. -* QueryModel - * Add `loadErrors` and `hasLoadErrors()` utilities to `QueryModel` to reduce the number of checks callers need to do to ensure errors are handled. - * Add `getRowValue()` utility method to `QueryModel` which allows for fetching the specific value of a row by column name (case-insensitive). -* Domain Editing - * Add `domainContainerPath` prop to `QueryInfo` as now specified by `query-getQueryDetails.api` endpoint. - * Support requesting PHI level cross-folder. - * Make domain save requests against domain's folder. - -### version 2.100.0 -*Released*: 29 November 2021 -* Item 9703: Add support for LabKey Vis API stacked bar plot - * supported groupPath for bar chart config - * add legendData for group bar chart case - * add sortFn and conditional margin values for the grouped plot legend text length - * other misc changes: - * add vertical separator for manage sample statuses - * update assay import sample status message to use warning instead of info alert display - * SamplesBulkUpdateForm update to only show aliquot-editable fields when any selected samples are aliquots - -### version 2.99.1 -*Released*: 26 November 2021 -* OntologyConceptPicker fix to wait for subtreePath model to load before showing find link - -### version 2.99.0 -*Released*: 26 November 2021 -* Add `SampleStatusRenderer` for use in details display and grid display - * Update call to cell renderers to pass through all properties - -### version 2.98.0 -*Released*: 24 November 2021 -* Add ExtendableAppContext - * This allows downstream apps to extend AppContext and add their own attributes -* Add NavigationSettings to AppContext -* Add AppContexts component -* Refactor SubNav - * Renders the current container if configured in NavigationSettings - * Re-written to be an FC - * No longer depends on jQuery - -### version 2.97.0 -*Released*: 23 November 2021 -* Support auto-populating sample grid rows when importing run for a Job's Task's Assay - -### version 2.96.0 -*Released*: 23 November 2021 -* Issue 44226: add more packages to the list of externals in webpack.config.js for @labkey/components - -### version 2.95.0 -*Released*: 22 November 2021 -* Remove isFreezerManagerEnabledInBiologics experimental flag - -### version 2.94.0 -*Released*: 17 November 2021 -* Item 9500: Improve Sample display when spanning types - * fix SamplesSelectionContextProvider typings so that we can wrap SamplesBulkUpdateForm and SamplesEditableGrid here in ui-components and export the - * remove SamplesSelectionContextProvider, SamplesBulkUpdateFormBase, and SamplesEditableGridBase from index.ts - * remove SamplesSelectionContextProvider determineAliquot, determineStorage, and determineLineage props as those are now the same for LKB and LKSM - * replace canEditStorage prop with call to isFreezerManagementEnabled() - * move SamplesTabbedGridPanel from LKSM to ui-components - * move CHECKED_OUT_BY_FIELD and INVENTORY_COLS constants to ui-components - * Picklist implementation using SamplesTabbedGridPanel - * split out RemoveFromPicklistMenuItem so that it can be used on the app side like AddToPicklistMenuItem - * remove GridPanel internal usage of GridAliquotViewSelector, usages can still pass this in via ButtonsComponentRight - -### version 2.93.0 -*Released*: 16 November 2021 -* Support initializing Ontology Browser to a concept via a URL parameter - -### version 2.92.0 -*Released*: 16 November 2021 -* Introduce `AppContext`. A React context for serving global application context. -* Provide test utilities for working with components that utilize `AppContext`. - -### version 2.91.2 -*Released*: 15 November 2021 -* Merge release21.11-SNAPSHOT to develop -* Includes changes from versions 2.90.2 and 2.90.3 - -### version 2.91.1 -*Released*: 10 November 2021 -* Bump @labkey/api dependency - -### version 2.91.0 -*Released*: 2 November 2021 -* getUsersWithPermissions: support alternate container paths - * expose via UserSelectInput and useUsersWithPermissions -* Export invalidateQueryDetailsCache - * Provides containerPath-sensitive cache clearing -* Announcements: support supplying containerPath - -### version 2.90.4 -*Released*: 21 January 2022 -* Item 9818: Lineage graph details panel updates to show object input/outputs and run step provenance map - * update Lineage related models for provenanceMap, objectInputs, and objectOutputs - * display Object Inputs and Object Outputs as collapsible details list (next to Material and Data Inputs/Outputs) - * use run step protocol name instead of step name for title - * update Run Step display to use tabs for Step Details and Provenance Map - * render Run Step provenance map as with from/to info - -### version 2.90.3 -*Released*: 10 November 2021 -* Issue 44250: Invalidate QueryInfo caches after change to NameIdSettings.allowUserSpecifiedNames - -### version 2.90.2 -*Released*: 3 November 2021 -* Ensure LK instances without LKSM do not call prefix-related actions - -### version 2.90.1 -*Released*: 1 November 2021 -* Previous release was built against an incorrect version of api-js which broke workflow task support included in 2.87.0 - -### version 2.90.0 -*Released*: 29 October 2021 -* Support 'Status' setting on Assay Designs -* Hide 'Archived' Assay designs from megaMenu -* Show 'Active' Assay designs tab by default on Assay Overview Page - -### version 2.89.2 -*Released*: 29 October 2021 -* Update aliquot rollup column field - -### version 2.89.1 -*Released*: 29 October 2021 -* Issue 43793: Use field descriptions as title attribute on grid column headers - -### version 2.89.0 -*Released*: 28 October 2021 -* Item 9537: Sample Status, Remove experimental feature flag - * Update isSampleStatusEnabled() check to be based on existence of SM module - * Add sample status column to allowed aliquot fields (for create, bulk insert/update dialogs) - * Sample URL resolver fix for LKB mixture batches - -### version 2.88.1 -*Released*: 28 October 2021 -* Issue 43687: UsersGridPanel update to not default to root container path for site/app admin users - * always use the given containerPath - * rename SiteUsersGridPanel to UsersGridPanel - -### version 2.88.0 -*Released*: 28 October 2021 -* Updates for restricting operations for selections of samples based on status - * `getMaterialDeleteConfirmationData.api` renamed to `getMaterialOperationConfirmationData.api` and return structure generalized - * Update `SamplesBulkUpdateForm` to provide alert when samples don't allow data updates. - * Update `AssayImportPanels` with alert about selected samples not allowing additional assay data to be associated with them - * Update `EditableGridLoaderFromSelection` to accept a set of ids that are not to be updated when loading data from the bulk edit form. - * Update various action modals with status alerts and to show only text and a dismiss button when nothing can be done from the selected samples - * Fix bug in `SampleStatusTag` for icon-only display of Available statuses. - * Add info headers in `SamplesEditableGrid` indicating why rows are not editable. - -### version 2.87.0 -*Released*: 27 October 2021 -* Bump @labkey/api dependency -* Add AssayTaskInput -* Update RunPropertiesPanel to render AssayTaskInput -* Update resolveRenderer to use AssayTaskInput - -### version 2.86.1 -*Released*: 26 October 2021 -* Auto-close confirm modal in case of error saving for 'ID/Name Settings' panel - -### version 2.86.0 -*Released*: 22 October 2021 -* Item 9584: ManageSampleStatusesPanel for sample statuses CRUD operations - * Update APIWrapper to take mockFn as a param instead of adding jest dependency directly - * getSampleStatuses action to call API and return SampleState array - * NameIdSettings component update to support optional titleCls prop - -### version 2.85.0 -*Released*: 18 October 2021 -* Add settings panel 'ID/Name Settings' for use in LKB and LKSM -* Within naming pattern, add warning UI if prefix altered - -### version 2.84.0 -*Released*: 14 October 2021 -* Item 9440: Enable picklists for LKB - * Move PicklistOverview, PicklistSubNav and PicklistListing here from LKSM - -### version 2.83.0 -*Released*: 12 October 2021 -* Updates for restricting single sample operations based on status - * Add `DisableableMenuItem` that encapsulates the `OverlayTrigger` and `Popover` displayed when operation is not permitted - * Add constants and utility methods for checking if operations are permitted - * Add `SampleStatusTag` component for displaying the status on a details page - * Update `SingleParentEntityPanel` to filter out samples that can't be used as parents - -### version 2.82.0 -*Released*: 12 October 2021 -* Item 9533: SampleAssayDetail support for module defined sample assay results view configs - -### version 2.81.0 -*Released*: 5 October 2021 -* Issue 43981: Add JavaDoc links to help text in field editor -* Issue 43907: Lookup field type with target table not in select options renders as disabled -* Issue 43934: Add lookup, flag, and ontology lookup data type in field editor for LKSM premium users -* Issue 44011: DatePickerInput fix to account for the shortcut formats (i.e. "Date", "DateTime", and "Time") -* Fix for getUpdatedDataFromGrid() helper to account for empty array values - -### version 2.80.1 -*Released*: 4 October 2021 -* Expose additional `Modal` props via `ConfirmModal`. -* Export `parseDate`. - -### version 2.80.0 -*Released*: 4 October 2021 -* Add announcements components (Discussions, Thread, ThreadBlock, and more) -* Add UserAvatars and UserAvatar -* Add handleFileInputChange helper - -### version 2.79.1 -*Released*: 1 October 2021 -* Support filterable prop for QueryColumn - -### version 2.79.0 -*Released*: 30 September 2021 -* Move SampleAliquotsGridPanel here from LKSM - -### version 2.78.0 -*Released*: 28 September 2021 -* Update `EntityDeleteConfirmModalDisplay` to add message about sample status preventing deletion -* add `isSampleStatusEnabled` helper method in App object -* Reset error caused by editing after exiting edit mode in `ParentEntityEditPanel` -* update `resolveErrorMessage` to detect foreign key constraint messages -* fix problem in `extractChanges` (used by `EditableDetailPanel`) that was using `undefined` for a value that was cleared, which doesn't get sent to the server. - -# version 2.77.6 -*Released*: 28 September 2021 -* Generate correct classNames for ConfirmModal cancel and confirm buttons -* Add margin-left to .required-symbol, users no longer need to add a trailing space to form labels - -### version 2.77.5 -*Released*: 27 September 2021 -* Process the user `input` in `UserSelectInput` and compare it against user displayNames to support type-ahead filtering. -* Prevent processing of "selectedOptions" for asynchronous `SelectInput` configurations during `componentDidUpdate`. -* Update some internal typings for `SelectInput`. -* Add unit tests for `initOptions`. - -### version 2.77.4 -*Released*: 23 September 2021 -* Initial API wrapper for actions to allow for jest test overrides, currently only a single action in the "samples" area -* Jest test for EntityLineageEditModal which use the test API wrapper and overrides - -### version 2.77.3 -*Released*: 22 September 2021 -* Issue 43923: LKSM: Unable to go back to page 1 for Source/Samples grid - * Allow GridAliquotViewSelector to update queryModel's aliquot filter - -### version 2.77.2 -*Released*: 21 September 2021 -* Address intermittent Jest test failures - -### version 2.77.1 -*Released*: 21 September 2021 -* EntityLineageEditMenuItem and related updates to support selenium tests for Source Samples grid - -### version 2.77.0 -*Released*: 17 September 2021 -* Move Sample Aliquots panel UI and utils here from LKSM -* Issue 43833: update aliquot detail panel - -### version 2.76.0 -*Released*: 16 September 2021 -* EntityLineageEditMenuItem update to add an optional onSuccess callback prop - -### version 2.75.1 -*Released*: 16 September 2021 -* Rehydrate yarn.lock to fix issue with npm run start-link in LKSM module - -### version 2.75.0 -*Released*: 9 September 2021 -* Add "Aliquot Naming Pattern" to sample designer - -### version 2.74.0 -*Released*: 9 September 2021 -* Add new AppProperties interface and define properties for our three apps in the App object - * Stop exporting product id constants that are encapsulated into the app properties constants - * Expose new helper methods from App object (`isPremiumProductEnabled`, `sampleManagerIsPrimaryApp`, `getPrimayAppProperties`) -* Update getMenuSections config to merge in logic for Biologics as well -* Move FREEZER_ITEM_SAMPLE_MAPPER here from SampleManagement so it can be used for Biologics as well -* Change menuInit so it will get the given app's productIds only -* Issue 43826: Default to Aliquot in modal when creating samples of the same type - -### version 2.73.0 -*Released*: 9 September 2021 -* Package updates - -### version 2.72.0 -*Released*: 9 September 2021 -* Item 9269: Support for adding FM freezer locations - * ExpandableContainer update to allow for custom container class - * getTimelineEntityUrl() fix to use rd/freezerLocation for inventoryLocation urlType - -### version 2.71.0 -*Released*: 8 September 2021 -* Create Sample Type Designer 'Linked Dataset Category' field as part of Link to Study dataset category assignment - -### version 2.70.0 -*Released*: 6 September 2021 -* Remove QueryGridModel based and components -* Remove unused QueryGridModel prop from AssayImportSubMenuItem and SamplesBulkUpdateForm -* Remove unused getImportItemsForAssayDefinitions() and getRunDetailsQueryColumns() - -### version 2.69.1 -*Released*: 31 August 2021 -* Issue 43771: Show Folder title on Application home pages. -* Issue 43474: Prevent text wrapping for date columns. -* Introduce `useUserProperties` for retrieving user properties based on current user. - -### version 2.69.0 -*Released*: 31 August 2021 -* Parameterize verb in DetailPanelHeader. -* Move getEntityNoun method to utils -* Add EntityLineageEditMenuItem and EntityLineageEditModal for enabling bulk update of entity lineage -* Update ParentEntityEditPanel with more optional parameters - * hideButtons - to hide the buttons below the panel - * editOnly - to indicate that we start in edit mode and cannot cancel out of it; - * onChangeParent - callback used when any change in the parent types or values is made - * includePanelHeader - allows header on panel to be removed -* Add ExperimentException handling to `resolveErrorMessage` - -### version 2.68.1 -*Released*: 30 August 2021 -* Issue 43760: Update checks for editable columns to incorporate the readOnly setting as well - -### version 2.68.0 -*Released*: 26 August 2021 -* Item 9228: Sample Type lineage updates via “Edit Sample in Grid” - * query to get first parents (sources or samples) for selected samples in sample type grid - * parse sample parent data into format that can be used to get initial columns and values for sample lineage EditableGrid - * add new "Lineage Details" tab to the sample edit via grid display - * allow for additional source and parents sample types to be added to EditableGrid - * persist updated sample parents on finish/save from EditableGrid - * refactor EntityParentTypeSelectors out of EntityInsertPanel.tsx for reuse - -### version 2.67.1 -*Release*: 26 August 2021 -* Issue 42628: Hide Biologics details view override in view menu - -### version 2.67.0 -*Release*: 25 August 2021 -* Issue 43029: Support File/Attachment Fields - * See https://github.com/LabKey/labkey-ui-components/pull/610 for more details. - -### version 2.66.1 -*Release*: 25 August 2021 -* Issue 43782: Omnibox - Filtering on a field pulled into a lookup shows lookup field instead of the pulled in field - -### version 2.66.0 -*Release*: 23 August 2021 -* Issue 43693: Indicate the depth of the lineage graphs and grids -* Issue 43692: expose LineageGroupingOptions for ease of overriding defaults; update default depth to 5 -* Issue 43701: Don't remove sample id from a sample assay results grid since the grid may now include aliquots as well -* Issue 43722: Update label in lineage grid from Name to ID - -### version 2.65.2 -*Released*: 20 August 2021 -* Expose range validator modal and related components - -### version 2.65.1 -*Released*: 18 August 2021 -* Issue 43734: SM: Aliquot overview details panel shows some aliquot values under the 'originating sample data' section - * Hide extra exp.material fields from aliquot detail view - -### version 2.65.0 -*Released*: 18 August 2021 -* Create Assay Designer 'Linked Dataset Category' field as part of Link to Study dataset category assignment - -### version 2.64.0 -*Released*: 18 August 2021 -* Issue 43728: bulk insert for samples is broken when a file field is present -* Issue 43725: account for both forward and back slash in FileColumnRenderer.getAttachmentTitleFromName -* Issue 43703: show warning on sample creation editable grid if required fields are included - -### version 2.63.2 -*Released*: 13 August 2021 -* Fix capitalization in FindByIdsModal button -* Issue 43715: Fix pixel offset for Find menu in nav bar for Firefox - -### version 2.63.1 -*Released*: 13 August 2021 -* Item 8561: Add some sample type designer element class names for testing - -### version 2.63.0 -*Released*: 11 August 2021 -* Issue 43672: Add "referrer" param to the help link URLs - * Deprecate helpLinkNode() in favor of HelpLink FC - -### version 2.62.3 -*Released*: 11 August 2021 -* Update scss for form has-error display of updated react-select component to match other form inputs - -### version 2.62.2 -*Released*: 10 August 2021 -* getDateFormat / getDateTimeFormat: support container parameter - -### version 2.62.1 -*Released*: 9 August 2021 -* Issue 43647: SM: creating aliquots for a sample type with a required field gives an error - * Add required sample properties to insertRows data for aliquot creation - -### version 2.62.0 -*Released*: 5 August 2021 -* Add `help` guidance for user when a `nameExpression` is present on the `QueryColumn`. -* Mark field as required in when updating if a `nameExpression` is present. -* GridPanel: allow multiple filters on same column in OmniBox. - -### version 2.61.2 -*Released*: 4 August 2021 -* AssayImportPanels.tsx conversion to QueryModel for batch and run properties - -### version 2.61.1 -*Released*: 3 August 2021 -* Add after-creation callback property to PicklistCreationMenuItem - -### version 2.61.0 -*Released*: 30 July 2021 -* export createQueryConfigFilteredBySample -* SampleAssayDetails to support aliquot view selector and source assay -* add getEmptyText for GridPanel - -### version 2.60.3 -*Released*: 28 July 2021 -* PermissionAssignments.tsx fix to only request root container security policy if user is root admin - -### version 2.60.2 -*Released*: 27 July 2021 -* NavigationBar: fix "sm" screen size layout - -### version 2.60.1 -*Released*: 26 July 2021 -* AuditQueriesListingPage component conversion to QueryModel -* Remove some unused exports from index.ts: getQueryGridModelsForGridId, getRunPropertiesModel, getRunPropertiesRow, getBatchPropertiesModel, getBatchPropertiesRow - -### version 2.60.0 -*Released*: 25 July 2021 -* SelectInput: - * Now the defacto implementation we use to wrap `ReactSelect`. - * Implement my best attempt at stylizing the component to match our theme/look. - * Retain support for primitives as the `value`. When `autoValue={true}` (the default) then `SelectInput` attempts to resolve the chosen option from the value. - * Add support for resolving the chosen option from a primitive value for asynchronous received values. - * When `autoValue={false}` the component will no longer track the `selectedOptions` internally and only utilize them if necessary for Formsy processing. - * The `formsy` property now defaults to `false`. All usages updated. - * The `showLabel` property now defaults to `undefined` and requires explicit `false` to prevent display of the label. Otherwise, display of the label depends on if the `label` property is provided. - * `value` is no longer explicitly tracked for changes (see removal of `SelectInput/equalValues()`). - * Reimplement `saveOnBlur` in support of [Issue 33774](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=33774). - * Retain support for `valueKey` and `labelKey` when working with user-defined options/models. -* QuerySelect: - * Improve typings to denote all properties available and remove redundant declarations. - * Update support for `loadOnFocus` to work with latest version of ReactSelect. -* Introduce `SelectInputTestUtils.ts` which provides utilities and selectors for interacting with `SelectInput` in Jest tests. - -### version 2.59.1 -*Released*: 21 July 2021 -* Fix issue with onChange callback in FileAttachmentArea -* Update eslint-config-react dependency - -### version 2.59.0 -*Released*: 22 July 2021 -* Added SampleAliquotViewSelector component, ALIQUOT_FILTER_MODE enum - -### version 2.58.1 -*Released*: 21 July 2021 -* Use `` instead of `
` so right clicks work in product menu. -* [Issue 43502](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43502) change `isDataInput` and `isMaterialInput` to assure the field is a lookup as well as having the expected prefix -* [Issue 43531](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43531) Don't trim off leading 0s from input values in file import preview grid -* [Issue 43594](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43594) Show only names of parent samples and sources in dropdown -* [Issue 43418](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43418) Add some styling in DetailDisplay to make text not overflow the box - -### version 2.58.0 -*Released* 20 July 2021 -* Rename DateInput to QueryDateInput -* Add DateInput component - * This component is just a DateInput, it has no special knowledge of QueryColumns -* Add EditInlineField - * This is a component that renders a field with a name and value, and optionally lets a user edit the field in place -* Add useEnterEscape hook - * A custom hook that makes it easier to intercept the enter and escape keys, useful for fields that save/cancel - on enter/escape -* Add useUsersWithPermissions hook - * A custom hook that uses the getUsersWithPermissions action to load users -* Add Key enum - * An enum useful for intercepting keys in event handlers -* Add FileAttachmentArea - * This component looks like our FileAttachmentContainer, but only takes a single prop, `onAttach`. This component - stores no state, and does not render files. - -### version 2.57.0 -*Released*: 20 July 2021 -* Item 9204: Sample type parent import alias inclusion in download template and display in details panel - * Add SampleTypeImportAliasRenderer and SourceTypeImportAliasRenderer to be used for sample type details panel rendering - * EntityInsertPanel update to get importAliases for target sample type to add to getTemplateUrl() params - -### vesrion 2.56.2 -*Released*: 20 July 2021 -* Save findIds to HTTP session instead of browser session for less exposure -* don't request to `incrementClientSideMetricCount` if user is a guest - -### version 2.56.1 -*Released*: 19 July 2021 -* Added getLineageFilterValue to support linage queries to a given depth. - -### version 2.56.0 -*Released*: 14 July 2021 -* Add option to SearchBox to show a dropdown for searching by Ids -* Add FindByIdsDropdown and FindByIdsModal components -* Add PicklistButton -* Slight update of styling in navbar -* Add optional parameter to picklist components for recording metric counts for actions taken - -### version 2.55.1 -*Released*: 14 July 2021 -* Issue 43530: Filter dialog for ontology lookup field does not open to intended Vocabulary scope - -### version 2.55.0 -*Released*: 7 July 2021 -* add SharedSampleTypeAdminConfirmModal -* add getUserSharedContainerPermissions, getEditSharedSampleTypeUrl and getDeleteSharedSampleTypeUrl util -* use currentPlusProjectAndShared for sample type container filters - -### version 2.54.0 -*Released*: 6 July 2021 -* Move misc DomainForm properties into domainFormDisplayOptions - * hideConditionalFormatting, showInferFromFile, allowImportExport, showFilePropertyType, showStudyPropertyTypes - * Fix for domain form dirty state on row selection change - * Sort domain field type select input options by display text - -### version 2.53.0 -*Released*: 5 July 2021 -* Remove msg prop from ConfirmModal, uses children prop instead - -### version 2.52.0 -*Released*: 1 July 2021 -* Introduce mountWithServerContextOptions test utility method. -* Stop exporting mountWithServerContext, waitForLifecycle as these do not work external to the package. - -### version 2.51.1 -*Released*: 1 July 2021 -* getMenuSectionConfigs() update for WF. Do not limit menu options. Update "see all" URL. - -### version 2.51.0 -*Released*: 30 June 2021 -* Update typings to allow formatting numeric dates -* Revise choice list styling -* Introduce `handleRequestFailure` utility method for handling Ajax failures - -### version 2.50.3 -*Released*: 29 June 2021 -* [Issue 43299](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43299) Ignore required property on checkbox inputs - -### version 2.50.2 -*Released*: 29 June 2021 -* Parameterize support for showing study field types -* [Issue 43459](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43459) Don't show file upload area if no target type is chosen. - -### version 2.50.1 -*Released*: 28 June 2021 -* [Issue 43435](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43435): When in either LKSM or FM show the storage menu - -### version 2.50.0 -*Released*: 25 June 2021 -* Item 8998: Field designer ontology lookup field support for conceptSubtree prop - * DomainField props update to remove principalConceptDisplay and add conceptSubtree - * DomainField.getPrincipalConceptDIsplay() to use code value to lookup concept model for label display - * ConceptOverviewPanel pass through path prop for selectedPath display - * Factor getParentsConceptCodePath() out of OntologyBrowserFilterPanel for reuse - * OntologyBrowserModal update to support initializing selected concept from initConcept or newly added initPath prop - * Factor concept cache out of OntologyBrowserPanel to be used globally for calls to fetchConceptForCode() - * Factor OntologyConceptSelectButton out of OntologyConceptAnnotation for reuse with conceptSubtree UI - * OntologyConceptPicker update to support loading from a conceptSubtree value or a fieldValue - * OntologyLookupOptions update to add UI for selecting conceptSubtree value for source ontology - -### version 2.49.1 -*Released*: 25 June 2021 -* Issue 42637: Fix for fileMatchesAcceptedFormat() to check for file extensions that might have multiple parts - -### version 2.49.0 -*Released*: 22 June 2021 -* Introduce SelectViewInput component - * Supports localStorage persistence of selected view - * Replaces OptionsSelectToggle - -### version 2.48.0 -*Released*: 22 June 2021 -* Issue 43283: update GridAliquotViewSelector to use dropdown instead of checkboxes -* Issue 43310: SM: Sample names that are numbers only and greater than 7 characters get truncated in file import preview. -* Issue #43347: don't show q.details.xx as QueryDetailPage title - -### version 2.47.1 -*Released*: 21 June 2021 -* [Issue 43367](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43367) Use proper container path for lookups -* [Issue 43324](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43324) Trim spaces from text fields before submitting - -### version 2.47.0 -*Released*: 18 June 2021 -* Add `` and `` components. -* Update `` to respect `valueKey` when processing multiple values. -* Add reusable styles for `content-form`, `form-step-tabs`, and `clickable-text`. - -### version 2.46.1 -*Released*: 18 June 2021 -* Addresses [Issue 43372](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43372) by: - * Switch `hideEmptyChartSelector` and `hideEmptyViewSelector` to true by default for `QueryGridModel`. - * Switch `hideEmptyChartMenu` and `hideEmptyViewMenu` to true by default for `GridPanel`. - -### version 2.46.0 -*Released*: 14 June 2021 -* Update product navigation menu behavior - * Remove ability to navigate to other projects - * Make LKS links entries not clickable if already in the current container - * Add ability to disable display of menu for non-admins (based on Look & Feel setting from server) - * Add usage statistics about navigation to and from LKS - * Add use of experimental feature flag to conditionally enable navigation to LKSM from LKB - -### version 2.45.2 -*Released*: 14 June 2021 -* Switch ontology search to use hit id instead of parsing code - -### version 2.45.1 -*Released*: 14 June 2021 -* Fix CreateSamplesSubMenuBase disabled option for non sample grids - -### version 2.45.0 -*Released*: 11 June 2021 -* Added SampleDeleteMenuItem -* Moved CreateSamplesSubMenuBase, getMenuItemsForSection from SampleManager -* Allow EntityInsertPanel to initialize sample parents from inventory items selection -* Add getSnapshotSelections action util - -### version 2.44.0 -*Released*: 10 June 2021 -* Item 8958: LKSM Permissions updates for premium vs hosted only servers - * Move SITE_SECURITY_ROLES from SM to shared components and update APPLICATION_SECURITY_ROLES to include Project and Folder Admin roles - * AuditDetails component fix to use getUsersWithPermissions to resolve userId display names - * DomainForm refactor to replace extra Security.getModules call with use of new hasModule helper for ontology - * BasePermissionsCheckPage addition of subTitle and description optional properties - * SecurityRole.filter fix to always take into account the relevantRoles from policy - * SiteUsersGridPanel conversion to QueryModel and GridPanel - * SiteUsersGridPanel updates for Project/Folder admin users to only show applicable menu items (i.e. delete/deactivate) - * getUserRoleDisplay updates for additional admin roles in SM app - * GridPanel addition of option highlightLastSelectedRow prop to match QueryGridPanel - -### version 2.43.0 -*Release*: 9 June 2021 -* Add support for concept picker usage in Insert/Update scenarios -* Fixed OntologyLookupOptions NO-OP updates marking fields as dirty -* Add an initial concept for OntologyBrowserModal - -### version 2.42.1 -*Released*: 8 June 2021 -* GridPanel.omniBoxChange fix for JS error on removing action text - -### version 2.42.0 -*Released*: 7 June 2021 -* Introduce hasPermissions, hasAnyPermissions utility methods -* Update `` component to be configurable for all options - -### version 2.41.2 -*Released*: 4 June 2021 -* [Issue 43264](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=43264) Trim field values - entered in grid -* Fix for change of parentTypeOptions type value from an array to a single value (from https://github.com/LabKey/platform/pull/2310) - -### version 2.41.1 -*Released*: 3 June 2021 -* Fix FileSizeLimitProps export - -### version 2.41.0 -*Released*: 2 June 2021 -* Issue 43131: Files added to Sample Types show a path to "sampleset" -* Issue 43254: Trailing spaces in field editor field names are not getting trimmed -* Issue 37850: Include display format string in form field label help tip and editable grid cell header -* Check to make sure model has selection before showing choose picklist modal - -### version 2.40.0 -*Released*: 1 June 2021 -* Package updates -* Updated to build using Webpack 5. -* Switched to using [Webpack Asset Modules](https://webpack.js.org/guides/asset-modules/). Deprecates need for `file-loader` and `url-loader`. -* Update `immer` to `v9.x` which necessitated some typings updates for our usages of `produces`. -* Update to use Jest `v27.x`. See [this post](https://jestjs.io/blog/2021/05/25/jest-27) for further details. -* Storybook updated to `v6.3.x-beta` to support building with Webpack 5. - -### version 2.39.0 -*Released*: 31 May 2021 -* Don't show multi-value columns as filtering options for Omnibox. -* Issue 43199: Update SampleCreationTypeModal to expand click area -* Issue 42972: Fix validity check after removing parent aliases -* Issue 43255: Protect against undefined rangeURI - -### version 2.38.0 -*Released*: 31 May 2021 -* Add support for freezer location in TimelineView - -### version 2.37.0 -*Released*: 28 May 2021 -* Define new Content Panel variant `panel-content` in `panel.scss`. -* Update `
` component to make use of standard `panel-content` layout. -* Define new Content Tabs styling `content-tabs` in `tabs.scss`. - -### version 2.36.0 -*Released*: 28 May 2021 -* Item 8897: Remove default session event listeners from initWebSocketListeners (and rename it to registerWebSocketListeners) - -### version 2.35.0 -*Released*: 27 May 2021 -* Specialty assays moved to premium module. Assay picker now has option to show upsell message. -* Better handling when no specialty assays available in assay picker, including warning. -* Upsell message in the assay picker is a candidate to be it's own component should we need further upsell messages. - -### version 2.34.0 -*Released*: 26 May 2021 -* Add autoFocus prop to SelectInput - -### version 2.33.1 -*Released*: 25 May 2021 -* Update SingleParentEntityPanel to handle multiple data source types -* Update ParentEntityEditPanel to handle multiple data sources and not require a full model - -### version 2.33.0 -*Released*: 25 May 2021 -* Add support for modifying the items in a picklist - * Add AddToPicklistMenuItem that incorporates a new ChoosePicklistModal and actions - * Add styling (lifted from ELN notebooks stylings) for choice panels in modal. -* Update `getSelection` so you can pass in a `queryName` and `schemaName` and not have to parse the selection key -* Add utility method `getCofirmDeleteMessage` -* Issue 42843: Sample Creation modal allows more than the max number of rows to be created - -### version 2.32.0 -*Released*: 19 May 2021 -* Introduce `loadOnMount` flag to `` for controlling model loading behavior. Defaults to `true`. -* Add `showRowCountOnTabs` flag to `` to display model row counts in tab name. Defaults to `false`. -* Add `createQueryConfigFilteredBySample` method for generating assay/sample `QueryConfig` based on assay model configurations. -* `SampleAssayDetail` has been converted to support `QueryModel` and ported out of Biologics. This can be reused in the future by other apps. -* `SampleDetailEditing` updated to support `QueryModel` configurations as well as `QueryGridModel`. - -### version 2.31.0 -*Released*: 13 May 2021 -* Remove isSampleAliquotEnabled experimental flag -* Allow QueryGridModel export to include extra columns -* Allow QueryModel to export LABEL -* Issue 43070: SM: Aliquot names do not autogenerate when the sample type doesn't have a name expression -* Move/refactor components/utils from SampleManager to enable aliquot features in Biologics - * SamplesSelectionContextProvider - * SamplesBulkUpdateForm - * SamplesEditableGrid - * SampleDetailEditing - * SampleAliquotDetailHeader - * SampleLineageGraph - * getGroupedSampleDomainFields, getAliquotSampleIds, getGroupedSampleDisplayColumns utils - -### version 2.30.0 -*Released*: 13 May 2021 -* Add picklist-related components, models, and actions including: - * PicklistCreationMenuItem - * PicklistEditModal - * PicklistDeleteConfirm -* Updated domain designer Lookup/Fields to allow for certain tables (e.g., picklists) being excluded from the choice for lookups -* Add new `getListIdFromDomainId` method - -### version 2.29.1 -*Released*: 12 May 2021 -* QuerySelect: Pass `selectedItems` to `onQSChange()` event handlers. - -### version 2.29.0 -*Released*: 11 May 2021 -* Replace usages of LABKEY variable with getServerContext() -* Add `Container.hasActiveModule()` utility method. - -### version 2.28.0 -*Released*: 6 May 2021 -* Add FormSchema, Field, Option interfaces - * These interfaces are used in conjunction with LabKey server classes of the same name to auto-generate forms with - AutoForm (see below) -* Add AutoForm - A component that generates a form for a given FormSchema -* Add HelpIcon - A component useful for rendering help text - -### version 2.27.0 -*Released*: 01 May 2021 -* Changes to allow data region filtration based on ontology concepts - * Added OntologyBrowserFilterPanel to handle FilterDialog injection - * Updated OntologyBrowser to optionally hide conceptinfo - * Updated OntologyTreePanel to show filter selections -* Updated FileTree to take header parameter -* Split FileTree.Header into its own file - -### version 2.26.3 -*Released*: 30 April 2021 -* Issue 43028: QuerySelect - fallback to "valueColumn" as option label -* Issue 43051: LookupCell menu appears detached from table cell - -### version 2.26.2 -*Released*: 29 April 2021 -* Issue 42527: Handle edge case in List Designer Summary View. Summary View mode now hides Field Editor HeaderRenderer content - -### version 2.26.1 -*Released*: 29 April 2021 -* Issue 42844: Sample Type designer update to include metricUnit check in "isValid" check - -### version 2.26.0 -*Released*: 28 April 2021 -* Item 8789: Add util function for incrementClientSideMetricCount() - -### version 2.25.0 -*Released*: 23 April 2021 -* EditableGrid: - * EditableGridPanel and EditableGridPanelForUpdate support multiple models in a tabbed view - * Allow setting cell to read only with columnMetadata - * Allow getUpdateColumns override - * Set caption with columnMetadata -* Support aliquot creation mode for EntityInsertPanel -* Add header props to BulkUpdateForm - -### version 2.24.4 -*Released*: 23 April 2021 -* Issue 42872: Handle field names with special characters in grids and forms better. -* Update export aliases to use SampleID instead of SampleId - -### version 2.24.3 -*Released*: 22 April 2021 -* immer version bump to 8.0.4 and other yarn.lock updates - -### version 2.24.2 -*Released*: 21 April 2021 -* Update audit log events parsing to handle non-ImmutableJS events - -### version 2.24.1 -*Released*: 20 April 2021 -* Issue 42756: Disable bulk update for Submitters+Readers - -### version 2.24.0 -*Released*: 19 April 2021 -* Item 8735: Misc updates to support DetailEditing shared component in LKB - * DetailEditing.tsx - add optional detailRenderer to be used in view/read mode - * Export DetailPanelHeader.tsx to use in LKB - * Formsy addValidationRule isNumericWithError in resolveRenderer for DetailEditing.tsx usages - * form/details/extractChanges check for date validation of with/without timestamp - -### version 2.23.2 -*Released*: 16 April 2021 -* Issue 42932: FieldEditorOverlay fix to recognize change to props by looking at row's RowId - -### version 2.23.1 -*Released*: 15 April 2021 -* Issue 42527: Support 'Is Primary Key' column for Summary View - -### version 2.23.0 -*Released*: 15 April 2021 -* Item 8735: Enable files and attachment data types for sample type designer and data class designer - * Refactor AttachmentCard component and related SCSS from LKB ELN - * Enable FileColumnRenderer for DetailsPanel - * Move image showModal from FileColumnRenderer.tsx to AttachmentCard.tsx - * Handle file field insert/update/delete for DetailEditing.tsx component and equivalent EditableDetailsPanel.tsx component - * Don't show file inputType columns in editable grid or add/update bulk forms - * Better handling for error messages from virus file detection response - -### version 2.22.6 -*Released*: 12 April 2021 -* QueryColumn: expose dimension, measure properties - -### version 2.22.5 -*Released*: 12 April 2021 -* Issue 42475: Add file image to data class details page - -### version 2.22.4 -*Released*: 10 April 2021 -* Remove /src/internal/app/index.ts and instead define App in /src/index.ts - -### version 2.22.3 -*Released*: 9 April 2021 -* Pass already supplied `containerPath` to `getQueryDetails()` for fetching underlying metadata for ``. - -### version 2.22.2 -*Released*: 9 April 2021 -* Add showImportDataButton, showInsertNewButton and isFiltered to QueryModel - -### version 2.22.1 -*Released*: 6 April 2021 -* Fix for FM enabled check related to LKB experimental feature flag - * Change to isFreezerManagementEnabled() helper to check that both the inventory module is enabled in the folder - and that if biologics is enabled then the experimental feature flag must be enabled as well - -### version 2.22.0 -*Released*: 5 April 2021 -* Add GridAliquotViewSelector -* Add showSampleAliquotSelector to QueryGridBar and GridPanel -* Add URL.replaceFilter uti -* Update EntityDeleteModal to work with QueryModel -* Group lineage nodes based on materialLineageType - -### version 2.21.1 -*Released*: 5 April 2021 -* Issue 42598: FileTree component styling fixes for font family, text color, and node display for wide text -* Ontology search input - cancel form submit on enter key to prevent page reload - -### version 2.21.0 -*Released*: 2 April 2021 -* Add support for uniqueId (barcode) fields - * Add Concept URI for unique Id fields. - * In EntityInsertPanel, add placeholder text for generated Ids and make them read-only - * Add condition on column filter used for bulk insert to remove the unique id fields - * Add UniqueIdBanner containing call to action in SampleTypeDesigner properties panel and fields panel for adding uniqueIds - * Add `getUniqueIdFields` method to QueryInfo class -* add `isCommunityDistribution` method -* add `alert-button` css class for buttons that appear in alert banners -* Update EntityInsertPanel and FilePreviewGrid to show warnings about fields detected that will be ignored during import, - either because they are not known or because they are uniqueId fields. - -### version 2.20.1 -*Released*: 31 March 2021 -* Handle domain field data type check for created/modified timestamp conceptURI - -### version 2.20.0 -*Released*: 31 March 2021 -* Item 8703: Move handleFileImport code into shared components and use in EntityInsertPanel for file importData call - * Replace EntityInsertPanel handleFileImport prop with fileImportParameters - * Add handleEntityFileImport implementation based on usages in LK modules - * Change EntityInsertPanel submitFileHandler to use shared handleEntityFileImport with passed in fileImportParameters - * Add EntityDataType importFileAction prop to be used for handleEntityFileImport - -### version 2.19.0 -*Released*: 30 March 2021 -* Add maxAllowedPhi attribute to User -* Add phiProtected attribute to QueryColumn -* Add styling to Grids for PHI protected columns -* Convert GridMessages to FC - -### version 2.18.0 -*Released*: 30 March 2021 -* Issue 42741: EntityInsertPanel fix to use selected sample type name instead of value (which is lowercase) for navigation -* Add EntityDataType.editTypeAppUrlPrefix to use for linking to the edit design app URL on the create/import page -* EntityInsertPanel fix to handle case where parent param is a schema/query but without specific values to add to grid -* Add createEntityParentKey helper util function -* SubMenuItem fix for expanded menu with filter issue with item disabled state change - -### version 2.17.0 -*Released*: 23 March 2021 -* Add queryModel prop to AssayImportSubMenuItem - -### version 2.16.1 -*Released*: 22 March 2021 -* add lookupStoreInvalidate util - -### version 2.16.0 -*Released*: 22 March 2021 -* Add 'Auto-Link Data to Study' field in Sample Type properties - -### version 2.15.3 -*Released*: 21 March 2021 -* Fix for `selectedState` in `QueryModel` when total rows is less than page size - -### version 2.15.2 -*Released*: 18 March 2021 -* Merge release21.3-SNAPSHOT to master. -* Includes changes from versions 2.6.3 and 2.6.4. - -### version 2.15.1 -*Released*: 18 March 2021 -* Fix problem with undefined references in `getDisambiguatedSelectInputOptions` - -### version 2.15.0 -*Released*: 16 March 2021 -* Add ``. -* Update assays model getDefinitionsByTypes to list included/excluded types -* Add isBiologicsEnables and isFreezerManagerEnabledInBiologics checks - -### version 2.14.1 -*Released*: 15 March 2021 -* Update `` component for reuse for media materials. - -### version 2.14.0 -*Released*: 11 March 2021 -* Update DomainForm and FileAttachmentForm to ignore reserved fields when inferring fields - -### version 2.13.2 -*Released*: 11 March 2021 -* Convert `` to use `QueryModel`. -* Update `` to no longer invalidate `QueryGridModel`s for underlying single parent panels. - -### version 2.13.1 -*Released*: 11 March 2021 -* Fixes Issue 42438: better handling of lineage metadata loading errors. -* Lineage: propagate `fetchNodeMetadata` loading errors. -* display error alert in ``. - -### version 2.13.0 -*Released*: 10 March 2021 -* Changes to support webpack aliases from /src and theme/SCSS assets - * index.ts and app/index.ts updates to export types separately - * add "declare" to various immutable Record properties - * remove global.d.ts in favor of GlobalAppState defined and used for ReactN components types directly - * remove "const" from usages of const enum - * Remove direct reference to `jest` from test utility methods - -### version 2.12.0 -*Released*: 9 March 2021 -* Add `editColumns` property to ``, `` for `QueryGridModel` support. -* Add `editColumns` property to ``, `` for `QueryModel` support. - -### version 2.11.1 -*Released*: 8 March 2021 -* Hide 'Derivation Data Scope' column within Designer Summary View. Will be updated when aliquot functionality is no longer an experimental feature - -### version 2.11.0 -*Released*: 6 March 2021 -* Package Updates - -### version 2.10.2 -*Released*: 5 March 2021 -* Merge release21.3-SNAPSHOT to master. -* Includes changes from versions 2.6.1 and 2.6.2. - -### version 2.10.1 -*Released*: 5 March 2021 -* Don't use const enums, they are not compatible with our new typescript babel build - -### version 2.10.0 -*Released*: 4 March 2021 -* Support tagging participant and time point columns in sample types -* Add two PropDescTypes to include within field Data Type dropdown. The new options render when domain property allowTimepointProperties is true, which is currently the case for only Sample Types -* Ensure two new Data Type options mentioned above do not render in SampleManagement Sample Types - -### version 2.9.0 -*Released*: 4 March 2021 -* Replace `` with `` in detail editing. -* Configures a `QuerySelect` component for detail editing. -* Support defaults for `detailRenderer` and `titleRenderer` on `DetailDisplay`. -* No longer publicly export `resolveDetailEditRenderer` or `titleRenderer`. -* Improve types for our rendering methods. - -### version 2.8.0 -*Released*: 3 March 2021 -* Add isSampleAliquotEnabled experimental flag -* Add "Aliquot Options" to domain row -* Allow DetailEditing to use custom set of update columns via getUpdateDisplayColumns -* Hide aliquot fields for insert editable grid and bulk insert form - -### version 2.7.0 -*Released*: 1 March 2021 -* Add TabbedGridPanel component - * To be used as a replacement for QueryGridPanel's tabbed mode -* Add "title" field to QueryModel - -### version 2.6.4 -*Released*: 16 March 2021 -* Item 8546: Ontology concept picker panel search - - FileTree component updates show props to `showLoading` and `showAnimations` - - Concept path display update for hover to get full path info for "current path" - - Ontology tree panel update for adding search input field and results menu behavior - - Ontology tree panel update to allow for loading data into tree and navigating to an alternate path via search or alternate path click in path information tab - - Ontology panel header update to show ontology description and concept count in tooltip - - search/actions.ts update to allow for a custom category filter array - -### version 2.6.3 -*Released*: 10 March 2021 -* Item 8360: Expand the ontology and concept browsers with additional information - - Added synonym and path information to the concept information panels - - Added selected path and alternate path displays to path information tab & panel - -### version 2.6.2 -*Released*: 4 March 2021 -* 42608: Bulk Insert erroneously transposes columns - -### version 2.6.1 -*Released*: 2 March 2021 -* Issue 42589: Product Menu attempts to load before application initialized -* Add and respect `showNotifications` and `showProductNav` props to `` - -### version 2.6.0 -*Released*: 27 February 2021 -* Item 8583: Ontology concept picker usages in Field Editor for field concept annotation - - Add principalConceptCode to DomainField model - - Add field editor expanded row input for OntologyConceptAnnotation with button to open the Ontology Concept Browser in modal dialog - - Move components related to ontology from /domainproperties to /ontology - - Expose OntologyConceptOverviewPanel for use in ontology module - - Add OntologyBrowserModal to wrap the browser in a modal with cancel and apply buttons - - Factor out OntologyTextDomainFieldSelect from OntologyLookupOptions component - -### version 2.5.2 -*Released*: 26 February 2021 -* Issue 42515: Layout issue for NavBar with medium-sized screens -* ProductMenu: prevent closing menu on non-link click -* ProductMenu: expand link clickable area -* ProductNavigationHeader: clickable text to go back - -### version 2.5.1 -*Released*: 25 February 2021 -* @labkey/components package bundle optimizations - - webpack.config.js: add back in new IgnorePlugin(/^\.\/locale$/, /moment$/) - - split initUnitTestMocks() into a separate testHelperMocks.tsx file so it isn't referenced via ./src/index.ts - - add localDev.md doc info on using webpack-bundle-analyzer - -### version 2.5.0 -*Released*: 24 February 2021 -* Item 8359: Add initial OntologyBrowserPanel and associated files - -### version 2.4.0 -*Released*: 24 February 2021 -* Migrates `AssayDesignEmptyAlert`, `BarChartViewer`, and `RecentAssayPanel` to `@labkey/components`. -* Migration includes chart configurations for assays and samples. -* No longer need to export `UserMenu` as last external usage was removed. -* Remove jQuery from `BaseBarChart` as it is no longer necessary. - -### version 2.3.1 -*Released*: 24 February 2021 -* Make 'auto-scroll to field' functionality in Summary View also expand given field -* Display rangeURI values in Summary View for new fields - -### version 2.3.0 -*Released*: 23 February 2021 -* Field Editor Summary View - -### version 2.2.0 -*Released*: 19 February 2021 -* Item 8335: Add LabKey product navigation icon and menu to NavigationBar.tsx - - make the ProductNavigationMenu.tsx component available for use in LKS header.jsp - - app/utils.ts addition of hasPremiumModule() helper function - - remove UserMenu "Switch to LabKey" option - - consolidate styles for Product Navigation menu and Notifications menu (ex. update header text display to match) - - add optional containerPath param to createProductUrl() function - -### version 2.1.0 -*Released*: 18 February 2021 -* Add SampleCreationTypeModal for choosing aliquots, derivatives, or pooled samples -* Add RadioGroupInput component for use in (and out of) Formsy forms -* Separate QueryInfoQuantity component from QueryInfoForm for display of quantity header - -### version 2.0.0 -*Released*: 15 February 2021 -* Fix issue in URLResolver causing next to be called twice -* Add useRouteLeave hook -* withRouteLeave now uses the useRouteLeave hook -* BACKWARDS INCOMPATIBLE - RouteLeaveProps renamed RouteLeaveInjectedProps -* Add WrappedRouteLeaveProps - you can now customize the message shown when users attempt to navigate away from a dirty page -* Improved typing for withRouteLeave -* BACKWARDS INCOMPATIBLE - remove confirmLeaveWhenDirty - -### version 1.21.1 -Public API update -*Released*: -* Move FileAttachmentForm, WebDav, InferDomainResponse components to public -* Move FileSizeLimitProps and FileGridPreviewProps to public - -### version 1.20.0 -*Released*: 8 February 2021 -* Refactor navigation components to functional components. -* Add support for `sectionKey` in menu items. -* Make resolving URLs implementation non-async. Promises were not needed. This affected `makeTestData` in the same way. -* Rename `handle132Response` to `handleSelectRowsResponse` as a part of moving to non-async. - -### version 1.19.0 -*Released*: 3 February 2021 -* Update storybook to v6 -* Package updates for test dependencies - -### version 1.18.0 -*Released*: 1 February 2021 -* Addition of AssayDesignDeleteModal, AssaysHeatmap and AssayTypeSummary -* Updates for app version of AssayPicker - -### version 1.17.2 -*Released*: 29 January 2021 -* Fix default grid cell rendered so it displays values that are 0. - -### version 1.17.1 -*Released*: 27 January 2021 -* Issue 42342: Formatting issues with notifications drawer - - align chevron properly with the bell icon without unread msgs - - For a "Folder import" notification, there's a space missing - -### version 1.17.0 -*Released*: 26 January 2021 -* wire up query grid reset on appModel - - add needsInvalidateQueryGrid field to AppModel - - add methods for invalidate grids in AppReducers - - register resetQueryGridListeners in initWebSocketListeners -* remove isAsynchronousImportEnabled -* add maxEditableGridRowMsg to RunDataPanel and invalidCountMsg to Controls props -* move spinner to be before menu labels for ProductMenuSection -* show ActionLinkUrl for success and error notifications -* use bootstrap badge for notification count display - -### version 1.16.2 -*Released*: 26 January 2021 -* Issue 42216: Fix for logout event notification issue with different user sessions (i.e. different browsers) - * add check for evt.wasClean in server event listener callbacks before dispatching (to match platform dom/WebSocket.js) - * move CloseEventCode enum type from Biologics to use in App.initWebSocketListeners - -### version 1.16.1 -*Released*: 22 January 2021 -* fix server notification content html encoding -* allow setSelected to validate ids against dataregion - -### version 1.16.0 -*Released*: 18 January 2021 -* add menu item active job icon -* add PipelineJobsPage -* add PipelineStatusDetailPage -* modify assay url resolver to work with Data.Run/RowId~eq=rowId -* add pipeline jobId to EntityInsertPanel and AssayUploadResultModel - -### version 1.15.0 -*Released*: 14 January 2021 -* Item 8012: Row Selection Actions on Field Editor - -### version 1.14.1 -*Released*: 11 January 2021 -* Enable async import for assay runs - -### version 1.14.0 -*Released*: 11 January 2021 -* Add new Assay Picker. Used for selection of assay design types. - -### version 1.13.0 -*Released*: 8 January 2021 -* Item 8141: AssayImportPanels updates to support file based assay scenario - - add props to allow setting initial assay upload tab and hiding other tabs - - add props to allow batch/run property QuerySelects to not show full preview options - - fix so that date picker input field label shows asterisk when required - - add beforeFinish prop to allow usages of AssayImportPanels to manipulate data before import/save - -### version 1.12.2 -*Released*: 7 January 2021 -* Use consistent casing for 'returnUrl' parameter - -### version 1.12.0 -*Released*: 4 January 2021 -* Wire up websocket and redux for server notifications - -### version 1.11.3 -*Released*: 30 December 2020 -* Misc fixes for LKSM 21.01 - - Issue 41747: Add bottom margin to EditableGrid to prevent horizontal scroll bar from covering last row - - Issue 42123: Assay import panels fix for dirty state being set on batch/run form init setValue calls - - Fix for PageDetailHeader component left padding without icon - -### version 1.11.2 -*Released*: 24 December 2020 -* Issue 42088: Don't send formatted date values when saving data - -### version 1.11.1 -*Released*: 22 December 2020 -* Dependabot package updates - -### version 1.11.0 -*Released*: 22 December 2020 -* Item 8267: Misc bug fixes related to LKSM workflow - - FileAttachmentForm fix to use anchor tag with target blank for template file download - - AssayImportSubMenuItem and getImportItemsForAssayDefinitions option to filter assays by provider type - -### version 1.10.0 -*Released*: 21 December 2020 -* Remove `body` prop and update `iconComponent` prop to be of type `ReactNode`. -* Simplify `Overlay` target to use a React reference element in LabelHelpTip. Simplifies tracking and significantly reduces component footprint in test snapshots. -* `AssayPropertiesInput`, `DomainFieldLabel, and `SectionHeading` updated to reflect same change with `helpTipBody` now being of type `ReactNode`. -* Correctly pass props in `AddEntityButton`. - -### version 1.9.0 -*Released*: 16 December 2020 -* Item 8226: Package updates to support packaging of LKSM workflow pages/components - - Add AssayStateModel.getDefinitionsByType helper function - - Add GENERAL_ASSAY_PROVIDER_NAME constant - - Move ExpandFilterToggle and OptionsSelectToggle (renamed from ViewAsToggle) components from LKSM to shared components - - Move withTimeout and getImmediateChildLineageFilterValue functions from LKSM to shared components - -### version 1.8.0 -*Released*: 15 December 2020 -* Add optional Notifications icon and overlay in NavigationBar - -### version 1.7.3 -*Released*: 15 December 2020 -* add allowAsync for EntityInsertPanel - -### version 1.7.2 -*Released*: 14 December 2020 -* Issue #41419: Update RouteLeave to better manage form transition confirmations - -### version 1.7.1 -*Released*: 10 December 2020 -* Update @labkey/api dependency - -### version 1.7.0 -*Released*: 7 December 2020 -* Item 8203: Domain designer row styling updates - - Remove grey background of drag handle area on the far left of the row - - Move the expand/collapse icon to the left (next to the dnd handle) but keep the remove/delete icon on the far right - - Remove margin/padding between rows (i.e. no spacing below each row), so that they look more like a table of rows - - Remove box-shadow from rows and remove border radius (corners should be square now) - - For rows that can be reordered, styling updates for the row being dragged so that it has blue border and box drop shadow that makes it “sit” above the other rows - - Column titles/headings above the rows align with left side of the related inputs and those that are required have an * after the title - -### version 1.6.0 -*Released*: 6 December 2020 -* Issue 41737: Storage actions do not respect filters on the grid - - Add setSnapshotSelections utility function - -### version 1.5.2 -*Released*: 4 December 2020 -* Remove check for experimental flag from isFreezerManagerEnabled - -### version 1.5.1 -*Released*: 30 November 2020 -* Disable "Submit" button on DetailEditing when in the process of submitting -* Add some styling to hide text that overflows a field -* Fix bug in QueryInfo that did not add columns designated as addToDisplayView in all cases - -### version 1.5.0 -*Released*: 27 November 2020 -* Item 8116: Make insertRows, updateRows, and deleteRows API success response consistent - - make sure to include "rows" and "transactionAuditId" for each - - minor display / layout fix for PageDetailHeader body content to flow better below image - -### version 1.4.1 -*Released*: 25 November 2020 -* yarn run lint-fix on src/internal/components/domainproperties - -### version 1.4.0 -*Released*: 24 November 2020 -* Item 8137: Misc package changes to support LKFM freezer hierarchy polish - - export existing DomainFieldLabel for use in app - - add new LockIcon components to package - - add renderFieldLabel property to QueryFormInputs component and related input components - -### version 1.3.0 -*Released*: 23 November 2020 -* Add SampleSetSummary and related components (SampleSetHeatMap, SampleSetCards, SampleSetDeleteModal and SampleEmptyAlert) -* Update HeatMap to use withQueryModels - -### version 1.2.0 -*Released*: 19 November 2020 -* Merge forward changes from release20.11-SNAPSHOT branch - - includes hotfix changes from version 0.104.1, 0.104.2, 0.104.3 - -### version 1.1.2 -*Released*: 19 November 2020 -* Sccs variable maintenance - -### version 1.1.1 -*Released*: 11 November 2020 -* More error message resolution improvements, particularly for importing with EntityInsertPanel - -### version 1.1.0 -*Released*: 9 November 2020 -* Item 7979: ToggleButton updates for use in LKFM storage unit CRUD - -### version 1.0.0 -*Released*: 3 November 2020 -* First official stable release of the `@labkey/components` package. See [Public API Docs](../docs/public.md) for details. - -### version 0.105.0 -*Released*: 2 November 2020 -* ImmutableJS-free `CreatedModified`. -* `resolveDetailFieldValue` updated to handle `Record` type. Typings improved. -* `FilesListingForm` and `WebDavFile` updates. - -### version 0.104.3 -*Released*: 17 Nov 2020 -* [Issue 41854](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41854): Wording updates for domain designer error dialog -* Server-side error messages fixes to be completed separately. - -### version 0.104.2 -*Released*: 17 Nov 2020 -* Item 8058: Domain form support for new Ontology Lookup data type and expanded row input options - -### version 0.104.1 -*Released*: 10 Nov 2020 -* [Issue 41460](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41460): Support error handling for inaccurately inferred field types within List and Dataset designers. - -### version 0.104.0 -*Released*: 1 Nov 2020 -* Item 7984: DomainForm component support for export/import field definitions from .json file - -### version 0.103.2 -*Released*: 30 October 2020 -* Don't show status codes and possibly cryptic server-side errors to users. Just don't. - -### version 0.103.1 -*Released*: 26 Oct 2020 -* Issue 41621: Grid column fieldKey with special character wasn't being decoded when getting data for table cell - -### version 0.103.0 -*Released*: 23 Oct 2020 -* Add `RequiresPermission` (formerly known in apps as `RequiresPermissionHOC`). -* Add `ServerContext` to allow retrieving up-to-date server context via React.Context. -* Remove `` and `` as they are no longer utilized. -* Unit tests for `RequiresPermission`. -* Add `mountWithServerContext` and `waitForLifecycle` test utility methods. - -### version 0.102.1 -*Released*: 23 Oct 2020 -* Switch `IUserProps` to fully extend `UserWithPermissions` - -### version 0.102.0 -*Released*: 23 October 2020 -* Add new application URL in App for managing storage units -* Add isDirty method to RouteLeaveInjectedProps -* Moved isIntegerInRange, isNonNegativeFloat, isNonNegativeInteger utility methods over from inventory - -### version 0.101.4 -*Released*: 22 Oct 2020 -* Issue 41493: Allow appendToCurrentNode to work around page scroll issue - -### version 0.101.3 -*Released*: 22 Oct 2020 -* Add showNotifications prop to Page.tsx -* Expose PageHeaderProps interface - -### version 0.101.2 -*Released*: 22 Oct 2020 -* Issue 41068: GridPanel does not respect the hideEmptyChartSelector and hideEmptyViewSelector properties set in a - global query metadata override -* Renamed global settings 'hideEmptyViewSelector', 'hideEmptyChartSelector' to 'hideEmptyViewMenu', 'hideEmptyChartMenu' - -### version 0.101.1 -*Released*: 21 Oct 2020 -* Make visual updates to FileTree. - -### version 0.101.0 -*Released*: 21 Oct 2020 -* SampleTypeDesigner updates - * add "Metric Unit" property to Sample Manager - * add validateProperties prop to allow caller to validate sample domain properties before save -* Allow custom caption and placeholder text for fields in FieldEditorOverlay - -### version 0.100.1 -*Released*: 21 Oct 2020 -* Issue 41574: Dataset designer file import column mapping fix for demographics dataset creation case - -### version 0.100.0 -*Released*: 20 Oct 2020 -* DetailPanel/DetailPanelWithModel now take QueryConfig as a prop instead of QueryConfig & DetailDisplaySharedProps -* Add docs for DetailPanel and DetailPanelWithModel -* Add docs for naturalSort and naturalSortByProperty - -### version 0.99.1 -*Released*: 17 October 2020 -* Update QueryModel.hasSelections to check selection count as well if array exists. - -### version 0.99.0 -*Released*: 14 October 2020 -* Introduce new mechanisms for loading assay resources; `withAssayModels`, `withAssayModelsFromLocation` and `asayPage`. -* `withAssayModels` replaces implementation of `AssayProvider`. -* Added unit test coverage for `withAssayModels` and `withAssayModelsFromLocation`. -* Converted `AssayStateModel` and `AssayUploadResultModel` to Immer from ImmutableJS Records. -* Streamlined `AssayStateModel` to be more straightforward for getting and setting `AssayDefinitionModel`s. -* `` switched to use `withAssayModels`. -* Add `isLoading` as a utility method for working with `LoadingState`. - -### version 0.98.0 -*Released*: 13 October 2020 -* add optional transactionAuditId in InsertRowsResponse and as argument after file import -* add new replaceSelected method (for new action in QueryController) -* Fix styling of links in notifications - -### version 0.97.0 -*Released*: 29 September 2020 -* FieldEditorOverlay updates - * Allow user to choose the field of focus - * Change input placeholder text to avoid some awkward grammar problems -* Freezer icon updates - * Update menu icon - * Update timeline storage update icon - -### version 0.96.5 -*Released*: 28 September 2020 -* Fix for Bootstrap SCSS variable overrides. - -### version 0.96.4 -*Released*: 28 September 2020 -* Update timeline icons for inventory events -* Update freezer menu icon - -### version 0.96.3 -*Released*: 28 September 2020 -* Remove bootstrap scss variables copied straight over from bootstrap. Just have overrides. -* Don't look for audit queries in global variable as this relies on server context which isn't always present -* Don't try to resolve URLs if no URL mappers defined. Can use URLs directly from server -* Update labkey/api version - -### version 0.96.2 -*Released*: 27 September 2020 -* Issue 41431: Misc test fixes on domain designer conditional format dialog and buttons - -### version 0.96.1 -*Released*: 24 September 2020 -* Move components, query, renderers, utils, url, etc. to /src/internal -* Move QueryModel to /src/public -* Remove a few unused exports from the package index.ts file -* Update typedoc build configs regarding new /src dir structure - -### version 0.96.0 -*Released*: 23 September 2020 -* Add AssayRunDeleteModal and AssayResultDeleteModal components -* Factor AssayRunDeleteConfirmModal and AssayResultDeleteConfirmModal into the above components - -### version 0.95.0 -*Released*: 22 September 2020 -* Allow for custom root label for FileTree - -### version 0.94.0 -*Released*: 16 September 2020 -* Add getDisambiguatedSelectInputOptions util - -### version 0.93.0 -*Released*: 16 September 2020 -* Item 7840: Misc grid and detail form value styling fixes for 20.10 - * Issue 36941: Query Grid and details component multiline field does not render text as multi-line - * Issue 40839: Copy theme/scss files to dist instead of compiling down to a single css file - * Issue 39458: Add handleFileChange prop to FilesListingForm to track dirty state - * RouteLeave HOC to be used in various app pages so they don't have to implement it themselves anymore - -### version 0.92.2 -*Released*: 14 September 2020 -* Add optional verb property to EntityDeleteConfirmModal -* Add styling to DetailDisplay to preserve line breaks - -### version 0.92.1 -*Released*: 12 September 2020 -* Allow filtered list of editable grid cell lookup values - -### version 0.92.0 -*Released*: 10 September 2020 -* Update FieldEditTrigger - * rename to FieldEditorOverlay - * remove dependency on QueryGridModel and remove immutable List from interface - * respect number input types - -### version 0.91.6 -*Released*: 9 September 2020 -* Use QueryModel in query pages - -### version 0.91.5 -*Released*: 4 September 2020 -* Updates to EditableGrid data processing functions to fix issues with boolean values - -### version 0.91.4 -*Released*: 3 September 2020 -* Update TimelineView styling so comments retain white space -* In `withQueryModels`, set the loading selection state appropriately when clearing or setting selections - -### version 0.91.3 -*Released*: 3 September 2020 -* Allow custom display value for Omnibox filter options - -### version 0.91.2 -*Released*: 2 September 2020 -* Export FieldEditTrigger for use in applications - -### version 0.91.1 -*Released*: 1 September 2020 -* Add class names to PageMenu, PageSizeMenu, PaginationButton, and Pagination components - -### version 0.91.0 -*Released*: 30 August 2020 -* EditableGrid updates: - * Support disabling rows using readonlyRows - * Allow hiding row count column using hideCountCol - * Allow row count column to use custom rowNumColumn instead of the static column - * Add onCellModify prop - * export updateEditorModel - -### version 0.90.0 -*Released*: 27 August 2020 -* Add ability to show comments from metadata on timeline events. - -### version 0.89.2 -*Released*: 26 August 2020 -* Merge 20.7-SNAPSHOT branch - -### version 0.89.1 -*Released*: 20 August 2020 -* Bind URL parameters when adding QueryModels - -### version 0.89.0 -*Released*: 20 August 2020 -* Adds support for a directory-only view of FileTree -* IFile interface now includes permissions data -* Allows for clearing out attached files from FileAttachmentContainer from parent component -* Adds button styling for a compact FileAttachmentContainer - -### version 0.88.1 -*Released*: 19 August 2020 -* react-beautiful-dnd package update - -### version 0.88.0 -*Released*: 17 August 2020 -* Add docs for QueryModel API to docs folder -* Change GridPanelWithModel props interface to take a single `QueryConfig` object instead of a `QueryConfigMap`. - -### version 0.87.0 -*Released*: 13 August 2020 -* Add Label as optional export format and add optional onExport callback to export menu -* Refactor exportRows and export method for creating the export parameters -* Export test utility methods makeTestActions and makeTestQueryModel -* Export flattenValuesFromRow utility method - -### version 0.86.0 -*Released*: 12 August 2020 -* Move Timeline related component and model from Sample Manager - -### version 0.85.0 -*Released*: 11 August 2020 -* Refactor several components/classes to not depend on QueryGridModel - * This allows them to more easily be used by QueryModel and QueryGridModel based components while we transition - away from QueryGridModel - * Affected Components: SelectionMenuItem, BulkUpdateModel - * Affected Classes: EditableGridLoaderFromSelection -* Add EditableDetailPanel, the QueryModel version of DetailEditing -* DetailPanel: change queryColumns prop from List to QueryColumn[] - * We are moving away from Immutable and want to limit how much of it is exposed in our API -* GridPanel: add new props buttonsComponentProps, and hideEmptyChartMenu - * Use buttonsComponentProps to pass any additional props to your ButtonsComponent (model and actions still get - passed to the ButtonsComponent) - * Use hideEmptyChartMenu to hide the chart menu when no charts are available -* Move queryMetadata an columnRenderers out of ReactN global storage - -### version 0.84.0 -*Released*: 7 August 2020 -* Updates most package dependencies to the latest version. -* Notable updates are: - - `react 16.8.6 -> 16.13.1`. This brings us up-to-date with the latest version of React. For more details - see https://reactjs.org/versions/. - - `react-bootstrap 0.32.4 -> 0.33.1`. There have been several updates to the Bootstrap v3 supported variant of - this library that are worth having. Namely, fixed support for `UNSAFE_componentWillMount`, etc. -* Switch to using `UNSAFE_` prefixed React lifecycle methods to silence warnings until we have time to convert these - usages to their counterpart methods. -* Switches our tests from using wrapped `setTimeout` with `done()` to async/await pattern. This is better supported by - more recent versions of Jest. -* Fix and add tests for `formatDate` and `formatDateTime` after SM exposed a bug in how the `moment-timezone` package - is imported. -* Switch all imports of `import React from 'reactn'` to `import ReactN from 'reactn'` to make it more obvious when the - library is used (for a component). Switch a couple of usages from `ReactN` to `React` where `reactn` wasn't needed. -* Removed superfluous usages of `enzyme-to-json` from many test cases. -* Removed superfluous `Immutable.Record` constructors. - -### version 0.83.2 -*Released*: 6 August 2020 -* BulkUpdateForm to pass through readonly columns to EditableGrid - -### version 0.83.1 -*Released*: 6 August 2020 -* BaseBarChart and processChartData updates to support per-bar fill color designations - -### version 0.83.0 -*Released*: 5 August 2020 -* Fix bug in QueryModel.getColumnString when omittedColumns is present. -* Section component is now a PureComponent with css classes and more customizable styles -* Add UserProvider for getting a user and user properties onto a page -* Surface emptyText and showHeader properties of Grid through GridPanel -* Update to StorageStatusRenderer for different text representing "not in storage" -* Move BaseBarChart and utility method from sampleManagement - -### version 0.82.2 -*Released*: 4 August 2020 -* Add headerCls prop to GridColumn -* Add useSmall prop to ColorIcon to show small sized icon -* Add setSelections and replaceSelections to QueryModel Actions -* Export cancelEvent method - -### version 0.82.1 -*Released*: 29 July 2020 -* Fix sorts issue with QueryModel.urlQueryParams - -### version 0.82.0 -*Released*: 30 July 2020 -* Add method for applications to register their URL Mappers so different applications can choose to route Server URLs differently. -* Add a productId property to ActionMapper so it can be used to construct a URL to a separate application. - -### version 0.81.2 -*Released*: 29 July 2020 -* Add PaginationInfo component - -### version 0.81.1 -*Released*: 29 July 2020 -* Merge forward changes from release20.7-SNAPSHOT branch - - includes hotfix changes from version 0.71.3 - -### version 0.81.0 -*Released*: 28 July 2020 -* Add runDetailsColumnsForQueryModel - convenience method for calculating the columns needed for an assay run details - page, adapted from getRunDetailsQueryColumns. - -### version 0.80.1 -*Released*: 27 July 2020 -* Audit and schema browser component linting and misc cleanup after move from Sample Manager app - -### version 0.80.0 -*Released*: 24 July 2020 -* Add support for parameterized queries when getting and setting selections on a grid -* Export getSelectedData method - -### version 0.79.0 -*Released*: 23 July 2020 -* Implement URL Binding for QueryModel/withQueryModels - * For this feature to work your usage of withQueryModels must be a child of a configured React Router (see - packages/components/src/stories/QueryModel.tsx for an example) -* QueryModel: charts has been changed from IDataViewInfo to DataViewInfo - * QueryModelLoader has been updated to support this -* Fixed an issue in DefaultQueryModelLoader where loadCharts was returning unsupported charts. -* QueryModel: Added fields - * bindURL - * selectedReportId -* QueryModel: Added urlQueryParams, attributesForURLQueryParams, and hasRows getters -* QueryModel: Default to Details View if keyValue is set -* Removed unused getter methods from DataViewInfo -* Added toString() to SchemaQuery class -* Added (and exported) DetailPanel component - - Same as DetailPanelWithModel except it is not wrapped in withQueryModels -* DetailPanelWithModel: changed props signature. Props are now `QueryConfig & DetailDisplaySharedProps` - -### version 0.78.3 -*Released*: 22 July 2020 -* AppModel: initialUserId set from `User` model instead of directly from `getServerContext()`. - -### version 0.78.2 -*Released*: 20 July 2020 -* EntityInsertPanel: Ability to filter Sample Type Options without filtering Parent Options -* EntityInsertPanel: Option to combine all parent entity types into one button and one select input - -### version 0.78.1 -*Released*: 20 July 2020 -* Support custom gridColumnRenderer for AuditDetails - -### version 0.78.0 -*Released*: 16 July 2020 -* Item 7563: SampleTypeDesigner update to add "Label Color" property to Sample Manager - - ColorPickerInput updates to support showing color chip within dropdown button when label text not provided - - ColorPickerInput update to handle value=#ffffff (display as white background with black border) - - SampleTypePropertiesPanel addition of ColorPickerInput, conditional based on appPropertiesOnly prop - - SampleTypeModel addition of labelColor prop - - Add ColorIcon display component and LabelColorRenderer to use in Sample Manager and Freezer Manager - -### version 0.77.0 -*Released*: 15 July 2020 -* Update URLResolvers to handle URLs that may go to a separate application -* Add StorageStatusRenderer for showing the storage status of a sample - -### version 0.76.0 -*Released*: 14 July 2020 -* Updates FileTree to support new Module Editor functionality. - -### version 0.75.0 -*Released*: 9 July 2020 -* [Issue 36916](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=36916): Remove `toLowerCase()` when constructing `AppURL`s base parts. -* No longer export `` as it is always utilized by ``. -* Update `react-router` and `@types/react-router` to latest v3.x versions. - -### version 0.74.0 -*Released*: 8 July 2020 -* Item 7458: Move shared application models, actions, etc. for Sample Manager and Freezer Manager - - export all of the new application related items as a single "App" item - - includes moving of AppModel, some reducers (product and routing), and related functions and constants - - move AuditLog related components, models, actions, and utils from Sample Manager - - move SchemaListingPage, QueriesListingPage, QueryListingPage, and QueryDetailPage from Sample Manager - - move app scss assets from Sample Manager, and have them copied into dist/assets/scss for module app usage - - ExpandableContainer component prop to only allow expand/collapse via icon instead of header click - -### version 0.73.1 -*Released*: 2 July 2020 -* Adjust LookupSelectInput to protect against loading the options more than once - -### version 0.73.0 -*Released*: 1 July 2020 -* Item 7458: Update Sample Manager and Freezer Manager app product menus to respect isSampleManagerEnabled - - ProductMenuModel update to add property for userMenuProductId - - MenuItemModel.create update to use menu section productId in user menu URLs - - rename createApplicationUrl -> createProductUrlFromParts, and add new implementation for createProductUrl - -### version 0.72.0 -*Released*: 1 July 2020 -* Add ColorPickerInput - -### version 0.71.4 -*Released*: 26 August 2020 -* Issue 38711: Biologics: when uploading assay data from an assay request, assay request ID isn't maintained - -### version 0.71.3 -*Released*: 8 July 2020 -* Issue 40795: Query metadata editor should allow editing type of field in built in table - -### version 0.71.2 -*Released*: 30 June 2020 -* Update EntityInsertPanel to only show import tab -* Simplify showImportDataButton and showInsertNewButton - -### version 0.71.1 -*Released*: 29 June 2020 -* Issue 40729: Renaming, Sample Set to Sample Type: SampleSet in parent aliases -* Issue 40734: Renaming, Sample Set to Sample Type: SampleSet in DataClass -* Add URLResolver mapping for experiment-showSampleType.view -* Migrate deleteMaterialSource.api → deleteSampleTypes.api -* Migrate getSampleSetApi.api → getSampleTypeApi.api - -### version 0.71.0 -*Released*: 29 June 2020 -* Refactor Pagination to be generic (no longer coupled to QueryModel) -* Export Pagination component and PaginationData interface - -### version 0.70.6 -*Released*: 29 June 2020 -* Add `initModelOnMount` prop to `QueryGridModel`. Defaults to `true` so the behavior is unchanged for all current usages. - -### version 0.70.5 -*Released*: 26 June 2020 -* Issue 40591: Query metadata editor should allow editing type of field in user defined query -* Add disableNameInput in IDomainFormDisplayOptions - -### version 0.70.4 -*Released*: 25 June 2020 -* Issue 39263 - PermissionAssignments.tsx update to include display of root assignments in Effective Roles listing - -### version 0.70.3 -*Released*: 24 June 2020 -* Issue 40555: QC state conditional formats work but are not viewable/editable in Query Metadata editor -* Filters - decode correct part of Filter string - -### version 0.70.2 -*Released*: 23 June 2020 -* Expose createApplicationUrl utility method - -### version 0.70.1 -*Released*: 23 June 2020 -* correct QueryModelLoader queryParameters to parameters -* add onClick prop for ExpandableContainer - -## version 0.70.0 -*Released*: 19 June 2020 -* Item 7417: BasePropertiesPanel - add to index.ts for use in Freezer Manager app -* QueryInfo - add getColumnFieldKeys helper method to get fieldKeys for select columns -* QueryModel - add parameter to getRow method to allow for a flattened key/value pair response object - -### version 0.69.5 -*Released*: 15 June 2020 -* Issue 39947 - Omnibox doesn't show sorts or views when URLPrefix is used - -### version 0.69.4 -*Released*: 15 June 2020 -* Item 7417: QueryModel - add getRow() helper for getting first row of QueryModel.rows object - -### version 0.69.3 -*Released*: 11 June 2020 -* Expose QueryConfig type - -### version 0.69.2 -*Released*: 10 June 2020 -* Issue 39206: OmniBox should not restrict results with filters against target column - -### version 0.69.1 -*Released*: 10 June 2020 -* Issue 39468: QueryGridPanel button bar / paging component layout fixes for narrow windows -* Issue 39935: List designer fields icon help text should mention the need for a Key Field Name selection -* Issue 39934: DomainForm field type text update from "Decimal" to "Decimal (floating point)" -* Issue 40262: List designer titleColumn (default display field) update when the name or row index of selected field is updated in domain fields panel - -## version 0.69.0 -*Released*: 9 June 2020 -* Improve search experience -- Move search results filtering and cardData processing from SearchResultsPanel to searchUsingIndex action. -- Added emptyResultDisplay, hideHeader and hidePanelFrame props to SearchResultsPanel -- Add useEmail to UserSelectInput - -### version 0.68.0 -*Released*: 9 June 2020 -* Remove `IUser` interface in favor of direct use of `@labkey/api` `User` and `UserWithPermissions` interfaces. -* `PermissionsType` enum migrated to `@labkey/api`. - -### version 0.67.2 -*Released*: 8 June 2020 -* Add `naturalSortByProperty(property: string)` -* `naturalSort` is now typed to accept any, which was always the case, so this is backwards compatible - -### version 0.67.1 -*Released*: 8 June 2020 -* Issue 40541: Dataset Designer/Field Editor tooltip and help link fixes - -## version 0.67.0 -*Released*: 8 June 2020 -* Support handling of multiple applications in product menu - - Update type parameter for getting product menu to List of productIds instead of productId - - Update MenuItemModel to account for linking to a different application (based on productId) - - Add utility method for getting application URL based on productIds - - Modify menu models to carry through productIds - -### version 0.66.0 -*Released*: 5 June 2020 -* Item 7373: Move InsufficientPermissionsPage and BasePermissionsCheckPage from Sample Manager -* Update `@labkey/api` dependency to `v0.3.1`. - -### version 0.65.2 -*Released*: 4 June 2020 -* Support for multi-value columns in bulk and grid updates. - -### version 0.65.1 -*Released*: 4 June 2020 -* Update `@labkey/api` dependency to `v0.3.0`. - -### version 0.65.0 -*Released*: 2 June 2020 -* FileTree component - - add prop to remove checkbox selection option from node display - - support font awesome icon display for file based on WebDav iconFontCls data - - call the onFileSelect callback function on node select for non-checkbox case - - make the arrow toggle smaller -* WebDav model updates for module editor browser scenario - - add contentType and options properties to model - - add param to getWebDavFiles for the non-@files case - -## version 0.64.3 -*Released*: 2 June 2020 -* Item 7373: Move base user permission check helpers from Sample Manager to User model -* Fix for NavigationBar.tsx to not show the search icon in the narrow window case when showSearchBox is false - -## version 0.64.2 -*Released*: 1 June 2020 -* `` no longer requires `user` prop. Remove unused `content` prop. - -## version 0.64.1 -*Released*: 1 June 2020 -* Issue 40026: Change doc link from Advanced List Settings popup - Update text and topic for Advance Settings help link - -## version 0.64.0 -*Released*: 29 May 2020 -* Merge AssayReimportRunButton from Biologics and SampleManager and move here for common use -* Add isGPAT utility method to AssayProtocol model -* Move getRunDetailsQueryColumns from SampleManager -* Check for null or undefined value in initSelect for QuerySelect - -### version 0.63.3 -*Released*: 27 May 2020 -* Issue 40008: Allow override of heading shown on LineageSummary panel for the Parents and Children of a node - (e.g., to show "Source" instead of "Parent") - -### version 0.63.2 -*Released*: 27 May 2020 -* Issue39819: Make stylistic changes in a text field's Text Options - -### version 0.63.1 -*Released*: 26 May 2020 -* Misc domain designer fixes for 20.7 - - Issue 40286: Domain designer panel header does not scroll to top of page - - Issue 40447: Fix error message when selecting 3rd setting of Data Row Uniqueness in dataset designer - - Issue 40149: Sample Type Designer - Not properly validating error state on parent alias - - Issue 38399: Domain Designer doesn't show error message when field of type lookup is missing required properties - - Issue 38929: Domain designer lookups fail validation immediately instead of waiting for user input - -### version 0.63.0 -*Released*: 22 May 2020 -* Issue 40347: Domain designer wrappers not supporting domain kind specific properties in the create case - - Update to @labkey/api version with Domain.getDomainDetails support for domainKind param - - Allow for calls to Domain.getDomainDetails to pass in a domainKind param to get domain kind specific properties - - Remove getListProperties and getDatasetProperties from index.ts as those are internal only now - -## version 0.62.0 -*Released*: 21 May 2020 -* Move AssayProvider from SampleManager to ui-components -* Remove redundant importGeneralAssayRun method (in favor of importAssayRun) - -## version 0.61.0 -*Released*: 20 May 2020 -* Add Chart Menu to GridPanel -* Add View Menu to GridPanel -* Add Export Menu to GridPanel -* Implement Selections in GridPanel - * Mock.tsx now implements a mock version of our selection API, which uses browser localStorage to store selections. -* Add Omnibox to GridPanel -* Refactor OmniBox to support GridPanel and QueryGridPanel - * OmniBox and Actions are no longer aware of QueryGridModel, this way they can be used by QueryGridPanel and - GridPanel. - * OmniBox now has a `mergeValues` flag, when false it emits more granular change events, and does not merge - ActionValues (needed by GridPanel). Defaults to true, which was previous behavior. - * OmniBox no longer emits a change event when the user cancels an action change, or enters an invalid action. - * Actions now add a `valueObject` during `completeAction` so consumers don't need to parse string values, used by - GridPanel. -* Add `showButtonBar` and `title` props to GridPanel -* Enabled Maps, Sets, and Patches in Immer -* Refactored the GridPanel tests to not use snapshotting -* Add another view to sample mixtures data. -* Remove IQueryModel interface, it was not necessary -* Remove getOrDefault, not necessary with nullish coalescing - -### version 0.60.0 -*Released*: 20 May 2020 -* Item 6646: IssuesListDefDesignerPanels fix for shared domain scenario - - Add helpers to DomainDesign model to getDomainContainer() and isSharedDomain() - - Allow for a shared def to be used in another container where only the top level properties can be saved via saveIssueListDefOptions - - Show alert if the current container is using a shared domain with link to get to source container - - Disable field re-order and add field for a shared domain (read only display) - -### version 0.59.3 -*Released*: 18 May 2020 -* Item 7207: DatasetColumnMappingPanel fix to allow for numeric and text fields to be used for timepoint/visit column mapping - - Fix for StudyScheduleTest use case which uses the text visit values instead of Sequence Num during import - -### version 0.59.2 -*Released*: 16 May 2020 -* Lineage: improve caching, allow non-default distance - -### version 0.59.1 -*Released*: 15 May 2020 -* Merge forward changes from release20.5-SNAPSHOT branch - - includes hotfix changes from version 0.55.1 - -## version 0.59.0 -*Released*: 14 May 2020 -* Epic 6800: Issue Definition designer (Story 3)- Issues module implementation -- Usage of new issues api actions to getProjectGroups and to getUsersForGroup and refactoring around this change. -- Removal of selectQuery methods that were getting Groups and Users. -- Re-purpose permission's Principal model, and remove UserGroup model. - -## version 0.58.0 -*Released*: 13 May 2020 -* Item 7205: Includes support for column mappings for fields during import data in new Dataset Designer - -### version 0.57.0 -*Released*: 8 May 2020 -* Item 7178: Factored EntityDeleteModal (and associated functions) out of Sample Manager into labkey-ui-components for use in Biologics. - -## version 0.56.3 -*Released*: 7 May 2020 -* Changes for DomainFormDisplayOptions from show to hide for default cases -* Issue 40032: PHI Levels not disabled in new query metadata editor - -### version 0.56.2 -*Released*: 6 May 2020 -* Epic 6800: Issue Definition designer (Story 1)- IssuesPropertyPanel and IssuesListDesignerPanels - - Addition of Issues List Definition Designer Panel and Properties Panel components. - - Setting up the initial stage to transform old GWT Issues designer to React-based designer. - -## version 0.56.1 -*Released*: 1 May 2020 -* DataClassModel convert from Record to immerable -* Update usages of DataClassModel in DataClassDesigner to use produce() for model updates -* Update DataClassDesigner setState to use produce() -* Revert change to default value for DomainDesign allowFileLinkProperties and allowAttachmentProperties - -## version 0.56.0 -*Released*: 1 May 2020 -* Item 7180: Lineage: improved node details, withLineage - - `LineageGraph` supports additional details from `experiment-lineage.api`. - - `withLineage` HOC for managing lineage state. - - See https://github.com/LabKey/labkey-ui-components/pull/237 for more details. - -### version 0.55.1 -*Released*: 6 May 2020 -* `@labkey/api` dependency update. -* allow using separate singleFilterValue for createQueryGridModelFilteredBySample - -## version 0.55.0 -*Released*: 30 April 2020 -* Issue 39633: Choosing to cancel navigating away from a page when using react-router's setRouteLeaveHook will leave - you on the page but the URL will have been updated to the page where you had originally intended to go, which means - using that link again from the starting page will not work. -* Issue 38002: Set isSubmitting to false after updateRows in EditableGridPanelForUpdate in case you stay on the page after updating -* Update resolveErrorMessage to strip off java.lang.IllegalArgumentException prefixes and detect "Bad SQL grammar" exceptions. -* Partial fix for Issue 40008: Add optional property to LineageSummary to allow customization of the lineage group headings in the summary panel -* in SingleParentEntityPanel, use paged query model for better performance - -### version 0.54.1 -*Released*: 29 April 2020 -* Issue 38052: When all fields in a QueryInfoForm are disabled, the submit button should also be disabled - -### version 0.54.0 -*Released*: 29 April 2020 -* Item 7138: DatasetDesignerPanels and related components, models, actions - - new dataset related components DatasetDesignerPanels.tsx and DatasetPropertiesPanel.tsx - - DomainForm changes to support Column mapping option -* Issue 40285: Domain designer screen width expands as the file preview grid table width gets very large - -### version 0.53.0 -*Released*: 28 April 2020 -* [Issue 34627: Lookup column is sorting by raw value and not display column](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=34627) - * This fix changes the behavior of the sort action on the OmniBox, columns are now sorted by displayValue -* [Issue 36486: omnibox only shows options on drop-down for current page](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=36486) - * This fix changes the behavior of the Filter dropdown on the Omnibox, we now show distinct values for a column. -* [Issue 40195: Omnibox filter value invalid if user enters multiple words](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=40195) -* [Issue 39543: Omnibox dropdown does not allow other open menus to close](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=39543) - -### version 0.52.2 -*Released*: 24 April 2020 -* Misc 20.5 issue fixes for Sample Manager - - Issue 40139: DetailEditing panel editing - updating time but not date does not recognize change - - Issue 39328: Assay run should use renamed file name as its Assay Id when the same data file is being imported (for both re-import case and new import case) - - Issue 40233: EntityInsertPanel columns for Sources should not include "Parents" in column name caption - - DetailEditing panel (i.e. QueryForm usage) boolean field checked state doesn't initialize correctly when formattedValue exists - -### version 0.52.1 -*Released*: 20 April 2020 -* `@labkey/api` dependency update. - -## version 0.52.0 -*Released*: 18 April 2020 -* Item 7178: Prettier/ESLint bulk update - - Initial Prettier/ESLint bulk update across packages/components/src directory. - - yarn run lint-fix ./src/\*\*/\* - -## version 0.51.0 -*Released*: 17 April 2020 -* Item 6961: DataClassDesigner updates for LKS - - update fetchDataClass function to work for either a data class name or rowId - - add support for PermissionTypes.DesignDataClass - - DataClassPropertiesPanel and SampleTypePropertiesPanel default nameExpressionInfoUrl and nameExpressionPlaceholder properties - - SampleTypeDesigner change to default to "Infer from File" in empty fields state - - Issue 40232: Boolean fields show empty "Validation Options" section in expanded field design view - -## version 0.50.0 -*Released#: 16 April 2020 -* Add optional property for specifying auditBehavior with some API actions - -### version 0.49.1 -*Released*: 16 April 2020 -* Merge forward changes from release20.4-SNAPSHOT branch - - includes hotfix changes from version 0.41.6 - -## version 0.49.0 -*Released*: 15 April 2020 -* `@labkey/api` dependency update. -* Incorporate changes needed due to stricter typings. - -## version 0.48.3 -*Released*: 14 April 2020 -* Bug fixes for ParentEntityEditPanel to better support editing of parent samples -* Issue 40148: Don't reinitialize EntityInsertPanel if location or entityModelType are not changing - -### version 0.48.2 -*Released*: 13 April 2020 -* Item 7124: Add helpTopic property with default value to DataClassDesigner - -### version 0.48.1 -*Released*: 12 April 2020 -* Issue 40106: Correcting booleans for properties' states in Advanced Settings dialog of Domain designer - -### version 0.48.0 -*Released*: 8 April 2020 -* Export DateInput, FileInput, TextInput and TextAreaInput -* Export QueryFormInputs and associated helper functions -* Export detail renderer helper functions -* Export FieldEditInput form and props - -### version 0.47.0 -*Released*: 7 April 2020 -* `@labkey/api` dependency update. - -### version 0.46.0 -*Released*: 7 April 2020 -* Add QueryModel model to replace QueryGridModel - - Also added IQueryModel interface -* Add QueryModelLoader interface and DefaultQueryModelLoader -* Add withQueryModels HOC for managing model state -* Add GridPanel to replace QueryGridPanel - - GridPanel takes a QueryModel as a prop - - Also provided GridPanelWithModel which takes a QueryConfig and manages a model like QueryGridPanel does -* Move QueryInfo to its own file -* Remove Column class, replaced with GridColumn - - GridColumn originally just extended Column but added no functionality - - Has no affect on exports since we only ever exported GridColumn -* Added a delay to mocks when running in Storybook -* Emulate LabKey Server error messages for invalid schema/query names in getQueryDetails - -### version 0.45.0 -*Released*: 6 April 2020 -* Item 6642: Initial dataset designer properties panel - - Top level dataset properties without the domain - -### version 0.44.0 -*Released*: 3 April 2020 -* Item 6937: Lineage components updates - - See https://github.com/LabKey/labkey-ui-components/pull/205 - -### version 0.43.0 -*Released*: 3 April 2020 -* Modify SearchPages for display of data classes and to allow more customization of how search result cards are displayed - -## version 0.42.1 -*Released*: 31 March 2020 -* Item 7031: Source aliasing - - Allow Source (Data Class) Alias to be defined separate from a SampleSet type Parent Alias - - Allow filtering of parent options (for example, only 'sources' type data classes will be included) - -### version 0.41.6 -*Released*: 8 April 2020 -* Issue 39803: signOut action support for a redirectUrl in the response, for the CAS identity provider logout case - -### version 0.41.5 -*Released*: 1 April 2020 -* SiteUsersGridPanel and UserDetails panel prop to hide/show 'Reset Password' button (i.e. allowResetPassword) -* NavigationBar optional property for an alternate url to go to after sign out - -### version 0.41.3 -*Released*: 30 March 2020 -* Issue 40084: Add property to exclude unique field key from bulk update modal -* Update QueryInfoForm so the submit button is disabled while submitting -* Issue 40088: DataClassDesigner - add optional validation check for a reserved name field (i.e. "SourceId" in SM app) - -### version 0.41.2 -*Released*: 30 March 2020 -* Update canSubmit check for ParentEntityEditPanel to check for actual differences and allow submission when all parents have been removed - -### version 0.41.1 -*Released*: 29 March 2020 -* Item 6862: Switch LineageNode to bind "id" instead of "rowId" - -## version 0.41.0 -*Released*: 27 March 2020 -* Item 7002: Refactor domain designer components to share more with base components - - BasePropertiesPanel, SectionHeading, withDomainPropertiesPanelCollapse (instead of DomainPropertiesPanelContext) - - BaseDomainDesigner component and withBaseDomainDesigner HOC - - DomainFieldLabel component for domain designer field input consistency - - Domain designers updates for consistent handling of isValid state and error display - - Issue 39938: Domain field fix to revert back to max Integer length if user input is larger then 4000 - -## version 0.40.0 -*Released*: 27 March 2020 -* Remove SampleSetResolver for app URLs - - URL mappers updated use /samples/ or /rd/samples/ - -## version 0.39.4 -*Released*: 24 March 2020 -* Issue 39968: Cannot update assay result field to "All Samples" - -### version 0.39.3 -*Released*: 24 March 2020 -* Issue 39911: EditableGrid issue with pasting values into a cell that has a lookup that is not public - -### version 0.39.2 -*Released*: 23 March 2020 -* Dependency version updates - -### version 0.39.1 -*Released*: 23 March 2020 -* Run Builder related fixes - - Bug fix in file tree to make loading and empty placeholders not selectable when cascading a selection. - - File tree style update for checkboxes. - - Opt out of export button on QueryGridBar. - -### version 0.39.0 -*Released*: 20 March 2020 -* Item 6835: Data Class designer updates for use in Sample Manager - - add fetchDataClass function for call to Domain.getDomainDetails and resolve as DataClassModel - - use saveDomain function in DataClassDesigner for create and update - - add Category select input for DataClassPropertiesPanel (for appPropertiesOnly) - - refactor SampleSetDeleteConfirmModal as EntityTypeDeleteConfirm model for use with sample type and source type - - refactor deleteSampleSet as deleteEntityType for use with sample type and source type - - add BeforeUnload.tsx HOC - -### version 0.38.1 -*Released*: 20 March 2020 -* Issue 39913: Switch from dismissCoreWarnings.api to dismissWarnings.api - -## version 0.38.0 -*Released*: 19 March 2020 -* Add ParentEntityEditPanel for CRUD operations on parents. Initially not supporting delete - (because there is no back end support for completely removing lineage). -* Fix problem with QuerySelect and SelectInput not playing nicely together when you want to - select a schema for the QuerySelect to use. -* Refine and simplify styling for buttons on DetailEditing to work with sibling panels that sit below it -* When invalidating the grid, don't call clearSelected if model does not allow selections -* Issue 39307: Call onChange and loadOptions after model has been updated so changed selection is taken into account. -* Issue 39863: Use POST instead of GET when getting delete confirmation data - -### version 0.37.0 -*Released*: 19 March 2020 -* Item 6848: Merge Sample Type creation/update UI into single designer component. - -### version 0.36.0 -*Released*: 19 March 2020 -* 39867: ErrorBoundary HoC, ErrorPage to display uncaught React exceptions - -### version 0.35.3 -*Released*: 18 March 2020 -* add highlightLastSelectedRow to QueryGridPanel - -### version 0.35.2 -*Released*: 17 March 2020 -* QueriesListing fix for display error message when schema does not exist - -### version 0.35.1 -*Released*: 16 March 2020 -* Enhance createQueryGridModelFilteredBySample - - Allow using lsid instead of rowid for createQueryGridModelFilteredBySample - - Allow omit sample columns in generated model - - Get all sample columns instead of one sample column per domain type - -### version 0.35.0 -*Released*: 16 March 2020 -* Item 6803: Added support for Query Metadata Editor and added DomainFormProp - domainFormDisplayOptions to show/hide DomainForm components - -### version 0.34.1 -*Released*: 16 March 2020 -* Merge forward changes from release20.3-SNAPSHOT branch - - includes hotfix changes from version 0.31.4 - -### version 0.34.0 -*Released*: 11 March 2020 -* Use Query.ContainerFilter enum as provided by @labkey/api - -### version 0.33.3 -*Released*: 10 March 2020 -* Issue 39817: Don't show RegEx validator options for non-string fields - -### version 0.33.2 -*Released*: 10 March 2020 -* Issue 39818: List designer PK fields should be shown as Required upon load - -### version 0.33.1 -*Released*: 10 March 2020 -* Issue 39819: List designer - - Changed spacing between - - Phrasing update, "Create Range Validator" => "Create Range Expression Validator" - - Updated caret and checkbox expand + collapse behavior for Advanced Settings' Search Indexing Options - - Phrasing update, "Field used for display title" => "Default display field" - - Phrasing update, "Discussion links" => "Discussion Threads" - - Change color for string field options' "Unlimited" and "No longer than X characters" options so that they don't look disabled. - - Use title-case for Advanced List Settings' titles instead of sentence-case -* Issue 39877: List designer: max text length options should not be visible for text key field of list - -### version 0.33.0 -*Released*: 5 March 2020 -* Issue 38221: Sample Manager: encoding issues at various places -* Issue 38907: ui-components applications cannot handle assay names with periods -* Issue 39461: Editing a date field in a sample does not show a date picker - -### version 0.32.0 -*Released*: 3 March 2020 -* Fix issue 39085 - - factored out "fetchSamples" from "loadSelectedSamples" to allow for fetching and and transformation independent of getting selection - -### version 0.31.4 -*Released*: 6 March 2020 -* Fixes for List Designer issues targeting LabKey release 20.3 - - Issue 39846: List designer - "Name" doesn't validate immediately - - Issue 39879: Domain designer - lookup queries which only have container PK are filtered out of the select input - -### version 0.31.3 -*Released*: 28 February 2020 -* Fix for Sample Manager QueryGridModel use case that passes in undefined as baseFilters - - make sure baseFilters is defined before doing a concat with the rest of the filters - -### version 0.31.2 -*Released* 28 February 2020 -* Fix issue 38668 - * We now pass the display column value of lookups to QuerySelect in QueryFormInputs - -### version 0.31.1 -*Released*: 27 February 2020 -* Issue 39813: Metadata settings in new Designer don't align with old Designer - - Resolved bug in List Designer's indexing settings. - -### version 0.31.0 -*Released*: 27 February 2020 -* Item 6798: ListDesignerPanels and related components, models, actions - - new list related components ListDesignerPanels.tsx and ListPropertiesPanel.tsx - - DomainForm changes to support an "Import Data" option when using a file to infer fields for the domain (see ImportDataFilePreview.tsx) - - DomainRow changs to support locking the "primary key" field data type and required inputs - - move assay related actions to domainproperties/assay/actions.ts file - -### version 0.30.0 -*Released*: 27 February 2020 -* Bump @labkey/api to 0.0.35 - -### version 0.29.0 -*Released*: 26 February 2020 -* Issue 37776: updateUrl in custom assay does not get used in Biologics UI -* Added two new attributes to QueryGridModel - * includeDetailsColumn - * includeUpdateColumn - * simplify getStateQueryGridModel - * remove IStateModelProps interface used by getStateQueryGridModel - -### version 0.28.3 -*Released*: 26 February 2020 -* Bump @labkey/api dependency to 0.0.34 - -### version 0.28.2 -*Released*: 25 February 2020 -* Issue 39788: Responses that have exceptions but not errors not showing messages in the UI - -### version 0.28.1 -*Released*: 25 February 2020 -* Use dataclass category field for choosing the icon to display for search results -* Remove iconURL workaround and rely on server side QueryIconURLProvider instead - -### version 0.28.0 -*Released*: 24 February 2020 -* Add support to the assay designer for integrating plate metadata. - -### version 0.27.0 -*Released*: 24 February 2020 -* Re-parameterize and rename SampleInsertPanel to EntityInsertPanel for use with Data classes as well -* Add disabled and title optional properties for AddEntityButton -* Issue 39765: for viewing replaced assay runs, we need to use the baseFilter on the "Replaced" column - -### version 0.26.0 -*Released*: 21 February 2020 -* Add lint configurations -* Add File tree component and webdav helpers that can be used to view and select files on the server - -### version 0.25.2 -*Released*: 19 February 2020 -* Add addToDisplayView to QueryColumn to allow defining additional display columns - -### version 0.25.1 -*Released*: 19 February 2020 -* Fix Issue 39719 - * No longer apply any base filters if a QueryGridModel has a keyValue and the view name is \~\~DETAILS\~\~ - -### version 0.25.0 -*Released*: 18 February 2020 -* Item 6835: Changes to support Data Class Designer in Sample Manager and LKS - - Factor out EntityDetailsForm.tsx from SampleSetDetailsPanel.tsx - - Factor out DomainPropertiesPanelContext.tsx and CollapsiblePanelHeader.tsx for reuse and put back into AssayPropertiesPanel.tsx and DomainForm.tsx - - DataClassDesigner.tsx and DataClassPropertiesPanel.tsx - - Move AssayProtocolModel to domainproperties/assay/models.tsx - -### version 0.24.0 -*Released*: 13 February 2020 -* Issue 39529: Make reset view in lineage graph operational -* Use URLResolver for resolving links returned from lineage query -* Rename and re-parameterize SampleDeleteConfirmModal to EntityDeleteConfirmModal (and move to entities instead of samples) for reuse with data class objects -* Issue 39252: Show initial seed node details on lineage panel while lineage is loading. - -### version 0.23.3 -*Released*: 11 February 2020 -* Issue 39524: User management: Creating new user grid filter from notification is incorrect if user already exists and is disabled -* Issue 39501: Permissions management: Handle case where the security policy for a container is inheriting from the parent container -* Issue 39616: Update domain field warning message regarding special characters - -### version 0.23.2 -*Released*: 8 February 2020 -* Use DatePickerInput for DetailEdit -* Add advancedExportOption to QueryGridPanel - -### version 0.23.1 -*Released*: 6 February 2020 -* Issue 39341: Fix for specimen designer usage of data types that aren't supported for new domain field creation - -### version 0.23.0 -*Released*: 3 February 2020 -* Issue 39193: Fix for conditional format dialog to respect filter types allowed for date field type -* Issue 21401: Fix for conditional formatting filter string URL encoding issue -* Issue 39528: Change Assay designer results text should for option to define fields manually -* Move “remove field” to field top display (so it will show in collapsed and expanded view) -* Only show "Confirm Remove Field" dialog for previously saved fields -* Field row icons, drag handle and expand icon, only highlight on hover of icon instead of row hover -* Fix for Domain Designer duplicate field input ids for assay designer case (results in warnings in browser for LKS pages) -* Issue 39603: Domain warning message with a field name containing invalid characters goes out of the "normal" range - -### version 0.22.1 -*Released*: 3 February 2020 -* Issue 38012: For the Batch Update Dialog a field should be cleared if it is changed to disabled - -### version 0.22.0 -*Released*: 30 January 2020 -* Issue 39558: Adjust styling of import tabs to better indicate they are actionable. -* Issue 39551: Use tooltip on sampleId column to provide text about the use of generated ids or not -* Issue 39559: Reorder add row controls for better left-to-right flow and remove tool tip -* Better error messaging when only 1 additional row is allowed for bulk insert -* Issue 39554: Parameterized name expression placeholder text - -### version 0.21.2 -*Released*: 29 January 2020 -* Add backspaceRemoves and deleteRemoves props to SelectInput - -### version 0.21.1 -*Released*: 29 January 2020 -* Added support for smaller version of FileAttachmentForm - -### version 0.21.0 -*Released*: 24 January 2020 -* Item 6654: Changes to include server side warnings while saving domain - -### version 0.20.0 -*Released*: 23 January 2020 -* Add utility method resolveErrorMessage that can be used to extract a string error message from API responses and convert some - messages that are not very friendly for users into better text. - -### version 0.19.0 -*Released*: 22 January 2020 -* Assay import editable grid button changes to match sample create (for bulk insert, update, remove, add) -* Issue 39182: Disabled "Assay Data" create menu item tool-top doesn't go away -* Fix for Domain designer field focus jumps after moving a field row - -### version 0.18.2 -*Released*: 22 January 2020 -* Make EditableGrid.validateData case insensitive and trim key values prior to comparison - -### version 0.18.1 -*Released*: 22 January 2020 -* Hide the ViewAction on the omnibox when there are no non-default views -* Hide the ViewAction on the omnibox when QueryModel.showViewSelector is false - -### version 0.18.0 -*Released*: 22 January 2020 -* Add optional callback for SampleInsertPanel when data changes to help in detecting dirty state. -* Add optional callback for AssayImportPanels when data changes to help in detecting dirty state. - -### version 0.17.0 -*Released*: 21 January 2020 -* EditableGrid cell render optimization - - prevent unnecessary re-render of all cells when one is edited/selected/etc. - - move reactn global state connection to EditableGrid and make Cell components PureComponents - - update to reactn version 2.2.4 - -### version 0.16.2 -*Released*: 21 January 2020 -* Item 6759: Use Query.getServerDate() for CreatedModified.tsx component (fixes timezone issue) - * Includes update of @labkey/api to version 0.0.31 - -### version 0.16.1 -*Released*: 21 January 2020 -* Misc button text updates for Sample Manager (prefer 'Save' and 'Import' over 'Finish') - -### version 0.16.0 -*Released*: 20 January 2020 -* Add property to QueryGridModel to pass through parameters for parameterized queries - -### version 0.15.0 -*Released*: 17 January 2020 -* Move add, bulk, edit, and delete controls to be together for SampleInsertPanel -* Add DatePickerInput -* Update QueryInfoForms to use date picker for date fields -* Add BulkAddUpdateForm -* Add support for bulk update selected grid rows for SampleInsertPanel and AssayImportPanels -* Update SampleInsertPanel to support tabbed grid and file based insert - -### version 0.14.0 -*Released*: 17 January 2020 -* QueryGrid paging improvements / fixes - * Issue 38823: Allow users to select the number of rows they want to display in a grid on a single page - * Issue 38824: Allow users to go to the first and last page in a grid and see current page number and total page count - * Issue 39367: Disabled button tool tip on grid doesn't hide for disabled button - * Issue 39405: Paging too far can result in no data - * Issue 39420: Setting url pageSize to negative number results in all data being shown - -### version 0.13.0 -*Released*: 14 January 2020 -* Item 6571: User Details panel updates to allow single user delete / deactivate / reactivate / reset password - - add resetPassword() action and UserResetPasswordConfirmModal - - also include optional message input for CreateUsersModal - - Issue 39374: Better handling of selection state for SiteUsersGridPanel on page reload and navigation - -### version 0.12.0 -*Released*: 13 January 2020 -* Update FileAttachmentForm and relatives - - Add sizeLimits property for checking against maximum size - - Change styling of error block to Alert instead of simple div - - If multiple files are allowed, attach the files that pass validation even if some do not -* Update Controls and EditableGrid to add optional property for total number of rows allowed - and add a tooltip for the AddControls with info on the data size limits. -* Update placeholder text for cut-and-paste area for assay data -* Add optional parameters for AssayImportPanels and RunDataPanel and SampleInsertPanel -* Add clear button on cut-and-paste tab for assay import -* Issue 38567: use POST instead of GET to help deal with long filters (particularly IN filters) when dealing with selections -* Issue 39381: fix column layout for select inputs in QueryInfoForm - -### version 0.11.0 -*Released*: 13 January 2020 -* Item 6633: Omit some property types from the field designer for SM - * Changed basePropertiesOnly option to appPropertiesOnly - * Expanded application of appPropertiesOnly to additional controls - * DomainForm hide field types and DomainRow options based on appPropertiesOnly - -### version 0.10.0 -*Released*: 9 January 2020 -* Item 6506: User management components and related model / action updates - - QueryGridModel support for containerPath (in getQueryDetails, selection state, getQuery, getReportInfos) - - QueryGridModel support for containerFilter in getQuery call - - QueryGridPanel support for onSelectionChange callback function prop - - SecurityPolicy.addUserIdAssignment helper function - - SiteUsersGridPanel with row selection to show UserDetailsPanel and manage buttons to allow selected user deactivate/reactive/delete - - CreateUsersModal for creating new site users from SiteUsersGridPanel button - - Add invalidateUsers to index.ts for use in Sample Manager app - - Update to @labkey/api release version 0.0.29 - - Issue 39359: fix to prevent API call to study-reports-getReportInfos if we know study module isn't available - -### version 0.9.0 -*Released*: 8 January 2020 -* Add selectionKey getter to QueryGridModel -* Add `showSampleComparisonReports`, `onReportClicked`, and `onCreateReportClicked` props to QueryGridPanel. -* Add isSampleLookup to QueryColumn - -### version 0.8.3 -*Released*: 3 January 2020 -* Fixed bug that occurred with multiple FileAttachmentForms on one page - -### version 0.8.2 -*Released*: 2 January 2020 -* added samplemanager-downloadAttachments.api to URLResolver - -### version 0.8.1 -*Released*: 2 January 2020 -* Update styling for some navbar components - -### version 0.8.0 -*Released*: 30 December 2019 -* Add helper methods and constants for documentation links - -### version 0.7.0 -*Released*: 27 December 2019 -* Factor out FileAttachmentEntry from FileAttachmentContainer -* Rename FileListing to FileListingForm and factor out the file listing component from that into a separate FileListing component -* Allow FileListingForm to optionally include a read-only set of files (available for download only) -* Change check for reinitializing FileAttachmentContainer to look only for a change in the initial file set -* Update HeatMap to allow for choosing a displayName field and provide the full row for getCellUrl -* export replaceParameter and replaceParameters methods from URL -* add optional parameter to QueryGridPanel so some tabs can be pull right -* Add description property to QuerySelect to pass it through to SelectInput -* Increase label field size on SelectInput - -### version 0.6.4 -*Released*: 26 December 2019 -* Item 6392: ConfirmModal fix to not show close icon in upper right if onCancel prop is undefined -* Item 6392: Misc fixes for error messaging on user logged out / session timeout - -### version 0.6.3 -*Released*: 23 December 2019 -* Misc domain designer fixes for Sample Manager - - Issue 39256: Fix margin between panel and buttons on sample type field designer - - Issue 39225: Fix so profile form trims display name before submit - - Issue 39093: Help link in core domain designer points to future Sample Manager docs - - Issue 39079: Fix assay design properties, error messages, and buttons for page layout size changes - - Issue 38853: Change floating subnav to use display:none instead of visibility: hidden - -### version 0.6.2 -*Released*: 20 December 2019 -* Item 6261: Update Sample Set --> Sample Type where applicable for Sample ui components -* Fix Issue 38700: Parent alias field in sample type design is in error state too early - -### version 0.6.1 -*Released*: 20 December 2019 -* QueryGrid fix to remove extra call to reloadQueryGridModel when it is being unmounted - -### version 0.6.0 -*Released*: 18 December 2019 -* Item 5511: UserMenu support for Sign In and Sign Out menu items -* Item 5511: Add InsufficientPermissionsAlert component - -### version 0.5.0 -*Released*: 16 December 2019 -* add handleUpdateRows to FieldEditTrigger -* add initialFiles to FileAttachmentForm -* add SplitButtonGroup -* add samplemanagerJob search result mapping in URLResolver - -### version 0.4.0 -*Released*: 12 December 2019 -* Remove @labkey/dependencies and move all dependencies to components/package.json -* Remove our local version of react-bootsrap.d.ts - -### version 0.3.1 -*Released*: 12 December 2019 -* Search job attachments - -### version 0.3.0 -*Released*: 6 December 2019 -* Item 6508: Permissions management components, models, and actions -* port ExpandableContainer component from biologics RelatedData component - -### version 0.2.0 -*Released*: 5 December 2019 -* Upgrade TypeScript to 3.7.3 -* Upgrade Storybook to 5.2.8 -* Add "@types/react-test-renderer" to devDependencies - -### version 0.1.3 -*Released*: 4 December 2019 -* render workflow jobs in search results - -### version 0.1.2 -*Released*: 2 December 2019 -* Optimized imports -* Changed react imports from `import * as React` to `import React` -* Re-add `lib` section to tsconfig.base.json - -### version 0.1.1 -*Released*: 2 December 2019 -* Misc fixes and cleanup post package consolidation - * add missing "Map" imports from immutable - * fix a few usages of this.state() that weren't using callback version - * remove source-map setting from webpack.config.js - * remove unneeded package.json dependencies and devDependencies - * replace hardcoded documentation links with LABKEY.helpLinkPrefix - -### version 0.1.0 -*Released*: 27 November 2019 -* Consolidate all `@glass` packages into this single `@labkey/components` package. The release notes for the previous - packages ([@glass/base](./archived/base.md), - [@glass/domainproperties](./archived/domainproperties.md), [@glass/navigation](./archived/navigation.md), - [@glass/omnibox](./archived/omnibox.md), [@glass/querygrid](./archived/querygrid.md), - and [@glass/report-list](./archived/report-list.md)) - can be found in the [archived](./archived) directory. -* Convert build/bundle from rollupjs to webpack, output UMD format for module/app usages. -* Move files from shared-config repository into this repository. - diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md deleted file mode 100644 index f10bc994a9..0000000000 --- a/packages/components/releaseNotes/components.md +++ /dev/null @@ -1,3249 +0,0 @@ -# @labkey/components -Components, models, actions, and utility functions for LabKey applications and pages - -### version 7.45.5 -*Released*: 7 July 2026 -- Export DetailDisplay -- ExpandableContainer: Fix style issues -- Remove .component-detail and .detail-components styles - - These have been moved to Biologics where they are used exclusively - -### version 7.45.4 -*Released*: 7 July 2026 -- GitHub Issue #1846: Add role-restriction option to API key dialog - -### version 7.45.3 -*Released*: 4 July 2026 -- GitHub Issue #1134: Support plating from find by samples - -### version 7.45.2 -*Released*: 29 June 2026 -- GitHub Issue #1023: Add redirect() helper that uses core-safeRedirect when necessary to check url before redirecting - -### version 7.45.1 -*Released*: 25 June 2026 -- GH Issue #1164: Don't allow negative delta value during checkin - -### version 7.45.0 -*Released*: 25 June 2026 -- GitHub Issue 1234: User management page update to use SiteUsers for inactive users grid - -### version 7.44.1 -*Released*: 25 June 2026 -- GH Issue 1191: Don't remove product switch menu from narrow browsers -- GH Issue 254: Use primary product id to get user menu items instead of current product id. - -### version 7.44.0 -*Released*: 25 June 2026 -- Support for filtering the sample lineage graph by sample status - - Add metric constant - - Add `sampleStatus` field to `LineageNode` - - Add `rowId` field to `SampleStatus` model - -### version 7.43.0 -*Released*: 23 June 2026 -- panel.scss: disable margin on h1, h2, etc elements within panel-heading components -- SecurityAPIWrapper: Add getAuthenticationConfiguration - -### version 7.42.2 -*Released*: 22 June 2026 -- Styling update for user comment on large storage modal - -### version 7.42.1 -*Released*: 17 June 2026 -- Package updates - -### version 7.42.0 -*Released*: 11 June 2026 -- App support for terminal storage barcodes - - add `StorageUnitBarcode` as an allowed field for import - - Updated resolveDuplicatesAsName() to check for the "barcode" identifier - -### version 7.41.2 -*Released*: 10 June 2026 -- Merge from release26.6-SNAPSHOT to develop - - includes changes from 7.40.2 #2014 - -### version 7.41.1 -*Released*: 3 June 2026 -- Merge from release26.6-SNAPSHOT to develop - - includes changes from 7.40.1 #2011 - -### version 7.41.0 -*Released*: 1 June 2026 -- GitHub Issue 903: Remove Cross-Container Sample and Data Class Import Feature - -### version 7.40.2 -*Released*: 8 June 2026 --AppURL.fromMenuUrl: keep query params on URL - -### version 7.40.1 -*Released*: 2 June 2026 -- More misc. accessibility improvements - - Fix empty buttons for `ExpandableContainer` and `RemoveEntityButton` - - Fix color contrast for `.name-id-setting__prefix-example`, `.container-nav` and `.lk-version-nav` - - Fix color contrast for `.sr-only` to avoid false positives from WAVE - -### version 7.40.0 -*Released*: 28 May 2026 -- Calculated Column Assistant - - Keep the modal open after clicking apply expression - - Send the current field to server to distinguish from a field set - - Display column type for validated expressions - - Refill prompt when request interrupted - -### version 7.39.0 -*Released*: 27 May 2026 -- Misc. accessibility improvements - - Auto-link to study input field labels - - Remove tabIndex value from `DomainRow` - - Add labels for text choice input fields - - Use button instead of i for expandable container chevrons - - Update LabelOverlay and DetailEditor with ids for labeling elements - - Add `labelId` getter method in `QueryColumn` - - Add `data-fieldkey` to some labels to help with locators - -### version 7.38.2 -*Released*: 27 May 2026 -- Update `getDefaultVisibleColumns` to remove columns that metadata eliminates from views - -### version 7.38.1 -*Released*: 26 May 2026 -- GitHub Issue 1021: Sample Finder: Long names truncated in Search cards - -### version 7.38.0 -*Released*: 21 May 2026 -- Accessibility improvements for app pages: Keyboard Interactions - - Make ActionButton a button so it can be tabbed to - - Allow tab to app main menu folder items - - Modals to have focus on open, allow tab only within modal elements, and ESCAPE to close - - Use buttons with clickable-text styling instead of spans and divs with onClick properties - - Update `useEnterEscape` to allow optional event argument to callbacks and to allow for multi-select behavior - - EditableGrid Cell to allow tab focus with tabIndex 0 - - Update styling for file inputs on `AttachmentCard` so input field is not hidden - - Add `tabIndex` and `onKeyDown` callback for thread components - -### version 7.37.1 -*Released*: 20 May 2026 -- Molecule and PS bulk import by file - - `getGridIdsFromTransactionId` return type changed from `string[]` to `DataTypeRowIdsFromTransactionIds` (includes `rowIds`, `dataTypeRowCounts`) - - `selectGridIdsFromTransactionId` updated to match new return type - - `getSampleTypesFromTransactionIds` refactored to delegate to shared `getDataTypesFromTransactionId` helper; return type uses generic `dataTypes` field instead of `sampleTypes` - - New `getDataClassesFromTransactionIds` function — resolves DataClass names and builds per-type row counts from transaction audit IDs - -### version 7.37.0 -*Released*: 15 May 2026 -- Calculated Column Assistant -- Add `ChatModal` component for prompt/conversation interaction -- Add `ExpressionAssistantModal` for specific implementation of expression assistant modal -- Add `query-expressionAssistantAgent.api` endpoint to `APIWrapper` -- Move `query-parseCalculatedColumn.api` endpoint wrapper to `APIWrapper` - -### version 7.36.0 -*Released*: 13 May 2026 -- Update heading tags in various page elements for better accessibility -- Add sr-only text for Selection checkbox table header -- Update a few more colors for better contrast - -### version 7.35.2 -*Released*: 12 May 2026 -- Package updates - -### version 7.35.1 -*Released*: 7 May 2026 -- Package updates - -### version 7.35.0 -*Released*: 7 May 2026 -- Fix accessibility issues for empty links and buttons -- Add `Icon` component for use on buttons and links that are only icons -- Add some alt text to a few images - -### version 7.34.0 -*Released*: 5 May 2026 -- Accessibility improvements for app pages: Colors - -### version 7.33.4 -*Released*: 3 May 2026 -- Consolidate Dataclass data update methods - use DIB for update only - - Remove `altUpdateKeys` from `QueryInfo` - -### version 7.33.3 -*Released*: 1 May 2026 -- Accessibility improvements: add labels or aria-labels to input elements - -### version 7.33.2 -*Released*: 29 April 2026 -- GitHub Issue #598: Wrap text for long file names in various app locations - -### version 7.33.1 -*Released*: 28 April 2026 -- Merge from release26.3-SNAPSHOT to develop - - includes changes from 7.21.5 #1987 - -### version 7.33.0 -*Released*: 24 April 2026 -- Workflow UI updates - - Add css for .lk-popover-behind-modal to adjust z-index - - EditInlineField prop for pullRight for pencil icon - - UserDetailsPanel support for userId that is a group id - -### version 7.32.0 -*Released*: 23 April 2026 -- Add EMPTY_COMPOUND_WARNING -- Add COMPOUND to SCHEMAS.DATA_CLASSES -- hasIdentifiedCol: check for Compound schema -- UnidentifiedPill: handle schemas that don't have defined messages, add support for Compound schema - -### version 7.31.1 -*Released*: 23 April 2026 -- GitHub Issue 911: Fix overflow for field filtering modal - -### version 7.31.0 -*Released*: 20 April 2026 -- Add optional `jobActionId` parameter to `updateSampleStorageData` -- Add `dividedOptionsRenderer` and `filterDividedOptions` for rendering selectInputs with dividers between groups of options - -### version 7.30.0 -*Released*: 17 April 2026 -- GitHub Issue 848: Add the ability to reset TOTP settings in the apps - -### version 7.29.4 -*Released*: 9 April 2026 -- GitHub Issue 954: Add error for duplicate values for parent inputs - -### version 7.29.3 -*Released*: 8 April 2026 -- GitHub Issue 928: Spaces not shown between text choices in identifying fields in editable grid -- GitHub Issue 951: Multi-line values converted to text choices lose multi-line editability -- GitHub Issue 970: Warn about more than 10 items for multi choice fields in editable grid. -- GitHub Issue 987: Multi value filter dialog lets you edit and save without any selected values - -### version 7.29.2 -*Released*: 8 April 2026 -- Merge from release26.4-SNAPSHOT to develop - - includes changes from 7.26.5 #1970 - - includes changes from 7.26.6 #1976 - -### version 7.29.1 -*Released*: 7 April 2026 -- GitHub Issue 868: Add more nouns for count units - -### version 7.28.2 -*Released*: 7 April 2026 -- Update `FREEZER_ITEM_SAMPLE_MAPPER` to return undefined if not matched, for consistency with other mappers - -### version 7.28.1 -*Released*: 3 April 2026 -- GitHub Issue 613: Use "Status" instead of "SampleState" in error messaging. - -### version 7.28.0 -*Released*: 2 April 2026 -- GitHub Issue 916: Editable grid copy/paste issue with special characters - - replaces the custom parseCsvString function with the PapaParse library based splitMultiValueForImport/joinMultiValueForExport util for CSV/TSV parsing - - add some basic multi-line paste support - - remove quoteValueColumnWithDelimiters as it's no longer needed - -### version 7.27.0 -*Released*: 1 April 2026 -- GitHub Issue 985: Update styling of `SelectInput` for identifying fields - -### version 7.26.6 -*Released*: 7 April 2026 -- Merge from release26.3-SNAPSHOT to release26.4-SNAPSHOT - - includes changes from 7.21.4 #1971 - -### version 7.26.5 -*Released*: 2 April 2026 -- GitHub Issue 847: App User Management page to allow users with manageUsersPermission to select / view all site users - -### version 7.26.4 -*Released*: 31 March 2026 -- Update `@labkey/api` dependency - -### version 7.26.3 -*Released*: 31 March 2026 -- GitHub Issue 811: App permissions page shows deactivated users in group members list - - Don't show inactive users in members list for group details on permissions page - - include "Inactive User: " prefix in member button on group management page to match what we do for permissions page - -### version 7.26.2 -*Released*: 31 March 2026 -- GitHub Issue 919: App grid column header menu renders behind modal when grid shown in modal (more related to GitHub Issue 710) - -### version 7.26.1 -*Released*: 30 March 2026 -- Replace `encodeFormDataQuote` with `Utils.encodeFormName` - -### version 7.26.0 -*Released*: 30 March 2026 -- Update dependencies - -### version 7.25.0 -*Released*: 25 March 2026 -- Update `isAllSamplesSchema` to account for move of `JobInputSamples` to `workflow` schema -- Add placement prop for `DisableableButton` -- add `fitlerArrayToString` method in QueryModel utils -- add `pronoun` utility method for the it/they or it/them text choices - -### version 7.24.2 -*Released*: 25 March 2026 -- GitHub Issue 955: limit text choice option length to 200 characters - -### version 7.24.1 -*Released*: 25 March 2026 -- Factor `EditingForm` out of `EditableDetailPanel` and load model with update columns -- Update `extractChanges()` to account for `column.jsonType === 'array'` -- Refactor `arrayEquals` to fix edge cases of array mutation and delimiter collisions - -### version 7.24.0 -*Released*: 24 March 2026 -- SchemaQuery.isEqual: add optional includeViewName argument, defaults to true -- UnidentifiedPill: add schemaQuery prop -- EMPTY_SEQUENCE_WARNING renamed to EMPTY_NS_SEQUENCE_WARNING - -### version 7.23.5 -*Released*: 18 March 2026 -- Bump @labkye/api dependency - -### version 7.23.4 -*Released*: 22 March 2026 -- Set query and registry audit events to `hasTransactionId=true` - -### version 7.23.3 -*Released*: 19 March 2026 -- GitHub Issue 942: Add error for duplicate values for MVTC fields -- GitHub Issue 961: Clicking the "Allow multiple selections" label doesn't toggle the checkbox -- GitHub Issue 932: No help text for disabled Multi-Value checkbox in designer - -### version 7.23.2 -*Released*: 18 March 2026 -- Merge from release26.3-SNAPSHOT to develop - - includes changes from 7.21.2 #1949 - - includes changes from 7.21.3 #1947 - -### version 7.23.1 -*Released*: 11 March 2026 -- Merge from release26.3-SNAPSHOT to develop - - includes changes from 7.21.1 #1946 - -### version 7.23.0 -*Released*: 10 March 2026 -- Update `tsconfig.json` to specify `delcarationMap` -- Add missing `declare` statements that are now required with `ES2023` - -### version 7.22.1 -*Released*: 6 March 2026 -- GitHub Issue 897: Study dataset should not allow multivalue text choice as a third key - -### version 7.22.0 -*Released*: 4 March 2026 -- Remove styles for `.app-page` - - Component was moved to ui-premium a while ago -- Add `ta-right`, `ta-left` util styles -- Add UnidentifiedPill -- Add EMPTY_SEQUENCE_WARNING constant - -### version 7.21.5 -*Released*: 23 April 2026 -- GitHub Issue #1012: Update resolveDuplicatesAsName() regex to handle nested parentheses in key/value - -### version 7.21.4 -*Released*: 6 April 2026 -- GitHub Issue #974: Lookup Data Type shown in Assay Designer for app, even when premium module is not present - - AssayDesignerPanels to pass appPropertiesOnly to AssayDomainForm - - add new domainFormDisplayOptions.showAdvancedSettingsForApp for assay designer case - -### version 7.21.3 -*Released*: 12 March 2026 -- GitHub Issue #790: Sample check-in and discard should not allow amount/unit input for differing units - - Update areUnitsCompatible to account for different "Count" unit labels - - getMetricUnitOptions() to allow optional filterFn parameter for the "Count" unit case - -### version 7.21.2 -*Released*: 11 March 2026 -- GitHub Issue 710: Include columns set as Identifying Fields within the 'Search for Samples' grid when adding samples to a storage location - - update saveGridView() to take hidden prop (default false) - - saveSettingsToLocalStorage() fix for checking model.useSavedSettings === SavedSettings.none - -### version 7.21.1 -*Released*: 4 March 2026 -- GitHub Issue 829: Sample type with lookup to list with text primary key where the value contains a comma doesn't map to lookup - - Only do `quoteValueWithDelimiters` on values if the lookup column support multiple values - -### version 7.21.0 -*Released*: 26 February 2026 -- Package updates - -### version 7.20.5 -*Released*: 25 February 2026 -- GitHub Issue #418: Remove flag field type & migrate to text - -### version 7.20.4 -*Released*: 25 February 2026 -- GitHub Issue #734: App narrow screen display can cut off error message for field editor pages - - inline-comment footer can take up to 125px on small screens so increase bottom padding for .app-page - -### version 7.20.3 -*Released*: 24 February 2026 -- GitHub Issue 465: Add auditing capabilities for grid views -- GitHub Issue 840: Increase text choice options from 200 to 500 - -### version 7.20.2 -*Released*: 24 February 2026 -- Bump @labkey/api dependency - -### version 7.20.1 -*Released*: 20 February 2026 -- GitHub Issue 830: Assay design add transform script webdav path doesn't resolve from subfolder - - AssayProtocolModel.container to compare domain id to the container.parentId to get parentPath when applicable - - TransformScriptsInput to resolve the domain containerId to the containerPath to use for webdav operations - -### version 7.20.0 -*Released*: 18 February 2026 -- Multi value text choices: field type conversion - - Updates the Text Choice options UI to add an “Allow multiple selections” toggle, multi-choice-specific edit restrictions, and improved confirmation messaging/tests for data-type changes involving text/multi-choice. - - Make multi-choice behaves as an internal variant of Text Choice rather than a separate visible type in data type dropdown - - Modified updateDataType and text choice usage counting to correctly handle conversions between string, Text Choice, and Multi Choice fields, clearing validators/flags and tracking multi-value usage where appropriate. - -### version 7.19.0 -*Released*: 18 February 2026 -- GitHub Issue 846: Remove display of user role in profile and settings pages - -### version 7.18.1 -*Released*: 17 February 2026 -- Allow users to use quotation marks for exact search within the apps - -### version 7.18.0 -*Released*: 17 February 2026 -- Update `FilterStatus` to optionally include an "Add Filter" button -- add `getIntegerSearchParam` utility in `internal/url/utils.ts` - -### version 7.17.0 -*Released*: 16 February 2026 -- Remove GridAliquotViewSelector -- Remove SampleAliquotViewSelector -- Remove isSampleAliquotSelectorEnabled - -### version 7.16.2 -*Released*: 11 February 2026 -- GitHub Issue 779: Cannot Edit Relative Dates in Sample Finder - - Allow intermediate editing state for relative date values in DatePickerInput - -### version 7.16.1 -*Released*: 11 February 2026 -- Query: sort columns where name starts with '+' - -### version 7.16.0 -*Released*: 5 February 2026 -- File import warnings for cross type sample import case - - InferDomain API call and response to include distinctValues for specified column keys - - EntityIdCreationModel.getSchemaQuery to include optional targetQueryName param - -### version 7.15.0 -*Released*: 4 February 2026 -- Package updates - -### version 7.14.0 -*Released*: 30 January 2026 -- Update `withQueryModels` to track and cancel requests for `loadRows`, `loadSelections` and `loadTotalCount` -- Add `RequestHandler` handling for `selectRows` and `selectRowsDeprecated` -- Skip error logging when request is aborted -- Update a few endpoint wrappers to use `request()` - -### version 7.13.1 -*Released*: 26 January 2026 -- Merge from release26.1-SNAPSHOT to develop - - includes changes from 7.7.5 #1926 - -### version 7.13.0 -*Released*: 20 January 2026 -- Multi value text choices - - Added new MULTI_CHOICE_RANGE_URI for defining MVTC fields and updated utils to check against data type - - renamed joinValues prop for SelectInput to skipJoinValues to align with its actual usage - - Modified FilterFacetedSelector and QueryFilterPanel to handle array value selecting for MVTC - -### version 7.12.2 -*Released*: 19 January 2026 -- GitHub Issue 764: Editable grid border display issue on very small screens - - override default bootstrap table-responsive style for xs scren table border - -### version 7.12.1 -*Released*: 14 January 2026 -- Merge from release26.1-SNAPSHOT to develop - - includes changes from 7.7.4 #1921 - -### version 7.12.0 -*Released*: 7 January 2026 -- Lineage: add "restricted" property - -### version 7.11.0 -*Released*: 6 January 2026 -- GitHub Issue 73: Field editor Advanced Settings to allow for non-unique constraint / index - - update UI to allow for single field non-unique index and unique constraint via select dropdown - - update DomainField model to support nonUniqueConstraint in addition to uniqueConstraint - -### version 7.10.0 -*Released*: 6 January 2026 -- GridColumn: remove width, fixedWidth properties - - Add css class for text align and getTextAlignClassName helper -- Grid: improve styling for columns - -### version 7.9.0 -*Released*: 6 January 2026 -- GitHub Issue 503: Field editor URL option to set target window (i.e. _blank) - -### version 7.8.1 -*Released*: 5 January 2026 -- GitHub 562: Combine warning messages for file preview unknown/system fields with the warning for duplicate columns - - FilePreviewGrid to combine warningMsg with previewData.warningMsg in a single Alert - -### version 7.8.0 -*Released*: 5 January 2026 -- Add a “Mixed” state in Bulk Edit when values differ across selected samples - - Modified getCommonDataValues utility to return both common field values and a list of fields with conflicting values - - Added hasMixedValue prop support across all input components (TextInput, SelectInput, CheckboxInput, DatePickerInput, FileInput, TextAreaInput, AmountUnitInput) - - Updated BulkUpdateForm and BulkAddUpdateForm to pass conflicting fields information to form inputs - -### version 7.7.5 -*Released*: 22 January 2026 -- [GitHub Issue #798](https://github.com/LabKey/internal-issues/issues/798) - add product feature flag for advanced workflow - -### version 7.7.4 -*Released*: 8 January 2026 -- [GitHub Issue #723](https://github.com/LabKey/internal-issues/issues/723) - - EditableDetailPanel: use `useRouteLeave` - -### version 7.7.3 -*Released*: 31 December 2025 -- [GitHub Issue #495](https://github.com/LabKey/internal-issues/issues/495) - - Remove some gratuitous capitalization of field names in audit event details - - When generating a column label for an added parent column in the editable grid, don't capitalize the query name - -### version 7.7.2 -*Released*: 30 December 2025 -- Remove unused `getVolumeMinStep` method -- Improve typings, test checks - -### version 7.7.1 -*Released*: 29 December 2025 -- [GitHub Issue 734](https://github.com/LabKey/internal-issues/issues/734) Update sizing of comment input box for better display in narrow screens -- [GitHub Issue 457](https://github.com/LabKey/internal-issues/issues/457) Update messaging for deleting samples linked to studies -- Remove support for discussions in lists - -### version 7.7.0 -*Released*: 29 December 2025 -- Workflow Automation: Task action to filter samples for selected task - - Added `lockReadOnlyForDelete` prop for workflow filter components to prevent modification of read-only filters used for deletion. - - Introduced `EntityFieldFilter` type (renamed from `FieldFilter`) for improved clarity and consistency across workflow task filters. - - Added new filter action helper functions: `getActionValuesForFilterProps` and `removeFilterValueForFilterProps` to simplify reading and updating filter values. - - Added support for `supportAllValueInQuery` in entity data types so workflow filters can include an "All" option when querying entities. - -### version 7.6.0 -*Released*: 29 December 2025 -- Copy folder access settings when copying freezers and assay designs - - GitHub Issue #284: Freezer copy - - GitHub Issue #305: Assay design copy - -### version 7.5.1 -*Released*: 24 December 2025 -- Add `displaySelectedOptions` prop and respect setting when passing `selectedOptions` to the underlying `SelectInput` - -### 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 - -### version 7.4.0 -*Released*: 22 December 2025 -- Add support for moving jobs - - Update `EntityMoveConfirmationModal` and `EntityMoveModal` to add an optional `permissionType`, overriding the default `Insert` permission check - - Add `JobOperation` enum and `isJobEntity` utility - - in `userContainerUser` check that we have data for the `containerUsers` when reporting `isLoaded` state - - export `JOB_TYPES_SCHEMA` constant -- Update punctuation for messaging in operation restrictions. - -### version 7.3.2 -*Released*: 15 December 2025 -- ConditionalFormatOptions refactor to use ColorPickerInput - -### version 7.3.1 -*Released*: 13 December 2025 -- Remove LSID column from provisioned sample tables -- Update `getUpdatedData()` utility method to only check for primary keys actually used in data iteration. -- Fix for LKS sample type designer issue with isValid check when metricUnit is not required - -### version 7.3.0 -*Released*: 10 December 2025 -- CharBuilderModal: add UI for legend position - -### version 7.2.0 -*Released*: 9 December 2025 -- Chart builder updates for series color scale options - - ChartColorInputs for single color geomOptions and series specific color and shape value map - - ChartConfig measuresOptions to store per series mapping object - - Hide and show color options based on selected chart type and measures - - ColorPickerInput update to use fixed position by default and new DEFAULT_COLORS constant - - Add LetterIcon for use with "Auto" set series values - -### version 7.1.1 -*Released*: 8 December 2025 -- Sample Amount/Units polish: part 2 - - Introduced a two-tier unit selection system (Amount Type, Display Units) in sample designer - - Added new measurement units (ug, ng) with updated display precision for existing units - - Added a new formsy rule `sampleAmount` for validating sample amount/units input on forms - - Disallow large amount (>1.79769E308) for amounts input on form, editable grid, and sample storage editor - -### version 7.1.0 -*Released*: 3 December 2025 -- ChartBuilderModal - - Update to two-column layout - - Add options for axis labels - - Add options for title / subtitle - - Add options for height / width - -### version 7.0.0 -*Released*: 1 December 2025 -- Updates for new Workflow implementation - - Update URLResolver to reference new controller for workflow-related actions - - add `WORKFLOW` schema and queries and remove legacy job schema/query references - - remove ExperimentRunResolver - -### version 6.72.1 -*Released*: 25 November 2025 -- QueryColumn to only apply displayWidth for multiLine columns - -### version 6.72.0 -*Released*: 20 November 2025 -- Default to detailed audit behavior - -### version 6.71.1 -*Released*: 20 November 2025 -- Sample Amount/Units polish - - Disallow negative sample amounts: Update `getValidatedEditableGridValue` to check for negative amount values - - Added `AmountUnitInput` to show amount/units input side-by-side on bulk add/edit - -### version 6.71.0 -*Released*: 20 November 2025 -- Line chart trendline options for provided parameters to CalculateCurveFit API - - ChartBuilderModal update to include trendline option for provided parameters - - Include new 5 Parameter nonlinear curve fit option in trendline select - - Use column metadata displayWidth in app grid column render calcWidths - -### version 6.70.8 -*Released*: 19 November 2025 -- Merge from release25.11-SNAPSHOT to develop - - includes changes from 6.68.4 #1892 - -### version 6.70.7 -*Released*: 18 November 2025 -- Exclude plate well column lookup for identifying fields determination - -### version 6.70.6 -*Released*: 18 November 2025 -- Issue 52560: Need sample-type specific error for incorrect units during multi-sample-type creation - - Build the correct lookupFilters for units validation for `insertPastedData` - -### version 6.70.5 -*Released*: 13 November 2025 -- Issue 54186: App actions for picklists and assay run delete don't get TransactionAuditEvent - - Add 'auditBehavior' to insertRows, updateRows, deleteRows usages so app actions get TransactionAuditEvent - -### version 6.70.4 -*Released*: 13 November 2025 -- Ability to show identifying fields during assay import of a single sample type - - Modified AssayDefinitionModel.getResultsSampleTypeQueryInfo and getSingleSampleTypeQueryInfo to allow retrieving QueryInfo from a list of sample IDs - - Added updateColumnLookup function to mutate column lookup schema/query for EditorModel - -### version 6.70.3 -*Released*: 7 November 2025 -- GridPanel - - Convert tests to RTL - - Always use userServerContext instead of optionally using getServerContext -- SelectionStatus: use useServerContext instead of getServerContext - -### version 6.70.2 -*Released*: 7 November 2025 -- Issue 53567: Improve "Alias" column performance - - Update "Alias" column usages to refer to "value" instead of "displayValue" on select rows responses. - -### version 6.70.1 -*Released*: 6 November 2025 -- use export-tools to remove unused package exports - -### version 6.70.0 -*Released*: 5 November 2025 -- Package updates - -### version 6.69.0 -*Released*: 5 November 2025 -- Merge from release25.11-SNAPSHOT to develop - - includes changes from 6.68.2 #1878 - - includes changes from 6.68.3 #1884 - -### version 6.68.4 -*Released*: 18 November 2025 -- GitHub Issue 111: Query metadata editor indicates all fields as "New Field" - - use the field.lockExistingField property to determine if field is new or existing - -### version 6.68.3 -*Released*: 4 November 2025 -- Issue 53983: Sort fields by caption -- Issue 53927: Adjust column view layout to wrap - -### version 6.68.2 -*Released*: 3 November 2025 -- SVGChart: render curve fit statistics when available - -### version 6.68.1 -*Released* 2 November 2025 -- Issue 52063: Domain designer to handle lookup to a query with a pipe character - - don't just split on '|', as the queryName could contain '|' characters - -### version 6.68.0 -*Released* 2 November 2025 -- Add auditing of what method was used for CRUD - - Modified api.query.insertRows/updateRows/deleteRows/saveRows and moveEntities to accept and process editMethod parameter and record request hash in 'requestSource` - -### version 6.67.3 -*Released*: 1 November 2025 -- Issue 54160: Non US date parsing in the app - - Added `getAltNonUSParseFormats` date utility function to provide alternative parse formats for common non-US date/datetime formats - - Update DatePickerInput to use alternative parse formats when server date format is non-US - - Update parseDate utility function to use alternative non-US parse formats - -### version 6.67.2 -*Released* 31 October 2025 -- Issue 53449: resolve lineage items from container path - - Refer to `item.containerPath` instead of `item.container` in lineage details - -### version 6.67.1 -*Released* 29 October 2025 -- Issue 53563: Domain designer lookups don't show newly added entity types after initial load/view - - Remove fetchQueries from client cache - -### version 6.67.0 -*Released* 29 October 2025 -- Issue 52310: Change application single-value dropdowns to include the current value in the listed options - -### version 6.66.0 -*Released*: 23 October 2025 -- ChartBuilderModal support for bar/line chart aggregate method and error bar options - - useOverlayTriggerState update to not close popover on document click that is a select option target - - Factor ChartFieldRangeScaleOptions.tsx out of ChartFieldOption.tsx - - Create ChartFieldAggregateOptions.tsx and move y-axis bar chart aggregate method dropdown into tooltip - - support for error bar radio options as separate overlay or to be included in axis options overlay - - Update ChartBuilderModal to pass down aggregate and error bar options to ChartConfig - -### version 6.65.2 -*Released*: 22 October 2025 -- Various minor fixes for exception reports - -### version 6.65.1 -*Released*: 20 October 2025 -- SelectionStatus null check for rowCount - -### version 6.65.0 -*Released*: 20 October 2025 -- QueryModel: remove selectedReportId, add selectedReportIds -- withQueryModels: update selectReport, add clearSelectedReports -- ChartMenu: support multiple report selections -- Add ChartList - -### version 6.64.3 -*Released*: 13 October 2025 -- Search: escape all quotes in search terms - -### version 6.64.2 -*Released*: 10 October 2025 -- Issue 52878: Attachment thumbnails from ancestor columns not rendered in Sample Type grid - - Modify `AncestorRenderer` and `MultiValueRenderer` to handle file/attachment columns - -### version 6.64.1 -*Released*: 9 October 2025 -- Issue 53997: Establish a maximum size for query selections - -### version 6.64.0 -*Released*: 9 October 2025 -- AssayDefinitionModel: add plateEnabled flag -- Fix circular dependency caused by IQueryColumn interface - -### version 6.63.2 -*Released*: 8 October 2025 -- Issue 53324: LKSM: Custom Grid View Column Limit - - Don't serialize ViewInfoJson.fields - -### 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 - - remove isValuePrecisionValid() and the related isPrecisionValid() - - use amount value instead of displayValue for EditableGrid and SampleAmountEditModal - -### version 6.62.8 -*Released*: 3 October 2025 -- Issue 53328: AssayDefinitionModel.hasLookup to only consider the first sample lookup column for assay import cases - -### version 6.62.7 -*Released*: 29 September 2025 -- Enumerate plate, plate set auditing events -- Introduce `isQueryUpdateEvent` to flag which events are backed by query audit events - -### version 6.62.6 -*Released*: 29 September 2025 -- Issue 53979: TextInput to handle non-finite numeric values - - don't set input type = "number" since it will drop non-finite values - -### version 6.62.5 -*Released*: 26 September 2025 -- Issue 53957: Update error messaging to be more precise - -### version 6.62.4 -*Released*: 26 September 2025 -- Issue 53036: LKSM: Aliquot registration event in timeline polish - - Display "inherited" instead of NA for aliquot's parent fields in timeline view - -### version 6.62.3 -*Released*: 18 September 2025 -- Workflow: Change Required Template Fields to be Required at the start of a Job - - Update required field label display to show overlay before asterisk - - Fix CheckBoxInput required field display on Formsy forms - - Add optional `colFieldKeyMap` param to `flattenValuesFromRow` to convert field names to field keys - -### version 6.62.2 -*Released*: 16 September 2025 -- Issue 53926: Move custom assay queries to assay schema - -### version 6.62.1 -*Released*: 16 September 2025 -- EditableColumnMetadata cleanup of unused getFilteredLookupKeys and linkedColInd props - -### version 6.62.0 -*Released*: 15 September 2025 -- Sample Type Amounts and Units updates for Quantity - - remove unused amount and unit conversion code from measurement.ts and remove the `UnitsModel.add` method - - Update language in `AuditDetails` - - `BASE_UNITS` -> `UNITS_KIND` and add `baseUnit` field to match server-side concept - - Update `StorageAmountInput` usages to allow clearing of the unit select input value - - Update `AuditDetails` to be able to display provided delta amounts - - Remove StoredAmountRenderer - - Allow for "Units" column to be filterable in the various samples grids - - BulkUpdateForm getUpdatedData() to include both amount and units values when either has been changed - - `SampleAmountInput` update preferred unit message - - `SampleAmountEditModal` updated so all users go through `updateSampleStorageData` - - Mark `RawAmount` and `RawUnits` as ignored system fields - -### version 6.61.1 -*Released*: 12 September 2025 -- DatePickerInput: don't add milliseconds when entering current time (Issue 53577) - -### version 6.61.0 -*Released*: 8 September 2025 -- QueryModel.getSelectedIds: optimize when filterIds are not passed -- EntityMoveModal: Don't use selectionKey, simplify props, improve error messaging -- Refactor PicklistEditModal, ChoosePicklistModal - - Don't rely on selectionKey - - Don't rely on QueryModel -- Add usePicklistSelections to get rid of duplicate selection loading logic -- Update AddToPicklistMenuItem, PicklistCreationMenuItem -- BulkUpdateForm - - Remove props: header, onSubmitForEdit, sortString - - Rename props: pluralNoun, singularNoun -> nounPlural, nounSingular - - Add props: aliquots, sampleOperation, editStatusData - - Render errors -- QueryAPIWrapper: remove getSelection -- EntityServerAPIWrapper.getCrossFolderSelectionResult: remove useSnapshotSelection argument - -### version 6.60.1 -*Released*: 3 September 2025 -- Issue 53742: Sample Manager: Unable to perform actions from various pages on sample type with a '/' - - Update `createQueryModelId` to use encode schema/query - -### version 6.60.0 -*Released*: 3 September 2025 -- Issue 53801: Filter out columns for validation where `isAncestorInput()` is true - -### version 6.59.0 -*Released*: 29 August 2025 -- Support string values for `FileInput` so that values can be round-tripped. -- Removed unused `QueryInfo.getColumnFieldKeys()` -- Remove unused `QueryModel.getRow()` property `flattenValues` - -### version 6.58.8 -*Released*: 29 August 2025 -- Issue 53773: Updating a field whose name contains a space via file will silently be ignored if the space is not included in the file - - Stop aggressively infer column based on removed internal spaces - -### version 6.58.7 -*Released*: 29 August 2025 -- Update default audit level - - Add `Assay Result Events` audit event type - -### version 6.58.6 -*Released*: 26 August 2025 -- Merge from release25.7-SNAPSHOT to develop - - includes changes from 6.53.4 #1843 - -### version 6.58.5 -*Released*: 14 August 2025 -- Issue 52026 and 51862: Reduce the logging for calculated expression column SQL errors - - add comment tag to executeSql query to indicate it is from a calculated column validation - - use string value compatible with CAST to NUMERIC for parseCalculatedColumn() temp data - -### version 6.58.4 -*Released*: 12 August 2025 -- Adding new parent alias on designer doesn't always add to the bottom of the list - -### version 6.58.3 -*Released*: 7 August 2025 -- Add `StoragePositionNumber` as a sample storage column - -### version 6.58.2 -*Released*: 6 August 2025 -- GitHub Issue 788: LKSM Default sample lookup for assay design should default to lookupIsValid - -### version 6.58.1 -*Released*: 5 August 2025 -- File handling - File path related issue bundle - - Invalid file (that exist but isn't accessible) should show red triangle icon - -### version 6.58.0 -*Released*: 4 August 2025 -- GitHub Issue 783: Hide domain designer field Advanced Settings that are not currently implemented in app -- GitHub Issue 788: Domain Designer better handling of invalid lookup query value for Sample data type - -### version 6.57.0 -*Released*: 30 July 2025 -- Add file system audit events for apps -- Add `TransactionAuditIdRenderer` for displaying link to page of audit records associated with a transaction id - -### version 6.56.3 -*Released*: 24 July 2025 -- Address Issue 53366 by not putting `undefined` into `List` -- Address Issue 53443 by fixing where we check for optional prop -- Export `ValueDescriptor` for external usage -- Update `NameIdSettings`, `BarTenderSettingsForm` and `ManageSampleStatusesPanel` to use app context for api - -### version 6.56.2 -*Released*: 21 July 2025 -- Issue 53451: JS error when deleting numeric filter values with Between operator -- Fixes for filter modal Between operator handling of empty inputs and leading/trailing spaces -- Fixes for trimming values for any non-CONTAINS filter operators - -### version 6.56.1 -*Released*: 18 July 2025 -- null checks for exceptions reported to Mothership - -### version 6.56.0 -*Released*: 11 July 2025 -- Package updates - -### version 6.55.0 -*Released*: 10 July 2025 -- makeCommaSeparatedString: Add lastSeparator and postfix args, export - -### version 6.54.3 -*Released*: 10 July 2025 -- Issue 52657: LKSM: We shouldn't allow creating sample names that differ only in case - - Use original case in duplicate name error message - -### version 6.54.2 -*Released*: 9 July 2025 -- Merge from release25.7-SNAPSHOT to develop - - includes changes from 6.53.1 #1824 - - includes changes from 6.53.2 #1823 - - includes changes from 6.53.3 #1825 - -### version 6.54.1 -*Released*: 8 July 2025 -- Issue 53134: Set dirty bit after adding uniqueId field - -### version 6.54.0 -*Released*: 3 July 2025 -- ProductMenu shows 'Dashboard' instead of 'Storage' as subtitle in FM /home route -- Issue 53371: Find Samples by ID JS error when clicking "Find Samples" button without entering anything into the text area - -### version 6.53.4 -*Released*: 21 August 2025 -- SamplesAPIWrapper: add sort arg to getSelectionLineageData - - Issue 53702: Selection order is not retained when editing multiple samples in grid - -### version 6.53.3 -*Released*: 7 July 2025 -- Issue 53394: FileInput revert removal of the "-fileUpload" suffix from inputId - -### version 6.53.2 -*Released*: 3 July 2025 -* Issue 53141: Should set a dirty bit when setting or updating the hit selection criteria for an assay - -### version 6.53.1 -*Released*: 3 July 2025 -- Issue 53153: Disable value validation for expInput, aliquotParent columns - -### version 6.53.0 -*Released*: 1 July 2025 -- Remove AssayResultsForSamplesButton, AssayResultsForSamplesMenuItem - - moved to ui-premium -- Add createSnapshotSelectionKeyStr -- Remove getJobCreationHref -- Remove getSelectedSampleIdsFromSelectionKey -- Remove getURLParamsForSampleSelectionKey -- getLookupRowIdsFromSelection: Add optional keyColumn arg -- Export getSamplesTestAPIWrapper - -### version 6.52.5 -*Released*: 30 June 2025 -- Issue 53360: Pass user comment through after naming pattern warning - -### version 6.52.4 -*Released*: 30 June 2025 -- Issue 53118: Filter modal change to multiValue type to account for numeric value when parsing - -### version 6.52.3 -*Released*: 27 June 2025 -- GitHub Issue 787: DomainField JSON file import should respect required boolean for SampleId field -- Issue 53325: withQueryModels to use col fieldKey instead of name when setting omittedColumns for errant calculated fields - -### version 6.52.2 -*Released*: 27 June 2025 -- Issue 53326: Don't filter `QuerySelect` in `PrintLabelsModal` -- Issue 53213: Defensive check for view `sorts` array - -### version 6.52.1 -*Released*: 25 June 2025 -- Issue 53120: remove processRequest, use getCallbackWrapper - -### version 6.52.0 -*Released*: 24 June 2025 -- Improve ExecuteSql endpoint wrapper. See #1813. - -### version 6.51.0 -*Released*: 23 June 2025 -- SampleAliquotViewSelector, GridAliquotViewSelector: Fix props types -- SampleTypeAppContext: - - Remove SampleGridButtonComponent, SamplesTabbedGridPanel, getSamplesEditableGridProps, getWorkflowGridQueryConfigs, - SampleStorageButtonComponent, WorkflowGridComponent - - Add omitParentAliases -- useLoadableState: call load function if loader changes -- Remove SampleGridButtonProps -- Remove SamplesTabbedGridPanelComponentProps -- Remove EditableGridLoaderFromSelection -- withQueryModels: resave settings when loading without filters - - This prevents unexpected grid state in our apps when navigating after creating and editing rows - -### Version 6.50.1 -*Released*: 23 June 2025 -- Issue 53267: Display 0 values for identifying fields - -### version 6.50.0 -*Released*: 18 June 2025 -- Update ESLint configuration and depend on `@labkey/eslint-config` - -### version 6.49.2 -*Released*: 17 June 2025 -- GitHub Issue 748: "View Assay Results for Selected" gives error when no rows have sample IDs - -### version 6.49.1 -*Released*: 16 June 2025 -- GH Issue 796: App assay Samples > Find Derivatives in Sample Finder not working for field with special characters - - update getLegalIdentifier to include separator param - - FindDerivativesMenuItem update to allow titleCol prop to be passed in -- GH Issue 740: Disable "Find Derivatives in Sample Finder" if grid has no rows - -### version 6.49.0 -*Released*: 11 June 2025 -- Remove SOURCE_TYPE_KEY constant - -### version 6.48.1 -*Released*: 10 June 2025 -- Update `AppLink` to extend all props of `AnchorHTMLAttributes` -- Update `MenuItem` to use `AppLink` -- Update all usages of `MenuItem` to pass `AppURL` where possible - -### version 6.48.0 -*Released*: 9 June 2025 -- Issue 52556: Add data-fieldkey attribute to grid header elements and input elements (part 2) - - FileInput: drop the "-fileUpload" suffix from inputId - - EntityParentType model not to use capitalizeFirstChar() in generateFieldKey() - - EntityParentType model to set fieldKeyPath in generateColumn() - -### version 6.47.0 -*Released*: 6 June 2025 -- Issue 52595: Storage editor check in fails if user doesn't have perm to update sample amount/units - - export updateSampleStorageData() and SampleStorageData - - add isDiscard param to updateSampleStorageData() - -### version 6.46.1 -*Released*: 6 June 2025 -- Issue 53071: Entering more than three digits for milliseconds in a time field causes the value to disappear -- Issue 52820: Sample Manager: editing datetime/time fields in app with display format could result in time precision loss - - Updated `parseTime` util to be more flexible - - Added `getPickerFormatWithPrecision` util that respects both field's format and selected date/time precision - -### version 6.46.0 -*Released*: 4 June 2025 -- Issue 52527: Implement new method for determining primary app id - -### version 6.45.1 -*Released*: 3 June 2025 -- Issue 52959: LKSM/LKB: Existing file not shown in Bulk Edit - - Update `getCommonDataValues` to retain full data map for file fields - - Update `FileInput` to set init value so diff can be generated correctly - -### version 6.45.0 -*Released*: 2 June 2025 -- Export Loader type -- DataTypeSelector: Fix react key error - -### version 6.44.4 -*Released*: 2 June 2025 -- QueryModel: add isQueryInfoLoaded -- withQueryModels: be more defensive when loading rows and total count - -### version 6.44.3 -*Released*: 28 May 2025 -- Issue 52925: App export to csv/tsv ignores filter with column containing double quote - - Add `encodeFormDataQuote` util to encode `"` and its encoded form `%22` - - Encode form params for exportRows actions - -### version 6.44.2 -*Released*: 28 May 2025 -- Issue 53164: AssayPicker.tsx gives JS error if no specialty assay providers available for server - -### version 6.44.1 -*Released*: 28 May 2025 -- Introduce `getTransferItemDirectoryEntry` to centralize handling/wrapping of calling `webkitGetAsEntry()` on a `DataTransferItemList` item. -- Address Issue 53149 by updating endpoint wrapper to be tolerant of invalid payload upon success. - -### version 6.44.0 -*Released*: 27 May 2025 -- QueryModel/QueryConfig change useSavedSettings from boolean to enum SavedSettings - - Consumers can now opt into 'none', 'all', or 'noFilters' - -### version 6.43.3 -*Released*: 26 May 2025 -- Migrate `isSetEqual` to `@labkey/components`. Extend with additional support for deep comparison. - -### version 6.43.2 -*Released*: 23 May 2025 -- Add detailed auditing of domain changes & comment ability - - include `CommentTextArea` in `BaseDomainDesigner` for supplying user provided comment for domain updates - - wire up `auditUserComment` for `SampleTypeDesigner`, `DataClassDesigner` and `AssayDesignerPanels` - -### version 6.43.1 -*Released*: 23 May 2025 -- Issue 53055: Check for multiple values in single value column - -### version 6.43.0 -*Released*: 22 May 2025 -- AppURL - - make container and product aware - - add fromMenuUrl static method -- Add AppLink - - Use AppLink any time you need -- Add useAppNavigate - - Use this when you need to navigate, instead of ReactRouter navigate - - Can handle navigating to locations outside of our apps -- DefaultRenderer: Use AppLink - - Issue 53021: Grid Column Renderers can break the back button on pages using useRouteLeave -- NavItem: Use AppLink -- Remove createProductUrl -- Remove createProductUrlFromParts -- Remove createProductUrlFromPartsWithContainer -- Remove getHref -- Rename ProductClickableItem to ProductNavigationItem -- ServerNotificationsConfig: remove unnecessary attributes -- ServerActivityList: convert to FC, use AppLink - -### version 6.42.0 -*Released*: 14 May 2025 -- Issue 52934: Filter unit options when updating a type that has samples with units - -### version 6.41.0 -*Released*: 12 May 2025 -- Issue 52773: Update `QuerySelect` to manufacture selectable items for not found results. -- Dynamically recompute warning and continue to display until unresolved values are no longer "selected". -- Revise`quoteValueColumnWithDelimiters` to only modify `value` and `displayValue` when necessary. Stop mutating/removing other properties. -- `SelectInput`: Support "notFound" styling for multi-value selected options - -### version 6.40.2 -*Released*: 6 May 2025 -- Issue 52773: display warning for unresolved form lookup values - -### version 6.40.1 -*Released*: 6 May 2025 -- Issue 52556: Add data-fieldkey attribute to grid header elements and input elements - -### version 6.40.0 -*Released*: 5 May 2025 -- Issue 52504: Expose validate lookup setting for sample lookup and turn on by default - -### version 6.39.1 -*Released*: 2 May 2025 -- Issue 52979: App grid customize view doesn't expand lookup field with special char -- Issue 52472: Re-clicking the Source Types, Sample Types or Assay links in the mega menu removes the sort=Name parameter from the url -- Customize view available field data-fieldkey attribute to use encoded fieldKey values - -### version 6.39.0 -*Released*: 2 May 2025 -- Export `getSourceDomainDefaultSystemFields` - -### version 6.38.2 -*Released*: 30 April 2025 -- Remove remnants of Edit with Grid from Bulk Edit modal - - Remove unneeded parameters for `EditableGridLoaderFromSelection` and `convertQueryDataToEditorData` - -### version 6.38.1 -*Released*: 24 April 2025 -- Issue 52929: App hit selection summary grid doesn't render hit selection check icon if assay name ends with colon - -### version 6.38.0 -*Released*: 23 April 2025 -- Issue 52326: Copy/paste of date values across cells changes date formats -- Add deprecation comment to getSnapshotSelections -- Add createSnapshotSelectionKey and createOrderedSnapshotSelectionKey to Query APIWrapper - -### version 6.37.0 -*Released*: 21 April 2025 -- Package Updates - -### version 6.36.6 -*Released*: 21 April 2025 -- Fix `SchemaQuery.parseSelectionKey` to account for view name in selection key - -### version 6.36.5 -*Released*: 18 April 2025 -- Issue 52156: Editable grid cell with dropdown loses first input character - - SelectInput: load async `defaultInputValue` when provided. - - QuerySelect: start with model, support deferred searches. No more `null` render cycles. - - Defer clearing cell `recordedKeys` so that they are utilized for the `defaultInputValue` of select input cells. - -### version 6.36.4 -*Released*: 17 April 2025 -- Issue 52536: Sample Manager: time format HH:mm:ss.SSS issues - - update `getJsonTimeFormatString` to use `ISO_LONG_TIME_FORMAT_STRING` - - initializing datepicker selection of time to have 0 millisecond - - fix detail editing ignoring seconds and milliseconds - - fix bulk add to editable grid with wrong time format - -### version 6.36.3 -*Released*: 15 April 2025 -- Use `fromZonedTime` from `date-fns` package to compare dates against server dates in `isDateTimeInPast` utility function. -- Check legend data exists in `HorizontalBarSection` -- Convert `ItemsLegend` to a functional component - -### version 6.36.2 -*Released*: 11 April 2025 -- Issue 52321: LKSM/LKB: Edit Lineage grid should show Parent or Source columns with aliases by default - - add `additionalParentTypes` param to `getOriginalParentsFromLineage` - - add `omitParentAliases` to `LineageEditableGridProps` - -### version 6.36.1 -*Released*: 11 April 2025 -- Issue 52780: URLResolver assay fix for handling splitting of assay URL to account for protocol name with consecutive periods or ending in period - -### version 6.36.0 -*Released*: 10 April 2025 -- FolderAPIWrapper.getMultipleDataTypeExcludedContainers: return cache friendly result -- createSnapshotSelectionKey: use a separator between the original key and the uuid -- Add createOrderedSnapshotSelectionKey -- SchemaQuery.parseSelectionKey: Support snapshot selections -- Remove saveOrderedSnapshotSelection - -### version 6.35.2 -*Released*: 10 April 2025 -- Merge from release25.4-SNAPSHOT to develop - - includes changes from 6.34.5 #1770 - -### version 6.35.1 -*Released*: 9 April 2025 -- Issue 52667: null value for amount should remain undefined -- Add spacing between file icon and name in `FileAttachmentEntry` and `FileInput` components -- Issue 52275: Limit length of custom label on fields to 200 - -### version 6.35.0 -*Released*: 4 April 2025 -- Issue 47595: Manage Sample Statuses page in LKS should not allow adding new status in child folder -- Add null check for ConfirmImportTypes - -### version 6.34.5 -*Released*: 7 April 2025 -- Issue 52737: Drag/Fill modifying cells outside of the drag/fill range of cells - -### version 6.34.4 -*Released*: 2 April 2025 -- Issue 52050: App chart builder modal to handle field names with special characters in input selection - -### version 6.34.3 -*Released*: 1 April 2025 -- Issue 52532: better messaging for ignored fields from files - -### version 6.34.2 -*Released*: 1 April 2025 -- Merge from release25.3-SNAPSHOT to develop - - includes changes from 6.26.8 #1761 - - includes changes from 6.26.9 #1760 - -### version 6.34.1 -*Released*: 28 March 2025 -- Issue 52311: Mark unresolved lookup values in editable grid with a warning - -### version 6.34.0 -*Released*: 28 March 2025 -- Add `createSnapshotSelectionKey` - - Used to snapshot selections for a given QueryModel without needing to use the server side snapshot API or - useSnapshotSelections flag - -### version 6.33.0 -*Released*: 28 March 2025 -- Issue 52068: Filtering on a value with a semicolon is incorrectly displayed in the filter modal facet filter listing - - getFilterValuesAsArray to account for multivalued filter types before splitting string value - - FilterExpressionView to handle value array for showing multivalued filter type textarea - -### version 6.32.2 -*Released*: 25 March 2025 -- Issue 52608: Field names for calculated column validation need to escape quotes in executeSql query - -### version 6.32.1 -*Released*: 25 March 2025 -- Merge from release25.3-SNAPSHOT to develop - - includes changes from 6.26.7 #1749 - -### version 6.32.0 -*Released*: 24 March 2025 -- Add `test-to-file` script -- `Cell`: ignore readOnly state when handling certain events -- Update `dragFillEvent` to detect and apply padding during drag fill - - Issue 52253: Editable grid drag and fill removes internal zeros - - Issue 51584: Editable grid does not delete values in fields if drag-select started in a read-only field -- Update `dragFillEvent` to generate a TSV then use our underlying paste handling code to insert the drag filled data - - Issue 52347: EditableGrid: Drag filling Sample IDs doesn't resolve samples - - Issue 52412: EditableGrid: Drag Filling Lookups with special characters doesn't work -- `EditableGrid`: pass queryFilters when rendering bulk add - - Issue 52371: Bulk Add Units list isn't filtered to match Sample Type when inserting samples - -### version 6.31.12 -*Released*: 21 March 2025 -- Issue 52477: Sample workflow custom fields: edit field inline with special characters -- Issue 52511: Sample Manager: Workflow custom time only field fails to clear value -- Issue 52282: Job/Task dates get shifted when client is in a different time zone -- Issue 52543: Sample Manager: lookup field that looks up to a list with auto key and field containing special character fails to resolve lookup values - -### version 6.31.11 -*Release*: 19 March 2025 -- Issue 51982: QueryModel useSavedSettings requires containerPath to be set - - to prevent inadvertent cross-folder saved settings from being applied - - applySavedSettings in withQueryModels for both the initModels case and the addModel case -- Issue 52509: TemplateDownloadButton fix to pass openInTab = true -- Issue 52147: Customize View modal fix to get out of column title edit mode to allow for column reorder - -### version 6.31.10 -*Release*: 19 March 2025 -- Merge from release25.3-SNAPSHOT to develop - - includes changes from 6.26.6 #1750 - -### version 6.31.9 -*Release*: 18 March 2025 -- Expose `enabled` as a public property on `LabelPrintingContextProps`. Default test environment context to `false`. -- Support initialization of `enabled` in `LabelPrintingContextProvider`. -- Default `canPrintLabels` to `false` - -### version 6.31.8 -*Release*: 18 March 2025 -- Issue 52264: Include `viewName` when building query parameters for QueryController selectX actions -- Issue 52189: don't show option to validate user lookups - -### version 6.31.7 -*Released*: 17 March 2025 -- Issue 52533: LKSM: Error creating samples from details pages with Sources with a colon in the name - - Move createEntityParentKey from premium and switch to use '|' for schema|query|keyValue delimiter - - Add parseEntityParentKey util - -### version 6.31.6 -*Released*: 13 March 2025 -- Issue 52430: Sample Manager: sample names with newline characters - -### version 6.31.5 -*Released*: 13 March 2025 -- Issue 52367: Don't show name generation message when editing a name - -### version 6.31.4 -*Released*: 12 March 2025 -- Merge from release25.3-SNAPSHOT to develop - - includes changes from 6.26.4 #1735 - - includes changes from 6.26.5 #1741 - -### version 6.31.3 -*Released*: 10 March 2025 -- Add `isTestEnv()` and `setIsTestEnv()` methods which allow for external packages to configure `@labkey/components` - as running in a test environment. - -### version 6.31.2 -*Released*: 10 March 2025 -- Fix breadcrumb separator scss to apply to .app-body and .li-modal - -### version 6.31.1 -*Released*: 9 March 2025 -- Clean up smart quotes usages - -### version 6.31.0 -*Released*: 7 March 2025 -- Bump api-js -- QueryFormInputs - - Fix React Keys error - - Allow file changes for cross-folder selections - -### version 6.30.0 -*Released*: 6 March 2025 -- Template download button updates - -### version 6.29.0 -*Released*: 6 March 2025 -- APIKeysPanel: refactor component - - Underlying grid can always expect a grid model - -### version 6.28.0 -*Released*: 4 March 2025 -- withQueryModels: add onModelChange to Actions - - onModelChange is an action to call after a user has done something to alter the underlying data for a QueryModel - e.g. delete or update rows -- `getGridIdsFromTransactionId`: actually return strings - -### version 6.27.0 -*Released*: 4 March 2025 -- Issue 52072: Text choice field values to handle | character within values - - PropertyValidator.joinValidValues() and PropertyValidator.splitValidValues() - -### version 6.26.9 -*Released*: 31 March 2025 -- Issue 52616: LKSM: When two lineage alias columns are in a file we silently ignore one - - Add warning about duplicate columns in file preview panel - - Show duplicate columns in preview grid - -### version 6.26.8 -*Released*: 28 March 2025 -- Issue 52658: - - Use raw values for units and stored amounts in `BulkUpdateForm` - - Don't show text about "Edit with Grid" if that button won't be shown - -### version 6.26.7 -*Released*: 20 March 2025 -- Update `ISO_DATE_TIME_FORMAT_STRING` constant to match server. -- Export JSON date format utility functions from the package. - -### version 6.26.6 -*Released*: 18 March 2025 -- Issue 52535: Don't match lineage columns to raw column captions - -### version 6.26.5 -*Released*: 7 March 2025 -- Issue 52477: Sample workflow custom fields: edit field inline from Job Overview page doesn't save lookup fields with special characters - -### version 6.26.4 -*Released*: 5 March 2025 -- Issue 51091: Product menu endpoints return objects -- define `SuccessDataResponse` to ease adding typing for endpoint response payloads - -### version 6.26.3 -*Released*: 25 February 2025 -- Issue 52341: App chart render queryConfig to support parameterized queries - -### version 6.26.2 -*Released*: 25 February 2025 -- Issue 52304: Sample Manager: Edit Lineage in grid not saving updates if names contains comma - -### version 6.26.1 -*Released*: 24 February 2025 -- Issue 52337: ensure that items being excluded from view customization are fields, not ancestor nodes - -### version 6.26.0 -*Released*: 21 February 2025 -- Issue 51877: Allow calculated fields for list title column - -### version 6.25.0 -*Released*: 19 February 2025 -- Add new `InternalSpacesWarning` component to warn when values contain multiple spaces between words -- Use component in `EntityDetailsForm`, `QueryFormInputs`, `AssayPropertiesInput`, and `TextInput` -- Do some more error message resolution - -### version 6.24.2 -*Released*: 18 February 2025 -- Issue 52167: Update isCalculatedFieldsEnabled() check for LKS distributions - -### version 6.24.1 -*Released*: 18 February 2025 -- Issue 52092: Introduce useContainerPath - -### version 6.24.0 -*Released*: 17 February 2025 -- Bump `@labkey/api` and `@labkey/build`. -- Distribution now includes source maps. - -### version 6.23.1 -*Released*: 14 February 2025 -- Misc 25.3 fixes - - Issue 52228: App using an Identifying field that's required errors during sample import - - Issue 52230: App broken link under Calculated Columns data field hover tooltip - -### version 6.23.0 -*Released*: 13 February 2025 -- Remove usages of encodePart when dealing with data rows for update cases - - EditableGridLoaderFromSelection not to encodePart() in the data rows, leave keyed by column name as it comes from server - - BulkUpdateForm not to encodePart() when comparing with original data, use QueryInfo to lookup column instead - - Fix up sample aliquot-only vs sample-only fields to use fieldKey instead of name - - getSampleIdentifyingFieldGridData() to use column.index instead of column.name for the key - -### version 6.22.4 -*Released*: 12 February 2025 -- Issue 51973: LIMS: Only one person's updates to templates are saved if two admins are working concurrently - -### version 6.22.3 -*Released*: 12 February 2025 -- Merge from release25.2-SNAPSHOT to develop - - includes changes from 6.20.3 #1714 - -### version 6.22.2 -*Released*: 11 February 2025 -- LKSM: Add numbered cells for terminal storage - - fix style for Storage properties panel radio button position - - add StoragePositionNumber field to SampleFinder filter cards - -### version 6.22.1 -*Released*: 11 February 2025 -- Issue 52193: Update `QueryColumn.isImportColumn` to match on caption fully stripped of spaces - -### version 6.22.0 -*Released*: 7 February 2025 -- Only show 'Discussion Threads' Advanced Setting in Lists if relevant Deprecated Feature is turned on - -### version 6.21.3 -*Released*: 6 February 2025 -- Add displayName to various components -- LockIcon: remove unused prop, add displayName, format code -- Remove ValueList -- AutoLinkToStudyDropdown: improve formatting, use memo - -### version 6.21.2 -*Released*: 6 February 2025 -- AppContext cleanup of components that can now be directly imported from ui-premium (previously cross subpackage) - - includes AddSamplesToStorageModalComponent, JobsButtonComponent, ReferencingNotebooksComponent, SampleStorageLocationComponent, SampleStorageMenuComponent - -### version 6.21.1 -*Released*: 5 February 2025 -- Issue 52143: Grid paging parameter in URL is not always respected - - Fix how we parse the URL to calculate page offset - -### version 6.21.0 -*Released*: 4 February 2025 -- Issue 52151: resolve assay batches/runs from search results -- Resolve an icon for assay batch and assay run search results - -### version 6.20.3 -*Released*: 11 February 2025 -- Issue 52197: use current container when querying for groups with permissions for job and task assignments - -### version 6.20.2 -*Released*: 31 January 2025 -- Merge from release24.11-SNAPSHOT to develop - - includes changes from 5.20.7 #1705 - -### version 6.20.1 -*Released*: 30 January 2025 -- Issue 52007: Filtering blank with more than 250 options won't show check mark - -### version 6.20.0 -*Released*: 30 January 2025 -- Fix Issue 51909: Hit Selection Dialog should show field-modal__field_dot next to fields that have criteria -- Fix Issue 51421: Inconsistent behavior when hitting `Shift` + `Home/End` in the editable grid -- Fix Issue 51897: Grid loses paging control and shows "No data" when samples in a filtered view are updated - - We now render pagination buttons when the user is out of bounds, and the previous button goes to the last page -- EditInlineField: Add optional validation props for date fields -- Convert Pagination to FC -- Convert Pagination, PageMenu, PageinationInfo tests to RTL - -### version 6.18.2 -*Released*: 29 January 2025 -- Merge from release25.1-SNAPSHOT to develop - - includes changes from 6.10.3 #1700 - -### version 6.18.1 -*Released*: 29 January 2025 -- Issue 39517: Assay importRun to include display value in the row data for sample lookup columns - -### version 6.18.0 -*Released*: 29 January 2025 -- QueryModel: rename getSelectedIdsAsInts to intSelections, convert to `get` method -- Fix types for "sampleIds" variable - - Despite being typed as string[] it is actually always number[] -- Rename getFieldLookupFromSelection to getLookupRowIdsFromSelection - -### version 6.17.3 -*Released*: 28 January 2025 -- Issue 52082: default `SearchPanel` to `encodeQuotes: true` - -### version 6.17.2 -*Released*: 27 January 2025 -- Ability to Edit Sample IDs in the Grid - - Add `canEditName` to `OperationConfirmationData` - -### version 6.17.1 -*Released*: 26 January 2025 -- Issue 52066: LKSM: Editing aliquots in UI is treated as parent samples if the default grid view as a saved filter on IsAliquot field - -### version 6.17.0 -*Released*: 23 January 2025 -- Add support for conditional formatting in LIMS and SDMS products - - Update `DefaultRenderer`, `UserDetialsRenderer` and `AttachmentCard` to use provided conditional formatting - - Add utility method `getDataStyling` for use in other components - -### version 6.16.0 -*Released*: 20 January 2025 -- Update Assay Design Transform Script config to include 'Run on Import/Edit' boolean options - -### version 6.15.0 -*Released*: 20 January 2025 -- Export useLoadableState -- Add useModalState - -### version 6.14.1 -*Released*: 17 January 2025 -- Workflow, Group Assignment & Notifications - - Add `groups` to User model - - Fix `SelectInput.initOptions` when options have subgroups - - Modify `FetchGroups` to check permissions - - Modify `UserSelectInput` to include groups - -### version 6.14.0 -*Released*: 16 January 2025 -- Remove getDisambiguatedSelectInputOptions - -### version 6.13.0 -*Released*: 16 January 2025 -- Add `OptionComponent` prop to `QuerySelect` in replacement of the `optionRenderer` prop which furnishes more useful props to the option rendering component. -- Update `request` options to exclude `scope` and extend `Ajax.RequestOptions`. Package export `request`. -- Introduce `useTimeout` hook that wraps timeout functionality for React components. -- Add `abortOnDismount` optional parameter to the `useRequestHandler` hook so that requests can be aborted automatically when the hook is dismounted. -- Remove unused utilities `intersect` and `toLowerReducer`. - -### version 6.12.0 -*Released*: 15 January 2025 -- Issue 51908: increase precision for stored amounts to nanoliters and nanograms - -### version 6.11.6 -*Released*: 15 January 2025 -- Merge from release25.1-SNAPSHOT to develop - - includes changes from 6.10.2 #1689 - -### version 6.11.5 -*Released*: 10 January 2025 -- Issue 51824: TSV/CSV file import ignore lines that start with # -- Issue 51918: : Sample Manager: default import template downloaded from samples types listing grids doesn't include import alias column - -### version 6.11.4 -*Released*: 9 January 2025 -- Issue 51679: App grid header click to find parent TH element if hovering over child element - -### version 6.11.3 -*Released*: 9 January 2025 -- Support 'isActive' prop for NavItem and ITab - -### version 6.11.2 -*Released*: 8 January 2025 -- Merge from release25.1-SNAPSHOT to develop - - includes changes from 6.10.1 #1678 - -### version 6.11.1 -*Released*: 3 January 2025 -- Issue 49044: Add mega-menu back to Admin pages - -### version 6.11.0 -*Released*: 3 January 2025 -- Issue 51879: App grid column header click area above column title should open the menu - -### version 6.10.3 -*Released*: 28 January 2025 -- Merge from release24.11-SNAPSHOT to release25.1-SNAPSHOT - - includes changes from 5.20.6 - -### version 6.10.2 -*Released*: 14 January 2025 -- Merge from release24.11-SNAPSHOT to release25.1-SNAPSHOT - - includes changes from 5.20.5 #1686 - -### version 6.10.1 -*Released*: 3 January 2025 -- Fix cross folder import templates - -### version 6.10.0 -*Released*: 30 December 2024 -- Customizable File Templates for Sources, Sample Types & Assay Designs - - Add `ProductFeature.CustomImportTemplates` - - Modify `FileInput` to support file size validation - - Update TemplateDownloadButton and TemplateDownloadRenderer to query for saved custom templates - -### version 6.9.0 -*Released*: 30 December 2024 -- Update AddEntityButton with new parameter -- Add `getMultipleDataTypeExcludedContainers` to `FolderAPI`. -- Add optional `className` prop to `DeleteIcon` -- export ensureAllFieldsInAllRows for usage in saveRowsByContainer - -### version 6.8.2 -*Released*: 27 December 2024 -- Issue 51816: pasted values from spreadsheet retain new lines and look invalid - -### version 6.8.1 -*Released*: 23 December 2024 -- MultiValueRenderer update for string values wit \n characters, to use white-space CSS to preserve them - -### version 6.8.0 -*Released*: 19 December 2024 -- Add FilterCriteriaRenderer -- Add FilterCriteriaModal -- Add useLoadableState - - Helper hook that takes a loader method and returns loadingState, value, and error -- DomainField: Add filterCriteria -- Render Filter Criteria components in AssayDesignerPanels -- Add `request` method - - `request` is an async wrapper for `Ajax.request` which takes the same config as `Ajax.request` except `success` and - `failure` callbacks. Instead of using `success` and `failure` you `await request(config)` and `catch` errors. - -### version 6.7.0 -*Released*: 18 December 2024 -- Parent type selector updates for adding and removing from EditableGrid - - AddEntityButton asButton property to allow for icon only version - - QueryColumn isParentInput() helper to check for either MaterialInput or DataInput - - EditableColumnMetadata onRemoveColumn optional prop to allow for callback for EditableGrid column removal menu item - - EditableGrid additionalButtons optional prop to allow custom items to be added to grid button bar - - DropdownAnchor - - renamed to DropdownMenu - - add asAnchor property to allow for version without `` tag and href - -### version 6.6.1 -- merge forward v6.1.1 changes - -### version 6.6.0 -*Released*: 17 December 2024 -- Delete FileListing -- Delete FileListingForm -- FileAttachmentEntry: convert to FC, simplify props -- Update file related styles - - Change class names to match BEM style -- Remove duplicate CSS imports -- Remove snapshot tests - -### version 6.5.4 -*Released*: 17 December 2024 -- Update `DateInput` to determine the default date/time from container configuration -- Lineage: be defensive against seed not being set when focusing graph -- Refactor `ColorPickerInput` to a functional component - -### version 6.5.3 -*Released*: 16 December 2024 -- Add restrictions on names of domains - - Update resolveErrorMessage util to handle more scenarios - -### version 6.5.2 -*Released*: 12 December 2024 -- Update `EntityIdCreationModel` with `selectionContainerId` -- Fix `resolveSampleParentTypes` when `orderedRowIds` is undefined -- Fix some error message verbiage - -### version 6.5.1 -*Released*: 11 December 2024 -- RadioGroupInput fix for formsy input usage - - need to call setValue on each change of radio selection - -### version 6.5.0 -*Released*: 10 December 2024 -- Chart builder support for axis layout options - - OverlayTrigger to only close on "click outside" for triggerType="click" - - RadioGroupInput to support click on input label to setValue - - Factor out ChartFieldOption.tsx from ChartBuilderModal.tsx - - ChartFieldOption.tsx support for axis layout options (scale and range) to be set in OverlayTrigger on click - - ChartBuilderModal to support axis layout options from saved config and to update when saving config - - TrendlineOption.tsx update to asymptote min/max inputs to match axis layout options (via OverlayTrigger) - -### version 6.4.1 -*Released*: 9 December 2024 -- Issue 51432: LKSM: special character not working well on various pages - - Warn user about missing quotes when pasting data into editable grid that contains a comma - - Replace `&` with a similar unicode character for lineage graph labels display as vis-network doesn't work well with `&` - -### version 6.4.0 -*Released*: 4 December 2024 -- Remove assays.scss - - Styles moved to utils.scss or ui-premium -- Add utils.scss - - Move util styles from various scss files to utils.scss -- Rename getSelectedData to getSelectedDataDeprecated -- Add getSelectedRows - - This uses the components version of selectRows to fetch the selected data for a QueryModel -- "-spacing" classes renamed - - renamed to "-margin" or "-padding" - -### version 6.3.1 -*Released*: 4 December 2024 -- Reinstate prior removed fn - -### version 6.3.0 -*Released*: 4 December 2024 -- Chart builder support for Trendline option in line chart - - add Trendline option to ChartBuilderModal and support trendlineType in chartConfig - - trendline asymptote min and max inputs for specific curve fit types - - available trendline options (i.e. linear vs non-linear) based on schema prefix - -### version 6.2.1 -*Released*: 3 December 2024 -- Issue 51105: Workflow job links to navigate user to app project home or subfolder accordingly - - export createProductUrlFromPartsWithContainer for use in WORKFLOW_MAPPER - -### version 6.2.0 -*Released*: 3 December 2024 -- Issue 51707: Change "Registry Source Type" to "Source Type" and "Registry" to "Registry Sources" -- Issue 51775: Don't produce link for non-standard assay import if not supported - -### version 6.1.1 -*Released*: 17 December 2024 -- Issue 51864: Unexpected error when trying to add samples to an assay - -### version 6.1.0 -*Released*: 29 November 2024 -- Issue 49016: App admin Groups and Users pages to show in subfolders when applicable - -### version 6.0.2 -*Released*: 29 November 2024 -- Issue 51680: Use proper container path for importing assay data for jobs - -### version 6.0.1 -*Released*: 27 November 2024 -- Incorporate Recent Storage Dashboard Widget - - Modify `HorizontalBarSection` to support `showSummaryTooltip` - - Add `createHorizontalBarCountLegendData` util - - Modify `ItemLegend` to render data with `DefaultRenderer` - -### version 6.0.0 -*Released*: 26 November 2024 -- Move `BarChartViewer` and relatives to `ui-premium` package -- Update `ResponsiveMenuButton` to have `children` property instead of `items` -- Add constants and properties to allow use of a single `SampleGridButtons` component in `ui-premium` -- `SampleCreationType` -> `EntityCreationType` -- Export `parseScientificInt` utility - -### version 5.24.1 -*Released*: 26 November 2024 -- Support Plate Set ELN References - -### version 5.24.0 -*Released*: 19 November 2024 -- Issue 51645: Escape advanced search characters -- Migrate `sanitizeSearchQuery()` implementation to this package and rename to `escapeSearchQuery()`. -- Add `escapeQuery = false` and `escapeQuotes = false` as optional properties on the search API wrapper. - -### version 5.23.0 -*Released*: 18 November 2024 -- Include identifying fields in editable entity grids - sample create/derive/aliquot - - Modify editable grid addRows, addRowsPerPivotValue and addBulkRowsToEditorModel to take custom insertColumns - - Support removeColumns for editable grid - - Add previousEditorModel to EditableGridChange param - - Add readOnlyGridFields to bulkAddProps - -### version 5.22.10 -*Released*: 15 November 2024 -- withAssayModels: filter by "assayName" prop when provided - -### version 5.22.9 -*Released*: 14 November 2024 -- Editable Grid: apply lookupValueFilters when pasting - -### version 5.22.8 -*Released*: 13 November 2024 -- Merge from release24.11-SNAPSHOT to develop - - includes changes from 5.20.3 #1635 - - includes changes from 5.20.4 #1637 - -### version 5.22.7 -*Released*: 12 November 2024 -- DataClassDataType: Update noun to match apps - -### version 5.22.6 -*Released*: 11 November 2024 -- Revert recent change to genCellKey and move the sample field key prefix to the usage in updateCellValuesForSampleIds() - -### version 5.22.5 -*Released*: 7 November 2024 -- Issue 51574: Limit selection for View Assay Results -- Issue 51482: Add metric to track Help link clicks -- Issue 51575: Limit number of samples to print labels for to 1000 - -### version 5.22.4 -*Released*: 6 November 2024 -- QueryInfo.hasIdentifyingFieldsView() to check for identifying fields view existence and if it has more than just the default "Name" column - -### version 5.22.3 -*Released*: 6 November 2024 -- Issue 51495: LKSM: Grid Showing Incorrect Number Selected - - Fixed buildQueryParams util to allow >1 filter values per filter parameter - -### version 5.22.2 -*Released*: 6 November 2024 -- Merge from release24.11-SNAPSHOT to develop - - includes changes from 5.20.2 #1629 - -### version 5.22.1 -*Released*: 5 November 2024 -- Remove combineParentTypes - -### version 5.22.0 -*Released*: 5 November 2024 -- Package updates - -### version 5.21.0 -*Released*: 4 November 2024 -- Add identifying fields to grids when editing via grid for Samples and Sources - - include identifying fields in getSelectionLineageData() - - EditorModel.getUpdatedData() to skip non-userEditable fields when comparing values - - getIdentifyingFieldsEditableGridColumns() to take param for hasProductFolders to determine if Folder should be excluded - -### version 5.20.7 -*Released*: 31 January 2025 -- Issue 52132: EditorModel.getUpdatedData fix to account for lookup columns with column.name key - - For editable grid with sample type identifying fields showing as read-only - -### version 5.20.6 -*Released*: 27 January 2025 -- Issue 52038: Fix problems fields whose names and fieldKeys are different - - Editable grid needs to find columns using names not field key - - detail editing needs to use name instead of fieldKey for changed values - - Fixes for identifying field retrieval and population in the grid - - Update CheckboxInput.tsx and DatePickerInput.tsx to use column.fieldKey for input name prop (to match other input types) - -### version 5.20.5 -*Released*: 13 January 2025 -- Issue 51967: Submit formatted date value from editable grid - -### version 5.20.4 -*Released*: 9 November 2024 -- Use userId instead of email for password related APIs - -### version 5.20.3 -*Released*: 7 November 2024 -- Replace some curly quotes with normal quotes - -### version 5.20.2 -*Released*: 4 November 2024 -- Issue 51563: LKSM: Add additional date and date/time formats - -### version 5.20.1 -*Released*: 31 October 2024 -- Issue 51491: DateTime field should tolerate Date and DateTime pseudo format patterns - -### version 5.20.0 -*Released*: 31 October 2024 -- Bump build -- Convert LoadingSpinner to FC - -### version 5.19.1 -*Released*: 31 October 2024 -- Issue 51557: fix counts for folder deletion summary -- Support optional `containerPath` on `api.security.getDeletionSummaries()` endpoint wrapper - -### version 5.19.0 -*Released*: 31 October 2024 -- Add identifying fields to grids when insert assay data via EditableGrid - - migrate some sample identifying fields utils from `@labkey/premium` - - factor out updateCellKeySampleIdMap() as utility function - - add QueryColumn.isSingleSampleTypeLookup() - - EditorModel.getValuesForColumn() to get cellValues for a single column - - update sample identifying fields utils/actions to take in optional sampleFieldKey prefix - - EditorModel.getUpdatedData() to skip readOnly fields when comparing values - -### version 5.18.0 -*Released*: 29 October 2024 -- Folders: Archive V1 (Hide from view/show hidden) - - Add isArchived to Container class - - Add App.getArchivedFolders util - - Add folder.archiveFolder.api to support archive and restore a folder - - Added FolderColumnRenderer to show archived tag for Folder fields - - Modified ProductMenu to add archived indicator - - Modified FolderMenu to section active vs archived folders - - Modified SearchResultCard and FilterFacetedSelector to show archived tag for folders - - Modified DataTypeFolderPanel to section active vs archived folders and uncheck archived folders by default - - Modified move and create data UIs to exclude archived folder from target options - -### version 5.17.9 -*Released*: 29 October 2024 -- Export isCtrlOrMetaKey - -### version 5.17.8 -*Released*: 29 October 2024 -- Bump `@labkey/build` package dependency - -### version 5.17.7 -*Released*: 28 October 2024 -- Bump `@labkey/api` package dependency - -### version 5.17.6 -*Released*: 28 October 2024 -- Update to `vis-network@9.1.9` -- Add necessary peer dependency `vis-data@7.1.9` to our dependencies -- Simplify typings and adjust API usages to match latest version - -### version 5.17.5 -*Released*: 26 October 2024 -- Remove reference to the experimental flag for plates. - -### version 5.17.4 -*Released*: 25 October 2024 -- Add `SchemaQuery` properties on `AssayDefinitionModel`. -- Refactor `AssayDefinitionModel` to use `ExtendedMap`. - -### version 5.17.3 -*Released*: 23 October 2024 -- Issue 39332: Make sure export started messages shows before export starts in TabbedGridPanel exportTabs case - -### version 5.17.2 -*Released*: 23 October 2024 -- Fix Issue 51359 - - Paste starting from first cell in selection - -### version 5.17.1 -*Released*: 22 October 2024 -- Date/Time formatting simplifications - Settings UI Changes - - Add utils for handling standard date/time formats - - Move getFolderDateTimeHelpBody from ContainerLookAndFeelForm to shared util - - Check blank initial value for SelectInput - - Modified DateTimeFieldOptions to use standard formats and new UI - -### version 5.17.0 -*Released*: 21 October 2024 -- Migrate out all components related to `AssayImportPanels` (i.e. assay run import page) and corresponding functionality. -- Add `checkForDuplicateAssayFiles()` to assay API wrapper. -- Add `getSelection()` to query API wrapper. - -### version 5.16.0 -*Released*: 21 October 2024 -- EditableGridPanel: Remove support for tabs -- SampleTypeAppContext: change parentDataTypes to an array -- SamplesTabbedGridPanelComponentProps: remove withTitle, title props -- Remove getUpdatedDataFromEditableGrid -- Remove applyEditorModelChanges -- EditorModel: - - add getUpdatedData - - add applyChanges -- Remove initEditorModels -- Remove queryModel arg from initEditorModel -- Remove queryModel arg from EditableGridLoader.fetch -- Export EditableGrid -- Remove EditableGridPanel -- Remove EditableGridPanelForUpdate -- Don't export updateSampleStorageData - -### version 5.15.1 -*Released*: 21 October 2024 -- Issue 51422: When not using filters, `clearSelections` can be more efficient - -### version 5.15.0 -*Released*: 17 October 2024 -- Remove properties from `EditableGrid` that support bulk updates when adding to storage - -### version 5.14.1 -*Released*: 17 October 2024 -- Fix verb usage in `resolveErrorMessage`, deriving the present participle of the verb when not provided - -### version 5.14.0 -*Released*: 16 October 2024 -- Calculated fields error handling - - calculated field expression input width change, show examples inline next to textarea, add "click to validate" - - parseCalculatedColumn to first try making an executeSQL call with fake data to catch SQL errors - - parseCalculatedColumn to include PHI check in validation (Issue 51235) - - withQueryModel to retry failed query without calculated fields, set viewError on QueryModel for grid display - - remove experimental feature flag for calculated fields - -### version 5.13.2 -*Released*: 14 October 2024 -- Issue 51056 Samples with single double quotes in the name will not resolve if added as parent samples. -- Issue 51433 Unhandled client side exception when using a parent field in editable grid after clearing the field. - -### version 5.13.1 -*Released*: 14 October 2024 -- Issue 51425: reprocess lineage node "level" on subsequent traversals -- Lineage styling: - - Set `scaleFactor=0.6` (default is 1) for arrows so they render a bit smaller. - - Set `levelSeparation=125` (default is 150) to reduce the space between levels in the graph. - - Set `edgeMinimization=false` (default is true) so that all edges are represented in the graph. - -### version 5.13.0 -*Released*: 7 October 2024 -- Issue 47087: Find Derivatives in Sample Finder to include a selection in filters - -### version 5.12.1 -*Released*: 7 October 2024 -- withAssayModels fix to allow passthrough of ComponentsAPIWrapper - -### version 5.12.0 -*Released*: 7 October 2024 -- Issue 50569: Add description for API keys - -### version 5.11.1 -*Released*: 7 October 2024 -- Issue 51291: Assure product menu closes after click on "empty" link - -### version 5.11.0 -*Released*: 4 October 2024 -- Chart builder in app (part 3) - - updates to chart margins and sizes for chart builder and dashboard - - only show 'x' grid lines for bar and box plots - - Issue 48860: Show "inheritable" checkbox in chart builder for users with proper perm (and if in app home) - - use getContainerFilterForFolder() for chart getQuery request (related to issue 48860) - - remove Chart Builder experimental feature flag - -### version 5.10.0 -*Released*: 1 October 2024 -- Editable Grid: improve validation messages - -### version 5.9.0 -*Released*: 1 October 2024 -- Issue 51254: Limit number of values for multi-valued filter types - -### version 5.8.2 -*Released*: 30 September 2024 -- Issue 51173: LKSM/LKB: Improve naming pattern warning when it contains a field name - -### version 5.8.1 -*Released*: 30 September 2024 -- Issue 51253: Require saving before testing of BarTender connection - -### version 5.8.0 -*Released*: 30 September 2024 -- Lineage Relationships: Optionally Require during Sample Registration - - add 'required' prop to various alias and parent input related models - - add api.domain.getRequiredParentTypes and api.entity.getDataTypesWithRequiredLineage - - updated DomainParentAliases and ParentAliasRow to use new UI and allow setting required parent - - updated ImportAliasRenderer to incorporate required info - - updated SampleTypeDesigner and DataClassDesigner to show new Lineage section for alias - - remove folder level data exclusion for alias data type selection since designers are edited at Home folder - -### version 5.7.0 -*Released*: 27 September 2024 -- Change "Project" to "Folder" throughout the application -- Remove warning banner about shared domains except for domains coming from /Shared - -### version 5.6.1 -*Released*: 27 September 2024 -- Issue 51227: Add metric for number of rows used in editable grid - -### version 5.6.0 -*Released*: 25 September 2024 -- Wire up onBlur for LookupCell -- Export Help component -- Export CellMessages type - -### version 5.5.11 -*Released*: 25 September 2024 -- Issue 51337: LKSM: Can't edit samples where source ID has a comma - - Check quoted parent value with comma before calling JSON.parse, which would remove the quotes - -### version 5.5.10 -*Released*: 24 September 2024 -- Update `fileMatchesAcceptedFormat` utility to check file extension casing in a case-insensitive manner. Refactor away from using `Immutable`. - - Fixes Issue 51331 -- Update `FileAttachmentContainer` to use native `Set` rather than `Immutable.Set`. - -### version 5.5.9 -*Released*: 24 September 2024 -- EditableGrid: Fix issue with pasteEvent not working if user pasted more rows than the grid has - - Fixes issue 51327 - -### version 5.5.8 -*Released*: 24 September 2024 -- Fix Issue 51265 - - We now more consistently trim values and use getValidatedEditableGridValue -- Stop using overflow: scroll - -### version 5.5.7 -*Released*: 20 September 2024 -- Issue 50389: Casing of aliased (parent) sample or source type name can be changed in the editable grid - -### version 5.5.6 -*Released*: 18 September 2024 -- Issue 50998: Add container filter when getting samples from a particular transaction id - -### version 5.5.5 -*Released*: 17 September 2024 -- Issue 50818: add RESOLVE_LSID_MAPPERS to resolve data/material by lsid - -### version 5.5.4 -*Released*: 17 September 2024 -- Add `SchemaQuery` constant for `plate.ReformatTargetPlateSets` query. - -### version 5.5.3 -*Released*: 17 September 2024 -- Add back calculated fields experimental feature flag - -### version 5.5.2 -*Released*: 16 September 2024 -- Calculated fields issue fixes for 24.10 - - DomainForm to handle batching updates for state related to calculated field validation - - Update error messaging for bad SQL related exceptions (Issues 51232 and 51204) - - Study dataset designer to include systemFields based on timepoint type (Issue 51249) - -### version 5.5.1 -*Released*: 12 September 2024 -- Issue 50628: Bump @labkey/api. See https://github.com/LabKey/labkey-api-js/pull/182 - -### version 5.5.0 -*Released*: 12 September 2024 -- Follow-up release fix for v5.4.0. - -### version 5.4.0 -*Released*: 12 September 2024 -- Issue 50331: Cross-folder import of assay data from subfolder plate set should import data into subfolder - -### version 5.3.1 -*Released*: 11 September 2024 -- Merge from release24.9-SNAPSHOT to develop - - includes changes from 4.15.1 #1571 - -### version 5.3.0 -*Released*: 10 September 2024 -- Update `react-datepicker` dependency to align with our `date-fns@3.x` dependency. -- Remove `@types/react-datepicker` dependency as `react-datepicker` now supplies its own typings. - -### version 5.2.0 -*Released*: 9 September 2024 -- Add `@hello-pangea/dnd` as a dependency -- Remove `react-beautiful-dnd` as a dependency - -### version 5.1.1 -*Released*: 9 September 2024 -- Issue 51085: Grid button spacing issue for hover border - -### version 5.1.0 -*Released*: 6 September 2024 -- Issue 51158: Update the text for discarding samples from storage to use "removed" instead - -### version 5.0.0 -*Released*: 5 September 2024 -- withQueryModels: Add reloadModel flag to setOffset -- ***BREAKING CHANGE***: React dependency upgraded to React 18 -- Use PropsWithChildren for all components using children -- Fix issues with document click handlers for menus -- Don't use defaultProps with function components - -### version 4.16.0 -*Released*: 3 September 2024 -- Calculated fields remove experimental feature flag - - DomainRow for calculated fields to set isDragDisabled true - - Add tooltip for DragDropHandle for calculated fields - -### version 4.15.1 -*Released*: 9 September 2024 -- Issue 50700: EditableGrid to account for hidden/readonly rows during cell actions - -### version 4.15.0 -*Released*: 2 September 2024 -- Issue 39332: Provide status when exporting data from a grid in the app - - QueryModel action for addMessage with optional duration (for removing message after N ms) - - Add message to grid after clicking export menu option - -### version 4.14.1 -*Released*: 30 August 2024 -- Consolidate handling of date/time changes in `DatePickerInput`. -- Coerce local timezone for ISO_DATE_FORMAT matching strings in `parseDate`. - -### version 4.14.0 -*Released*: 30 August 2024 -- Update `QuerySelect` to support parameterized queries - -### version 4.13.1 -*Released*: 30 August 2024 -- ELN and storage view tooltip update - - Support isFlexPlacement Popover placement based on available screen space - - check isBiologicsEnabled for isMediaEnabled - - support noLink prop for DefaultRenderer - -### version 4.13.0 -*Released*: 30 August 2024 -- Misc 24.9 issue fixes - - Issue 51123: Assay run import sample lookup fails when coming from a workflow job task - - Issue 51025: Don't allow saving of data in editable grid if there are known errors - -### version 4.12.0 -*Released*: 29 August 2024 -- Add `date-fns` and `date-fns-tz` dependencies -- Remove `moment` and `moment-timezone` dependencies -- Refactor usages of time differences and time math to use date-fns -- Export new `fromDate` and `fromNow` date utility methods -- Remove internal implementation of `jDateFormatParser` - -### version 4.11.0 -*Released*: 27 August 2024 -- Use new `~~identifyingfield~~` view when available for `QuerySelect`'s `PreviewOption` - -### version 4.10.3 -*Released*: 27 August 2024 -- Consolidate EditableGrid read-only cell methods - - remove EditorColumnMetadata.readOnly prop and replace with isReadOnlyCell prop - - remove unused readOnlyColumns prop from BulkUpdateForm - - update QueryInfo getInsertColumns() and getUpdateColumns() to rename param as requiredColumns -- Remove unused useWindowFocusCheckExpiredSession - -### version 4.10.2 -*Released*: 22 August 2024 -- fix `QueryModel.selectedState` so it works on a partially filled last page - -### version 4.10.1 -*Released*: 22 August 2024 -- Issue 50822: Query to get study properties instead of relying on study moduleContext - -### version 4.10.0 -*Released*: 20 August 2024 -- Calculated fields validation of value expression - - update tooltip text and examples for Expression textarea label - - validate expression on component mount and on text area blur - - display validation message or error in textarea footer and set domain row warning state - - SampleTypeDesigner uniqueId field addition warning modal button change - -### version 4.9.0 -*Released*: 20 August 2024 -- Add view customizer for identifying fields for samples and sources - - Update `ColumnSelectionModal` with optional `disabledMsg` property to be shown in popover - - Export `includedColumnsForCustomizationFilter` for use in ui-premium component - - Add new reserved view name - -### version 4.8.0 -*Released*: 19 August 2024 -- Do not export loadEditorModelData -- Remove initEditableGridModel, initEditableGridModels, applyEditableGridChangesToModels, EditableGridModels - - Use initEditorModel, initEditorModels, applyEditorModelChanges instead -- EditableGrid: remove unused and unnecessary props - - allowFieldDisable - - allowRemove - - bordered - - condensed - - lockedRows - - notDeletable - - onSelectionChange - - removeColumnTitle - - showBulkTabOnLoad - - striped - - tabAdditionalBtn - - tabBtnProps -- EditableGrid: remove dependence on QueryModel - - Including utils and action methods used by EditableGrid and those for manipulating EditorModel -- ExportMenu: Remove extraExportMenuOptions - - This feature is no longer used - -### version 4.7.3 -*Released*: 16 August 2024 -- Fix DomainField.fromJS accessing undefined object issue - -### version 4.7.2 -*Released*: 14 August 2024 -- Issue 50924: Sample timeline event details throws error if the parent sample name starts with double quote - -### version 4.7.1 -*Released*: 13 August 2024 -- Issue 50657: Use default view when printing labels from a sample's details page - -### version 4.7.0 -*Released*: 12 August 2024 -- Issue 49966: Add new `StorageUnitLabel` column as a known column to allow attaching a label to a box created during import - -### version 4.6.0 -*Released*: 8 August 2024 -- Issue 50833: Renaming a project doesn't get fully reloaded until page refresh - - ProjectSettings to use getIsDirty and setIsDirty from parent component and to pass renamedProject to onSuccess - - Move several admin setting project related components to @labkey/premium - -### version 4.5.1 -*Released*: 7 August 2024 -- Merge from release24.8-SNAPSHOT to develop - - includes changes from 4.4.3 #1545 - -### version 4.5.0 -*Released*: 6 August 2024 -- Remove `formsy-react` dependency. -- Inline `formsy-react` implementation. This is a port of v2.3.2. - -### version 4.4.3 -*Released*: 6 August 2024 -- Mark new `Visit Label` field as a study field - -### version 4.4.2 -*Released*: 31 July 2024 -- Fix `isTransformScriptsEnabled` check - -### version 4.4.1 -*Released*: 30 July 2024 -- BarTender: supply file export needed for BarTender integration - - Update label and icon for bartender label printing option - - Support new "Download template" option for bartender with FieldKey instead of column title - -### version 4.4.0 -*Released*: 30 July 2024 -- Add LIMS product and product feature checks for transform scripts and charts - - Add utility methods for checking other features (nonstandard assays, study linking, registry, general LKS support) - - Refactors for sharing renderer definitions - - add utility method for registering pipeline listeners - -### version 4.3.1 -*Released*: 30 July 2024 -- Issue 50224: link-to-study does not accept visit labels instead of sequencenums - -### version 4.3.0 -*Released*: 25 July 2024 -- Issue 50449: App grid filter to expand icon click area to remove filter value -- Issue 50537: LineageDetail to only show the "Properties" column in the detail view for the exp schema -- Issue 49754: App charts to expand width and scroll horizontally to match LKS -- Issue 49753: App charts to use formattedValue in response row objects for bar/box plot tick labels - -### version 4.2.0 -*Released*: 24 July 2024 -- Package updates - -### version 4.1.0 -*Released*: 24 July 2024 -- Calculated Columns support in the Field Editor - - add valueExpression to DomainField model - - add calculatedFields to the DomainDesign - - add CalculatedFieldOptions to DomainRow and Calculation to PropDescType - - hide some AdvancedSettings for calculated fields - - use rangeURI for calculated fields to determine type specific expanded row options to show - - add ProductFeature.CalculatedFields and isCalculatedFieldsEnabled() helper - - add experimental feature flag for calculated fields in the Field Editor - -### version 4.0.7 -*Released*: 23 July 2024 -- Add `footerContent` prop on `Modal` which is passed through as the `children` of `ModalButtons`. -Useful for rendering content to the left of the modal confirmation buttons. - -### version 4.0.6 -*Released*: 20 July 2024 -- Issue 50742: Reset/Update genId result in error if samples exists only in child folders -- Issue 50709: LKSM: Pasting in editable grid when an aliquot field is between two sample fields doesn't work -- Issue 50650: LKSM: SampleFinder doesn't show ancestor column data if default view also contains the same ancestors -- Issue 42183: SM: Need better indication that comment in a workflow task has not been saved. -- Issue 50607: Updated field labels are not shown in the grid - -### version 4.0.5 -*Released*: 17 July 2024 -- EditableGrid: bulk data resolve public lookups - -### version 4.0.4 -*Released*: 12 July 2024 -- Issue 50661: Update `FilterFacetedSelector` to cancel requests as needed while typing - - move `useRequestHandler` hook from ui-premium to here -- Issue 50447-adjacent: Impose limit on number of items to add to picklist for different button/menu item rendering - -### version 4.0.3 -*Released*: 12 July 2024 -- getSelectedData: use async implementation, accept columns as `string[]` -- EditableGrid: action `getLookupDisplayValue()` should support resolving string values -- BulkUpdateForm: remove `requiredDisplayColumns` prop - -### version 4.0.2 -*Released*: 12 July 2024 -- Editable Grid Improvements: Validation of fields - - Update invalid cell style - - Add util to validate cell values based on column type and properties - - Wire up cell validation on cell modify/blur/paste/fill - - Handle missing required cell value check on Submit - -### version 4.0.1 -*Released*: 12 July 2024 -- SelectRows: support optionally requesting metadata - -### version 4.0.0 -*Released*: 10 July 2024 -- Remove usages of react-bootstrap -- Remove FieldEditForm -- Popover/Tooltip: support fixed positioning -- Remove react-boostrap and @types/react-boostrap dependencies - -### version 3.57.1 -*Released*: 8 July 2024 -- Issue 50640: Update `MenuSectionModel` URL construction to link to `runs` page for assay names -- Issue 50753: Fix link resolution for sample type names that are numbers - -### version 3.57.0 -*Released*: 3 July 2024 -- Add styling for button.clickable-text - -### version 3.56.2 -*Released*: 28 June 2024 -- Update MenuSectionItem to accept ReactNode for label attribute - -### version 3.56.1 -*Released*: 28 June 2024 -- Remove reference to `MaterialLookupColumnRenderer` - -### version 3.56.0 -*Released*: 27 June 2024 -- Use `LabelOverlay` in headers for grids - - Update display of Description in `LabelOverlay` to preserve white space - - Update `EditableGrid.renderColumnHeader` to use `LabelOverlay` if custom tool top is not configured - - Add `DomainFieldMetadata` component to be used as new `HelpTipRenderer` when appropriate - -### version 3.55.2 -*Released*: 26 June 2024 -- Add support in BulkUpdateForm for staging changes to EditorModel without transacting changes - -### version 3.55.1 -*Released*: 26 June 2024 -- Issue 49025: Assay run import fails if time format is kk:mm -- Issue 50715: Barcode field set as required prevents sample creation because of validateData() check -- Issue 50605: Field editor drag-n-drop to reorder prevents dragging of a field after it is moved the first time - -### version 3.55.0 -*Released*: 25 June 2024 -- Grid: improve styling for sticky headers - - No longer compute height via JS - - Use max-height, set via CSS - -### version 3.54.0 -*Released*: 24 June 2024 -- Issue 48439: EditableGrid drops invalid date values when calling insertRows/saveRows - - add getValidatedEditableGridValue() to centralize handling of grid data parsing for insert and update case - - return original date string value when unable to parseDate() -- Remove some deprecated code after issue 50589 changes (remove export editable grid option) - -### version 3.53.6 -*Released*: 20 June 2024 -- Issue 50483: Creating a required sample-only field after an aliquot field errors on add -- Issue 50023: Import button on Assay Run page is not enable after creating a new aliquot and adding them to a run result. -- Issue 50608: View Assay Results from Storage Grid View errors -- Issue 50684: LKSM: Update descriptions for Source & Sample Type designer - -### version 3.53.5 -*Released*: 18 June 2024 -- Separate storage styling from editable grid - -### version 3.53.4 -*Released*: 18 June 2024 -- Issue 50533: Support passing through a `timezone` prop on `EditInlineField` - -### version 3.53.3 -*Released*: 18 June 2024 -- Add support for Ancestor nodes on All Samples grids - - Update `CustomizeGridViewModal` to not allow multiple levels of ancestors to be added - -### version 3.53.2 -*Released*: 14 June 2024 -- Feature Request 50121: Support multi-line cells in editable grid - -### version 3.53.1 -*Released*: 13 June 2024 -- Convert usages of OverlayTrigger off of react-bootstrap - -### version 3.53.0 -*Released*: 12 June 2024 -- Issue 50589: Remove option to export editable grid data - -### version 3.52.0 -*Released*: 10 June 2024 -- Sample Type & Source Type Designer Roles - - Add entityApi.isDataTypeEmpty to check if a design has data - - Allow hiding of Projects section in designer - -### version 3.51.0 -*Released*: 10 June 2024 -- Assay import support for results domain file fields - - FileAttachmentForm to send back updatedFiles map onFileRemoval - - FileAttachmentContainer to support includeDirectoryFiles to recursively include files in a dropped directory - - FileAttachmentContainer to support error check for total file size - - RunDataPanel update to show FileAttachmentForm for results domain file fields - - AssayWizardModel.prepareFormData to include resultsFiles for import run API post and update progress bar estimate and message - - uploadAssayRunFiles fix for maxFileSize to not include batchFiles or runFiles as they are unrelated - - only shown in assay import UI for LKB at this time - -### version 3.50.0 -*Released*: 10 June 2024 -- Issue 49882: App editable grid support for locking column header and left columns on scroll - -### version 3.49.0 -*Released*: 6 June 2024 -- getSelectionLineageData: make selection `Set` instead of `List` - - It's always sourced from QueryModel.selections -- SamplesEditableGridProps: remove displayQueryModel - -### version 3.48.1 -*Released*: 4 June 2024 -- Issue 41718: Domain Designer Field Imports should observe auto-increment fields - - Fix displayed Data Type of auto int field on existing List - -### version 3.48.0 -*Released*: 4 June 2024 -- Fix Issue 48377: LKSM/LKB: Editable grid allows pasting into cells that are marked as read-only -- Fix Issue 48242: LKSM/LKB: Editable Grid - Right clicking a multi-cell selection doesn't work as expected -- EditableGrid: Fix issue where cut (cmd/ctrl + x) would delete read only cell values -- EditableGrid: Add hideReadonlyRows prop -- QueryFormInputs: Remove unused prop componentKey - -### version 3.47.0 -*Released*: 30 May 2024 -- Expose `registerInputRenderer` as a way for external package usages of `@labkey/components` to register custom form/grid input renderers. -- Introduce `QuerySelect.groupByColumn` which allows for results within query select to be grouped by another column. This in turn is backed by `SelectInput.formatGroupLabel` when rendering options. -- Add a new `includeEmptyParams` parameter to `AppURL.addParams()`. By default `addParams()` will now not include parameters where the parameter value is `undefined` or `null`. -- Issue 49953: fix shift-select on edge cells - -### version 3.46.5 -*Released*: 29 May 2024 -- Issues 50507 and 50453: Fields named 'Color' should not interfere with status colors -- Issue 50498: Use proper container for status deletion - -### version 3.46.4 -*Released*: 28 May 2024 -- Issue 50354: LKSM: Include indicator of unavailable file in apps - -### version 3.46.3 -*Released*: 21 May 2024 -- Fix Issue 50455 - -### version 3.46.2 -*Released*: 21 May 2024 -- Issue 50347 LKSM: Data Field Name in Naming Pattern Causing Error - -### version 3.46.1 -*Released*: 21 May 2024 -- Merge from release24.3-SNAPSHOT to develop - - includes changes from 3.24.12 #1496 - -### version 3.46.0 -*Released*: 16 May 2024 -- Add `CheckboxLK` - - This is a replacement for react-boostrap's Checkbox - - It will be renamed to `Checkbox` when we stop using the react-bootstrap version -- Reduce usages of various react-bootstrap components (e.g. FormGroup, FormControl) -- OverlayTrigger: Don't require an `id` -- Add `withServerContext` - -### version 3.45.1 -*Released*: 16 May 2024 -- Introduce `EditorModel.convertQueryModelDataToGridResponse()` to streamline initializing data from a `QueryModel` for an `EditorModel`. - -### version 3.45.0 -*Released*: 16 May 2024 -- Issue 50363: Cross Folder lookup editable grid copy/paste and fill down don't account for containerPath / containerFilter - - findLookupValues() to use getContainerFilterForLookups() and accept containerPath optional param - - fillColumnCells() and insertPastedData() to use containerPath for the given row when validating cell lookup values forUpdate true case - - fillColumnCells() and insertPastedData() to use targetContainerPath forUpdate false case - - EditableGrid "Bulk Insert" and "Bulk Update" to use target containerPath prop for lookup field options and validation - -### version 3.44.1 -*Released*: 10 May 2024 -- Issue 50360: Cross folder bulk edit doesn't work for grid custom view - -### version 3.44.0 -*Released*: 10 May 2024 -- Chart builder in app (part 2) - - Allow exports of charts within the apps to PDF/PNG via export dropdown menu - - Allow bar-chart y-axis aggregation method (sum, min, max, mean, median) selection - - Change chart builder modal preview limit from 100k rows to 10k rows - -### version 3.43.0 -*Released*: 9 May 2024 -- ELN: Customize signing checkbox and export to PDF - - Add LabelsAPIWrapper for getting and updating custom labels - -### version 3.42.3 -*Released*: 8 May 2024 -- Add back class for `DisableableMenuItem` and do some RTL test conversion - -### version 3.42.2 -*Released*: 8 May 2024 -- Merge from release24.5-SNAPSHOT to develop - - includes changes from 3.41.1 #1484 #1485 - -### version 3.42.1 -*Released*: 6 May 2024 -- Issue 50319: Sample status tag display issues on lineage sample detail panel - -### version 3.42.0 -*Released*: 6 May 2024 -- Issue 50084: Add onError handler for FileAttachmentForm to allow appropriate behavior by wrapping components when errors are detected - -### version 3.41.1 -*Released*: 3 May 2024 -- Issue 48675: Improve UI text for 'ID/Name Settings' - -### version 3.41.0 -*Released*: 30 April 2024 -- Support prop `ExtraExportMenuOptions` on ExportMenu component - -### version 3.40.3 -*Released*: 30 April 2024 -- Remove "Cross project file import" experimental feature flag - -### version 3.40.2 -*Released*: 29 April 2024 -- Issue 50236: Sample Manager: customize grid to add "Inputs/All" fields results in error page - -### version 3.40.1 -*Released*: 29 April 2024 -- No longer include `tif` files in the `isImage` check - - Most browsers cannot render `tif` files - - Fixes Issue 49852 - -### version 3.40.0 -*Released*: 29 April 2024 -- Support cross-folder "Edit in Bulk" - - Update getOperationNotPermittedMessage to work for both Edit in Grid and Edit in Bulk scenarios - - BulkUpdateForm getUpdatedData() to include Folder in updated rows, if it exists in originalData - - Add getSelectedIds(filterIds) to QueryModel - - saveRowsByContainer prop for containerField to be optional since it has a default - - AppendUnitsInput fixes for grid cell rendering and enable/disable in bulk form - - Edit in Grid and Bulk lookup fields to use containerPath based on selected row(s) (for BulkUpdateForm, disable lookup fields and file files toggle when more than one containerPath in selection) - - Add getOperationConfirmationData and getParentTypeDataForLineage to ApiWrapper - -### version 3.39.6 -*Released*: 25 April 2024 -- Add support for exporting a storage map from terminal storage grids - -### version 3.39.5 -*Released*: 23 April 2024 -- Include sample property fields for Sample Finder properties card - -### version 3.39.4 -*Released*: 19 April 2024 -- Fix `ProductMenu` layout for static menu sections - -### version 3.39.3 -*Released*: 19 April 2024 -- Issue 49792: Details tooltip sometimes cut off -- Issue 50054: Stacked bar chart hover on total count displays incorrect info -- DomainForm fix to use the propertyId in the DomainRow key for saved fields (helps with issues 49481 and 50076) -- BaseModal to set document.body no-scroll on show - -### version 3.39.2 -*Released*: 19 April 2024 -- Add clearSelected and replaceSelected to query API wrapper -- Add allowSelection and onSelectionChange props to - -### version 3.39.1 -*Released*: 18 April 2024 -- Update CSS for notebook review status pills - -### version 3.39.0 -*Released*: 17 April 2024 -- Support cross-folder "Edit in Grid" - - rename getOperationNotPermittedMessage() to getOperationNotAllowedMessage() - - EditableGridLoaderFromSelection to account for idsNotPermitted when using selections for getSelectedData() - - Show Project column in EditableGrid for "Edit in Grid" - - Add saveRowsByContainer util to QueryAPIWrapper - - EditableGrid column actions for add,remove,update should use editorModel.columns to determine column indices - - EditableGridPanelForUpdate props for readOnlyColumns and updateColumns, include originalRows as param to updateRows, show warning about notPermitted rows - - add getOperationConfirmationDataForModel helper - - fix in getUpdatedDataFromGrid for multi-value columns - - EditableGrid replace react-bootstrap OverlayTrigger/Popover with LabelHelpTip - - Issue 50140: App data class designer cursor jumps in parent alias field - -### version 3.38.3 -*Released*: 17 April 2024 -- Issue 50031: Update permission check and container path for saving updates to storage labels - -### version 3.38.2 -*Released*: 12 April 2024 -- Issue 50069: Editing amounts of sample results in weird value -- Issue 50010 Time picker enters the wrong time if a time field has a format set or if there is an additional parsing. -- Issue 50102: When bulk updating a time-only field and entering a value with PM results in the AM time being selected. -- Issue 48328: Starting to make Biologics use the same Sample Manager help links. - -### version 3.38.1 -*Released*: 11 April 2024 -- Update product menu DOM structure to better support flex layout container/item paradigm. -- Use flex layout both horizontally (row-wise) across the product and vertically (column-wise) within each section column. -- Scroll within dynamic menu sections leaving the section headers position constant. -- Apply a "no-scroll" CSS class to the document body when product navigation is open. This prevents page scrolling. - -### version 3.38.0 -*Released*: 10 April 2024 -- Add ability for users to choose colors associated with sample statuses - - Update `ColorPickerInput` to accept optional list of default colors - - Update `ColorPickerInput` to not close automatically when a color is chosen - - Update `ManageSampleStatusesPanel` to include a `ColorPickerInput` - - Update `SampleState` model with color field - -### version 3.37.7 -*Released*: 9 April 2024 -- Add setSelected() to QueryAPIWrapper - -### version 3.37.6 -*Released*: 9 April 2024 -- Improve-cross project actions - Derivations, Aliquots, and Pooling - - modify getAppHomeFolderPath to not require container, export getAppHomeFolderId - - modify getSelectedParents to respect container insert permission - - distinguish SampleCreationType.Independent from SampleCreationType.FromSources - -### version 3.37.5 -*Released*: 4 April 2024 -- ChartBuilder fix for tests (createNotification not defined) and JS error (onHide to handle evt parameter - -### version 3.37.4 -*Released*: 3 April 2024 -- Merge from release24.4-SNAPSHOT to develop - - includes changes from 3.36.1 #1463 - -### version 3.37.3 -*Released*: 2 April 2024 -- Introduce `autoInit` prop on `QuerySelect` that allows for users to skip initialization. -- Default `autoInit` to `process.env.NODE_ENV !== 'test'`. - -### version 3.37.2 -*Released*: 1 April 2024 -- Issue 49956: Update styling of `PreviewOption` to not truncate text - -### version 3.37.1 -*Released*: 1 April 2024 -- Issue 49394: Fix storage permission check for folders further down the hierarchy -- Issue 49908: use project folder for checking storage designer permissions - -### version 3.37.0 -*Released*: 1 April 2024 -- Reload EntityInsertPanel LookupCell on targetContainer change - -### version 3.36.1 -*Released*: 2 April 2024 -- Cache assay protocol requests on the client. Uncache when assay definitions are uncached. -- Hack usage of `menuShouldScrollIntoView` in `SelectInput` to recalculate menu positioning after initial load. - -### version 3.36.0 -*Released*: 30 March 2024 -- Introduce `pivotColumn` query metadata section for applying metadata to pivot-generated query columns -- Add hit selection summary queries to schema constants - -### version 3.35.0 -*Released*: 29 March 2024 -- Chart builder in app: App initial create chart modal - - add experimental flag and update Chart menu for when to show Create Chart item - - ChartBuilderMenuItem with modal for defining a new chart, selecting type, measures, and chart preview - - save chart from chart builder modal and reload model charts after save - -### version 3.34.1 -*Released*: 27 March 2024 -- Sample Finder: Show all fields in Properties modals - - add QueryAPIWrapper.getDefaultVisibleColumns util - - fix multi value indicator for inexpdescendantsof operators - -### version 3.34.0 -*Released*: 26 March 2024 -- Package updates - -### version 3.33.1 -*Released*: 26 March 2024 -- AssayImportPanels: Pass Plate Set ID to onComplete - -### version 3.33.0 -*Released*: 26 March 2024 -- Add EditorModel.getColumns() function - -### version 3.32.1 -*Released*: 22 March 2024 -- EditableGrid updates for add/move to multiple targets updates - - support full editable grid bulk update without checkbox selection - - add saveBtnClickedCount prop to allow buttons defined outside the grid notify grid of appropriate actions - - add gridTabHeaderComponent and bulkTabHeaderComponent to allow additional header items, such as BoxFillOptions - -### version 3.32.0 -*Released*: 21 March 2024 -- Update `OperationConfirmationData` model and `getOperationConfirmationData` to account for permission checks as well - -### version 3.31.0 -*Released*: 21 March 2024 -- Issue 49870: Add password strength gauge to Change Password modal - -### version 3.30.0 -*Released*: 19 March 2024 -- Don't use Row, Col, or Panel from react-bootstrap - - There are two minor exceptions for Panel usages in the domain editor, these will be resolved in a later PR - -### version 3.29.0 -*Released*: 19 March 2024 -- Updates to allow moving from multiple folders into one - -### version 3.28.0 -*Released*: 13 March 2024 -- Consolidate logic for generating filters for editable grid cell lookups into `getLookupFilters()` utility -- Refactor `LookupCell` to a functional component -- Export `QueryLookupFilterGroup` and `QueryLookupFilterGroupFilter` types - -### version 3.27.2 -*Released*: 12 March 2024 -- Issue 48535: Filter columns shown when expanding lookup columns for customization -- Issue 49868: Impose limit of 1000 on number of ids to find with Find Samples feature - -### version 3.27.1 -*Released*: 12 March 2024 -- Merge from release24.3-SNAPSHOT to develop - - includes changes from 3.24.7 #1435 - - includes changes from 3.15.8 #1437 - - includes changes from 3.15.9 #1439 - - includes changes from 3.24.10 #1443 - - includes changes from 3.24.11 #1444 - -### version 3.27.0 -*Released*: 11 March 2024 -- Add support for comments during edit actions - - Remove title from timeline comment tooltip - - Update `CommentTextArea` with additional props and callback interface - - Update `EditableDetailPanel` and `DiscardConsumedSamplesPanel` to move commenting into the sticky button footer - - Update `Modal` and `ModalButtons` components to support including the `CommentTextArea` - -### version 3.26.1 -*Released*: 7 March 2024 -- Support column sizing for editable grid - -### version 3.26.0 -*Released*: 6 March 2024 -- Add Tabs and Tab components -- Replace usages of react-bootstrap Tabs/Tab - -### version 3.25.2 -*Released*: 5 March 2024 -- Merge release24.3-SNAPSHOT to develop: - - includes changes from 3.24.7 - -### version 3.25.1 -*Released*: 5 March 2024 -- Issue 49801: Lineage: Display hierarchy of nodes by "level" - -### version 3.25.0 -*Released*: 4 March 2024 -- Issue 45315: Allow inferDomainFromFile to take file path string in addition to File prop -- Issue 49795: App grid column header title to show for all columns instead of just lookups - -### version 3.24.7 -*Released*: 1 March 2024 -- Lineage Settings: fix input change handling - -### version 3.24.12 -*Released*: 16 May 2024 -- Issue 49956: Backport of styling update for PreviewOption for QuerySelect - -### version 3.24.11 -*Released*: 8 March 2024 -- Issue 49858: LKSM: Saving grid filter on Storage Status takes 5+ minutes to load grid - - Don't include view filters for getRows call - -### version 3.24.10 -*Released*: 7 March 2024 -- Issue 49835: App Workflow task value not saving when starting from assay "Import Data" page - -### version 3.24.9 -*Released*: 5 March 2024 -- EditableGrid: Support barcode scanners "streaming" input keys - -### version 3.24.8 -*Released*: 5 March 2024 -- Issue 49274: App to use chevron arrows instead of plus/minus for expand/collapse (part 2) - -### version 3.24.7 -*Released*: 1 March 2024 -- Lineage Settings: fix input change handling - -### version 3.24.6 -*Released*: 29 February 2024 -- Mark project settings as dirty after title change - -### version 3.24.5 -*Released*: 29 February 2024 -- Issue 49804: Fix grid style - -### version 3.24.4 -*Released*: 29 February 2024 -- Fix form input layout -- Remove `col-md-` and align on `col-sm-9 col-xs-12` -- Consolidate default input classNames into constants - -### version 3.24.3 -*Released*: 29 February 2024 -- Issue 49763: App to suppress "Plate Metadata" setting on assay designs when not applicable -- Issue 49274: App to use chevron arrows instead of plus/minus for expand/collapse - -### version 3.24.2 -*Released*: 28 February 2024 -- Update EditableGrid to use alternative row background style -- Fix start-link - -### version 3.24.1 -*Released*: 27 February 2024 -- Issue 49639: Update more info link in admin page -- Remove extraneous horizontal line in User menu when not logged in -- Issue 49428: Add dirty page warning for createProject page -- Issue 49679: change AppURL.create to not throw an exception in production mode when there are empty parts - -### version 3.24.0 -*Released*: 26 February 2024 -- Add Modal -- Delete LoadingModal -- Delete ConfirmModal - -### version 3.23.0 -*Released*: 23 February 2024 -- Google Analytics Improvements - - Move files from ui-components to ui-premium - - Use component that passes new analytics titles - -### version 3.22.2 -*Released*: 19 February 2024 -- Issue 49352: Breadcrumb fix to remove CSS content and replace with new `
  • ` separator -- Issue 48834: Lineage detail panel to use table-layout auto instead of fixed - -### version 3.22.1 -*Released*: 15 February 2024 -- Support date/time fields for all domain kinds - - Enable date and time field type for all domain kinds - - Update DatePickerInput to support inline edit mode - - Update EditInlineField to use DatePickerInput for date/time type query column - -### version 3.22.0 -*Released*: 15 February 2024 -- Issue 49418: When exporting, include any query parameters from model -- Issue 49602: Update wording in audit settings help tip -- Issues 49634 and 49629: Update behavior for saved views that include query filters -- Issue 49402: Implement new default Sample Status when discarding samples from storage -- Issue 49639: Remove reference to the product name in API Keys panel. - -### version 3.21.0 -*Released*: 14 February 2024 -- Refactor ProductMenu, ServerNotifications, ProductNavigation, FilterExpressionView to no longer use DropdownButton -- Update styling for ServerNotifications, ProductNavigation - -### version 3.20.3 -*Released*: 14 February 2024 -- Merge release24.2-SNAPSHOT to develop: - - includes changes from 3.15.3 - -### version 3.20.2 -*Released*: 13 February 2024 -- Date and Time fields polish - - Fix app editable grid with 'aa' time format - - Fix date picker time picker with 'MMMM dd yyyy HH:mm:ss' - - Fix editable grid date/datetime field level format - -### version 3.20.1 -*Released*: 13 February 2024 -- Issue 49612: Handle ending drag action "mouse up" outside the editable grid - -### version 3.20.0 -*Released*: 13 February 2024 -- Plate Set assay import - - AssayImportPanels to use plateSet id in URL and to show Plate Set select instead of Plate select in input form - - App editable grid assay import to filter plate by selected plate set - - Hide PlateTemplate field from assay designer Run Domain fields in app - -### version 3.19.0 -*Released*: 12 February 2024 -- DisableableMenuItem: change operationPermitted prop to disabled - - not just a rename, this inverts the expected value -- Add DropdownSection - - Replaces SubMenuItem, but outputs DOM structure expected by Bootstrap -- Add DropdownWithSections - - Replaces SubMenu, but outputs DOM structure expected by Bootstrap -- ResponsiveMenuButton: - - use DropdownSection - - remove id prop - - add className prop -- Remove SubMenu -- Remove SubMenuItem -- Remove getMenuItemsForSection (unused) -- Remove getMenuItemForSectionKey (unused) - -### version 3.18.1 -*Released*: 9 February 2024 -- Issue 48776: Suppress import parent aliasing for media Mixture Batches -- Resolve sample type `category` in `SampleTypePropertiesPanel` and display add parent alias button accordingly. -- Use API wrappers in `SampleTypePropertiesPanelImpl`. -- Add `getValidPublishTargets` to `DomainPropertiesAPIWrapper`. Update to return a `Container[]` instead of `List`. - -### version 3.17.2 -*Released*: 8 February 2024 -- Issue 49560: User permissionsList to default to undefined instead of empty array - -### version 3.17.1 -*Released*: 6 February 2024 -- Merge release24.2-SNAPSHOT to develop: - - includes changes from 3.15.1 and 3.15.2 - -### version 3.17.0 -*Released*: 6 February 2024 -- Issue 45256: Support "formattedValue" for display -- Switch arguments to `resolveDetailFieldValue` to optionally resolve `formattedValue` and `displayValue`. -- Introduce `resolveDetailFieldLabel` to make it more clear what is being resolved when reading a usage. - -### version 3.16.0 -*Released*: 2 February 2024 -- Issue 49440: User may not be in the core.Users table (if permission was removed), so check the core.SiteUsers table as well - -### version 3.15.3 -*Released*: 12 February 2024 -- Issue 49569: Remove direct use of `LabelOverlay` for `TextChoiceInput` `SelectInput` usage - -### version 3.15.2 -*Released*: 6 February 2024 -- Merge release23.11-SNAPSHOT to release24.2-SNAPSHOT: - - includes changes from 2.390.6 - -### version 3.15.1 -*Released*: 2 February 2024 -- Issue 49502: StoredAmount and Units for samples editable grid to use display values instead of raw values - -### version 3.15.0 -*Released*: 31 January 2024 -- Support Date-only or Time-only fields - - add container.format.timeFormat - - add date and time fields as allowed domain field types - - update ConfirmDataTypeChangeModal to allow date/time type convert - - modify DatePickerInput/DateInputCell to support time-only fields - - wire up time-only fields for QueryFormInputs, DetailDisplay, FilterExpressionView and editable grid - - add util for parsing/formatting time only fields - -### version 3.14.0 -*Released*: 31 January 2024 -- RReport: Render errors encountered when running the R Report - -### version 3.13.0 -*Released*: 31 January 2024 -- Issue 49481: Domain designer issue if the field index changes (reordering fields), we need to update the validValues state -- Issue 49439: filter out inactive users from insert and update form query selects -- Issue 49502: If the Editable Grid lookup cell is a measurement unit, then we need to use the unit's display value -- Issue 49383: App error when a folder admin access profile page from a child folder -- Issue 49417: App user details modal to show above the app header details popover - -### version 3.12.0 -*Released*: 30 January 2024 -- Issue 49507: add `convertUnitsForInput` to avoid commas in editable grid - -### version 3.11.1 -*Released*: 29 January 2024 -- Issue 49378: use the default view if a view doesn't exist - -### version 3.11.0 -*Released*: 29 January 2024 -- Remove MultiMenuButton - - it was unused -- Add DropdownButton -- Add DropdownAnchor -- Add SplitButton -- Add MenuItem -- Add MenuHeader -- Add MenuDivider -- Update usages of react-bootstrap DropdownButton, SplitButton, MenuItem to internal versions -- ManageDropdownMenu: remove all props - -### version 3.10.0 -*Released*: 26 January 2024 -- Add `AuditSettings` panel for configuring whether user comments are required for data changes -- Add `CommentTextArea` as a general component for entering reasons for data changes -- Add `useDataChangeCommentsRequired` hook to retrieve the setting for whether comments/reasons are required - -### version 3.9.1 -*Released*: 26 January 2024 -- Add metric for shift-select usage. -- Update the `SampleStatusTag` component to use app/server context. - -### version 3.9.0 -*Released*: 23 January 2024 -- Add `api.security.getUsersWithPermissions` to `SecurityAPIWrapper` -- Display internal component request errors via placeholder in `UserSelectInput`. Disable on error. -- Use `async` pattern for requests from `UserDetailsPanel` - -### version 3.8.1 -*Released*: 23 January 2024 -- Add optional `onBeforeUpdate` to `EditableDetailPanel` -- Add `plate.PlateType` to schema constants - -### version 3.8.0 -*Released*: 18 January 2024 -- Sample Type exclusions from Dashboard Insights charts - - support for DashboardSampleType as a data type exclusion for projects - - support for DashboardSampleType as a data type exclusion for sample type designer - - ProjectDataTypeSelections panelTitle, panelDescription, and showUncheckedWarning - - DataTypeSelector to load via useFolderDataTypeExclusions hook - - AdminSettingsPage to show Dashboard data type exclusions panel when no projects configured - - CreateProjectPage and ProjectSettings to show Dashboard data type exclusions panel - - Dashboard chart config update to getProjectExclusionFilter to account for an array of exclusion types - - changes sample chart configs to exclude based on both 'SampleType' and 'DashboardSampleType' exclusions - - add sampleTypeDataType to AppAdminContext - -### version 3.7.2 -*Released*: 17 January 2024 -- Remove experimental feature flag for R report capabilities - -### version 3.7.1 -*Released*: 17 January 2024 -* Update `EntityIdCreationModel.postEntityGrid` to accept optional `containerPath` -* Issue 49414: Add prop in EntityDataType to indicate if cross-type import is supported - -### version 3.7.0 -*Released*: 16 January 2024 -- RReport: use dataRegionName - - Fixes Issue 49348 -- Add OverlayTrigger and useOverlayTriggerState - - internal version to be used in place of the react-bootstrap version -- Add Tooltip - - internal version to be used in place of the react-bootstrap version -- Add Popover - - internal version to be used in place of the react-bootstrap version -- Update Tip to use internal implementations of OverlayTrigger and Tooltip -- Update LabelOverlay to use internal implementations of OverlayTrigger and Popover -- Change LabelHelpTip to use internal implementations of OverlayTrigger and Popover -- Update DisableableButton to use internal version of Popover and useOverlayTriggerState -- LabelOverlay: remove canMouseOverTooltip prop - -### version 3.6.0 -*Released*: 15 January 2024 -- Publicly export `PlacementType` -- Add `allowExport` prop on `EditableGridPanel` -- Add `plate.PlateSet` to schema constants -- `entity.getDeleteConfirmationData`: support containerPath - -### version 3.5.5 -*Released*: 15 January 2024 -- Multi-Parent Matching in Sample Finder - - add support for NOT_IN_EXP_DESCENDANTS_OF_FILTER_TYPE and IN_EXP_ANCESTORS_OF_FILTER_TYPE - - show equals all for parent card id columns - -### version 3.5.4 -*Released*: 11 January 2024 -- Refactor all UNSAFE_ usages - -### version 3.5.3 -*Released*: 11 January 2024 -- Language Consistency: 'My' vs. 'Your' and 'Shared' vs. 'Public' - -### version 3.5.2 -*Released*: 11 January 2024 -* Make menuReload action actually reload the menu -* Use menuReload action in registerWebsocketListeners - -### version 3.5.1 -*Released*: 10 January 2024 -* Merge release24.1-SNAPSHOT to develop: - * includes changes from 3.2.5 - -### version 3.5.0 -*Released*: 9 January 2024 -- Add API Keys panel to profile page -- Update QueryInfoForm to optionally not have the buttons stick to the bottom. -- Update SecurityApi with `createApiKey` and `deleteApiKeys` actions - -### version 3.4.0 -*Released*: 8 January 2024 -- Support cross-folder delete - - Refactor InsertRowsResponse, UpdateRowsResponse and DeleteRowsResponse into QueryCommandResponse - - add deleteRowsByContainer util - -### version 3.3.0 -*Released*: 3 January 2024 -- Update `Alert` to accept additional props and match behavior of `react-bootstrap`. -- Introduce `DisableableAnchor` which is an `a` tag that supports `disabled`. -- Replace all other usages of `Button` with `button` or `a` in the case where `href` is supplied. - -### version 3.2.5 -*Released*: 9 January 2024 -- Issue 49357: Fix error in editable grid when checking for values on undefined set diff --git a/packages/test/README.md b/packages/test/README.md index 7c1ccba419..622c8f085d 100644 --- a/packages/test/README.md +++ b/packages/test/README.md @@ -92,6 +92,3 @@ either by command line or in a configuration file: To use a configuration file set the environmental variable `TEAMCITY_BUILD_PROPERTIES_FILE` to the path of your configuration file. - -## Release Notes -Release notes for this package are available [here](./releaseNotes/test.md). diff --git a/packages/test/releaseNotes/test.md b/packages/test/releaseNotes/test.md deleted file mode 100644 index c00217ed2e..0000000000 --- a/packages/test/releaseNotes/test.md +++ /dev/null @@ -1,126 +0,0 @@ -# @labkey/test -Utilities and configurations for running JavaScript tests with LabKey Server. - -### version 1.14.0 -*Released*: 1 June 2026 -- Package updates - -### version 1.12.0 -*Released*: 26 February 2026 -- Package updates - -### version 1.11.0 -*Released*: 4 February 2026 -- Package updates - -### version 1.10.0 -*Released*: 5 November 2025 -- Package updates - -### version 1.9.0 -*Released*: 11 July 2025 -- Package updates - -### version 1.8.1 -*Released*: 23 April 2025 -- Define text encoder and decoder supplied by node in Jest/JSDOM environments - -### version 1.8.0 -*Released*: 21 April 2025 -- Package updates - -### version 1.7.2 -*Released*: 13 March -* Add helper util for generating random names -* Add ExperimentCrudUtils.importCrossTypeData - -### version 1.7.1 -*Released*: 13 November 2024 -- Merge from release24.11-SNAPSHOT to develop - - includes changes from 1.6.3 #1639 - -### version 1.7.0 -*Released*: 5 November 2024 -- Package updates - -### version 1.6.3 -*Released* 11 November 2024 -* Fix parseVerificationToken() helper to reflect verification URL change - -### version 1.6.2 -*Released* 30 September 2024 -* Add helper util for random/shuffle and ExperimentCRUDUtils - -### version 1.6.1 -*Released* 17 September 2024 -* Add helper util for random/shuffle and ExperimentCRUDUtils - -### version 1.6.0 -*Released* 26 July 2024 -* Add ExperimentCRUDUtils - -### version 1.5.0 -*Released* 24 July 2024 -* Package updates - -### version 1.4.0 -*Released* 19 March 2024 -* change default context for integration tests to `/` instead of `/labkey` in support of more use of embedded Tomcat - -### version 1.3.0 -*Released*: 7 Sept 2023 -* Use standard password for `integrationUtils.createUser()` - -### version 1.2.0 -*Released*: 17 July 2023 -* Remove `SecurityRole`. Use `PermissionRoles` provided by `@labkey/api` instead. -* Package updates - -### version 1.1.3 -*Released*: 14 April 2023 -* Package updates - -### version 1.1.2 -*Released*: 14 December 2022 -* Initialize sessionId for RequestContext created via `createRequestContext()` - -### version 1.1.1 -*Released*: 26 May 2022 -* handle htmlErrors response from CreateNewUsersAction - -### version 1.1.0 -*Released*: 24 March 2022 -* support JSESSIONID cookie for same session requests - -### version 1.0.1 -*Released*: 4 November 2021 -* Regenerate lockfile so TC doesn't fail during install - -### version 1.0.0 -*Released*: 1 June 2021 -* Package updates - -### version 0.0.6 -*Released*: 22 April 2021 -* Dependabot package updates - -### version 0.0.5 -*Released*: 22 December 2020 -* Dependabot package updates - -### version 0.0.4 -*Released*: 23 September 2020 -* Expose default request context - -### version 0.0.3 -*Released*: 17 September 2020 -* Expose additional test user metadata - -### version 0.0.2 -*Released*: 14 September 2020 -* Support multiple containers and users -* See https://github.com/LabKey/labkey-ui-components/pull/341 - -### version 0.0.1 -*Released*: 31 August 2020 -* Initial module. diff --git a/packages/themes/README.md b/packages/themes/README.md index 4628fd74a5..fe68ed1e37 100644 --- a/packages/themes/README.md +++ b/packages/themes/README.md @@ -42,6 +42,3 @@ copy: .PHONY: bc bc: build copy ``` - -## Release Notes -Release notes for this package are available [here](./releaseNotes/themes.md). diff --git a/packages/themes/releaseNotes/themes.md b/packages/themes/releaseNotes/themes.md deleted file mode 100644 index 11ec38ff39..0000000000 --- a/packages/themes/releaseNotes/themes.md +++ /dev/null @@ -1,108 +0,0 @@ -# @labkey/themes -UI themes for LabKey Server. - -### version 1.9.3 -*Released*: 11 May 2026 -- Remove GWT styles - -### version 1.9.2 -*Released*: 7 May 2026 -- Background color changes to secondary tabs in all themes - -### version 1.9.1 -*Released*: 5 May 2026 -- Package updates - -### version 1.9.0 -*Released*: 26 April 2026 -- Fix accessibility issues suggested by WAVE - -### version 1.8.0 -*Released*: 30 March 2026 -- Package updates - -### version 1.7.0 -*Released*: 26 February 2026 -- Package updates - -### version 1.6.0 -*Released*: 4 February 2026 -- Package updates - -### version 1.5.0 -*Released*: 5 November 2025 -- Package updates - -### version 1.4.2 -*Released*: 2 April 2025 -- Remove dead code for mobile navigation - -### version 1.4.1 -*Released*: 27 February 2025 -- Merge release24.11-SNAPSHOT to develop: - - includes changes from 1.3.4 - -### version 1.4.0 -*Released*: 5 November 2024 -- Package updates - -### version 1.3.4 -*Released*: 26 February 2025 -* Issue 52402: Encode bootstrap button state attributes - -### version 1.3.2 -*Released*: 22 September 2023 -* Migrate build from yarn to npm -* Update sass - -### version 1.3.1 -*Released*: 18 August 2023 -* Issue 48372: Fix Ext3 input triggers layout -* Package updates - -### version 1.3.0 -*Released*: 26 August 2022 -* Issue 45857: Add left column locking to misc LKS HTML tables - -### version 1.2.4 -*Released*: 19 July 2022 -* Issue 45857: Add header locking to misc LKS HTML tables - -### version 1.2.3 -*Released*: 17 June 2022 -* Issue 45673: Configure bootstrap scaffolding "html" selector font-size to respect $font-size-base - -### version 1.2.2 -*Released*: 27 May 2022 -* Issue 45170: fix date picker month selection borders -* Package updates -* Update webpack configuration to work with the latest versions. -* Fix for a warning of using divide natively in sass. Use `calc()` instead. - -### version 1.2.1 -*Released*: 1 September 2021 -* Dependabot package updates - -### version 1.2.0 -*Released*: 28 May 2021 -* Item 8897: Add CSS class for content-blur - -### version 1.1.1 -*Released*: 22 April 2021 -* Dependabot package updates - -### version 1.1.0 -*Released*: 30 March 2021 -* Add styling for PHI protected columns in data regions - -### version 1.0.2 -*Released*: 22 December 2020 -* Dependabot package updates - -### version 1.0.1 -*Released*: 7 December 2020 -* [41972](https://www.labkey.org/home/Developer/issues/issues-details.view?issueId=41972): Fix expand indicators - -### version 1.0.0 -*Released*: 21 September 2020 -* Initial package copied from LKS core module.