GitHub repository: NCI-Agency/anet

Issues:
issue_4682: state: open
title: Update dependency @emotion/react to v11.11.4
body: [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@emotion/react](https://togithub.com/emotion-js/emotion/tree/main#readme) ([source](https://togithub.com/emotion-js/emotion)) | [`11.11.3` -> `11.11.4`](https://renovatebot.com/diffs/npm/@emotion%2freact/11.11.3/11.11.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@emotion%2freact/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@emotion%2freact/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@emotion%2freact/11.11.3/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@emotion%2freact/11.11.3/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>emotion-js/emotion (@&#8203;emotion/react)</summary>

### [`v11.11.4`](https://togithub.com/emotion-js/emotion/releases/tag/%40emotion/react%4011.11.4)

[Compare Source](https://togithub.com/emotion-js/emotion/compare/@emotion/react@11.11.3...@emotion/react@11.11.4)

##### Patch Changes

-   [#&#8203;3159](https://togithub.com/emotion-js/emotion/pull/3159) [`5b82631d`](https://togithub.com/emotion-js/emotion/commit/5b82631d79a58e87e560024d724b849f3921b6e0) Thanks [@&#8203;iegik](https://togithub.com/iegik)! - Renamed an internal `hasOwnProperty` to `hasOwn`. This avoids problems in CommonJS environments when the consumer tries to prevent prototype pollution with `Object.freeze(Object.prototype)`.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NCI-Agency/anet).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

user: renovate[bot]
issue_4679: state: open
title: Ability to select advisors or interlocutors names in calendar
body: In the calendar the users can now select whether advisor or interlocutor names are showed in the events. The initial option comes from the dictionary. 

Closes [AB#1050](https://dev.azure.com/ncia-anet/2aa083a5-af3d-44e1-8c7b-6e9e6b124d91/_workitems/edit/1050)

#### User changes
In the calendar the users can now select whether advisor or interlocutor names are showed in the events. The initial option comes from the dictionary. 

#### Superuser changes
None

#### Admin changes
None

#### System admin changes
- [x] anet.yml or anet-dictionary.yml needs change
  Add the following setting to the dictionary:

```
calendarOptions:
  attendeesType: Advisor
```

This determines with type of attendee will be used by defult in the calendar.
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [x] Described the user behavior in PR body
  - [x] Referenced/updated all related issues
  - [x] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [x] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: pacodelcastillolopez
issue_4676: state: open
title: Update dependency eslint to v8.57.0
body: [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.56.0` -> `8.57.0`](https://renovatebot.com/diffs/npm/eslint/8.56.0/8.57.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.56.0/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.56.0/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.57.0`](https://togithub.com/eslint/eslint/releases/tag/v8.57.0)

[Compare Source](https://togithub.com/eslint/eslint/compare/v8.56.0...v8.57.0)

#### Features

-   [`1120b9b`](https://togithub.com/eslint/eslint/commit/1120b9b7b97f10f059d8b7ede19de2572f892366) feat: Add loadESLint() API method for v8 ([#&#8203;18098](https://togithub.com/eslint/eslint/issues/18098)) (Nicholas C. Zakas)
-   [`dca7d0f`](https://togithub.com/eslint/eslint/commit/dca7d0f1c262bc72310147bcefe1d04ecf60acbc) feat: Enable `eslint.config.mjs` and `eslint.config.cjs` ([#&#8203;18066](https://togithub.com/eslint/eslint/issues/18066)) (Nitin Kumar)

#### Bug Fixes

-   [`2196d97`](https://togithub.com/eslint/eslint/commit/2196d97094ba94d6d750828879a29538d1600de5) fix: handle absolute file paths in `FlatRuleTester` ([#&#8203;18064](https://togithub.com/eslint/eslint/issues/18064)) (Nitin Kumar)
-   [`69dd1d1`](https://togithub.com/eslint/eslint/commit/69dd1d1387b7b53617548d1f9f2c149f179e6e17) fix: Ensure config keys are printed for config errors ([#&#8203;18067](https://togithub.com/eslint/eslint/issues/18067)) (Nitin Kumar)
-   [`9852a31`](https://togithub.com/eslint/eslint/commit/9852a31edcf054bd5d15753ef18e2ad3216b1b71) fix: deep merge behavior in flat config ([#&#8203;18065](https://togithub.com/eslint/eslint/issues/18065)) (Nitin Kumar)
-   [`4c7e9b0`](https://togithub.com/eslint/eslint/commit/4c7e9b0b539ba879ac1799e81f3b6add2eed4b2f) fix: allow circular references in config ([#&#8203;18056](https://togithub.com/eslint/eslint/issues/18056)) (Milos Djermanovic)

#### Documentation

-   [`84922d0`](https://togithub.com/eslint/eslint/commit/84922d0bfa10689a34a447ab8e55975ff1c1c708) docs: Show prerelease version in dropdown ([#&#8203;18139](https://togithub.com/eslint/eslint/issues/18139)) (Nicholas C. Zakas)
-   [`5b8c363`](https://togithub.com/eslint/eslint/commit/5b8c3636a3d7536535a6878eca0e5b773e4829d4) docs: Switch to Ethical Ads ([#&#8203;18117](https://togithub.com/eslint/eslint/issues/18117)) (Milos Djermanovic)
-   [`77dbfd9`](https://togithub.com/eslint/eslint/commit/77dbfd9887b201a46fc68631cbde50c08e1a8dbf) docs: show NEXT in version selectors ([#&#8203;18052](https://togithub.com/eslint/eslint/issues/18052)) (Milos Djermanovic)

#### Chores

-   [`1813aec`](https://togithub.com/eslint/eslint/commit/1813aecc4660582b0678cf32ba466eb9674266c4) chore: upgrade [@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).57.0 ([#&#8203;18143](https://togithub.com/eslint/eslint/issues/18143)) (Milos Djermanovic)
-   [`5c356bb`](https://togithub.com/eslint/eslint/commit/5c356bb0c6f53c570224f8e9f02c4baca8fc6d2f) chore: package.json update for [@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-   [`f4a1fe2`](https://togithub.com/eslint/eslint/commit/f4a1fe2e45aa1089fe775290bf530de82f34bf16) test: add more tests for ignoring files and directories ([#&#8203;18068](https://togithub.com/eslint/eslint/issues/18068)) (Nitin Kumar)
-   [`42c0aef`](https://togithub.com/eslint/eslint/commit/42c0aefaf6ea8b998b1c6db61906a79c046d301a) ci: Enable CI for `v8.x` branch ([#&#8203;18047](https://togithub.com/eslint/eslint/issues/18047)) (Milos Djermanovic)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NCI-Agency/anet).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

user: renovate[bot]
issue_4648: state: open
title: Update Gradle/NPM, dependencies, Keycloak to v23.0.7
body: [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [keycloak-connect](http://keycloak.org) ([source](https://togithub.com/keycloak/keycloak-nodejs-connect)) | [`23.0.4` -> `23.0.7`](https://renovatebot.com/diffs/npm/keycloak-connect/23.0.4/23.0.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/keycloak-connect/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/keycloak-connect/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/keycloak-connect/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/keycloak-connect/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [keycloak-js](https://www.keycloak.org) ([source](https://togithub.com/keycloak/keycloak)) | [`23.0.4` -> `23.0.7`](https://renovatebot.com/diffs/npm/keycloak-js/23.0.4/23.0.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/keycloak-js/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/keycloak-js/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/keycloak-js/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/keycloak-js/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [org.keycloak:keycloak-policy-enforcer](http://keycloak.org) ([source](https://togithub.com/keycloak/keycloak)) | `23.0.4` -> `23.0.7` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.keycloak:keycloak-policy-enforcer/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.keycloak:keycloak-policy-enforcer/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.keycloak:keycloak-policy-enforcer/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.keycloak:keycloak-policy-enforcer/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [org.keycloak:keycloak-jaxrs-oauth-client](http://keycloak.org) ([source](https://togithub.com/keycloak/keycloak)) | `23.0.4` -> `23.0.7` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.keycloak:keycloak-jaxrs-oauth-client/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.keycloak:keycloak-jaxrs-oauth-client/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.keycloak:keycloak-jaxrs-oauth-client/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.keycloak:keycloak-jaxrs-oauth-client/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [org.keycloak:keycloak-jetty94-adapter](http://keycloak.org) ([source](https://togithub.com/keycloak/keycloak)) | `23.0.4` -> `23.0.7` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.keycloak:keycloak-jetty94-adapter/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.keycloak:keycloak-jetty94-adapter/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.keycloak:keycloak-jetty94-adapter/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.keycloak:keycloak-jetty94-adapter/23.0.4/23.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>keycloak/keycloak-nodejs-connect (keycloak-connect)</summary>

### [`v23.0.7`](https://togithub.com/keycloak/keycloak-nodejs-connect/compare/23.0.6...23.0.7)

[Compare Source](https://togithub.com/keycloak/keycloak-nodejs-connect/compare/23.0.6...23.0.7)

### [`v23.0.6`](https://togithub.com/keycloak/keycloak-nodejs-connect/compare/23.0.5...23.0.6)

[Compare Source](https://togithub.com/keycloak/keycloak-nodejs-connect/compare/23.0.5...23.0.6)

### [`v23.0.5`](https://togithub.com/keycloak/keycloak-nodejs-connect/compare/23.0.4...23.0.5)

[Compare Source](https://togithub.com/keycloak/keycloak-nodejs-connect/compare/23.0.4...23.0.5)

</details>

<details>
<summary>keycloak/keycloak (keycloak-js)</summary>

### [`v23.0.7`](https://togithub.com/keycloak/keycloak/compare/23.0.6...23.0.7)

[Compare Source](https://togithub.com/keycloak/keycloak/compare/23.0.6...23.0.7)

### [`v23.0.6`](https://togithub.com/keycloak/keycloak/releases/tag/23.0.6)

[Compare Source](https://togithub.com/keycloak/keycloak/compare/23.0.5...23.0.6)

<div>

<h2>Upgrading</h2>
<p>Before upgrading refer to <a href="file:/home/st/dev/keycloak-web/target/web/docs/latest/upgrading/index.html#migration-changes">the migration guide</a> for a complete list of changes.</p>

<h2>All resolved issues</h2>

<h3>Bugs</h3>
<ul>
<li><a href="https://togithub.com/keycloak/keycloak/issues/26427">#&#8203;26427</a> Operator CSV uses wrong format for `createdAt` field <code>operator</code></li>
<li><a href="https://togithub.com/keycloak/keycloak/issues/26597">#&#8203;26597</a> Keycloak UI meets "Internal Sever Error" after save "Refresh Token Max Reuse" number <code>core</code></li>
<li><a href="https://togithub.com/keycloak/keycloak/issues/26665">#&#8203;26665</a> Unable to modify access token lifespan at realm level. Keycloak stops working. <code>core</code></li>
</ul>

</div>

### [`v23.0.5`](https://togithub.com/keycloak/keycloak/releases/tag/23.0.5)

[Compare Source](https://togithub.com/keycloak/keycloak/compare/23.0.4...23.0.5)

<div>

<h2>Upgrading</h2>
<p>Before upgrading refer to <a href="file:/home/runner/work/keycloak-rel/keycloak-rel/target/web/docs/latest/upgrading/index.html#migration-changes">the migration guide</a> for a complete list of changes.</p>

</div>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NCI-Agency/anet).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

user: renovate[bot]
issue_4638: state: open
title: Lock file maintenance
body: [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NCI-Agency/anet).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

user: renovate[bot]
issue_4632: state: open
title: Update most non-major dependencies
body: [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@apollo/client](https://www.apollographql.com/docs/react/) ([source](https://togithub.com/apollographql/apollo-client)) | [`3.8.9` -> `3.9.5`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.8.9/3.9.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@apollo%2fclient/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@apollo%2fclient/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@apollo%2fclient/3.8.9/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@apollo%2fclient/3.8.9/3.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@projectstorm/react-diagrams](https://togithub.com/projectstorm/react-diagrams) | [`7.0.3` -> `7.0.4`](https://renovatebot.com/diffs/npm/@projectstorm%2freact-diagrams/7.0.3/7.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@projectstorm%2freact-diagrams/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@projectstorm%2freact-diagrams/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@projectstorm%2freact-diagrams/7.0.3/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@projectstorm%2freact-diagrams/7.0.3/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [axios](https://axios-http.com) ([source](https://togithub.com/axios/axios)) | [`1.6.5` -> `1.6.7`](https://renovatebot.com/diffs/npm/axios/1.6.5/1.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/axios/1.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/axios/1.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/axios/1.6.5/1.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/axios/1.6.5/1.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [change-case](https://togithub.com/blakeembrey/change-case/tree/master/packages/change-case#readme) ([source](https://togithub.com/blakeembrey/change-case)) | [`5.4.0` -> `5.4.3`](https://renovatebot.com/diffs/npm/change-case/5.4.0/5.4.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/change-case/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/change-case/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/change-case/5.4.0/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/change-case/5.4.0/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [core-js](https://togithub.com/zloirock/core-js) ([source](https://togithub.com/zloirock/core-js/tree/HEAD/packages/core-js)) | [`3.35.0` -> `3.36.0`](https://renovatebot.com/diffs/npm/core-js/3.35.0/3.36.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/core-js/3.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/core-js/3.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/core-js/3.35.0/3.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/core-js/3.35.0/3.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [graphiql](http://github.com/graphql/graphiql/tree/master/packages/graphiql#readme) ([source](https://togithub.com/graphql/graphiql/tree/HEAD/packages/graphiql)) | [`3.1.0` -> `3.1.1`](https://renovatebot.com/diffs/npm/graphiql/3.1.0/3.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/graphiql/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/graphiql/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/graphiql/3.1.0/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/graphiql/3.1.0/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [leaflet-geosearch](https://togithub.com/smeijer/leaflet-geosearch) | [`3.11.0` -> `3.11.1`](https://renovatebot.com/diffs/npm/leaflet-geosearch/3.11.0/3.11.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/leaflet-geosearch/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/leaflet-geosearch/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/leaflet-geosearch/3.11.0/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/leaflet-geosearch/3.11.0/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [react-advanced-cropper](https://togithub.com/advanced-cropper/react-advanced-cropper) | [`0.19.4` -> `0.19.6`](https://renovatebot.com/diffs/npm/react-advanced-cropper/0.19.4/0.19.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-advanced-cropper/0.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-advanced-cropper/0.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-advanced-cropper/0.19.4/0.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-advanced-cropper/0.19.4/0.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [react-redux](https://togithub.com/reduxjs/react-redux) | [`9.0.4` -> `9.1.0`](https://renovatebot.com/diffs/npm/react-redux/9.0.4/9.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-redux/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-redux/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-redux/9.0.4/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-redux/9.0.4/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [title-case](https://togithub.com/blakeembrey/change-case/tree/master/packages/title-case#readme) ([source](https://togithub.com/blakeembrey/change-case)) | [`4.3.0` -> `4.3.1`](https://renovatebot.com/diffs/npm/title-case/4.3.0/4.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/title-case/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/title-case/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/title-case/4.3.0/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/title-case/4.3.0/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>apollographql/apollo-client (@&#8203;apollo/client)</summary>

### [`v3.9.5`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#395)

[Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.4...v3.9.5)

##### Patch Changes

-   [#&#8203;11595](https://togithub.com/apollographql/apollo-client/pull/11595) [`8c20955`](https://togithub.com/apollographql/apollo-client/commit/8c20955874562e5b2ab35557325e047b059bc4fc) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Bumps the dependency `rehackt` to 0.0.5

-   [#&#8203;11592](https://togithub.com/apollographql/apollo-client/pull/11592) [`1133469`](https://togithub.com/apollographql/apollo-client/commit/1133469bd91ff76b9815e815a454a79d8e23a9bc) Thanks [@&#8203;Stephen2](https://togithub.com/Stephen2)! - Strengthen `MockedResponse.newData` type

-   [#&#8203;11579](https://togithub.com/apollographql/apollo-client/pull/11579) [`1ba2fd9`](https://togithub.com/apollographql/apollo-client/commit/1ba2fd919f79dfdc7b9d3f7d1a7aa5918e648349) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Fix issue where partial data is reported to `useQuery` when using `notifyOnNetworkStatusChange` after it errors while another overlapping query succeeds.

-   [#&#8203;11579](https://togithub.com/apollographql/apollo-client/pull/11579) [`1ba2fd9`](https://togithub.com/apollographql/apollo-client/commit/1ba2fd919f79dfdc7b9d3f7d1a7aa5918e648349) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Fix an issue where a partial cache write for an errored query would result in automatically refetching that query.

-   [#&#8203;11562](https://togithub.com/apollographql/apollo-client/pull/11562) [`65ab695`](https://togithub.com/apollographql/apollo-client/commit/65ab695470741e8dcaef1ebd7742c3c397526354) Thanks [@&#8203;mspiess](https://togithub.com/mspiess)! - Mocks with an infinite delay no longer require result or error

### [`v3.9.4`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#394)

[Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.3...v3.9.4)

##### Patch Changes

-   [#&#8203;11403](https://togithub.com/apollographql/apollo-client/pull/11403) [`b0c4f3a`](https://togithub.com/apollographql/apollo-client/commit/b0c4f3ad8198981a229b46dc430345a76e577e9c) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Fix issue in `useLazyQuery` that results in a double network call when calling the execute function with no arguments after having called it previously with another set of arguments.

-   [#&#8203;11576](https://togithub.com/apollographql/apollo-client/pull/11576) [`e855d00`](https://togithub.com/apollographql/apollo-client/commit/e855d00447e4d9ae478d98f6796d842ef6cc76d1) Thanks [@&#8203;alessbell](https://togithub.com/alessbell)! - Revert PR [#&#8203;11202](https://togithub.com/apollographql/apollo-client/pull/11202) to fix caching bug reported in [#&#8203;11560](https://togithub.com/apollographql/apollo-client/issues/11560)

### [`v3.9.3`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#393)

[Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.2...v3.9.3)

##### Patch Changes

-   [#&#8203;11525](https://togithub.com/apollographql/apollo-client/pull/11525) [`dce923a`](https://togithub.com/apollographql/apollo-client/commit/dce923ae57eb6b6d889e2980635cb90e2c6cbca3) Thanks [@&#8203;vezaynk](https://togithub.com/vezaynk)! - Allows passing in client via options to useFragment

-   [#&#8203;11558](https://togithub.com/apollographql/apollo-client/pull/11558) [`8cba16f`](https://togithub.com/apollographql/apollo-client/commit/8cba16f041609443111ecf5fb58faea1b3e79569) Thanks [@&#8203;alessbell](https://togithub.com/alessbell)! - Fix [`unbound-method`](https://togithub.com/apollographql/apollo-client/issues/11554) linter error on ObservableQuery methods exposed on useQuery's QueryResult object.

### [`v3.9.2`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#392)

[Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.1...v3.9.2)

##### Patch Changes

-   [#&#8203;11552](https://togithub.com/apollographql/apollo-client/pull/11552) [`6ac2b0c`](https://togithub.com/apollographql/apollo-client/commit/6ac2b0ce4d999c63478d85b40ad56ccda9624797) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Fix import in `useLazyRef` causing import issues in the nextjs package.

### [`v3.9.1`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#391)

[Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.9.0...v3.9.1)

##### Patch Changes

-   [#&#8203;11516](https://togithub.com/apollographql/apollo-client/pull/11516) [`8390fea`](https://togithub.com/apollographql/apollo-client/commit/8390fea13175bada8361ba5f0df2e43197085aba) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Fix an incorrect string substitution in a warning message.

-   [#&#8203;11515](https://togithub.com/apollographql/apollo-client/pull/11515) [`c9bf93b`](https://togithub.com/apollographql/apollo-client/commit/c9bf93bdc2816f7fdba96961e1435f463f440bd1) Thanks [@&#8203;vladar](https://togithub.com/vladar)! - Avoid redundant refetchQueries call for mutation with no-cache policy (fixes [#&#8203;10238](https://togithub.com/apollographql/apollo-client/issues/10238))

-   [#&#8203;11545](https://togithub.com/apollographql/apollo-client/pull/11545) [`84a6bea`](https://togithub.com/apollographql/apollo-client/commit/84a6beaeae69acdffea49ba6b8242752cc188172) Thanks [@&#8203;alessbell](https://togithub.com/alessbell)! - Remove error thrown by `inFlightLinkObservables` intended to be removed before 3.9 release.

### [`v3.9.0`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#390)

[Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.8.10...v3.9.0)

##### Minor Changes

##### Memory optimizations

-   [#&#8203;11424](https://togithub.com/apollographql/apollo-client/pull/11424) [`62f3b6d`](https://togithub.com/apollographql/apollo-client/commit/62f3b6d0e89611e27d9f29812ee60e5db5963fd6) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Simplify RetryLink, fix potential memory leak

    Historically, `RetryLink` would keep a `values` array of all previous values, in case the operation would get an additional subscriber at a later point in time.

    In practice, this could lead to a memory leak ([#&#8203;11393](https://togithub.com/apollographql/apollo-client/pull/11393)) and did not serve any further purpose, as the resulting observable would only be subscribed to by Apollo Client itself, and only once - it would be wrapped in a `Concast` before being exposed to the user, and that `Concast` would handle subscribers on its own.

-   [#&#8203;11435](https://togithub.com/apollographql/apollo-client/pull/11435) [`5cce53e`](https://togithub.com/apollographql/apollo-client/commit/5cce53e83b976f85d2d2b06e28cc38f01324fea1) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Deprecates `canonizeResults`.

    Using `canonizeResults` can result in memory leaks so we generally do not recommend using this option anymore. A future version of Apollo Client will contain a similar feature without the risk of memory leaks.

-   [#&#8203;11254](https://togithub.com/apollographql/apollo-client/pull/11254) [`d08970d`](https://togithub.com/apollographql/apollo-client/commit/d08970d348cf4ad6d80c6baf85b4a4cd4034a3bb) Thanks [@&#8203;benjamn](https://togithub.com/benjamn)! - Decouple `canonicalStringify` from `ObjectCanon` for better time and memory performance.

-   [#&#8203;11356](https://togithub.com/apollographql/apollo-client/pull/11356) [`cc4ac7e`](https://togithub.com/apollographql/apollo-client/commit/cc4ac7e1917f046bcd177882727864eed40b910e) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Fix a potential memory leak in `FragmentRegistry.transform` and `FragmentRegistry.findFragmentSpreads` that would hold on to passed-in `DocumentNodes` for too long.

-   [#&#8203;11370](https://togithub.com/apollographql/apollo-client/pull/11370) [`25e2cb4`](https://togithub.com/apollographql/apollo-client/commit/25e2cb431c76ec5aa88202eaacbd98fad42edc7f) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - `parse` function: improve memory management

    -   use LRU `WeakCache` instead of `Map` to keep a limited number of parsed results
    -   cache is initiated lazily, only when needed
    -   expose `parse.resetCache()` method

-   [#&#8203;11389](https://togithub.com/apollographql/apollo-client/pull/11389) [`139acd1`](https://togithub.com/apollographql/apollo-client/commit/139acd1153afa1445b69dcb4e139668ab8c5889a) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - `documentTransform`: use `optimism` and `WeakCache` instead of directly storing data on the `Trie`

-   [#&#8203;11358](https://togithub.com/apollographql/apollo-client/pull/11358) [`7d939f8`](https://togithub.com/apollographql/apollo-client/commit/7d939f80fbc2c419c58a6c55b6a35ee7474d0379) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Fixes a potential memory leak in `Concast` that might have been triggered when `Concast` was used outside of Apollo Client.

-   [#&#8203;11344](https://togithub.com/apollographql/apollo-client/pull/11344) [`bd26676`](https://togithub.com/apollographql/apollo-client/commit/bd2667619700139af32a45364794d11f845ab6cf) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Add a `resetCache` method to `DocumentTransform` and hook `InMemoryCache.addTypenameTransform` up to `InMemoryCache.gc`

-   [#&#8203;11367](https://togithub.com/apollographql/apollo-client/pull/11367) [`30d17bf`](https://togithub.com/apollographql/apollo-client/commit/30d17bfebe44dbfa7b78c8982cfeb49afd37129c) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - `print`: use `WeakCache` instead of `WeakMap`

-   [#&#8203;11387](https://togithub.com/apollographql/apollo-client/pull/11387) [`4dce867`](https://togithub.com/apollographql/apollo-client/commit/4dce8673b1757d8a3a4edd2996d780e86fad14e3) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - `QueryManager.transformCache`: use `WeakCache` instead of `WeakMap`

-   [#&#8203;11369](https://togithub.com/apollographql/apollo-client/pull/11369) [`2a47164`](https://togithub.com/apollographql/apollo-client/commit/2a471646616e3af1b5c039e961f8d5717fad8f32) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Persisted Query Link: improve memory management

    -   use LRU `WeakCache` instead of `WeakMap` to keep a limited number of hash results
    -   hash cache is initiated lazily, only when needed
    -   expose `persistedLink.resetHashCache()` method
    -   reset hash cache if the upstream server reports it doesn't accept persisted queries

-   [#&#8203;10804](https://togithub.com/apollographql/apollo-client/pull/10804) [`221dd99`](https://togithub.com/apollographql/apollo-client/commit/221dd99ffd1990f8bd0392543af35e9b08d0fed8) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - use WeakMap in React Native with Hermes

-   [#&#8203;11355](https://togithub.com/apollographql/apollo-client/pull/11355) [`7d8e184`](https://togithub.com/apollographql/apollo-client/commit/7d8e18493cd13134726c6643cbf0fadb08be2d37) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - InMemoryCache.gc now also triggers FragmentRegistry.resetCaches (if there is a FragmentRegistry)

-   [#&#8203;11409](https://togithub.com/apollographql/apollo-client/pull/11409) [`2e7203b`](https://togithub.com/apollographql/apollo-client/commit/2e7203b3a9618952ddb522627ded7cceabd7f250) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Adds an experimental `ApolloClient.getMemoryInternals` helper

-   [#&#8203;11343](https://togithub.com/apollographql/apollo-client/pull/11343) [`776631d`](https://togithub.com/apollographql/apollo-client/commit/776631de4500d56252f6f5fdaf29a81c41dfbdc7) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Add `reset` method to `print`, hook up to `InMemoryCache.gc`

##### Suspense-enabled data fetching on user interaction with `useLoadableQuery`

-   [#&#8203;11300](https://togithub.com/apollographql/apollo-client/pull/11300) [`a815873`](https://togithub.com/apollographql/apollo-client/commit/a8158733cfa3e65180ec23518d657ea41894bb2b) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Introduces a new `useLoadableQuery` hook. This hook works similarly to `useBackgroundQuery` in that it returns a `queryRef` that can be used to suspend a component via the `useReadQuery` hook. It provides a more ergonomic way to load the query during a user interaction (for example when wanting to preload some data) that would otherwise be clunky with `useBackgroundQuery`.

    ```tsx
    function App() {
      const [loadQuery, queryRef, { refetch, fetchMore, reset }] =
        useLoadableQuery(query, options);

      return (
        <>
          <button onClick={() => loadQuery(variables)}>Load query</button>
          <Suspense fallback={<SuspenseFallback />}>
            {queryRef && <Child queryRef={queryRef} />}
          </Suspense>
        </>
      );
    }

    function Child({ queryRef }) {
      const { data } = useReadQuery(queryRef);

      // ...
    }
    ```

##### Begin preloading outside of React with `createQueryPreloader`

-   [#&#8203;11412](https://togithub.com/apollographql/apollo-client/pull/11412) [`58db5c3`](https://togithub.com/apollographql/apollo-client/commit/58db5c3295b88162f91019f0898f6baa4b9cced6) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Add the ability to start preloading a query outside React to begin fetching as early as possible. Call `createQueryPreloader` to create a `preloadQuery` function which can be called to start fetching a query. This returns a `queryRef` which is passed to `useReadQuery` and suspended until the query is done fetching.

##### Testing utility improvements

-   [#&#8203;11178](https://togithub.com/apollographql/apollo-client/pull/11178) [`4d64a6f`](https://togithub.com/apollographql/apollo-client/commit/4d64a6fa2ad5abe6f7f172c164f5e1fc2cb89829) Thanks [@&#8203;sebakerckhof](https://togithub.com/sebakerckhof)! - Support re-using of mocks in the MockedProvider

-   [#&#8203;6701](https://togithub.com/apollographql/apollo-client/pull/6701) [`8d2b4e1`](https://togithub.com/apollographql/apollo-client/commit/8d2b4e107d7c21563894ced3a65d631183b58fd9) Thanks [@&#8203;prowe](https://togithub.com/prowe)! - Ability to dynamically match mocks

    Adds support for a new property `MockedResponse.variableMatcher`: a predicate function that accepts a `variables` param. If `true`, the `variables` will be passed into the `ResultFunction` to help dynamically build a response.

##### New `useQueryRefHandlers` hook

-   [#&#8203;11412](https://togithub.com/apollographql/apollo-client/pull/11412) [`58db5c3`](https://togithub.com/apollographql/apollo-client/commit/58db5c3295b88162f91019f0898f6baa4b9cced6) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Create a new `useQueryRefHandlers` hook that returns `refetch` and `fetchMore` functions for a given `queryRef`. This is useful to get access to handlers for a `queryRef` that was created by `createQueryPreloader` or when the handlers for a `queryRef` produced by a different component are inaccessible.

    ```jsx
    const MyComponent({ queryRef }) {
      const { refetch, fetchMore } = useQueryRefHandlers(queryRef);

      // ...
    }
    ```

##### Bail out of `optimisticResponse` updates with the `IGNORE` sentinel object

-   [#&#8203;11410](https://togithub.com/apollographql/apollo-client/pull/11410) [`07fcf6a`](https://togithub.com/apollographql/apollo-client/commit/07fcf6a3bf5bc78ffe6f3e598897246b4da02cbb) Thanks [@&#8203;sf-twingate](https://togithub.com/sf-twingate)! - Allow returning `IGNORE` sentinel object from `optimisticResponse` functions to bail-out from the optimistic update.

    Consider this example:

    ```jsx
    const UPDATE_COMMENT = gql`
      mutation UpdateComment($commentId: ID!, $commentContent: String!) {
        updateComment(commentId: $commentId, content: $commentContent) {
          id
          __typename
          content
        }
      }
    `;

    function CommentPageWithData() {
      const [mutate] = useMutation(UPDATE_COMMENT);
      return (
        <Comment
          updateComment={({ commentId, commentContent }) =>
            mutate({
              variables: { commentId, commentContent },
              optimisticResponse: (vars, { IGNORE }) => {
                if (commentContent === "foo") {
                  // conditionally bail out of optimistic updates
                  return IGNORE;
                }
                return {
                  updateComment: {
                    id: commentId,
                    __typename: "Comment",
                    content: commentContent,
                  },
                };
              },
            })
          }
        />
      );
    }
    ```

    The `IGNORE` sentinel can be destructured from the second parameter in the callback function signature passed to `optimisticResponse`.

    ```tsx
    const preloadQuery = createQueryPreloader(client);
    const queryRef = preloadQuery(QUERY, { variables, ...otherOptions });

    function App() {
      return {
        <Suspense fallback={<div>Loading</div>}>
          <MyQuery />
        </Suspense>
      }
    }

    function MyQuery() {
      const { data } = useReadQuery(queryRef);

      // do something with data
    }
    ```

##### Network adapters for multipart subscriptions usage with Relay and urql

-   [#&#8203;11301](https://togithub.com/apollographql/apollo-client/pull/11301) [`46ab032`](https://togithub.com/apollographql/apollo-client/commit/46ab032af83a01f184bfcce5edba4b55dbb2962a) Thanks [@&#8203;alessbell](https://togithub.com/alessbell)! - Add multipart subscription network adapters for Relay and urql

    ##### Relay

    ```tsx
    import { createFetchMultipartSubscription } from "@&#8203;apollo/client/utilities/subscriptions/relay";
    import { Environment, Network, RecordSource, Store } from "relay-runtime";

    const fetchMultipartSubs = createFetchMultipartSubscription(
      "http://localhost:4000",
    );

    const network = Network.create(fetchQuery, fetchMultipartSubs);

    export const RelayEnvironment = new Environment({
      network,
      store: new Store(new RecordSource()),
    });
    ```

    ##### Urql

    ```tsx
    import { createFetchMultipartSubscription } from "@&#8203;apollo/client/utilities/subscriptions/urql";
    import { Client, fetchExchange, subscriptionExchange } from "@&#8203;urql/core";

    const url = "http://localhost:4000";

    const multipartSubscriptionForwarder = createFetchMultipartSubscription(url);

    const client = new Client({
      url,
      exchanges: [
        fetchExchange,
        subscriptionExchange({
          forwardSubscription: multipartSubscriptionForwarder,
        }),
      ],
    });
    ```

##### `skipPollAttempt` callback function

-   [#&#8203;11397](https://togithub.com/apollographql/apollo-client/pull/11397) [`3f7eecb`](https://togithub.com/apollographql/apollo-client/commit/3f7eecbfbd4f4444cffcaac7dd9fd225c8c2a401) Thanks [@&#8203;aditya-kumawat](https://togithub.com/aditya-kumawat)! - Adds a new `skipPollAttempt` callback function that's called whenever a refetch attempt occurs while polling. If the function returns `true`, the refetch is skipped and not reattempted until the next poll interval. This will solve the frequent use-case of disabling polling when the window is inactive.

    ```ts
    useQuery(QUERY, {
      pollInterval: 1000,
      skipPollAttempt: () => document.hidden, // or !document.hasFocus()
    });
    // or define it globally
    new ApolloClient({
      defaultOptions: {
        watchQuery: {
          skipPollAttempt: () => document.hidden, // or !document.hasFocus()
        },
      },
    });
    ```

##### `QueryManager.inFlightLinkObservables` now uses a strong `Trie` as an internal data structure

-   [#&#8203;11345](https://togithub.com/apollographql/apollo-client/pull/11345) [`1759066`](https://togithub.com/apollographql/apollo-client/commit/1759066a8f9a204e49228568aef9446a64890ff3) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)!

    ##### Warning: requires `@apollo/experimental-nextjs-app-support` update

    If you are using `@apollo/experimental-nextjs-app-support`, you will need to update that to at least 0.5.2, as it accesses this internal data structure.

<details open>
  <summary><h4>More Minor Changes</h4></summary>

-   [#&#8203;11202](https://togithub.com/apollographql/apollo-client/pull/11202) [`7c2bc08`](https://togithub.com/apollographql/apollo-client/commit/7c2bc08b2ab46b9aa181d187a27aec2ad7129599) Thanks [@&#8203;benjamn](https://togithub.com/benjamn)! - Prevent `QueryInfo#markResult` mutation of `result.data` and return cache data consistently whether complete or incomplete.

-   [#&#8203;11442](https://togithub.com/apollographql/apollo-client/pull/11442) [`4b6f2bc`](https://togithub.com/apollographql/apollo-client/commit/4b6f2bccf3ba94643b38689b32edd2839e47aec1) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Remove the need to call `retain` from `useLoadableQuery` since `useReadQuery` will now retain the query. This means that a `queryRef` that is not consumed by `useReadQuery` within the given `autoDisposeTimeoutMs` will now be auto diposed for you.

    Thanks to [#&#8203;11412](https://togithub.com/apollographql/apollo-client/pull/11412), disposed query refs will be automatically resubscribed to the query when consumed by `useReadQuery` after it has been disposed.

-   [#&#8203;11438](https://togithub.com/apollographql/apollo-client/pull/11438) [`6d46ab9`](https://togithub.com/apollographql/apollo-client/commit/6d46ab930a5e9bd5cae153d3b75b8966784fcd4e) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Remove the need to call `retain` from `useBackgroundQuery` since `useReadQuery` will now retain the query. This means that a `queryRef` that is not consumed by `useReadQuery` within the given `autoDisposeTimeoutMs` will now be auto diposed for you.

    Thanks to [#&#8203;11412](https://togithub.com/apollographql/apollo-client/pull/11412), disposed query refs will be automatically resubscribed to the query when consumed by `useReadQuery` after it has been disposed.

-   [#&#8203;11175](https://togithub.com/apollographql/apollo-client/pull/11175) [`d6d1491`](https://togithub.com/apollographql/apollo-client/commit/d6d14911c40782cd6d69167b6f6169c890091ccb) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - To work around issues in React Server Components, especially with bundling for
    the Next.js "edge" runtime we now use an external package to wrap `react` imports
    instead of importing React directly.

-   [#&#8203;11495](https://togithub.com/apollographql/apollo-client/pull/11495) [`1190aa5`](https://togithub.com/apollographql/apollo-client/commit/1190aa59a106217f7192c1f81099adfa5e4365c1) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Increase the default memory limits for `executeSelectionSet` and `executeSelectionSetArray`.

</details>

<details open>
  <summary><h3>Patch Changes</h3></summary>

-   [#&#8203;11275](https://togithub.com/apollographql/apollo-client/pull/11275) [`3862f9b`](https://togithub.com/apollographql/apollo-client/commit/3862f9ba9086394c4cf4c2ecd99e8e0f6cf44885) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Add a `defaultContext` option and property on `ApolloClient`, e.g. for keeping track of changing auth tokens or dependency injection.

    This can be used e.g. in authentication scenarios, where a new token might be generated outside of the link chain and should passed into the link chain.

    ```js
    import { ApolloClient, createHttpLink, InMemoryCache } from "@&#8203;apollo/client";
    import { setContext } from "@&#8203;apollo/client/link/context";

    const httpLink = createHttpLink({
      uri: "/graphql",
    });

    const authLink = setContext((_, { headers, token }) => {
      return {
        headers: {
          ...headers,
          authorization: token ? `Bearer ${token}` : "",
        },
      };
    });

    const client = new ApolloClient({
      link: authLink.concat(httpLink),
      cache: new InMemoryCache(),
    });

    // somewhere else in your application
    function onNewToken(newToken) {
      // token can now be changed for future requests without need for a global
      // variable, scoped ref or recreating the client
      client.defaultContext.token = newToken;
    }
    ```

-   [#&#8203;11443](https://togithub.com/apollographql/apollo-client/pull/11443) [`ff5a332`](https://togithub.com/apollographql/apollo-client/commit/ff5a332ff8b190c418df25371e36719d70061ebe) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Adds a deprecation warning to the HOC and render prop APIs.

    The HOC and render prop APIs have already been deprecated since 2020,
    but we previously didn't have a `@deprecated` tag in the DocBlocks.

-   [#&#8203;11385](https://togithub.com/apollographql/apollo-client/pull/11385) [`d9ca4f0`](https://togithub.com/apollographql/apollo-client/commit/d9ca4f0821c66ae4f03cf35a7ac93fe604cc6de3) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - ensure `defaultContext` is also used for mutations and subscriptions

-   [#&#8203;11503](https://togithub.com/apollographql/apollo-client/pull/11503) [`67f62e3`](https://togithub.com/apollographql/apollo-client/commit/67f62e359bc471787d066319326e5582b4a635c8) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Release changes from [`v3.8.10`](https://togithub.com/apollographql/apollo-client/releases/tag/v3.8.10)

-   [#&#8203;11078](https://togithub.com/apollographql/apollo-client/pull/11078) [`14edebe`](https://togithub.com/apollographql/apollo-client/commit/14edebebefb7634c32b921d02c1c85c6c8737989) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - ObservableQuery: prevent reporting results of previous queries if the variables changed since

-   [#&#8203;11439](https://togithub.com/apollographql/apollo-client/pull/11439) [`33454f0`](https://togithub.com/apollographql/apollo-client/commit/33454f0a40a05ea2b00633bda20a84d0ec3a4f4d) Thanks [@&#8203;jerelmiller](https://togithub.com/jerelmiller)! - Address bundling issue introduced in [#&#8203;11412](https://togithub.com/apollographql/apollo-client/pull/11412) where the `react/cache` internals ended up duplicated in the bundle. This was due to the fact that we had a `react/hooks` entrypoint that imported these files along with the newly introduced `createQueryPreloader` function, which lived outside of the `react/hooks` folder.

-   [#&#8203;11371](https://togithub.com/apollographql/apollo-client/pull/11371) [`ebd8fe2`](https://togithub.com/apollographql/apollo-client/commit/ebd8fe2c1b8b50bfeb2da20aeca5671300fb5564) Thanks [@&#8203;phryneas](https://togithub.com/phryneas)! - Clarify types of `EntityStore.makeCacheKey`.

</details>

### [`v3.8.10`](https://togithub.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#3810)

[Compare Source](https://togithub.com/apollographql/apollo-client/compare/v3.8.9...v3.8.10)

##### Patch Changes

-   [#&#8203;11489](https://togithub.com/apollographql/apollo-client/pull/11489) [`abfd02a`](https://togithub.com/apollographql/apollo-client/commit/abfd02abeb8585e44377e9e87e5d20e5d95be002) Thanks [@&#8203;gronxb](https://togithub.com/gronxb)! - Fix `networkStatus` with `useSuspenseQuery` not properly updating to ready state when using a `cache-and-network` fetch policy that returns data equal to what is already in the cache.

-   [#&#8203;11483](https://togithub.com/apollographql/apollo-client/pull/11483) [`6394dda`](https://togithub.com/apollographql/apollo-client/commit/6394dda47fa83d9ddd922e0d05e62bd872e4ea8e) Thanks [@&#8203;pipopotamasu](https://togithub.com/pipopotamasu)! - Fix cache override warning output

</details>

<details>
<summary>projectstorm/react-diagrams (@&#8203;projectstorm/react-diagrams)</summary>

### [`v7.0.4`](https://togithub.com/projectstorm/react-diagrams/releases/tag/%40projectstorm/react-diagrams%407.0.4)

[Compare Source](https://togithub.com/projectstorm/react-diagrams/compare/@projectstorm/react-diagrams@7.0.3...@projectstorm/react-diagrams@7.0.4)

##### Patch Changes

-   Updated dependencies \[[`09ed60f`](https://togithub.com/projectstorm/react-diagrams/commit/09ed60f)]
-   Updated dependencies \[[`20766f5`](https://togithub.com/projectstorm/react-diagrams/commit/20766f5)]
-   Updated dependencies \[[`80285fe`](https://togithub.com/projectstorm/react-diagrams/commit/80285fe)]
    -   [@&#8203;projectstorm/react-canvas-core](https://togithub.com/projectstorm/react-canvas-core)[@&#8203;7](https://togithub.com/7).0.3
    -   [@&#8203;projectstorm/react-diagrams-core](https://togithub.com/projectstorm/react-diagrams-core)[@&#8203;7](https://togithub.com/7).0.3
    -   [@&#8203;projectstorm/react-diagrams-defaults](https://togithub.com/projectstorm/react-diagrams-defaults)[@&#8203;7](https://togithub.com/7).1.3
    -   [@&#8203;projectstorm/react-diagrams-routing](https://togithub.com/projectstorm/react-diagrams-routing)[@&#8203;7](https://togithub.com/7).1.3

</details>

<details>
<summary>axios/axios (axios)</summary>

### [`v1.6.7`](https://togithub.com/axios/axios/blob/HEAD/CHANGELOG.md#167-2024-01-25)

[Compare Source](https://togithub.com/axios/axios/compare/v1.6.6...v1.6.7)

##### Bug Fixes

-   capture async stack only for rejections with native error objects; ([#&#8203;6203](https://togithub.com/axios/axios/issues/6203)) ([1a08f90](https://togithub.com/axios/axios/commit/1a08f90f402336e4d00e9ee82f211c6adb1640b0))

##### Contributors to this release

-   <img src="https://avatars.githubusercontent.com/u/12586868?v&#x3D;4&amp;s&#x3D;18" alt="avatar" width="18"/> [Dmitriy Mozgovoy](https://togithub.com/DigitalBrainJS "+30/-26 (#&#8203;6203 )")
-   <img src="https://avatars.githubusercontent.com/u/73059627?v&#x3D;4&amp;s&#x3D;18" alt="avatar" width="18"/> [zhoulixiang](https://togithub.com/zh-lx "+0/-3 (#&#8203;6186 )")

### [`v1.6.6`](https://togithub.com/axios/axios/blob/HEAD/CHANGELOG.md#166-2024-01-24)

[Compare Source](https://togithub.com/axios/axios/compare/v1.6.5...v1.6.6)

##### Bug Fixes

-   fixed missed dispatchBeforeRedirect argument ([#&#8203;5778](https://togithub.com/axios/axios/issues/5778)) ([a1938ff](https://togithub.com/axios/axios/commit/a1938ff073fcb0f89011f001dfbc1fa1dc995e39))
-   wrap errors to improve async stack trace ([#&#8203;5987](https://togithub.com/axios/axios/issues/5987)) ([123f354](https://togithub.com/axios/axios/commit/123f354b920f154a209ea99f76b7b2ef3d9ebbab))

##### Contributors to this release

-   <img src="https://avatars.githubusercontent.com/u/1186084?v&#x3D;4&amp;s&#x3D;18" alt="avatar" width="18"/> [Ilya Priven](https://togithub.com/ikonst "+91/-8 (#&#8203;5987 )")
-   <img src="https://avatars.githubusercontent.com/u/1884246?v&#x3D;4&amp;s&#x3D;18" alt="avatar" width="18"/> [Zao Soula](https://togithub.com/zaosoula "+6/-6 (#&#8203;5778 )")

</details>

<details>
<summary>blakeembrey/change-case (change-case)</summary>

### [`v5.4.3`](https://togithub.com/blakeembrey/change-case/releases/tag/change-case%405.4.3): Fix recursive options in keys change case

[Compare Source](https://togithub.com/blakeembrey/change-case/compare/4343da03da28f150d9f06d7562a23d43bd3854e0...change-case@5.4.3)

**Fixed**

-   Fixes options used recursively in `change-case/keys` - previously options were ignored after the first level [https://github.com/blakeembrey/change-case/pull/334](https://togithub.com/blakeembrey/change-case/pull/334) by [@&#8203;Quicksaver](https://togithub.com/Quicksaver)

### [`v5.4.2`](https://togithub.com/blakeembrey/change-case/compare/change-case@5.4.1...4343da03da28f150d9f06d7562a23d43bd3854e0)

[Compare Source](https://togithub.com/blakeembrey/change-case/compare/change-case@5.4.1...4343da03da28f150d9f06d7562a23d43bd3854e0)

### [`v5.4.1`](https://togithub.com/blakeembrey/change-case/releases/tag/change-case%405.4.1): Remove regex lookbehind

[Compare Source](https://togithub.com/blakeembrey/change-case/compare/change-case@5.4.0...change-case@5.4.1)

**Fixed**

-   Remove lookbehind from regex for older browser support (https://github.com/blakeembrey/change-case/commit/6512635f043beee4ff51d524d1d72c671af385f7)

</details>

<details>
<summary>zloirock/core-js (core-js)</summary>

### [`v3.36.0`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3360---20240214)

[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.35.1...v3.36.0)

-   [`ArrayBuffer.prototype.transfer` and friends proposal](https://togithub.com/tc39/proposal-arraybuffer-transfer):
    -   Built-ins:
        -   `ArrayBuffer.prototype.detached`
        -   `ArrayBuffer.prototype.transfer`
        -   `ArrayBuffer.prototype.transferToFixedLength`
    -   Moved to stable ES, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/c84d3dde9a7d8ee4410ffa28624fc4c39247faca)
    -   Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries
-   [`Uint8Array` to / from base64 and hex proposal](https://togithub.com/tc39/proposal-arraybuffer-base64):
    -   Methods:
        -   `Uint8Array.fromBase64`
        -   `Uint8Array.fromHex`
        -   `Uint8Array.prototype.toBase64`
        -   `Uint8Array.prototype.toHex`
    -   Moved to stage 3, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposals/commit/278ab28b8f849f2110d770e7b034b7ef59f14daf)
    -   Added `/actual/` namespace entries
    -   Skipped adding new methods of writing to existing arrays to clarification some moments
-   [`Promise.try` proposal](https://togithub.com/tc39/proposal-promise-try) has been resurrected and moved to stage 2, [Febrary 2024 TC39 meeting](https://togithub.com/tc39/proposal-promise-try/issues/15)
-   Added an entry point for [the new TC39 proposals stage](https://tc39.es/process-document/) - `core-js/stage/2.7` - still empty
-   Fixed regression in `Set.prototype.intersection` feature detection
-   Fixed a missed check in `Array.prototype.{ indexOf, lastIndexOf, includes }`, [#&#8203;1325](https://togithub.com/zloirock/core-js/issues/1325), thanks [**@&#8203;minseok-choe**](https://togithub.com/minseok-choe)
-   Fixed a missed check in `Array.prototype.{ reduce, reduceRight }`, [#&#8203;1327](https://togithub.com/zloirock/core-js/issues/1327), thanks [**@&#8203;minseok-choe**](https://togithub.com/minseok-choe)
-   Fixed `Array.from` and some other methods with proxy targets, [#&#8203;1322](https://togithub.com/zloirock/core-js/issues/1322), thanks [**@&#8203;minseok-choe**](https://togithub.com/minseok-choe)
-   Fixed dependencies loading for modules from `ArrayBuffer.prototype.transfer` and friends proposal in some specific cases in IE10-
-   Dropped context workaround from collection static methods entries since with current methods semantic it's no longer required
-   Added instance methods polyfills to entries of collections static methods that produce collection instances
-   Added missed `Date.prototype.toJSON` to `JSON.stringify` entries dependencies
-   Added debugging info in some missed cases
-   Compat data improvements:
    -   [`{ Map, Object }.groupBy`](https://togithub.com/tc39/proposal-array-grouping), [`Promise.withResolvers`](https://togithub.com/tc39/proposal-promise-with-resolvers), [`ArrayBuffer.prototype.transfer` and friends](https://togithub.com/tc39/proposal-arraybuffer-transfer) marked as supported from [Safari 17.4](https://developer.apple.com/documentation/safari-release-notes/safari-17\_4-release-notes#JavaScript)
    -   [New `Set` methods](https://togithub.com/tc39/proposal-set-methods) [fixed](https://bugs.chromium.org/p/v8/issues/detail?id=14559#c4) and marked as supported from V8 ~ Chrome 123
    -   Added [Deno 1.40](https://deno.com/blog/v1.40) compat data mapping
    -   `Symbol.metadata` marked as supported from [Deno 1.40.4](https://togithub.com/denoland/deno/releases/tag/v1.40.4)
    -   Updated Electron 30 compat data mapping

### [`v3.35.1`](https://togithub.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3351---20240121)

[Compare Source](https://togithub.com/zloirock/core-js/compare/v3.35.0...v3.35.1)

-   Fixed internal `ToLength` operation with bigints, [#&#8203;1318](https://togithub.com/zloirock/core-js/issues/1318)
-   Removed significant redundant code from `String#split` polyfill
-   Fixed setting names of methods with symbol keys in some old engines
-   Minor fix of prototype methods export logic in the pure version
-   Compat data improvements:
    -   [`Iterator` helpers proposal](https://togithub.com/tc39/proposal-iterator-helpers) methods marked as supported from V8 ~ Chrome 122
    -   Note that V8 ~ Chrome 122 add [`Set` methods](https://togithub.com/tc39/proposal-set-methods), but they have [a bug](https://bugs.chromium.org/p/v8/issues/detail?id=14559) [similar to Safari](https://bugs.webkit.org/show_bug.cgi?id=267494)
    -   `self` marked as fixed from Bun 1.0.22
    -   [`SuppressedError` and `Symbol.{ dispose , asyncDispose }`](https://togithub.com/tc39/proposal-explicit-resource-management) marked as [supported from Bun 1.0.23](https://bun.sh/blog/bun-v1.0.23#resource-management-is-now-supported)
    -   Added Oculus Quest Browser 31 compat data mapping
    -   Updated Electron 29 and added Electron 30 compat data mapping

</details>

<details>
<summary>graphql/graphiql (graphiql)</summary>

### [`v3.1.1`](https://togithub.com/graphql/graphiql/blob/HEAD/packages/graphiql/CHANGELOG.md#311)

[Compare Source](https://togithub.com/graphql/graphiql/compare/graphiql@3.1.0...graphiql@3.1.1)

##### Patch Changes

-   Updated dependencies \[[`2b6ea316`](https://togithub.com/graphql/graphiql/commit/2b6ea3166c8d8e152f16d87c878aa8a66f1b3775)]:
    -   [@&#8203;graphiql/react](https://togithub.com/graphiql/react)[@&#8203;0](https://togithub.com/0).20.3

</details>

<details>
<summary>smeijer/leaflet-geosearch (leaflet-geosearch)</summary>

### [`v3.11.1`](https://togithub.com/smeijer/leaflet-geosearch/releases/tag/v3.11.1)

[Compare Source](https://togithub.com/smeijer/leaflet-geosearch/compare/v3.11.0...v3.11.1)

##### Bug Fixes

-   updated google maps package version ([#&#8203;395](https://togithub.com/smeijer/leaflet-geosearch/issues/395)) ([db859c0](https://togithub.com/smeijer/leaflet-geosearch/commit/db859c04fac5ce2b086f8233a7f4f7d461de2ec7))

</details>

<details>
<summary>advanced-cropper/react-advanced-cropper (react-advanced-cropper)</summary>

### [`v0.19.6`](https://togithub.com/advanced-cropper/react-advanced-cropper/compare/d22c597a0df162fdeeee0b4124b022f8f291d3ca...d22c597a0df162fdeeee0b4124b022f8f291d3ca)

[Compare Source](https://togithub.com/advanced-cropper/react-advanced-cropper/compare/d22c597a0df162fdeeee0b4124b022f8f291d3ca...d22c597a0df162fdeeee0b4124b022f8f291d3ca)

### [`v0.19.5`](https://togithub.com/advanced-cropper/react-advanced-cropper/compare/3c36455dd29ef4f9a872ff8460235db627ff7c62...d22c597a0df162fdeeee0b4124b022f8f291d3ca)

[Compare Source](https://togithub.com/advanced-cropper/react-advanced-cropper/compare/3c36455dd29ef4f9a872ff8460235db627ff7c62...d22c597a0df162fdeeee0b4124b022f8f291d3ca)

</details>

<details>
<summary>reduxjs/react-redux (react-redux)</summary>

### [`v9.1.0`](https://togithub.com/reduxjs/react-redux/compare/v9.0.4...v9.1.0)

[Compare Source](https://togithub.com/reduxjs/react-redux/compare/v9.0.4...v9.1.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NCI-Agency/anet).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

user: renovate[bot]
issue_4463: state: open
title: Create and display my Attachment List
body: This component structure will consist of a list on the home page where each user can view their own added attachments. This list(s) will contain information about both items with relations and those without relations. Certain features will vary based on user roles.

    User
        Can see all attachments uploaded by itself
        Can see attachment details like (name, related object etc.)
    Superuser
        They can see attachments in the organizations they manage or are in..
    Admin
        Can see all attachments
        Can see also attachment owner information


If finished and stable, it may also be released as part of ANET 3.4 
Closes [AB#914](https://dev.azure.com/ncia-anet/2aa083a5-af3d-44e1-8c7b-6e9e6b124d91/_workitems/edit/914)

#### User changes
- Can see all attachments uploaded by itself

#### Superuser changes
- They can see attachments in the organizations they manage or are in.

#### Admin changes
- Can see all attachments (also owner)

#### System admin changes
- [ ] anet.yml or anet-dictionary.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [x] Described the user behavior in PR body
  - [x] Referenced/updated all related issues
  - [x] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [x] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: mk-simsoft
issue_4418: state: open
title: Update NPM, dependencies, Blueprint (major)
body: [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@blueprintjs/core](https://togithub.com/palantir/blueprint) ([source](https://togithub.com/palantir/blueprint/tree/HEAD/packages/core)) | [`4.20.2` -> `5.10.0`](https://renovatebot.com/diffs/npm/@blueprintjs%2fcore/4.20.2/5.10.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@blueprintjs%2fcore/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@blueprintjs%2fcore/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@blueprintjs%2fcore/4.20.2/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@blueprintjs%2fcore/4.20.2/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@blueprintjs/datetime](https://togithub.com/palantir/blueprint) ([source](https://togithub.com/palantir/blueprint/tree/HEAD/packages/datetime)) | [`4.4.37` -> `5.3.2`](https://renovatebot.com/diffs/npm/@blueprintjs%2fdatetime/4.4.37/5.3.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@blueprintjs%2fdatetime/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@blueprintjs%2fdatetime/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@blueprintjs%2fdatetime/4.4.37/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@blueprintjs%2fdatetime/4.4.37/5.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@blueprintjs/popover2](https://togithub.com/palantir/blueprint) ([source](https://togithub.com/palantir/blueprint/tree/HEAD/packages/popover2)) | [`1.14.11` -> `2.1.2`](https://renovatebot.com/diffs/npm/@blueprintjs%2fpopover2/1.14.11/2.1.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@blueprintjs%2fpopover2/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@blueprintjs%2fpopover2/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@blueprintjs%2fpopover2/1.14.11/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@blueprintjs%2fpopover2/1.14.11/2.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>palantir/blueprint (@&#8203;blueprintjs/core)</summary>

### [`v5.10.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.9.1...@blueprintjs/core@5.10.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.9.1...@blueprintjs/core@5.10.0)

### [`v5.9.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.9.0...@blueprintjs/core@5.9.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.9.0...@blueprintjs/core@5.9.1)

### [`v5.9.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.8.2...@blueprintjs/core@5.9.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.8.2...@blueprintjs/core@5.9.0)

### [`v5.8.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.8.1...@blueprintjs/core@5.8.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.8.1...@blueprintjs/core@5.8.2)

### [`v5.8.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.8.0...@blueprintjs/core@5.8.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.8.0...@blueprintjs/core@5.8.1)

### [`v5.8.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.7.2...@blueprintjs/core@5.8.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.7.2...@blueprintjs/core@5.8.0)

### [`v5.7.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.7.1...@blueprintjs/core@5.7.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.7.1...@blueprintjs/core@5.7.2)

### [`v5.7.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.7.0...@blueprintjs/core@5.7.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.7.0...@blueprintjs/core@5.7.1)

### [`v5.7.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.6.0...@blueprintjs/core@5.7.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.6.0...@blueprintjs/core@5.7.0)

### [`v5.6.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.5.1...@blueprintjs/core@5.6.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.5.1...@blueprintjs/core@5.6.0)

### [`v5.5.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.5.0...@blueprintjs/core@5.5.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.5.0...@blueprintjs/core@5.5.1)

### [`v5.5.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.4.0...@blueprintjs/core@5.5.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.4.0...@blueprintjs/core@5.5.0)

### [`v5.4.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.3...@blueprintjs/core@5.4.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.3...@blueprintjs/core@5.4.0)

### [`v5.3.3`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.2...@blueprintjs/core@5.3.3)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.2...@blueprintjs/core@5.3.3)

### [`v5.3.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.1...@blueprintjs/core@5.3.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.1...@blueprintjs/core@5.3.2)

### [`v5.3.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.0...@blueprintjs/core@5.3.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.3.0...@blueprintjs/core@5.3.1)

### [`v5.3.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.2.1...@blueprintjs/core@5.3.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.2.1...@blueprintjs/core@5.3.0)

### [`v5.2.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.2.0...@blueprintjs/core@5.2.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.2.0...@blueprintjs/core@5.2.1)

### [`v5.2.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.5...@blueprintjs/core@5.2.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.5...@blueprintjs/core@5.2.0)

### [`v5.1.5`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.4...@blueprintjs/core@5.1.5)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.4...@blueprintjs/core@5.1.5)

### [`v5.1.4`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.3...@blueprintjs/core@5.1.4)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.3...@blueprintjs/core@5.1.4)

### [`v5.1.3`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.2...@blueprintjs/core@5.1.3)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.2...@blueprintjs/core@5.1.3)

### [`v5.1.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.1...@blueprintjs/core@5.1.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.1...@blueprintjs/core@5.1.2)

### [`v5.1.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.0...@blueprintjs/core@5.1.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.1.0...@blueprintjs/core@5.1.1)

### [`v5.1.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.0.1...@blueprintjs/core@5.1.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.0.1...@blueprintjs/core@5.1.0)

### [`v5.0.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.0.0...@blueprintjs/core@5.0.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@5.0.0...@blueprintjs/core@5.0.1)

### [`v5.0.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@4.20.2...@blueprintjs/core@5.0.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/core@4.20.2...@blueprintjs/core@5.0.0)

</details>

<details>
<summary>palantir/blueprint (@&#8203;blueprintjs/datetime)</summary>

### [`v5.3.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.3.1...@blueprintjs/datetime@5.3.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.3.1...@blueprintjs/datetime@5.3.2)

### [`v5.3.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.3.0...@blueprintjs/datetime@5.3.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.3.0...@blueprintjs/datetime@5.3.1)

### [`v5.3.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.11...@blueprintjs/datetime@5.3.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.11...@blueprintjs/datetime@5.3.0)

### [`v5.2.11`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.10...@blueprintjs/datetime@5.2.11)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.10...@blueprintjs/datetime@5.2.11)

### [`v5.2.10`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.9...@blueprintjs/datetime@5.2.10)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.9...@blueprintjs/datetime@5.2.10)

### [`v5.2.9`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.8...@blueprintjs/datetime@5.2.9)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.8...@blueprintjs/datetime@5.2.9)

### [`v5.2.8`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.7...@blueprintjs/datetime@5.2.8)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.7...@blueprintjs/datetime@5.2.8)

### [`v5.2.7`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.6...@blueprintjs/datetime@5.2.7)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.6...@blueprintjs/datetime@5.2.7)

### [`v5.2.6`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.5...@blueprintjs/datetime@5.2.6)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.5...@blueprintjs/datetime@5.2.6)

### [`v5.2.5`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.4...@blueprintjs/datetime@5.2.5)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.4...@blueprintjs/datetime@5.2.5)

### [`v5.2.4`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.3...@blueprintjs/datetime@5.2.4)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.3...@blueprintjs/datetime@5.2.4)

### [`v5.2.3`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.2...@blueprintjs/datetime@5.2.3)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.2...@blueprintjs/datetime@5.2.3)

### [`v5.2.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.1...@blueprintjs/datetime@5.2.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.1...@blueprintjs/datetime@5.2.2)

### [`v5.2.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.0...@blueprintjs/datetime@5.2.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.2.0...@blueprintjs/datetime@5.2.1)

### [`v5.2.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.1.0...@blueprintjs/datetime@5.2.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.1.0...@blueprintjs/datetime@5.2.0)

### [`v5.1.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.10...@blueprintjs/datetime@5.1.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.10...@blueprintjs/datetime@5.1.0)

### [`v5.0.10`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.9...@blueprintjs/datetime@5.0.10)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.9...@blueprintjs/datetime@5.0.10)

### [`v5.0.9`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.8...@blueprintjs/datetime@5.0.9)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.8...@blueprintjs/datetime@5.0.9)

### [`v5.0.8`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.7...@blueprintjs/datetime@5.0.8)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.7...@blueprintjs/datetime@5.0.8)

### [`v5.0.7`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.6...@blueprintjs/datetime@5.0.7)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.6...@blueprintjs/datetime@5.0.7)

### [`v5.0.6`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.5...@blueprintjs/datetime@5.0.6)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.5...@blueprintjs/datetime@5.0.6)

### [`v5.0.5`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.4...@blueprintjs/datetime@5.0.5)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.4...@blueprintjs/datetime@5.0.5)

### [`v5.0.4`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.3...@blueprintjs/datetime@5.0.4)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.3...@blueprintjs/datetime@5.0.4)

### [`v5.0.3`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.2...@blueprintjs/datetime@5.0.3)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.2...@blueprintjs/datetime@5.0.3)

### [`v5.0.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.1...@blueprintjs/datetime@5.0.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.1...@blueprintjs/datetime@5.0.2)

### [`v5.0.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.0...@blueprintjs/datetime@5.0.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@5.0.0...@blueprintjs/datetime@5.0.1)

### [`v5.0.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@4.4.37...@blueprintjs/datetime@5.0.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/datetime@4.4.37...@blueprintjs/datetime@5.0.0)

</details>

<details>
<summary>palantir/blueprint (@&#8203;blueprintjs/popover2)</summary>

### [`v2.1.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.1.1...@blueprintjs/popover2@&#8203;2.1.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.1.1...@blueprintjs/popover2@&#8203;2.1.2)

### [`v2.1.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.1.0...@blueprintjs/popover2@&#8203;2.1.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.1.0...@blueprintjs/popover2@&#8203;2.1.1)

### [`v2.1.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.23...@blueprintjs/popover2@&#8203;2.1.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.23...@blueprintjs/popover2@&#8203;2.1.0)

### [`v2.0.23`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.22...@blueprintjs/popover2@&#8203;2.0.23)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.22...@blueprintjs/popover2@&#8203;2.0.23)

### [`v2.0.22`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.21...@blueprintjs/popover2@&#8203;2.0.22)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.21...@blueprintjs/popover2@&#8203;2.0.22)

### [`v2.0.21`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.20...@blueprintjs/popover2@&#8203;2.0.21)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.20...@blueprintjs/popover2@&#8203;2.0.21)

### [`v2.0.20`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.19...@blueprintjs/popover2@&#8203;2.0.20)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.19...@blueprintjs/popover2@&#8203;2.0.20)

### [`v2.0.19`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.18...@blueprintjs/popover2@&#8203;2.0.19)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.18...@blueprintjs/popover2@&#8203;2.0.19)

### [`v2.0.18`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.17...@blueprintjs/popover2@&#8203;2.0.18)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.17...@blueprintjs/popover2@&#8203;2.0.18)

### [`v2.0.17`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.16...@blueprintjs/popover2@&#8203;2.0.17)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.16...@blueprintjs/popover2@&#8203;2.0.17)

### [`v2.0.16`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.15...@blueprintjs/popover2@&#8203;2.0.16)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.15...@blueprintjs/popover2@&#8203;2.0.16)

### [`v2.0.15`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.14...@blueprintjs/popover2@&#8203;2.0.15)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.14...@blueprintjs/popover2@&#8203;2.0.15)

### [`v2.0.14`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.13...@blueprintjs/popover2@&#8203;2.0.14)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.13...@blueprintjs/popover2@&#8203;2.0.14)

### [`v2.0.13`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.12...@blueprintjs/popover2@&#8203;2.0.13)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.12...@blueprintjs/popover2@&#8203;2.0.13)

### [`v2.0.12`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.11...@blueprintjs/popover2@&#8203;2.0.12)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.11...@blueprintjs/popover2@&#8203;2.0.12)

### [`v2.0.11`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.10...@blueprintjs/popover2@&#8203;2.0.11)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.10...@blueprintjs/popover2@&#8203;2.0.11)

### [`v2.0.10`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.9...@blueprintjs/popover2@&#8203;2.0.10)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.9...@blueprintjs/popover2@&#8203;2.0.10)

### [`v2.0.9`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.8...@blueprintjs/popover2@&#8203;2.0.9)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.8...@blueprintjs/popover2@&#8203;2.0.9)

### [`v2.0.8`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.7...@blueprintjs/popover2@&#8203;2.0.8)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.7...@blueprintjs/popover2@&#8203;2.0.8)

### [`v2.0.7`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.6...@blueprintjs/popover2@&#8203;2.0.7)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.6...@blueprintjs/popover2@&#8203;2.0.7)

### [`v2.0.6`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.5...@blueprintjs/popover2@&#8203;2.0.6)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.5...@blueprintjs/popover2@&#8203;2.0.6)

### [`v2.0.5`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.4...@blueprintjs/popover2@&#8203;2.0.5)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.4...@blueprintjs/popover2@&#8203;2.0.5)

### [`v2.0.4`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.3...@blueprintjs/popover2@&#8203;2.0.4)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.3...@blueprintjs/popover2@&#8203;2.0.4)

### [`v2.0.3`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.2...@blueprintjs/popover2@&#8203;2.0.3)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.2...@blueprintjs/popover2@&#8203;2.0.3)

### [`v2.0.2`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.1...@blueprintjs/popover2@&#8203;2.0.2)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.1...@blueprintjs/popover2@&#8203;2.0.2)

### [`v2.0.1`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.0...@blueprintjs/popover2@&#8203;2.0.1)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;2.0.0...@blueprintjs/popover2@&#8203;2.0.1)

### [`v2.0.0`](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;1.14.11...@blueprintjs/popover2@&#8203;2.0.0)

[Compare Source](https://togithub.com/palantir/blueprint/compare/@blueprintjs/popover2@&#8203;1.14.11...@blueprintjs/popover2@&#8203;2.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NCI-Agency/anet).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzcuMjEyLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

user: renovate[bot]
issue_4408: state: open
title: A potential concurrent bug on the Utils.sanitizeJson
body: **Describe the bug**
A potential concurrent bug on the crafted JSON file to sanitizeJson and cause an exception. This is related to
the U+FFFD Unicode replacement character.
**To Reproduce**
```
  @Test
  public void testsanitizer() throws Exception {
    String input = "\u0010{'\u0000\u0000'\"\u0000\"{.\ufffd-0X29295909049550970,\n\n0";
    String want = "{\"\\u0000\\u0000\":\"\\u0000\",\"\":{\"0\":-47455995597866469744,\n\n\"0\":null}}";
    String got = Utils.sanitizeJson(input);
    assertEquals(want, got);
  }
```

**Screenshots**
If applicable, add screenshots to help explain your problem.
![image](https://github.com/NCI-Agency/anet/assets/17584444/ed96c904-eeb8-427e-8155-8744894dade2)


user: NEUZhangy
issue_4185: state: open
title: Update NPM, dependencies, Bootstrap
body: [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [bootstrap](https://getbootstrap.com/) ([source](https://togithub.com/twbs/bootstrap)) | [`5.1.3` -> `5.3.3`](https://renovatebot.com/diffs/npm/bootstrap/5.1.3/5.3.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/bootstrap/5.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/bootstrap/5.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/bootstrap/5.1.3/5.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bootstrap/5.1.3/5.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [react-bootstrap](https://react-bootstrap.github.io/) ([source](https://togithub.com/react-bootstrap/react-bootstrap)) | [`2.4.0` -> `2.10.1`](https://renovatebot.com/diffs/npm/react-bootstrap/2.4.0/2.10.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-bootstrap/2.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-bootstrap/2.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-bootstrap/2.4.0/2.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-bootstrap/2.4.0/2.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>twbs/bootstrap (bootstrap)</summary>

### [`v5.3.3`](https://togithub.com/twbs/bootstrap/compare/v5.3.2...6e1f75f420f68e1d52733b8e407fc7c3766c9dba)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.3.2...v5.3.3)

### [`v5.3.2`](https://togithub.com/twbs/bootstrap/releases/tag/v5.3.2)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.3.1...v5.3.2)

##### Highlights

-   Passing a percentage unit to the global `abs()` is deprecated since Dart Sass v1.65.0. It resulted in a deprecation warning when compiling Bootstrap with Dart Sass. This has been fixed internally by changing the values passed to the `divide()` function. The `divide()` function has not been fixed itself so that we can keep supporting node-sass cross-compatibility. In v6, this won't be an issue as we plan to drop support for node-sass.
-   Using multiple `id`s in a collapse target wasn't working anymore and has been fixed.

##### Color modes

-   Increased color contrast of form range track background in light and dark modes.
-   Fixed table state rendering for color modes with a focus on the striped table in dark mode to increase color contrast.
-   Allow `<mark>` color customization for color modes.

##### Docs

-   Added alternative CDNs section in [Getting started -> Download](https://getbootstrap.com/docs/5.3/getting-started/download/#alternative-cdns).
-   Added Discord and Bootstrap subreddit links in [README](https://togithub.com/twbs/bootstrap/blob/main/README.md) and [Getting started -> Introduction](https://getbootstrap.com/docs/5.3/getting-started/introduction/):
    -   [Discord](https://discord.gg/bZUvakRU3M) maintained by the community
    -   [Bootstrap subreddit](https://reddit.com/r/bootstrap)

***

##### 🎨 CSS

-   [#&#8203;38816](https://togithub.com/twbs/bootstrap/issues/38816): Use `box-shadow` CSS variables shadow utilities
-   [#&#8203;38955](https://togithub.com/twbs/bootstrap/issues/38955): Fix radios looking like ellipse on responsive mode
-   [#&#8203;38976](https://togithub.com/twbs/bootstrap/issues/38976): Use box-shadow CSS vars instead of Sass vars in assets and variables
-   [#&#8203;39030](https://togithub.com/twbs/bootstrap/issues/39030): Fix dart-sass deprecation warning
-   [#&#8203;39033](https://togithub.com/twbs/bootstrap/issues/39033): Color mode: fix table state rendering
-   [#&#8203;39095](https://togithub.com/twbs/bootstrap/issues/39095): Make form range track background more contrasted
-   [#&#8203;39119](https://togithub.com/twbs/bootstrap/issues/39119): New Sass var `$btn-link-focus-shadow-rgb` to allow customization
-   [#&#8203;39141](https://togithub.com/twbs/bootstrap/issues/39141): New Sass variable to handle `<mark>` dark mode bg color

##### ☕️ JavaScript

-   [#&#8203;38989](https://togithub.com/twbs/bootstrap/issues/38989): Collapse: Fix multiple `id`s calls
-   [#&#8203;39046](https://togithub.com/twbs/bootstrap/issues/39046): Dropdown: reuse variable

##### 📖 Docs

-   [#&#8203;38873](https://togithub.com/twbs/bootstrap/issues/38873): Discord reddit bootstrap
-   [#&#8203;38970](https://togithub.com/twbs/bootstrap/issues/38970): docs: add BootstrapVueNext to docs
-   [#&#8203;38977](https://togithub.com/twbs/bootstrap/issues/38977): Docs: Add missing form elements in focusable elements
-   [#&#8203;38978](https://togithub.com/twbs/bootstrap/issues/38978): Docs: Fix popover template role error
-   [#&#8203;38995](https://togithub.com/twbs/bootstrap/issues/38995): introduction: drop `details` element
-   [#&#8203;39037](https://togithub.com/twbs/bootstrap/issues/39037): Further improve image compression with oxipng and the latest jpegoptim
-   [#&#8203;39054](https://togithub.com/twbs/bootstrap/issues/39054): Docs: Remove incorrect mention of `.left-` and `.right-` utilities from migration guide
-   [#&#8203;39060](https://togithub.com/twbs/bootstrap/issues/39060): Migration: add back v5.0.0 heading
-   [#&#8203;39145](https://togithub.com/twbs/bootstrap/issues/39145): Docs: add warning callout to add a workaround when jsDelivr is not available
-   [#&#8203;39177](https://togithub.com/twbs/bootstrap/issues/39177): Fix: make theme selector tick icon visible when active in examples layout
-   [#&#8203;39179](https://togithub.com/twbs/bootstrap/issues/39179): download: Reword CDN paragraph

##### 🛠 Examples

-   [#&#8203;38994](https://togithub.com/twbs/bootstrap/issues/38994): examples: update 3rd-party packages
-   [#&#8203;39086](https://togithub.com/twbs/bootstrap/issues/39086): Correct grammar error in examples/starter-template

##### 🌎 Accessibility

-   [#&#8203;38978](https://togithub.com/twbs/bootstrap/issues/38978): Docs: Fix popover template role error
-   [#&#8203;39095](https://togithub.com/twbs/bootstrap/issues/39095): Make form range track background more contrasted

##### 🧰 Misc

-   [#&#8203;38983](https://togithub.com/twbs/bootstrap/issues/38983): Improve change-version script
-   [#&#8203;38984](https://togithub.com/twbs/bootstrap/issues/38984): Convert build scripts to ESM
-   [#&#8203;39021](https://togithub.com/twbs/bootstrap/issues/39021): CI: update permissions for calibreapp-image-actions.yml

##### 📦 Dependencies

-   Updated numerous [devDependencies](https://togithub.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F30+is%3Aclosed)

### [`v5.3.1`](https://togithub.com/twbs/bootstrap/releases/tag/v5.3.1)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.3.0...v5.3.1)

#### Highlights

-   **Color modes:**
    -   Increased color contrast for dark mode by replacing `$gray-500` with `$gray-300` for the body color
    -   Added our color mode switcher JavaScript to our examples ZIP download
-   **Components:**
    -   Improved disabled styling for all `.nav-link`s, providing `.disabled` and `:disabled` for use with anchors and buttons
    -   Add support for `Home` and `End` keys for navigating tabs by keyboard
    -   Added some basic styling to toggle buttons when no modifier class is present
    -   Fixed carousel colors in dark mode
-   **Forms:**
    -   Fixed floating label disabled text color
-   **Utilities:**
    -   `.text-bg-*` utilities now use CSS variables
-   **Sass:**
    -   Add new `$navbar-dark-icon-color` Sass variable
    -   Removed duplicate `$alert` Sass variables
    -   Added a new variable for `$vr-border-width` to customize the vertical rule helper width
-   **Documentation:**
    -   Added search to our homepage
    -   Improved responsive behavior on Dashboard example
    -   Improved dark mode rendering of Cheatsheet examples

***

#### 🎨 CSS

-   [#&#8203;38913](https://togithub.com/twbs/bootstrap/issues/38913): Floating labels: fix disabled with text inside
-   [#&#8203;38772](https://togithub.com/twbs/bootstrap/issues/38772): `.text-bg-*` helpers now use theme CSS variables
-   [#&#8203;38886](https://togithub.com/twbs/bootstrap/issues/38886): New Sass variable to change vertical rule width
-   [#&#8203;38851](https://togithub.com/twbs/bootstrap/issues/38851): Fix Sass properties order for newer stylelint-config-recess-order
-   [#&#8203;38815](https://togithub.com/twbs/bootstrap/issues/38815): Increase contrast in dark-mode ([#&#8203;38525](https://togithub.com/twbs/bootstrap/issues/38525))
-   [#&#8203;38774](https://togithub.com/twbs/bootstrap/issues/38774): Generalize disabled nav links CSS rules
-   [#&#8203;38673](https://togithub.com/twbs/bootstrap/issues/38673): Add `$navbar-dark-icon-color`
-   [#&#8203;38674](https://togithub.com/twbs/bootstrap/issues/38674): Remove duplicate `$alert-*-scale` Sass vars

#### ☕️ JavaScript

-   [#&#8203;38498](https://togithub.com/twbs/bootstrap/issues/38498): Support `Home` and `End` keys in tabs

#### 📖 Docs

-   [#&#8203;38958](https://togithub.com/twbs/bootstrap/issues/38958): Examples: improve spinner buttons accessibility
-   [#&#8203;38947](https://togithub.com/twbs/bootstrap/issues/38947): Fix postcss plugin options
-   [#&#8203;38885](https://togithub.com/twbs/bootstrap/issues/38885): Docs: Update float responsive examples
-   [#&#8203;38946](https://togithub.com/twbs/bootstrap/issues/38946): Docs: remove v4 reference on homepage
-   [#&#8203;38948](https://togithub.com/twbs/bootstrap/issues/38948): Fix some typos in Customize > Sass doc
-   [#&#8203;38840](https://togithub.com/twbs/bootstrap/issues/38840): Docs: fix carousel carousel colors of carousel examples in dark mode
-   [#&#8203;38604](https://togithub.com/twbs/bootstrap/issues/38604): Add dropdown alignment options to button group example
-   [#&#8203;38894](https://togithub.com/twbs/bootstrap/issues/38894): Docs: add blank target and `noopener` rel to footer external links
-   [#&#8203;38902](https://togithub.com/twbs/bootstrap/issues/38902): Fix tooltip generated markup documentation
-   [#&#8203;38883](https://togithub.com/twbs/bootstrap/issues/38883): Docs: Fix incorrect class name on migration guide
-   [#&#8203;38708](https://togithub.com/twbs/bootstrap/issues/38708): add a base class style display for toggle buttons
-   [#&#8203;38827](https://togithub.com/twbs/bootstrap/issues/38827): Docs: add missing `aria-disabled='true'` to disabled anchors
-   [#&#8203;38844](https://togithub.com/twbs/bootstrap/issues/38844): Fix for text-reset example class name
-   [#&#8203;38838](https://togithub.com/twbs/bootstrap/issues/38838): JS/SCSS shortcodes: Add new feature to remove nested calls inside.
-   [#&#8203;38850](https://togithub.com/twbs/bootstrap/issues/38850): Add docs search to homepage
-   [#&#8203;38872](https://togithub.com/twbs/bootstrap/issues/38872): Docs: Improve Text Alignment Example
-   [#&#8203;38865](https://togithub.com/twbs/bootstrap/issues/38865): Fix custom-radio class name on migration guide
-   [#&#8203;38786](https://togithub.com/twbs/bootstrap/issues/38786): Explicitly add missing opacity-0 helper class example for clarity.
-   [#&#8203;38707](https://togithub.com/twbs/bootstrap/issues/38707): Update bottom border on dark navbar example
-   [#&#8203;38726](https://togithub.com/twbs/bootstrap/issues/38726): Update flex utilities link in navs docs
-   [#&#8203;38734](https://togithub.com/twbs/bootstrap/issues/38734): Minor fixes for Docs Versions page
-   [#&#8203;38745](https://togithub.com/twbs/bootstrap/issues/38745): Fix stack examples
-   [#&#8203;38751](https://togithub.com/twbs/bootstrap/issues/38751): Docs (tooltips): Fix "them" typo in markup section
-   [#&#8203;38688](https://togithub.com/twbs/bootstrap/issues/38688): Fix missing word issue on nav-tabs page
-   [#&#8203;38681](https://togithub.com/twbs/bootstrap/issues/38681): Docs: consistency between custom buttons, popovers and tooltips
-   [#&#8203;38600](https://togithub.com/twbs/bootstrap/issues/38600): collate distribution interval
-   [#&#8203;38632](https://togithub.com/twbs/bootstrap/issues/38632): docs(spinners): improve buttons examples accessibility
-   [#&#8203;38583](https://togithub.com/twbs/bootstrap/issues/38583): Docs: add more details on accessibility tips
-   [#&#8203;38554](https://togithub.com/twbs/bootstrap/issues/38554): Doc: fix 'Events' JS example
-   [#&#8203;38592](https://togithub.com/twbs/bootstrap/issues/38592): docs(forms): switch to `aria-describedby`
-   [#&#8203;38542](https://togithub.com/twbs/bootstrap/issues/38542): Use `.d-none` instead of inline styling
-   [#&#8203;38616](https://togithub.com/twbs/bootstrap/issues/38616): Add 'Issues assignment' section to the Contributing Guidelines
-   [#&#8203;38528](https://togithub.com/twbs/bootstrap/issues/38528): Adding a link to `clearfix`
-   [#&#8203;38538](https://togithub.com/twbs/bootstrap/issues/38538): Update Sass docs to mention compiling and including
-   [#&#8203;38623](https://togithub.com/twbs/bootstrap/issues/38623): Fix disabled element tooltip StackBlitz

#### 🛠 Examples

-   [#&#8203;38958](https://togithub.com/twbs/bootstrap/issues/38958): Examples: improve spinner buttons accessibility
-   [#&#8203;38952](https://togithub.com/twbs/bootstrap/issues/38952): dashboard: fix offcanvas md display
-   [#&#8203;38840](https://togithub.com/twbs/bootstrap/issues/38840): Docs: fix carousel carousel colors of carousel examples in dark mode
-   [#&#8203;38905](https://togithub.com/twbs/bootstrap/issues/38905): Fix dark mode rendering of Cheatsheet examples
-   [#&#8203;38711](https://togithub.com/twbs/bootstrap/issues/38711): Fix link colors in Sidebars example

#### 🌎 Accessibility

-   [#&#8203;38958](https://togithub.com/twbs/bootstrap/issues/38958): Examples: improve spinner buttons accessibility
-   [#&#8203;38498](https://togithub.com/twbs/bootstrap/issues/38498): Support `Home` and `End` keys in tabs
-   [#&#8203;38827](https://togithub.com/twbs/bootstrap/issues/38827): Docs: add missing `aria-disabled='true'` to disabled anchors
-   [#&#8203;38850](https://togithub.com/twbs/bootstrap/issues/38850): Add docs search to homepage
-   [#&#8203;38774](https://togithub.com/twbs/bootstrap/issues/38774): Generalize disabled nav links CSS rules
-   [#&#8203;38632](https://togithub.com/twbs/bootstrap/issues/38632): docs(spinners): improve buttons examples accessibility
-   [#&#8203;38583](https://togithub.com/twbs/bootstrap/issues/38583): Docs: add more details on accessibility tips
-   [#&#8203;38592](https://togithub.com/twbs/bootstrap/issues/38592): docs(forms): switch to aria-describedby

#### 🧰 Misc

-   [#&#8203;38747](https://togithub.com/twbs/bootstrap/issues/38747): Add `color-modes.js` to `bootstrap-x.y.z-examples.zip`

#### 📦 Dependencies

-   Updated numerous [devDependencies](https://togithub.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F26+is%3Aclosed)

### [`v5.3.0`](https://togithub.com/twbs/bootstrap/compare/v5.2.3...v5.3.0)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.2.3...v5.3.0)

### [`v5.2.3`](https://togithub.com/twbs/bootstrap/releases/tag/v5.2.3)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.2.2...v5.2.3)

#### Fixes

##### 🎨 CSS

-   [#&#8203;37377](https://togithub.com/twbs/bootstrap/issues/37377): Import root in bootstrap-utilities
-   [#&#8203;37425](https://togithub.com/twbs/bootstrap/issues/37425): Fix deprecation warning with sass 1.56.0
-   [#&#8203;37266](https://togithub.com/twbs/bootstrap/issues/37266): Carousel: Fix RTL `translate()` direction

##### ☕️ JavaScript

-   [#&#8203;37235](https://togithub.com/twbs/bootstrap/issues/37235): fix tooltip/popper disposal inconsistencies

### [`v5.2.2`](https://togithub.com/twbs/bootstrap/releases/tag/v5.2.2)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.2.1...v5.2.2)

#### Highlights

-   **Accordion**
    -   Use Sass variable for the accordion color instead of an invalid CSS variable
-   **Buttons**
    -   Undo changes to `.btn:hover` from v5.2.1. We now explicitly target `.btn-check` styles instead.
-   **Dropdowns**
    -   Restore the ability for dropdowns to work without an explicit `data` attribute (will be removed again in v6)
-   **Modals**
    -   Improve modal event listeners
    -   Use `<h1>` for all `.modal-title` instances in our docs
-   **Tables**
    -   Don't redefine `$border-color` in `table-variant()` mixin
-   **Tabs**
    -   Tabs no longer autofocus and cause pages to jump on `tab.show()`
    -   Fix `.active` class toggling of tabs within dropdowns
-   **Toasts**
    -   Properly set toast `z-index` on `.toast-container` as opposed to individual `.toast`s that don't receive any other positioning
-   **Tooltips**
    -   Fix tooltip selectors with `title` attribute on dynamically created elements

#### 🎨 CSS

-   [#&#8203;37118](https://togithub.com/twbs/bootstrap/issues/37118): Set toast z-index variable in the correct spot
-   [#&#8203;37165](https://togithub.com/twbs/bootstrap/issues/37165): Explicitly target `.btn-check` and undo `:hover`
-   [#&#8203;37182](https://togithub.com/twbs/bootstrap/issues/37182): Use Sass variable for accordion color
-   [#&#8203;37239](https://togithub.com/twbs/bootstrap/issues/37239): Don't redefine `$border-color` in `table-variant` mixin

#### ☕️ JavaScript

-   [#&#8203;36914](https://togithub.com/twbs/bootstrap/issues/36914): Fix tooltip selector usage
-   [#&#8203;37128](https://togithub.com/twbs/bootstrap/issues/37128): Fix modal event listeners
-   [#&#8203;37146](https://togithub.com/twbs/bootstrap/issues/37146): Drop tabs auto-focus
-   [#&#8203;37151](https://togithub.com/twbs/bootstrap/issues/37151): Fix active class toggling of tabs within dropdown
-   [#&#8203;37189](https://togithub.com/twbs/bootstrap/issues/37189): Enrich Tab Test for keyboard handler
-   [#&#8203;37190](https://togithub.com/twbs/bootstrap/issues/37190): Dropdown: fix case with invalid markup
-   [#&#8203;37200](https://togithub.com/twbs/bootstrap/issues/37200): Ensure Tab keyboard functionality after [#&#8203;37146](https://togithub.com/twbs/bootstrap/issues/37146)

#### 📖 Docs

-   [#&#8203;36899](https://togithub.com/twbs/bootstrap/issues/36899): Slightly improve image compression
-   [#&#8203;37142](https://togithub.com/twbs/bootstrap/issues/37142): Add informative note for Tooltip/Popover selector option
-   [#&#8203;37145](https://togithub.com/twbs/bootstrap/issues/37145): Docs: minor fix for Navbar > Offcanvas examples
-   [#&#8203;37153](https://togithub.com/twbs/bootstrap/issues/37153): Fix typo in docs - Configure Vite section
-   [#&#8203;37199](https://togithub.com/twbs/bootstrap/issues/37199): Replace Webpack and Vite PNGs by SVGs
-   [#&#8203;37210](https://togithub.com/twbs/bootstrap/issues/37210): Use `<h1>` for all `modal-title` examples/uses
-   [#&#8203;37214](https://togithub.com/twbs/bootstrap/issues/37214): Docs: Change `view in GitHub` links inside `main`

#### 🌎 Accessibility

-   [#&#8203;37200](https://togithub.com/twbs/bootstrap/issues/37200): Ensure Tab keyboard functionality after [#&#8203;37146](https://togithub.com/twbs/bootstrap/issues/37146)
-   [#&#8203;37210](https://togithub.com/twbs/bootstrap/issues/37210): Use `<h1>` for all `modal-title` examples/uses

#### 🏭 Tests

-   [#&#8203;36915](https://togithub.com/twbs/bootstrap/issues/36915): Use ES6 on visual tests
-   [#&#8203;37189](https://togithub.com/twbs/bootstrap/issues/37189): Enrich Tab Test for keyboard handler

#### 🧰 Misc

-   [#&#8203;35079](https://togithub.com/twbs/bootstrap/issues/35079): Add PR template
-   [#&#8203;36421](https://togithub.com/twbs/bootstrap/issues/36421): NuGet: Use license expression
-   [#&#8203;37186](https://togithub.com/twbs/bootstrap/issues/37186): Add eslint-plugin-html to lint JS in HTML files

#### 📦 Dependencies

-   Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F10+is%3Aclosed>

### [`v5.2.1`](https://togithub.com/twbs/bootstrap/releases/tag/v5.2.1)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.2.0...v5.2.1)

#### 🚀 Highlights

-   **Accordion**
    -   Update `color` value to use the `$accordion-button-color` Sass variable instead of our color contrast function
-   **Buttons**
    -   Added a `transparent` default hover border color CSS variable for buttons to fix a visual regression
    -   `.btn-link` no longer has a gradient when `$enable-gradients` is set to `true`
-   **Forms**
    -   Input groups have updated `z-index` values to ensure proper rendering of validated form fields
    -   Floating labels now reset their `text-align` to ensure consistent styling
-   **List Groups**
    -   Horizontal list groups with only one child now render the correct `border-radius`
    -   Modified the `list-group-item` selectors to better support nested imports of Bootstrap's CSS
-   **Modals**
    -   Fixed modal event listeners during dismiss click, allowing you to once again click scrollbars without dismissing the modal
-   **Pagination**
    -   Fixed incorrect `border-radius` values inside pagination components
-   **Scrollspy**
    -   Scrollspy threshold option is now configurable
-   **Tooltips**
    -   Reverted some tooltip plugin updates to prevent issues with `selector`, dynamic content, and disposed tooltips using `title`

#### 🚀 Features

-   [#&#8203;36750](https://togithub.com/twbs/bootstrap/issues/36750): ScrollSpy: make the threshold option configurable

#### 🎨 CSS

-   [#&#8203;36507](https://togithub.com/twbs/bootstrap/issues/36507): v5/docs: reintroduce `outline` for docs code samples, buttons when `:not(:focus-visible)`
-   [#&#8203;36593](https://togithub.com/twbs/bootstrap/issues/36593): flush variant of accordion border radius
-   [#&#8203;36663](https://togithub.com/twbs/bootstrap/issues/36663): fix [#&#8203;36662](https://togithub.com/twbs/bootstrap/issues/36662) List-group-item margin-top is offset when importing sass in a nested class
-   [#&#8203;36694](https://togithub.com/twbs/bootstrap/issues/36694): Docs: add grid-row-columns variable
-   [#&#8203;36791](https://togithub.com/twbs/bootstrap/issues/36791): Remove a unused sass parameter from banner mixin
-   [#&#8203;36828](https://togithub.com/twbs/bootstrap/issues/36828): Fix pagination page items border radius
-   [#&#8203;36849](https://togithub.com/twbs/bootstrap/issues/36849): Define correctly `$popover-header-color`
-   [#&#8203;36873](https://togithub.com/twbs/bootstrap/issues/36873): Fix floating labels under `.text-center`
-   [#&#8203;36874](https://togithub.com/twbs/bootstrap/issues/36874): Floating labels in input group: Border fix
-   [#&#8203;36921](https://togithub.com/twbs/bootstrap/issues/36921): Accordion color should use $accordion-color
-   [#&#8203;36986](https://togithub.com/twbs/bootstrap/issues/36986): bugfix undefined border color variable for btn [#&#8203;36938](https://togithub.com/twbs/bootstrap/issues/36938)
-   [#&#8203;37017](https://togithub.com/twbs/bootstrap/issues/37017): List group: Fix horizontal when only one child
-   [#&#8203;37021](https://togithub.com/twbs/bootstrap/issues/37021): Scss: Adding missing `z-index` CSS variables.
-   [#&#8203;37026](https://togithub.com/twbs/bootstrap/issues/37026): Rework button focus/active styling, with extra changes for checks/radios
-   [#&#8203;37027](https://togithub.com/twbs/bootstrap/issues/37027): Search modal: Set cursor on auto
-   [#&#8203;37034](https://togithub.com/twbs/bootstrap/issues/37034): More consistency for CSS/Sass vars doc for components with dark variants
-   [#&#8203;37059](https://togithub.com/twbs/bootstrap/issues/37059): Fix input group z-index focus + validation
-   [#&#8203;37078](https://togithub.com/twbs/bootstrap/issues/37078): Remove gradient from `.btn-link`
-   [#&#8203;37079](https://togithub.com/twbs/bootstrap/issues/37079): Add workarounds for postcss values parser error
-   [#&#8203;37080](https://togithub.com/twbs/bootstrap/issues/37080): btn-group draws first input margin [#&#8203;36794](https://togithub.com/twbs/bootstrap/issues/36794)
-   [#&#8203;37093](https://togithub.com/twbs/bootstrap/issues/37093): Fix accordion button color

#### ☕️ JavaScript

-   [#&#8203;36750](https://togithub.com/twbs/bootstrap/issues/36750): ScrollSpy: make the threshold option configurable
-   [#&#8203;36751](https://togithub.com/twbs/bootstrap/issues/36751): Re-set tooltip title on disposal
-   [#&#8203;36863](https://togithub.com/twbs/bootstrap/issues/36863): Fix modal event-listeners during dismiss click
-   [#&#8203;37011](https://togithub.com/twbs/bootstrap/issues/37011): Multiple dropdowns: Fix when inside same tag
-   [#&#8203;37019](https://togithub.com/twbs/bootstrap/issues/37019): Docs: Fix js options to what is really inside js
-   [#&#8203;37072](https://togithub.com/twbs/bootstrap/issues/37072): Docs: Put methods in table
-   [#&#8203;37086](https://togithub.com/twbs/bootstrap/issues/37086): Fix tooltip manual toggling

#### 📖 Docs

-   [#&#8203;36493](https://togithub.com/twbs/bootstrap/issues/36493): Docs: Replace wrong mobile OS Windows with iOS
-   [#&#8203;36587](https://togithub.com/twbs/bootstrap/issues/36587): Document how to extract CSS, SVG for strict CSP
-   [#&#8203;36694](https://togithub.com/twbs/bootstrap/issues/36694): Docs: add grid-row-columns variable
-   [#&#8203;36771](https://togithub.com/twbs/bootstrap/issues/36771): Fix typos after [#&#8203;36762](https://togithub.com/twbs/bootstrap/issues/36762)
-   [#&#8203;36804](https://togithub.com/twbs/bootstrap/issues/36804): Simplify social images and add ability to set per-page images
-   [#&#8203;36812](https://togithub.com/twbs/bootstrap/issues/36812): Fix broken url
-   [#&#8203;36819](https://togithub.com/twbs/bootstrap/issues/36819): Rename scrollspy to toast in toasts.md
-   [#&#8203;36824](https://togithub.com/twbs/bootstrap/issues/36824): Move DocSearch out of offcanvas to always show it on mobile
-   [#&#8203;36825](https://togithub.com/twbs/bootstrap/issues/36825): Remove Slack from site and repo docs
-   [#&#8203;36827](https://togithub.com/twbs/bootstrap/issues/36827): Redirect users to different templates of issues rather than an empty one
-   [#&#8203;36829](https://togithub.com/twbs/bootstrap/issues/36829): Docs: correct heading levels in features example
-   [#&#8203;36836](https://togithub.com/twbs/bootstrap/issues/36836): Docs: use added-in shortcode in Offcanvas
-   [#&#8203;36838](https://togithub.com/twbs/bootstrap/issues/36838): Docs: Missing added-in shortcode
-   [#&#8203;36839](https://togithub.com/twbs/bootstrap/issues/36839): Docs: Fix markdown link error
-   [#&#8203;36850](https://togithub.com/twbs/bootstrap/issues/36850): Add navbar image alt text
-   [#&#8203;36867](https://togithub.com/twbs/bootstrap/issues/36867): Docs: expand popover custom container explanation
-   [#&#8203;36871](https://togithub.com/twbs/bootstrap/issues/36871): Fix docs typo of `.form-checkbox` -> `.form-check`
-   [#&#8203;36877](https://togithub.com/twbs/bootstrap/issues/36877): Add default select example in cheatsheet
-   [#&#8203;37019](https://togithub.com/twbs/bootstrap/issues/37019): Docs: Fix js options to what is really inside js
-   [#&#8203;37027](https://togithub.com/twbs/bootstrap/issues/37027): Search modal: Set cursor on auto
-   [#&#8203;37034](https://togithub.com/twbs/bootstrap/issues/37034): More consistency for CSS/Sass vars doc for components with dark variants
-   [#&#8203;37047](https://togithub.com/twbs/bootstrap/issues/37047): Docs: Minor fixes in tables.
-   [#&#8203;37048](https://togithub.com/twbs/bootstrap/issues/37048): Docs: improve cards image overlays markup
-   [#&#8203;37056](https://togithub.com/twbs/bootstrap/issues/37056): Docs: Manage the dark offcanvas slightly differently
-   [#&#8203;37064](https://togithub.com/twbs/bootstrap/issues/37064): Fix padding on starter template
-   [#&#8203;37067](https://togithub.com/twbs/bootstrap/issues/37067): Make docs clearer by dropping precompiled for compiled
-   [#&#8203;37070](https://togithub.com/twbs/bootstrap/issues/37070): Improve language around vertical grid gutters
-   [#&#8203;37072](https://togithub.com/twbs/bootstrap/issues/37072): Docs: Put methods in table

#### 🛠 Examples

-   [#&#8203;36660](https://togithub.com/twbs/bootstrap/issues/36660): Added new example in `examples/features` page.
-   [#&#8203;36829](https://togithub.com/twbs/bootstrap/issues/36829): Docs: correct heading levels in features example
-   [#&#8203;36877](https://togithub.com/twbs/bootstrap/issues/36877): Add default select example in cheatsheet
-   [#&#8203;37064](https://togithub.com/twbs/bootstrap/issues/37064): Fix padding on starter template

#### 🌎 Accessibility

-   [#&#8203;36507](https://togithub.com/twbs/bootstrap/issues/36507): v5/docs: reintroduce `outline` for docs code samples, buttons when `:not(:focus-visible)`
-   [#&#8203;36829](https://togithub.com/twbs/bootstrap/issues/36829): Docs: correct heading levels in features example
-   [#&#8203;37026](https://togithub.com/twbs/bootstrap/issues/37026): Rework button focus/active styling, with extra changes for checks/radios

#### 📦 Dependencies

-   Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F8+is%3Aclosed>

### [`v5.2.0`](https://togithub.com/twbs/bootstrap/releases/tag/v5.2.0)

[Compare Source](https://togithub.com/twbs/bootstrap/compare/v5.1.3...v5.2.0)

#### 🚀 Highlights

-   [#&#8203;36168](https://togithub.com/twbs/bootstrap/issues/36168): Manually set hover and active backgrounds and borders for dark and light buttons
-   [#&#8203;36327](https://togithub.com/twbs/bootstrap/issues/36327): Truncate text to prevent multiline floating label
-   [#&#8203;36382](https://togithub.com/twbs/bootstrap/issues/36382): Rewrite Webpack guide
-   [#&#8203;36411](https://togithub.com/twbs/bootstrap/issues/36411): Rewrite Parcel guide
-   [#&#8203;36412](https://togithub.com/twbs/bootstrap/issues/36412): Docs: Add a Vite Getting Started guide
-   [#&#8203;36500](https://togithub.com/twbs/bootstrap/issues/36500): Generate local CSS variables on utilities when using state option
-   [#&#8203;36528](https://togithub.com/twbs/bootstrap/issues/36528): Scrollspy: enable `smooth-scroll` behavior

#### 🚀 Features

-   [#&#8203;36352](https://togithub.com/twbs/bootstrap/issues/36352): Fix StackBlitz examples by embedding snippets.js when needed
-   [#&#8203;36528](https://togithub.com/twbs/bootstrap/issues/36528): Scrollspy: enable `smooth-scroll` behavior
-   [#&#8203;36759](https://togithub.com/twbs/bootstrap/issues/36759): Support input groups in floating forms

#### 🎨 CSS

-   [#&#8203;36156](https://togithub.com/twbs/bootstrap/issues/36156): Update `.form-control-color` sizing and styles
-   [#&#8203;36168](https://togithub.com/twbs/bootstrap/issues/36168): Manually set hover and active backgrounds and borders for dark and light buttons
-   [#&#8203;36178](https://togithub.com/twbs/bootstrap/issues/36178): Add a banner mixin, helping future releases and maintenance
-   [#&#8203;36327](https://togithub.com/twbs/bootstrap/issues/36327): Truncate text to prevent multiline floating label
-   [#&#8203;36353](https://togithub.com/twbs/bootstrap/issues/36353): Fix offcanvas not showing with `.showing`
-   [#&#8203;36366](https://togithub.com/twbs/bootstrap/issues/36366): add back focus box shadow to `btn-link`
-   [#&#8203;36406](https://togithub.com/twbs/bootstrap/issues/36406): CSS: few proposals
-   [#&#8203;36423](https://togithub.com/twbs/bootstrap/issues/36423): Stylelint: Disable `custom-property-empty-line-before`
-   [#&#8203;36446](https://togithub.com/twbs/bootstrap/issues/36446): Update Sass for computing `.table-group-divider` border
-   [#&#8203;36447](https://togithub.com/twbs/bootstrap/issues/36447): Fix `.dropdown-item` `border-radius` when `$dropdown-padding-y` is `0`
-   [#&#8203;36461](https://togithub.com/twbs/bootstrap/issues/36461): Fix alert border radius
-   [#&#8203;36476](https://togithub.com/twbs/bootstrap/issues/36476): Docs: fix Reboot Horizontal rules using border utilities
-   [#&#8203;36477](https://togithub.com/twbs/bootstrap/issues/36477): Docs: remove unused \_algolia.scss
-   [#&#8203;36499](https://togithub.com/twbs/bootstrap/issues/36499): Don't style `readonly` inputs as `disabled`
-   [#&#8203;36500](https://togithub.com/twbs/bootstrap/issues/36500): Generate local CSS variables on utilities when using state option
-   [#&#8203;36509](https://togithub.com/twbs/bootstrap/issues/36509): Remove `--bs-headings-color` CSS variable due to backward compatibility issues
-   [#&#8203;36535](https://togithub.com/twbs/bootstrap/issues/36535): Fix 'Remove from map' Sass description
-   [#&#8203;36608](https://togithub.com/twbs/bootstrap/issues/36608): dashboard example: minor fix
-   [#&#8203;36627](https://togithub.com/twbs/bootstrap/issues/36627): Fix search modal z-index to be on top of all docs showcased components
-   [#&#8203;36646](https://togithub.com/twbs/bootstrap/issues/36646): Fix tooltip/badge border radius when rounded disabled
-   [#&#8203;36680](https://togithub.com/twbs/bootstrap/issues/36680): Revert [`db61cf3`](https://togithub.com/twbs/bootstrap/commit/db61cf3) for `$text-muted` default value
-   [#&#8203;36689](https://togithub.com/twbs/bootstrap/issues/36689): Add missing CSS vars for `.navbar-nav`
-   [#&#8203;36704](https://togithub.com/twbs/bootstrap/issues/36704): Fix missing `--bs-btn-disabled-border-color` in `button-outline-variant` mixin
-   [#&#8203;36711](https://togithub.com/twbs/bootstrap/issues/36711): Add `$display-font-family` and `$display-font-style`
-   [#&#8203;36740](https://togithub.com/twbs/bootstrap/issues/36740): Fixing pagination compile issue
-   [#&#8203;36747](https://togithub.com/twbs/bootstrap/issues/36747): Fix active/focused button link text color
-   [#&#8203;36759](https://togithub.com/twbs/bootstrap/issues/36759): Support input groups in floating forms

#### ☕️ JavaScript

-   [#&#8203;35679](https://togithub.com/twbs/bootstrap/issues/35679): Force tooltip and popover to recreate content every time it opens
-   [#&#8203;36171](https://togithub.com/twbs/bootstrap/issues/36171): Assorted Event handler patches
-   [#&#8203;36386](https://togithub.com/twbs/bootstrap/issues/36386): Fix interoperability issue regarding Event properties
-   [#&#8203;36398](https://togithub.com/twbs/bootstrap/issues/36398): JS: tests fixes & standardization of spies usage
-   [#&#8203;36401](https://togithub.com/twbs/bootstrap/issues/36401): Change Modal dismiss handler, listening to key down, instead of click
-   [#&#8203;36440](https://togithub.com/twbs/bootstrap/issues/36440): Re-ordering js default objects
-   [#&#8203;36449](https://togithub.com/twbs/bootstrap/issues/36449): Fix StackBlitz Popovers and Tooltips examples
-   [#&#8203;36528](https://togithub.com/twbs/bootstrap/issues/36528): Scrollspy: enable `smooth-scroll` behavior
-   [#&#8203;36561](https://togithub.com/twbs/bootstrap/issues/36561): Fix possible bug on event handler
-   [#&#8203;36588](https://togithub.com/twbs/bootstrap/issues/36588): Handle non-empty whitespace textContent in Tooltip trigger
-   [#&#8203;36622](https://togithub.com/twbs/bootstrap/issues/36622): Remove `.show` from panels dependent-less on the existence of `.fade` class
-   [#&#8203;36668](https://togithub.com/twbs/bootstrap/issues/36668): Fix on [#&#8203;35679](https://togithub.com/twbs/bootstrap/issues/35679)
-   [#&#8203;36717](https://togithub.com/twbs/bootstrap/issues/36717): Offcanvas:  activate focustrap when backdrop is enabled
-   [#&#8203;36758](https://togithub.com/twbs/bootstrap/issues/36758): Docs: Fix typos in snippets.js
-   [#&#8203;36772](https://togithub.com/twbs/bootstrap/issues/36772): Fix event handler test

#### 📖 Docs

-   [#&#8203;36345](https://togithub.com/twbs/bootstrap/issues/36345): docs: add the version in npm/yarn commands
-   [#&#8203;36346](https://togithub.com/twbs/bootstrap/issues/36346): Docs: improve image compression
-   [#&#8203;36352](https://togithub.com/twbs/bootstrap/issues/36352): Fix StackBlitz examples by embedding snippets.js when needed
-   [#&#8203;36362](https://togithub.com/twbs/bootstrap/issues/36362): Update search box styling and position
-   [#&#8203;36363](https://togithub.com/twbs/bootstrap/issues/36363): Add some details on "javascript" page
-   [#&#8203;36367](https://togithub.com/twbs/bootstrap/issues/36367): Docs: Correct rounded sizes number
-   [#&#8203;36376](https://togithub.com/twbs/bootstrap/issues/36376): Fix missing Swag Store URL
-   [#&#8203;36382](https://togithub.com/twbs/bootstrap/issues/36382): Rewrite Webpack guide
-   [#&#8203;36395](https://togithub.com/twbs/bootstrap/issues/36395): Docs: quick fixes for HTML
-   [#&#8203;36406](https://togithub.com/twbs/bootstrap/issues/36406): CSS: few proposals
-   [#&#8203;36410](https://togithub.com/twbs/bootstrap/issues/36410): Update introduction.md
-   [#&#8203;36411](https://togithub.com/twbs/bootstrap/issues/36411): Rewrite Parcel guide
-   [#&#8203;36412](https://togithub.com/twbs/bootstrap/issues/36412): Docs: Add a Vite Getting Started guide
-   [#&#8203;36414](https://togithub.com/twbs/bootstrap/issues/36414): Add docs info for using JS w/ ESM shim
-   [#&#8203;36417](https://togithub.com/twbs/bootstrap/issues/36417): Docs: Remove `.is-invalid` from textarea validation example
-   [#&#8203;36425](https://togithub.com/twbs/bootstrap/issues/36425): CSS: doc fixes
-   [#&#8203;36444](https://togithub.com/twbs/bootstrap/issues/36444): Update import order for utilities API docs
-   [#&#8203;36449](https://togithub.com/twbs/bootstrap/issues/36449): Fix StackBlitz Popovers and Tooltips examples
-   [#&#8203;36450](https://togithub.com/twbs/bootstrap/issues/36450): Docs: Use example shortcode for all Button groups
-   [#&#8203;36476](https://togithub.com/twbs/bootstrap/issues/36476): Docs: fix Reboot Horizontal rules using border utilities
-   [#&#8203;36477](https://togithub.com/twbs/bootstrap/issues/36477): Docs: remove unused \_algolia.scss
-   [#&#8203;36487](https://togithub.com/twbs/bootstrap/issues/36487): Remove confusing unnecessary id/aria-labelledby for dropdown menus
-   [#&#8203;36488](https://togithub.com/twbs/bootstrap/issues/36488): Docs: fix some ARIA Authoring Practices Guides broken links
-   [#&#8203;36489](https://togithub.com/twbs/bootstrap/issues/36489): Docs: Update some WCAG links, expand sass.md contrast explanation
-   [#&#8203;36495](https://togithub.com/twbs/bootstrap/issues/36495): Improve accessible name of version dropdown in docs navbar
-   [#&#8203;36503](https://togithub.com/twbs/bootstrap/issues/36503): \[docs] Document BootstrapVue being outdated
-   [#&#8203;36510](https://togithub.com/twbs/bootstrap/issues/36510): Add example of dark navbar and offcanvas to docs
-   [#&#8203;36516](https://togithub.com/twbs/bootstrap/issues/36516): Add .active navbar breaking change to 5.0 docs
-   [#&#8203;36535](https://togithub.com/twbs/bootstrap/issues/36535): Fix 'Remove from map' Sass description
-   [#&#8203;36545](https://togithub.com/twbs/bootstrap/issues/36545): Carousel: Remove redundant reference to `interval=false` from docs & tests
-   [#&#8203;36553](https://togithub.com/twbs/bootstrap/issues/36553): Make table responsive on Grid page
-   [#&#8203;36613](https://togithub.com/twbs/bootstrap/issues/36613): Fix popover live demo to use `data-bs-title` instead of `title`
-   [#&#8203;36625](https://togithub.com/twbs/bootstrap/issues/36625): Add some details for non visible scrollspy elements
-   [#&#8203;36627](https://togithub.com/twbs/bootstrap/issues/36627): Fix search modal z-index to be on top of all docs showcased components
-   [#&#8203;36630](https://togithub.com/twbs/bootstrap/issues/36630): Docs: update clipboard.js to v2.0.11
-   [#&#8203;36637](https://togithub.com/twbs/bootstrap/issues/36637): Fix StackBlitz examples needing docs CSS
-   [#&#8203;36644](https://togithub.com/twbs/bootstrap/issues/36644): Added examples for Radios in List Group
-   [#&#8203;36650](https://togithub.com/twbs/bootstrap/issues/36650): update Lighthouse URL
-   [#&#8203;36658](https://togithub.com/twbs/bootstrap/issues/36658): Fix a typo in the documentation masthead
-   [#&#8203;36669](https://togithub.com/twbs/bootstrap/issues/36669): Docs: alphabetical reorder of some events/methods in tables
-   [#&#8203;36672](https://togithub.com/twbs/bootstrap/issues/36672): Docs: fix some ScrollSpy HTML copyable codes
-   [#&#8203;36674](https://togithub.com/twbs/bootstrap/issues/36674): Docs: add indeterminate disabled checkbox example
-   [#&#8203;36679](https://togithub.com/twbs/bootstrap/issues/36679): Remove dead link from translations
-   [#&#8203;36696](https://togithub.com/twbs/bootstrap/issues/36696): add `type="button"` to Bootstrap versions dropdown
-   [#&#8203;36706](https://togithub.com/twbs/bootstrap/issues/36706): Docs: Add 'Icons' link in footer
-   [#&#8203;36712](https://togithub.com/twbs/bootstrap/issues/36712): Docs: fix description on how to alter display values
-   [#&#8203;36717](https://togithub.com/twbs/bootstrap/issues/36717): Offcanvas:  activate focustrap when backdrop is enabled
-   [#&#8203;36732](https://togithub.com/twbs/bootstrap/issues/36732): Add accNames to all progress bar examples
-   [#&#8203;36734](https://togithub.com/twbs/bootstrap/issues/36734): Docs: Capitalize Unicode
-   [#&#8203;36741](https://togithub.com/twbs/bootstrap/issues/36741): Docs: same text for disabled ranges and disabled form controls
-   [#&#8203;36757](https://togithub.com/twbs/bootstrap/issues/36757): Fix indentation in code sample
-   [#&#8203;36760](https://togithub.com/twbs/bootstrap/issues/36760): Add links to Webpack, Parcel, and Vite guides on homepage
-   [#&#8203;36762](https://togithub.com/twbs/bootstrap/issues/36762): Fix various small typos in documentation
-   [#&#8203;36763](https://togithub.com/twbs/bootstrap/issues/36763): Fix typos in code

#### 🛠 Examples

-   [#&#8203;36608](https://togithub.com/twbs/bootstrap/issues/36608): dashboard example: minor fix
-   [#&#8203;36732](https://togithub.com/twbs/bootstrap/issues/36732): Add accNames to all progress bar examples

#### 🌎 Accessibility

-   [#&#8203;36487](https://togithub.com/twbs/bootstrap/issues/36487): Remove confusing unnecessary id/aria-labelledby for dropdown menus
-   [#&#8203;36488](https://togithub.com/twbs/bootstrap/issues/36488): Docs: fix some ARIA Authoring Practices Guides broken links
-   [#&#8203;36588](https://togithub.com/twbs/bootstrap/issues/36588): Handle non-empty whitespace textContent in Tooltip trigger
-   [#&#8203;36696](https://togithub.com/twbs/bootstrap/issues/36696): add `type="button"` to Bootstrap versions dropdown
-   [#&#8203;36717](https://togithub.com/twbs/bootstrap/issues/36717): Offcanvas:  activate focustrap when backdrop is enabled
-   [#&#8203;36732](https://togithub.com/twbs/bootstrap/issues/36732): Add accNames to all progress bar examples

#### 🏭 Tests

-   [#&#8203;36530](https://togithub.com/twbs/bootstrap/issues/36530): Fix typo in dropdown unit test
-   [#&#8203;36667](https://togithub.com/twbs/bootstrap/issues/36667): Minor fix to use self-closing input HTML tag
-   [#&#8203;36742](https://togithub.com/twbs/bootstrap/issues/36742): Standardization of `spyOn` usage
-   [#&#8203;36772](https://togithub.com/twbs/bootstrap/issues/36772): Fix event handler test

#### 🧰 Misc

-   [#&#8203;36548](https://togithub.com/twbs/bootstrap/issues/36548): Update Code of Conduct with Contributor Covenant 2.1
-   [#&#8203;36624](https://togithub.com/twbs/bootstrap/issues/36624): Use 'needs-example' label to trigger live demo bot message
-   [#&#8203;36700](https://togithub.com/twbs/bootstrap/issues/36700): Replace JS Bin refs by CodePen or StackBlitz references

#### 📦 Dependencies

-   Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F45>

</details>

<details>
<summary>react-bootstrap/react-bootstrap (react-bootstrap)</summary>

### [`v2.10.1`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#2101-2024-02-10)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.10.0...v2.10.1)

##### Bug Fixes

-   **FormControl:** ensures compatibility with [@&#8203;types/react](https://togithub.com/types/react)[@&#8203;18](https://togithub.com/18).2.48 ([#&#8203;6763](https://togithub.com/react-bootstrap/react-bootstrap/issues/6763)) ([652e709](https://togithub.com/react-bootstrap/react-bootstrap/commit/652e709fe6f3b383e041474f776855431fc8e1ea))

### [`v2.10.0`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#2100-2024-01-17)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.9.2...v2.10.0)

##### Bug Fixes

-   **Modal:** properly handle `data-bs-theme` attribute ([#&#8203;6743](https://togithub.com/react-bootstrap/react-bootstrap/issues/6743)) ([1ead9ca](https://togithub.com/react-bootstrap/react-bootstrap/commit/1ead9cac8a617c401a33fa921529d57e56db0718))

##### Features

-   **PageItem:** implement "as" property ([#&#8203;6754](https://togithub.com/react-bootstrap/react-bootstrap/issues/6754)) ([430b0c9](https://togithub.com/react-bootstrap/react-bootstrap/commit/430b0c9589b76d89496b49a5cbdeaa38b9f828a0))

#### [2.9.2](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.9.1...v2.9.2) (2023-12-22)

##### Bug Fixes

-   **AccordionBody:** add AccordionBody to index exports ([#&#8203;6732](https://togithub.com/react-bootstrap/react-bootstrap/issues/6732)) ([d34244b](https://togithub.com/react-bootstrap/react-bootstrap/commit/d34244b9ed01eba003699b2a9b7d4228052640cb))
-   **Dropdown:** prevent flickering on 'mousedown' rootCloseEvent ([#&#8203;6714](https://togithub.com/react-bootstrap/react-bootstrap/issues/6714)) ([a58a0cd](https://togithub.com/react-bootstrap/react-bootstrap/commit/a58a0cd6e548c653cda23ed529f3cff69ec123cc))
-   **Navbar:** add missing type for sticky bottom ([#&#8203;6726](https://togithub.com/react-bootstrap/react-bootstrap/issues/6726)) ([36d0b7a](https://togithub.com/react-bootstrap/react-bootstrap/commit/36d0b7a92f9443d856f69b2d8cfbef1b868036c4))

#### [2.9.1](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.9.0...v2.9.1) (2023-10-21)

##### Bug Fixes

-   **OverlayTrigger:** convert to an arrow function to fix type issues ([#&#8203;6709](https://togithub.com/react-bootstrap/react-bootstrap/issues/6709)) ([4e609e2](https://togithub.com/react-bootstrap/react-bootstrap/commit/4e609e2aa69389a6b7be2d55ed8ee4b8572cb93e)), closes [#&#8203;6708](https://togithub.com/react-bootstrap/react-bootstrap/issues/6708) [#&#8203;6708](https://togithub.com/react-bootstrap/react-bootstrap/issues/6708)
-   **types:** loosen color and gap types ([#&#8203;6713](https://togithub.com/react-bootstrap/react-bootstrap/issues/6713)) ([91fb12b](https://togithub.com/react-bootstrap/react-bootstrap/commit/91fb12b46d705129f0143d9cbede7f2f82a4ad36))

### [`v2.9.2`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#292-2023-12-22)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.9.1...v2.9.2)

##### Bug Fixes

-   **AccordionBody:** add AccordionBody to index exports ([#&#8203;6732](https://togithub.com/react-bootstrap/react-bootstrap/issues/6732)) ([d34244b](https://togithub.com/react-bootstrap/react-bootstrap/commit/d34244b9ed01eba003699b2a9b7d4228052640cb))
-   **Dropdown:** prevent flickering on 'mousedown' rootCloseEvent ([#&#8203;6714](https://togithub.com/react-bootstrap/react-bootstrap/issues/6714)) ([a58a0cd](https://togithub.com/react-bootstrap/react-bootstrap/commit/a58a0cd6e548c653cda23ed529f3cff69ec123cc))
-   **Navbar:** add missing type for sticky bottom ([#&#8203;6726](https://togithub.com/react-bootstrap/react-bootstrap/issues/6726)) ([36d0b7a](https://togithub.com/react-bootstrap/react-bootstrap/commit/36d0b7a92f9443d856f69b2d8cfbef1b868036c4))

### [`v2.9.1`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#291-2023-10-21)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.9.0...v2.9.1)

##### Bug Fixes

-   **OverlayTrigger:** convert to an arrow function to fix type issues ([#&#8203;6709](https://togithub.com/react-bootstrap/react-bootstrap/issues/6709)) ([4e609e2](https://togithub.com/react-bootstrap/react-bootstrap/commit/4e609e2aa69389a6b7be2d55ed8ee4b8572cb93e)), closes [#&#8203;6708](https://togithub.com/react-bootstrap/react-bootstrap/issues/6708) [#&#8203;6708](https://togithub.com/react-bootstrap/react-bootstrap/issues/6708)
-   **types:** loosen color and gap types ([#&#8203;6713](https://togithub.com/react-bootstrap/react-bootstrap/issues/6713)) ([91fb12b](https://togithub.com/react-bootstrap/react-bootstrap/commit/91fb12b46d705129f0143d9cbede7f2f82a4ad36))

### [`v2.9.0`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#290-2023-09-27)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.8.0...v2.9.0)

##### Features

-   **Toast:** add transition callbacks ([#&#8203;6674](https://togithub.com/react-bootstrap/react-bootstrap/issues/6674)) ([57836e2](https://togithub.com/react-bootstrap/react-bootstrap/commit/57836e20a3b5f7999469a307f0600c2e38403eb0))

### [`v2.8.0`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#280-2023-06-23)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.4...v2.8.0)

##### Bug Fixes

-   **Tooltip:** fix offset ([#&#8203;6622](https://togithub.com/react-bootstrap/react-bootstrap/issues/6622)) ([3c094ec](https://togithub.com/react-bootstrap/react-bootstrap/commit/3c094ec1ba132c6555bd3e2033fa6b21fff93a23))

##### Features

-   **PageItem:** add linkStyle and linkClassName props ([#&#8203;6636](https://togithub.com/react-bootstrap/react-bootstrap/issues/6636)) ([cc8efc3](https://togithub.com/react-bootstrap/react-bootstrap/commit/cc8efc36b945fccaf384c6909d0652b480f6b759))
-   add underline variant for Nav/Tabs ([#&#8203;6623](https://togithub.com/react-bootstrap/react-bootstrap/issues/6623)) ([600364b](https://togithub.com/react-bootstrap/react-bootstrap/commit/600364bcdba27eb896f65575ccc0424cdbb79069))

#### [2.7.4](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.3...v2.7.4) (2023-04-15)

##### Bug Fixes

-   downgrade uncontrollable to 7.2.1 ([#&#8203;6592](https://togithub.com/react-bootstrap/react-bootstrap/issues/6592)) ([3898c72](https://togithub.com/react-bootstrap/react-bootstrap/commit/3898c72a6a5e2f6012633e81d9d9f9052fc06dd2))
-   update dependencies ([#&#8203;6587](https://togithub.com/react-bootstrap/react-bootstrap/issues/6587)) ([753dc53](https://togithub.com/react-bootstrap/react-bootstrap/commit/753dc53c822054fff286ed39feb7c9c38e38053b))

#### [2.7.3](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.2...v2.7.3) (2023-04-12)

##### Bug Fixes

-   **ToastContainer:** allow setting `containerPosition` without `position` ([#&#8203;6574](https://togithub.com/react-bootstrap/react-bootstrap/issues/6574)) ([41ec134](https://togithub.com/react-bootstrap/react-bootstrap/commit/41ec134dea072d1656e47f31cac217feb433f9fc))
-   switch from defaultProps to JS default params ([#&#8203;6568](https://togithub.com/react-bootstrap/react-bootstrap/issues/6568)) ([1d5b726](https://togithub.com/react-bootstrap/react-bootstrap/commit/1d5b726de93ec52cd71b22048b5f92198e48db68))

#### [2.7.2](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.1...v2.7.2) (2023-02-14)

##### Bug Fixes

-   **Overlay:** fix arrow animation ([#&#8203;6551](https://togithub.com/react-bootstrap/react-bootstrap/issues/6551)) ([21b9981](https://togithub.com/react-bootstrap/react-bootstrap/commit/21b9981359b151269af740d1fa4c8a287ae9c71f))

#### [2.7.1](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.0...v2.7.1) (2023-02-10)

##### Bug Fixes

-   **Accordion:** fix `aria-expanded` value when using `alwaysOpen` ([#&#8203;6537](https://togithub.com/react-bootstrap/react-bootstrap/issues/6537)) ([7f633bf](https://togithub.com/react-bootstrap/react-bootstrap/commit/7f633bf31ed4771c97904df4bb9567900ad4e96c)), closes [#&#8203;6536](https://togithub.com/react-bootstrap/react-bootstrap/issues/6536) [#&#8203;6536](https://togithub.com/react-bootstrap/react-bootstrap/issues/6536)
-   **Overlay:** fix flickering of tooltips and popovers during initial render ([#&#8203;6544](https://togithub.com/react-bootstrap/react-bootstrap/issues/6544)) ([821624d](https://togithub.com/react-bootstrap/react-bootstrap/commit/821624d432d346d1f2f52d625eb484b70ba786e6))
-   **Stack:** fix incorrect classes being generated ([#&#8203;6540](https://togithub.com/react-bootstrap/react-bootstrap/issues/6540)) ([e3a77e1](https://togithub.com/react-bootstrap/react-bootstrap/commit/e3a77e1938baa3d5b000a5aabfc034992ac615d5))

### [`v2.7.4`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#274-2023-04-15)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.3...v2.7.4)

##### Bug Fixes

-   downgrade uncontrollable to 7.2.1 ([#&#8203;6592](https://togithub.com/react-bootstrap/react-bootstrap/issues/6592)) ([3898c72](https://togithub.com/react-bootstrap/react-bootstrap/commit/3898c72a6a5e2f6012633e81d9d9f9052fc06dd2))
-   update dependencies ([#&#8203;6587](https://togithub.com/react-bootstrap/react-bootstrap/issues/6587)) ([753dc53](https://togithub.com/react-bootstrap/react-bootstrap/commit/753dc53c822054fff286ed39feb7c9c38e38053b))

### [`v2.7.3`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#273-2023-04-12)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.2...v2.7.3)

##### Bug Fixes

-   **ToastContainer:** allow setting `containerPosition` without `position` ([#&#8203;6574](https://togithub.com/react-bootstrap/react-bootstrap/issues/6574)) ([41ec134](https://togithub.com/react-bootstrap/react-bootstrap/commit/41ec134dea072d1656e47f31cac217feb433f9fc))
-   switch from defaultProps to JS default params ([#&#8203;6568](https://togithub.com/react-bootstrap/react-bootstrap/issues/6568)) ([1d5b726](https://togithub.com/react-bootstrap/react-bootstrap/commit/1d5b726de93ec52cd71b22048b5f92198e48db68))

### [`v2.7.2`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#272-2023-02-14)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.1...v2.7.2)

##### Bug Fixes

-   **Overlay:** fix arrow animation ([#&#8203;6551](https://togithub.com/react-bootstrap/react-bootstrap/issues/6551)) ([21b9981](https://togithub.com/react-bootstrap/react-bootstrap/commit/21b9981359b151269af740d1fa4c8a287ae9c71f))

### [`v2.7.1`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#271-2023-02-10)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.7.0...v2.7.1)

##### Bug Fixes

-   **Accordion:** fix `aria-expanded` value when using `alwaysOpen` ([#&#8203;6537](https://togithub.com/react-bootstrap/react-bootstrap/issues/6537)) ([7f633bf](https://togithub.com/react-bootstrap/react-bootstrap/commit/7f633bf31ed4771c97904df4bb9567900ad4e96c)), closes [#&#8203;6536](https://togithub.com/react-bootstrap/react-bootstrap/issues/6536) [#&#8203;6536](https://togithub.com/react-bootstrap/react-bootstrap/issues/6536)
-   **Overlay:** fix flickering of tooltips and popovers during initial render ([#&#8203;6544](https://togithub.com/react-bootstrap/react-bootstrap/issues/6544)) ([821624d](https://togithub.com/react-bootstrap/react-bootstrap/commit/821624d432d346d1f2f52d625eb484b70ba786e6))
-   **Stack:** fix incorrect classes being generated ([#&#8203;6540](https://togithub.com/react-bootstrap/react-bootstrap/issues/6540)) ([e3a77e1](https://togithub.com/react-bootstrap/react-bootstrap/commit/e3a77e1938baa3d5b000a5aabfc034992ac615d5))

### [`v2.7.0`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#270-2022-12-07)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.6.0...v2.7.0)

##### Bug Fixes

-   **Dropdown:** fic missing .show class on dropdown toggle when active ([#&#8203;6508](https://togithub.com/react-bootstrap/react-bootstrap/issues/6508)) ([eaa4bb9](https://togithub.com/react-bootstrap/react-bootstrap/commit/eaa4bb999f03a2bbb6ad0cb51dd4aa040cb96cfd))
-   **Modal:** fix modal not closing when keyboard=false ([#&#8203;6515](https://togithub.com/react-bootstrap/react-bootstrap/issues/6515)) ([92703d5](https://togithub.com/react-bootstrap/react-bootstrap/commit/92703d5e3d8558e0a9599512c832adf9b0d37a25))

##### Features

-   **AccordionBody:** add transition callback props ([#&#8203;6478](https://togithub.com/react-bootstrap/react-bootstrap/issues/6478)) ([ba092df](https://togithub.com/react-bootstrap/react-bootstrap/commit/ba092df063e024615c3f0d43f8b0681543e71b94))
-   **Dropdown:** add support for centered dropdown menus ([#&#8203;6490](https://togithub.com/react-bootstrap/react-bootstrap/issues/6490)) ([500ee94](https://togithub.com/react-bootstrap/react-bootstrap/commit/500ee94086fa7ddbea9a613c49908ad51cc67e96))
-   **Ratio:** add support for portrait size ratios ([#&#8203;6501](https://togithub.com/react-bootstrap/react-bootstrap/issues/6501)) ([3cfdab1](https://togithub.com/react-bootstrap/react-bootstrap/commit/3cfdab16dc4a51ecd648341921d93edd28b3deb2))

### [`v2.6.0`](https://togithub.com/react-bootstrap/react-bootstrap/blob/HEAD/CHANGELOG.md#260-2022-11-06)

[Compare Source](https://togithub.com/react-bootstrap/react-bootstrap/compare/v2.5.0...v2.6.0)

##### Bug Fixes

-   update [@&#8203;restart/ui](https://togithub.com/restart/ui) to 1.4.0 ([#&#8203;6479](https://togithub.com/react-bootstrap/react-bootstrap/issues/6479)) ([e38deae](https://togithub.com/react-bootstrap/react-bootstrap/commit/e38deae002093a4e08a9cd7e7cc76ab8f2508b98))
-   update [@&#8203;restart/ui](https://togithub.com/restart/ui) to 1.4.1 ([#&#8203;6481](https://togithub.com/react-bootstrap/react-bootstrap/issues/6481)) ([a42c8de](https://togithub.com/react-bootstrap/react-bootstrap/commit/a42c8d

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NCI-Agency/anet).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41MS4wIiwidXBkYXRlZEluVmVyIjoiMzcuMjAwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

user: renovate[bot]
issue_3981: state: open
title: Add animation when sorting attendee list
body: Attendees table is sorted with an animation according to the attendee role changes.

Closes [AB#340](https://dev.azure.com/ncia-anet/2aa083a5-af3d-44e1-8c7b-6e9e6b124d91/_workitems/edit/340)

#### User changes
- Users get visual feedback while the order of attendees table changing according to the role change

#### Super User changes
- None

#### Admin changes
- None

#### System admin changes
- [ ] anet.yml or anet-dictionary.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [x] Described the user behavior in PR body
  - [x] Referenced/updated all related issues
  - [x] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [x] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: anilsonmez-simsoft
issue_3941: state: open
title: Ability to generate a PDF of combined daily engagement reports
body: Users go to archive center and specify a time frame and then press download button. Reports published between the specified time frame are printed inside a PDF generated at server side. All of the reports are put inside one PDF file; reports inside of the file are separated by page break.

> Things that are missing on **server side**:
> - [ ] It should be determined which report information should be shown (not all report fields are currently displayed).
> - [ ] Some fields are shown in Object format inside of report. They should show proper key value pairs inside report.
> - [ ] CustomSensitive & ReportSensitive fields are not meant to be shown inside PDFs. However, if client side request them, they could be shown inside reports. There is no mechanism on server side to block that.
> - [ ] Server side tests should be written.
> - [ ] There are TODOs waiting to be handled.
>
> Things that are missing on **client side**:
> - [ ] `Archive Center` page should be prettified by staying consistent with the rest of the UI, showing proper information to the user.
> - [ ] There should be start and end date fields for user to specify the time range. The current download button requests all reports in the system.

Closes [AB#263](https://dev.azure.com/ncia-anet/2aa083a5-af3d-44e1-8c7b-6e9e6b124d91/_workitems/edit/263)

#### User changes
- It is possible to export reports published between a specified time frame.

#### Super User changes
- None

#### Admin changes
- None

#### System admin changes
- [ ] anet.yml or anet-dictionary.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [x] Described the user behavior in PR body
  - [x] Referenced/updated all related issues
  - [x] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [x] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: asafkaganbezgin
issue_3934: state: open
title: Create diagram as part of note
body: Diagrams can be saved as a note of type `DIAGRAM`. These diagrams can be seen on the show pages of the related ANET entity.

Closes [AB#245](https://dev.azure.com/ncia-anet/2aa083a5-af3d-44e1-8c7b-6e9e6b124d91/_workitems/edit/245)

#### User changes
- Users can create, edit or delete diagrams related to the ANET entities

#### Super User changes
- None

#### Admin changes
- None

#### System admin changes
- [ ] anet.yml or anet-dictionary.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [x] Described the user behavior in PR body
  - [x] Referenced/updated all related issues
  - [x] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [x] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: anilsonmez-simsoft
issue_3896: state: open
title: UI issues with Bootstrap 5
body: Remaining items from #3698:

- [x] Font sizes got bigger throughout the application.
- [ ] BlueprintsJS 'core' library could be omitted (with the possible exception of icons). [current React-Bootstrap library lacks Date&Time picker component].
- [ ]  React-Bootstrap offers similar functionality to some extra libraries that we use; we may want to replace those libraries with standard bootstrap.
- [x] Text in custom field textarea's is vertically aligned in the middle, and newlines can no longer be entered (it looks like those textarea's are rendered not as a textarea but as a regular text input field).
- [x] The modal triggered by _ANET Link_ button inside RichTextEditor falls behind the modal that RichTextEditor is placed in. _See notes section in show pages (there might be other places)_.
- [ ] _AdvancedSingleSelect_ components inside _AdvancedSearch_ remain inside of the search box when opened.
- [x] Badges in the `CompactRowReportWorkflow` don't have enough contrast in the font.
- [x] The _Remove Item_ button in e.g. the Edit History dialog is too far up.
- [x] The _ReportStateFilter_ (e.g. advanced search on Insights with only the state as a filter) overlaps the remove button.
- [ ] The checkbox (e.g. advanced search on the Pending Assessments Insight ) is overlapped by the label.
- [x] Date picker components does not display month and year drop-downs when inside of a modal.
- [ ] "Changes requested" button in the report workflow pop-up can be wider than the pop-up.
- [x] Assessment modals containing SlateJS editor can be larger so that the toolbar is not wrapped.
user: gjvoosten
issue_3825: state: open
title: Dependency Dashboard
body: This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more.

## Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

 - [ ] <!-- rebase-branch=renovate/gradlenpm-dependencies-keycloak -->[Update Gradle/NPM, dependencies, Keycloak to v23.0.7](../pull/4648) (`keycloak-connect`, `keycloak-js`, `org.keycloak:keycloak-policy-enforcer`, `org.keycloak:keycloak-jaxrs-oauth-client`, `org.keycloak:keycloak-jetty94-adapter`)
 - [ ] <!-- rebase-branch=renovate/npm-dependencies-emotion -->[Update dependency @emotion/react to v11.11.4](../pull/4682)
 - [ ] <!-- rebase-branch=renovate/npm-dependencies-bootstrap -->[Update NPM, dependencies, Bootstrap](../pull/4185) (`bootstrap`, `react-bootstrap`)
 - [ ] <!-- rebase-branch=renovate/most-minor-dev-patch -->[Update dependency eslint to v8.57.0](../pull/4676)
 - [ ] <!-- rebase-branch=renovate/most-minor-patch -->[Update most non-major dependencies](../pull/4632) (`@apollo/client`, `@projectstorm/react-diagrams`, `axios`, `change-case`, `core-js`, `graphiql`, `leaflet-geosearch`, `react-advanced-cropper`, `react-redux`, `title-case`)
 - [ ] <!-- rebase-branch=renovate/major-npm-dependencies-blueprint -->[Update NPM, dependencies, Blueprint (major)](../pull/4418) (`@blueprintjs/core`, `@blueprintjs/datetime`, `@blueprintjs/popover2`)
 - [ ] <!-- rebase-branch=renovate/lock-file-maintenance -->[Lock file maintenance](../pull/4638)
 - [ ] <!-- rebase-all-open-prs -->**Click on this checkbox to rebase all open PRs at once**

## Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

 - [ ] <!-- recreate-branch=renovate/major-test-packages -->[Update dependency chai to v5](../pull/4621)
 - [ ] <!-- recreate-branch=renovate/com.graphql-java-java-dataloader-2022.x -->[Update dependency com.graphql-java:java-dataloader to v2022](../pull/3992)
 - [ ] <!-- recreate-branch=renovate/de.ahus1.keycloak.dropwizard-keycloak-dropwizard-3.x -->[Update dependency de.ahus1.keycloak.dropwizard:keycloak-dropwizard to v3](../pull/4680)
 - [ ] <!-- recreate-branch=renovate/mgrs-2.x -->[Update dependency mgrs to v2](../pull/4305)
 - [ ] <!-- recreate-branch=renovate/ru.vyarus.guicey-guicey-jdbi3-7.x -->[Update dependency ru.vyarus.guicey:guicey-jdbi3 to v7](../pull/4437)
 - [ ] <!-- recreate-branch=renovate/major-dropwizard-monorepo -->[Update dropwizard monorepo to v4 (major)](../pull/4313) (`io.dropwizard:dropwizard-client`, `io.dropwizard:dropwizard-testing`, `io.dropwizard:dropwizard-forms`, `io.dropwizard:dropwizard-views-freemarker`, `io.dropwizard:dropwizard-auth`, `io.dropwizard:dropwizard-migrations`, `io.dropwizard:dropwizard-jdbi3`, `io.dropwizard:dropwizard-core`)

## Detected dependencies

<details><summary>dockerfile</summary>
<blockquote>

<details><summary>docker/anet-app-server/Dockerfile</summary>

 - `openjdk 8-jre-alpine`

</details>

</blockquote>
</details>

<details><summary>github-actions</summary>
<blockquote>

<details><summary>.github/actions/build-cache/action.yml</summary>

 - `actions/checkout v4`
 - `actions/setup-java v4`
 - `actions/cache v4`
 - `actions/cache v4`
 - `actions/cache v4`

</details>

<details><summary>.github/workflows/build-gradle.yml</summary>

 - `actions/checkout v4`
 - `actions/checkout v4`
 - `actions/checkout v4`
 - `actions/upload-artifact v4`
 - `actions/checkout v4`
 - `olegtarasov/get-tag 2.1.3`
 - `actions/upload-artifact v4`
 - `actions/checkout v4`

</details>

<details><summary>.github/workflows/codeql-analysis.yml</summary>

 - `actions/setup-java v4`
 - `actions/checkout v4`
 - `github/codeql-action v3`
 - `github/codeql-action v3`
 - `github/codeql-action v3`

</details>

<details><summary>.github/workflows/release-drafter.yml</summary>

 - `release-drafter/release-drafter v6`

</details>

</blockquote>
</details>

<details><summary>gradle</summary>
<blockquote>

<details><summary>settings.gradle</summary>


</details>

<details><summary>build.gradle</summary>

 - `org.kordamp.gradle.markdown 2.2.0`
 - `com.bmuschko.docker-remote-api 9.4.0`
 - `com.github.node-gradle.node 7.0.2`
 - `com.diffplug.spotless 6.25.0`
 - `org.beryx.runtime 1.13.1`
 - `com.netflix.nebula.rpm 11.8.1`
 - `io.dropwizard:dropwizard-core 3.0.6`
 - `io.dropwizard:dropwizard-jdbi3 3.0.6`
 - `io.dropwizard:dropwizard-migrations 3.0.6`
 - `io.dropwizard:dropwizard-auth 3.0.6`
 - `io.dropwizard:dropwizard-views-freemarker 3.0.6`
 - `io.dropwizard:dropwizard-forms 3.0.6`
 - `org.jdbi:jdbi3-postgres 3.45.0`
 - `ru.vyarus.guicey:guicey-jdbi3 6.2.2`
 - `com.google.guava:guava 33.0.0-jre`
 - `commons-collections:commons-collections 3.2.2`
 - `org.postgresql:postgresql 42.7.2`
 - `org.ehcache:ehcache 3.10.8`
 - `javax.cache:cache-api 1.1.1`
 - `commons-beanutils:commons-beanutils 1.9.4`
 - `org.simplejavamail:simple-java-mail 8.6.3`
 - `org.eclipse.angus:jakarta.mail 2.0.2`
 - `com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer 20220608.1`
 - `com.mikesamuel:json-sanitizer 1.2.3`
 - `de.ahus1.keycloak.dropwizard:keycloak-dropwizard 2.0.0`
 - `org.keycloak:keycloak-jetty94-adapter 23.0.4`
 - `org.keycloak:keycloak-jaxrs-oauth-client 23.0.4`
 - `org.keycloak:keycloak-policy-enforcer 23.0.4`
 - `com.github.javadev:underscore-lodash 1.26`
 - `com.networknt:json-schema-validator 1.3.3`
 - `org.apache.poi:poi 5.2.5`
 - `org.apache.poi:poi-ooxml 5.2.5`
 - `org.apache.tika:tika-core 2.9.1`
 - `org.jsoup:jsoup 1.17.2`
 - `net.coobird:thumbnailator 0.4.20`
 - `com.graphql-java:java-dataloader 3.2.2`
 - `io.dropwizard:dropwizard-testing 3.0.6`
 - `io.dropwizard:dropwizard-client 3.0.6`
 - `org.apache.commons:commons-io 1.3.2`
 - `org.assertj:assertj-core 3.25.3`
 - `org.powermock:powermock-api-mockito2 2.0.9`
 - `org.powermock:powermock-module-junit4 2.0.9`
 - `org.powermock:powermock-module-junit4-rule 2.0.9`
 - `org.junit.jupiter:junit-jupiter-api 5.10.2`
 - `org.junit.jupiter:junit-jupiter-engine 5.10.2`
 - `org.apache.logging.log4j:log4j-api 2.23.0`
 - `org.apache.logging.log4j:log4j-to-slf4j 2.23.0`
 - `jacoco 0.8.11`
 - `checkstyle 10.13.0`
 - `com.google.guava:guava 33.0.0-jre`

</details>

</blockquote>
</details>

<details><summary>gradle-wrapper</summary>
<blockquote>

<details><summary>gradle/wrapper/gradle-wrapper.properties</summary>

 - `gradle 8.6`

</details>

</blockquote>
</details>

<details><summary>npm</summary>
<blockquote>

<details><summary>client/package.json</summary>

 - `@apollo/client 3.8.9`
 - `@blueprintjs/core 4.20.2`
 - `@blueprintjs/datetime 4.4.37`
 - `@blueprintjs/popover2 1.14.11`
 - `@emotion/react 11.11.3`
 - `@emotion/styled 11.11.0`
 - `@fullcalendar/core 6.1.11`
 - `@fullcalendar/daygrid 6.1.11`
 - `@fullcalendar/interaction 6.1.11`
 - `@fullcalendar/list 6.1.11`
 - `@fullcalendar/react 6.1.11`
 - `@fullcalendar/timegrid 6.1.11`
 - `@projectstorm/react-diagrams 7.0.3`
 - `axios 1.6.5`
 - `bootstrap 5.1.3`
 - `change-case 5.4.0`
 - `classnames 2.5.1`
 - `closest 0.0.1`
 - `core-js 3.35.0`
 - `d3 7.8.5`
 - `dagre 0.8.5`
 - `email-addresses 5.0.0`
 - `escape-html 1.0.3`
 - `file-saver 2.0.5`
 - `formik 2.4.5`
 - `graphiql 3.1.0`
 - `graphql 16.8.1`
 - `hopscotch 0.3.1`
 - `jsonpath-plus 8.0.0`
 - `keycloak-js 23.0.4`
 - `leaflet 1.9.4`
 - `leaflet-defaulticon-compatibility 0.1.2`
 - `leaflet-geosearch 3.11.0`
 - `leaflet-gesture-handling 1.2.2`
 - `leaflet.markercluster 1.5.3`
 - `locale-compare-polyfill 0.0.2`
 - `lodash 4.17.21`
 - `mgrs 1.0.0`
 - `milsymbol 2.2.0`
 - `ml-matrix 6.11.0`
 - `moment 2.30.1`
 - `pathfinding 0.4.18`
 - `paths-js 0.4.11`
 - `pluralize 8.0.0`
 - `prop-types 15.8.1`
 - `querystring 0.2.1`
 - `react 18.2.0`
 - `react-advanced-cropper ^0.19.4`
 - `react-bootstrap 2.4.0`
 - `react-container-dimensions 1.4.1`
 - `react-dom 18.2.0`
 - `react-moment-proptypes 1.8.1`
 - `react-mosaic-component 6.1.0`
 - `react-redux 9.0.4`
 - `react-redux-loading-bar 5.0.8`
 - `react-router-bootstrap 0.26.2`
 - `react-scroll 1.9.0`
 - `react-toastify 10.0.4`
 - `react-ultimate-pagination 1.3.2`
 - `react-use-dimensions 1.2.1`
 - `reduce-css-calc 2.1.8`
 - `redux 5.0.1`
 - `redux-persist 6.0.0`
 - `resize-observer-polyfill 1.5.1`
 - `scroll-into-view-if-needed 3.1.0`
 - `slate 0.102.0`
 - `slate-history 0.100.0`
 - `slate-hyperscript 0.100.0`
 - `slate-react 0.102.0`
 - `title-case 4.3.0`
 - `use-debounce 10.0.0`
 - `uuid 9.0.1`
 - `yup 1.3.3`
 - `@babel/core 7.23.9`
 - `@babel/eslint-parser 7.23.10`
 - `@babel/plugin-proposal-class-properties 7.18.6`
 - `@babel/plugin-proposal-decorators 7.23.9`
 - `@babel/plugin-proposal-do-expressions 7.23.3`
 - `@babel/plugin-proposal-export-default-from 7.23.3`
 - `@babel/plugin-proposal-export-namespace-from 7.18.9`
 - `@babel/plugin-proposal-function-sent 7.23.3`
 - `@babel/plugin-proposal-json-strings 7.18.6`
 - `@babel/plugin-proposal-logical-assignment-operators 7.20.7`
 - `@babel/plugin-proposal-nullish-coalescing-operator 7.18.6`
 - `@babel/plugin-proposal-numeric-separator 7.18.6`
 - `@babel/plugin-proposal-optional-chaining 7.21.0`
 - `@babel/plugin-proposal-pipeline-operator 7.23.3`
 - `@babel/plugin-proposal-private-property-in-object 7.21.11`
 - `@babel/plugin-proposal-throw-expressions 7.23.3`
 - `@babel/plugin-syntax-dynamic-import 7.8.3`
 - `@babel/plugin-syntax-import-meta 7.10.4`
 - `@babel/plugin-transform-modules-commonjs 7.23.3`
 - `@babel/plugin-transform-proto-to-assign 7.23.3`
 - `@babel/preset-react 7.23.3`
 - `@babel/register 7.23.7`
 - `@babel/runtime 7.23.9`
 - `@colors/colors 1.6.0`
 - `@faker-js/faker 8.4.1`
 - `@graphql-codegen/cli 5.0.2`
 - `@graphql-codegen/schema-ast 4.0.2`
 - `@graphql-codegen/visitor-plugin-common 5.1.0`
 - `@storybook/addon-essentials 7.6.17`
 - `@storybook/addon-links 7.6.17`
 - `@storybook/addon-styling-webpack 0.0.6`
 - `@storybook/addons 7.6.17`
 - `@storybook/react 7.6.17`
 - `@storybook/react-webpack5 7.6.17`
 - `@storybook/theming 7.6.17`
 - `@testing-library/jest-dom 6.4.2`
 - `@testing-library/react 14.2.1`
 - `@trivago/prettier-plugin-sort-imports 4.3.0`
 - `@wdio/browserstack-service 8.32.3`
 - `@wdio/cli 8.32.3`
 - `@wdio/junit-reporter 8.32.2`
 - `@wdio/local-runner 8.32.3`
 - `@wdio/mocha-framework 8.32.3`
 - `@wdio/spec-reporter 8.32.2`
 - `aigle 1.14.1`
 - `ava 6.1.1`
 - `babel-jest 29.7.0`
 - `babel-loader 9.1.3`
 - `babel-preset-react-app 10.0.1`
 - `browserstack-local 1.5.5`
 - `chai 4.4.1`
 - `chromatic 11.0.0`
 - `circular-dependency-plugin 5.2.2`
 - `clean-webpack-plugin 4.0.0`
 - `config 3.3.11`
 - `copy-webpack-plugin 12.0.2`
 - `countries-list 3.0.6`
 - `cross-fetch 4.0.0`
 - `cross-spawn 7.0.3`
 - `css-loader 6.10.0`
 - `dotenv 16.4.5`
 - `encoding 0.1.13`
 - `eslint 8.56.0`
 - `eslint-config-react-app 7.0.1`
 - `eslint-config-standard 17.1.0`
 - `eslint-config-standard-jsx 11.0.0`
 - `eslint-config-standard-react 13.0.0`
 - `eslint-plugin-chai-expect 3.0.0`
 - `eslint-plugin-flowtype 8.0.3`
 - `eslint-plugin-import 2.29.1`
 - `eslint-plugin-jsx-a11y 6.8.0`
 - `eslint-plugin-n 16.6.2`
 - `eslint-plugin-promise 6.1.1`
 - `eslint-plugin-react 7.33.2`
 - `eslint-plugin-react-hooks 4.6.0`
 - `eslint-webpack-plugin 4.0.1`
 - `express-session 1.18.0`
 - `git-describe 4.1.1`
 - `handlebars 4.7.8`
 - `handlebars-loader 1.7.3`
 - `html-webpack-plugin 5.6.0`
 - `i18n-iso-countries 7.10.0`
 - `ignore-loader 0.1.2`
 - `jest 29.7.0`
 - `jest-environment-jsdom 29.7.0`
 - `jest-junit 16.0.0`
 - `js-yaml 4.1.0`
 - `json-loader 0.5.7`
 - `keycloak-connect 23.0.4`
 - `moment-timezone 0.5.45`
 - `postcss 8.4.35`
 - `postcss-calc 9.0.1`
 - `postcss-flexbugs-fixes 5.0.2`
 - `postcss-loader 8.1.0`
 - `prettier-eslint-cli 8.0.1`
 - `react-is 18.2.0`
 - `react-test-renderer 18.2.0`
 - `selenium-webdriver 4.18.1`
 - `storybook 7.6.17`
 - `style-loader 3.3.4`
 - `tap-xunit 2.4.1`
 - `thread-loader 4.0.2`
 - `ts-node 10.9.2`
 - `webdriverio 8.32.3`
 - `webpack 5.90.3`
 - `webpack-cli 5.1.4`
 - `webpack-dev-server 5.0.2`
 - `webpack-merge 5.10.0`
 - `xhr2 0.2.1`

</details>

</blockquote>
</details>

---

- [ ] <!-- manual job -->Check this box to trigger a request for Renovate to run again on this repository


user: renovate[bot]
issue_3806: state: open
title: Enable monitoring of code coverage as part of the CI
body: Enable monitoring of code coverage as part if the CI:
- [ ] See current code coverage
- [ ] See change on code coverage

Parent:
- #383


user: midmarch
labels: DevOps: DevOps or CI related work
issue_3785: state: open
title: Replace D3 Templating with REACT
user: midmarch
issue_3746: state: open
title: Automatically delete very old subscription updates
body: Currently, subscription updates are kept forever (unless the user unsubscribes from the corresponding object). We should create a background task that periodically scans the `subscriptionUpdates` table and deletes entries older than a configurable amount of time (e.g. 3 months).

Relates to Epic #1115
user: gjvoosten
issue_3738: state: open
title: Make ANET wait for the database
body: Currently, if the database service is not fully up, ANET will not start. When both servers (application and database) are rebooted, if the application server starts the ANET service too soon, ANET will not start

If ANET fails to establish a database connection - it should keep trying for a predetermined amount of time (10 mins?).

~Additionally, it may be good to have a gracious way of handling ANET losing the database connection (i.e. database is restarted)~
user: VassilIordanov
issue_3737: state: open
title: Add client-side tests for subscriptions
body: Related to Epic #1115: add client-side tests for various aspects of subscriptions (look at the server-side tests `SubscriptionResourceTest.java` and `SubscriptionUpdateResourceTest` for some inspiration on what can be tested).
user: gjvoosten
issue_3640: state: open
title: Show key for colour codes used for reports in calendar view
body: It's not immediately apparent to the user what the different colours used for reports in the calendar view mean. It would be helpful if a key/legend is shown, indicating which colour corresponds to which report state.
Relates to #1757 
user: gjvoosten
issue_3599: state: open
title: Allow users with editing privileges to select the classification and releasability of the information in the biography and sensitive fields in principal profiles
body: **Is your feature request related to a problem? Please describe.**
When creating/editing a principal's profile, the user should be able to classify separately/individually the biography information and the (individual) sensitive field(s) information including the releasability options.

Ultimately when printing a principal's biography or sensitive fields, the classification and releasability of the biography and sensitive fields should also be printed with the information.

In this way we avoid both over classification and under classification.

**Describe the solution you'd like**
Users that can create/edit biography information should be able to select a classification and releasability for the principal's biography.
Users that can create/edit sensitive information should be able to select a classification and releasability for each of the principal's sensitive information fields.

**Describe alternatives you've considered**
N/A

**Additional context**
The editing privileges for biography and sensitive information are correct and do not need to be changed.

The other/remaining information for a principal does not need to be classified.

Reference #1325 
user: dspCarlson
issue_3557: state: open
title: Server side permission checks
body: Split off from #2191:

**Server side permission checks** (was #313)
Depending on the object type being edited and on the role of the logged in user , one may be allowed to edit only a subset of the properties of the object.
Make sure that these permission checks are now implemented also server side (if this is not done yet).
See for instance issue #36 and #200 .
user: gjvoosten
issue_3546: state: open
title: Add server-side tests for permission updates
body: **Technical debt description**
#3532 changes how permissions are handled when privileged users are moved to a new position. Server-side (GraphQL client) tests should be added for the changed behaviour.

**Proposed solution**
Possible test cases include:
- [ ] remove person from admin position
- [ ] remove person from super user position
- [ ] remove person from normal user position
- [ ] remove person from principal position
- [ ] move person from admin position to admin position
- [ ] move person from admin position to super user position
- [ ] move person from admin position to normal user position
- [ ] move person from super user position to admin position
- [ ] move person from super user position to super user position
- [ ] move person from super user position to normal user position
- [ ] move person from normal user position to admin position
- [ ] move person from normal user position to super user position
- [ ] move person from normal user position to normal user position
- [ ] move person from principal position to principal position
- [ ] set admin position to inactive
- [ ] set super user position to inactive
- [ ] set normal user position to inactive
- [ ] set principal position to inactive
- [ ] set person holding an admin position to inactive
- [ ] set person holding a super user position to inactive
- [ ] set person holding a normal user position to inactive
- [ ] set person holding a principal position to inactive
user: gjvoosten
issue_3502: state: open
title: Create a filtered search parameter for "People" using the person's unique ID
body: **Is your feature request related to a problem? Please describe.**
Advisors are now using the personnel ID to find/identify their counterparts.  Advisors are requesting an addition to filtered search.  The "People" filtered search should include a parameter to find principal's by their unique personnel ID.

Principals have their own unique ID from the principal's human resource system.  This personnel ID is stored in the code column of the people table of the ANET database.

Because the unique ID has so many characters, the advisor should be able to search with only a partial ID.

**Describe the solution you'd like**
Add a filter to the "People" tab in a filtered search.  The filter should be for the principal's unique ID.

**Describe alternatives you've considered**
None

**Additional context**
None

user: dspCarlson
issue_3421: state: open
title: Ability to enter e-mail addresses outside domain white-list
body: Ability to add e-mail addresses outside white-list, as not all users have an e-mail address internally. Currently non existing e-mail addresses are entered to comply with the white-list.

Maybe add a check box, for non deliverable e-mail addressees which do not have to comply with the white-list.

user: midmarch
issue_3351: state: open
title: Update to Yarn 2
body: Investigate what is needed to update from 'classic' Yarn (v1.22.10) to Yarn 2 (a.k.a. berry).
We are also dependent on `com.github.node-gradle.node` supporting Yarn 2, and perhaps Webpack 5 (or alternatively `pnp-webpack-plugin`).
user: gjvoosten
issue_3323: state: open
title: Service scripts are missing from the RPM
body: The systemd script in missing from the RPM.

Current workaround:
[Service script is generated in Ansible script](https://github.com/NCI-Agency/ansible.anet.playbook/blob/master/roles/anet/templates/anet.service.j2)

Desired is that the service script is installed by the RPM.

Attempts to add the script to the RPM failed, as it then try to create the parent directories of the service scripts as well, causing conflicts with the systemd RPM.
user: midmarch
issue_3196: state: open
title: Create custom heat-map components, layouts, aggregation widgets
body: Added Month, Year layouts and Chart component for future use, which includes yearly heatmap and monthly, yearly calendar features.
### Release notes

Closes https://github.com/NCI-Agency/anet/issues/3172 and may also close https://github.com/NCI-Agency/anet/pull/3075

#### User changes
-

#### Super User changes
-

#### Admin changes
-

#### System admin changes
-
- [ ] anet.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [X] Described the user behavior in PR body
  - [X] Referenced/updated all related issues
  - [X] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [X] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [X] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: cemalettin-work
issue_3181: state: open
title: Move recents to advanced select filters; drop rightmost column in forms
body: Show the links to recent locations, attendees, efforts and authorization groups as the first filter under the selection widget when editing a report. This puts all filters in one place, and no longer limits the list of recent items to the 6 most recent ones. It also does away with the extra empty space the table of recent items created.

### Release notes

Closes NCI-Agency/anet#1964

#### User changes
- When editing a report, you can now find the recently used items under the selection filters of the corresponding input field.

#### Super User changes
- none

#### Admin changes
- none

#### System admin changes
- none
- [ ] anet.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [x] Described the user behavior in PR body
  - [x] Referenced/updated all related issues
  - [x] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [x] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [x] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [x] Updated documentation
  - [x] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here
user: gjvoosten
issue_3176: state: open
title: Rich text editor templates
body: This makes it possible to enforce a certain document structure in rich text fields.

The structure should be provided through the htmlTemplate property of the RichTextEditor component.

An example of a structure to use:
```
<h1 class="mandatory" placeholder="Key details 1">Key details 1</h1>
<p class="mandatory" placeholder="Type here key details 1 extra information">Type here key details 1 extra information</p>
<h1 class="mandatory" placeholder="Key details 2">Key details 2</h1>
<p class="mandatory" placeholder="Type here key details 2 extra information">Type here key details 2 extra information</p>
<h1 class="mandatory" placeholder="Key details 3">Key details 3</h1>
<p class="mandatory" placeholder="Type here key details 3 extra information">Type here key details 3 extra information</p><h1>Extra key details</h1>
<p>Type here optional details</p>
```

Heading or paragraph tags tags may use some extra attributes which make them behave special.
If one of these tags use `class="mandatory"`, the tag will become mandatory. This means that their text can be changed, but they can't be deleted.
If one of these tags use `class="mandatory"` and a `placeholder` attribute (like `placeholder="Key details 1"`), this means that when the user is deleting their text, it will automatically be replaced by the placeholder text.

Note: this is only possible for `h1, h2, h3 or p` tags .

For now this feature has been added to the reportText field of a report but can be added to other fields too.

TODO:
- when selecting more than one mandatory blocks => prevent typing into it, as otherwise the mandatory blocks would be replaced by the new text and this way mandatory blocks would be deleted.
- write tests

### Release notes

Closes #3081 

#### User changes
In order to make sure mandatory elements can't be deleted, we changed the way the rich text editor works.

Click Enter does nothing when:
- at the beginning of a mandatory block 
- the selection contains at least one mandatory block
- exactly one whole mandatory block is selected
Delete or backspace does nothing when:
- the selection contains several blocks and at least one of them is mandatory
Delete does nothing when:
- at the end of a block when the next block is mandatory
Backspace does nothing when:
- at the beginning of a mandatory block
Pasting on a selection does nothing when:
- the selection contains several blocks and at least one of them is mandatory

TODO: Typing on a selection does nothing when:
- the selection contains several blocks and at least one of them is mandatory

#### Super User changes
- See user changes

#### Admin changes
- See user changes
- The admin can specify the default HTML template to be used in anet.yml, by adding a placeholder containing the HTML structure to the fieldsreport.reportText

#### System admin changes
-
- [x] anet.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [x] Described the user behavior in PR body
  - [ ] Referenced/updated all related issues
  - [x] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [x] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: maradragan
issue_3172: state: open
title: Change fullcalendar to a custom calendar+heatmap library/components for extended features
body: **Is your feature request related to a problem? Please describe.**
We would like to be able to see the engagement informations in Report Calendar + Report Statistics with a colorful heatmap to visualize clearly what is going on.
**Describe the solution you'd like**
I propose to create a custom library/components with features that are specific to our use cases. We can do the date-specific hard work with a library like date-fns and do the visualization + rendering with React / D3. This way, we can have more control over what custom features we can add on top.

**Additional context**
These slack conversations:
https://nci-agency.slack.com/archives/C67NG1BC1/p1598869587030100


user: cemalettin-work
issue_3144: state: open
title: Corner case in report approval
body: **Describe the bug**
There is a corner case where if a report is submitted, then afterwards the approval flow is changed, the workflow may show incorrect information.

**To Reproduce**
Steps to reproduce the behavior:
1. make sure there's a default approval flow (should be the case in development with the default dataset)
2. log in as jack (of org EF 2.1, which has no approval workflow) and create a report
3. fill in all required fields, save the report and submit it
4. the workflow should state that the default approval flow applies
5. log in as arthur and make henry an approver for EF 2.1
6. log in as henry; who should have 0 reports pending his approval
7. still as henry, click on *EF 2.1's reports in the last 7 days*
8. the first report should be the one just created by jack; the workflow would appear to indicate that henry is the current approver
9. click Read report and see that there is no Approve button

**Expected behavior**
Since we probably don't want to change the workflow of an already submitted report post factum, the workflow display should take a report's `approvalStepUuid` into account. But how to integrate this into the way the workflow is determined (`Report::loadWorkflow`)? The report's `approvalStepUuid` will not be present in the computed workflow, so where in the workflow are we? Maybe we need to check whether the `approvalStepUuid` is part of the defaultOrg workflow, and in that case, don't use the advisorOrg workflow but use the defaultOrg workflow. Although that is getting complicated.

user: gjvoosten
issue_3135: state: open
title: WIP - Improve org charts
body: ### Internals:

- We now use react for SVG rendering of the org diagrams
- We still use d3 for the math and for the transitions

### Release notes

Closes #

#### User changes
-

#### Super User changes
-

#### Admin changes
-

#### System admin changes
-
- [ ] anet.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [ ] Described the user behavior in PR body
  - [ ] Referenced/updated all related issues
  - [ ] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [ ] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: VassilIordanov
issue_3134: state: open
title: Improve organization page
body: Currently, the organization page is too long. We want to be able to see in a compact manner:

- [ ] organization diagram (who works at what position, their counterparts, sub orgs)
- [ ] organisation info ( positions, superusers, assigned tasks)
- [ ] counterparts org chart
- [ ] org workflows (hidden by default)
- [ ] position tables (hidden by default)
- the list of engagement reports
user: VassilIordanov
issue_3084: state: open
title: Extend graphql queries with a geo query
body: Added a column named **geometry** to locations table which is type of **geometry**. By using this column we can perform queries by using gis functions. Specifically we aim to use **ST_Within** gis function to query locations, reports and positions within a given polygon.

 - SqlServer has built-in support for geometry type and gis functions. No configuration changes required for SqlServer.
 - Enable PostGIS extension on PostgreSQL by using postgis docker image
 - Add db migration for adding **geometry** column (geometry) to locations table
 - Add db migration to populate **geometry** column with a geometry type from existing lat,lng columns
 - Update test data with **geometry** values
 - Update test data conversion script for **geometry** values
 - Add gradle task for dropping postgis extension and related objects. Also needed to make sure that it runs before dbDrop task otherwise drop-all liquibase command fails.
 - Add **withinPolygon** method to graphql schema for ReportSearchQuery, LocationSearchQuery and PositionSearchQuery beans.

### Release notes

Closes #3043 

#### User changes
- none

#### Super User changes
- none

#### Admin changes
- none

#### System admin changes
- 
- [ ] anet.yml needs change
- [X] db needs migration
- [ ] documentation has changed
- [X] graphql schema has changed

### Checklist
  - [X] Described the user behavior in PR body
  - [X] Referenced/updated all related issues
  - [X] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [X] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [X] Added and/or updated e2e tests
  - [X] Added and/or updated data migrations
  - [ ] Updated documentation
  - [X] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: ysf-simsoft
issue_3082: state: open
title: Epic 1704: Display report planning conflicts in Summary, Calendar, Map and Table tabs
body: Planning conflict detection has been implemented in #1839 (#3017) and conflicts are only shown in Report Form and Report Show. Conflict detection should be extended to cover ReportSummary, ReportCalendar, ReportMap and ReportTable views.

Current implementation of `PlanningConflictForReport` component works in a way that it makes a graphql query for every report. It can also be utilized to show conflicts in ReportSummary, ReportCalendar, ReportMap and ReportTable. However, when used in ReportCalendar with monthView will result it hundreds of queryies which is not feasible. Please see [this comment](https://github.com/NCI-Agency/anet/pull/3017#discussion_r432457840).

Part of #1704 epic

user: ysf-simsoft
issue_3081: state: open
title: Templates for RichTextEditor
body: **Is your feature request related to a problem? Please describe.**
We would like to enforce a certain document structure in certain rich text fields.

**Describe the solution you'd like**
I propose to have the ability for certain rich text fields to be primed with a default structure.
We could define this structure as html with some extra attributes (i.e. a `mandatory` attribute).
The widget start with an empty template when first created. The user is prevented from deleting elements with the `mandatory` attribute.
We could start with a template such as:

```
<h1 mandatory placelholder="Key issue 1"/>
<h1 mandatory placelholder="Key issue 2"/>
<h1 mandatory placelholder="Key issue 3"/>
```

We could also apply different styling to these attributes, for example we could display placeholder text when they are empty.

**Describe alternatives you've considered**
We considered separate fields for each template component, but that is too cumbersome and not user-friendly.

**Additional context**
Similar to: https://www.slatejs.org/examples/forced-layout
user: VassilIordanov
issue_3071: state: open
title: Add all day report indicators
body: An "All day" checkbox is added to report form. Previously, reports are considered to be all-day events when duration field is left empty (specifically when duration was `null`). This behavior is preserved while giving an option (by checking all-day checkbox) to the user for explicitly setting the report as an all-day event.

When creating a new report all-day checkbox is initially checked and duration field is disabled. If user enters a time other than 00:00 in date picker, checkbox is automatically cleared and duration field is automatically enabled. At this point, entering a duration is required because time is entered (even though duration is optional initially). 

If all-day checkbox gets checked after user enters time and duration, time gets reset to 00:00 (start of day) and duration gets reset to `null` and duration field gets disabled.

### Release notes

Closes #3024 

#### User changes
- Engagement Date and Duration fields are inlined and an "All Day" checkbox is added next to Duration field in order to give users option to explicitly set a report as an all-day event.

#### Super User changes
- none

#### Admin changes
- none

#### System admin changes
- none

- [ ] anet.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [X] Described the user behavior in PR body
  - [X] Referenced/updated all related issues
  - [X] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [X] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [X] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [X] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: ysf-simsoft
issue_3067: state: open
title: Group task assessments per tasked organization
body: Still to be refined:
- [ ] use tabs widget or radio widget for organization selection
- [ ] choose from the assigned orgs to the task and all
- [ ] add an additional state to keep the selected org to filter the assessments on
- [ ] if an org is selected in the state, only use (instant and./or periodic) assessments with an authorOrg that is an descendant of the selected org (edited)
- [ ] when an organization is selected as filtered org, we should also filter the periodic assessments to display only the ones from an author in that org (or descendant)

user: maradragan
issue_3064: state: open
title: Add custom editor for assessmentDefinitions fields
body: Currently the configuration of an assessment requires quite a technical person and also requires knowing the schema for the assessment fields.

It would be better to have a special type of field, using a custom editor for assessment configuration type of fields. This way it will be less error prone and easier to add/change assessments.
user: maradragan
issue_3056: state: open
title: Add all locations layer to the map
body: When the map component is loaded, all locations are fetched and added to the existing layer control as an overlay. Adding as an overlay gives us the ability to toggle all locations layer. By default when all locations layer is added to the map, we automatically adjust zoom level to make all locations visible. Exceptionally, while editing/creating a location we preserve the current zoom level in order not to fly user away from current location/area.

Additionally when there are other markers on the map we keep them and put new markers for all locations. This results in duplicate markers on already existing markers, however, we use a different icon for all locations overlay so that even there are two markers on same point they are displayed differently, serving different purposes.

### Release notes

Closes #3045 

#### User changes
- All locations layer is added to the map

#### Super User changes
- none

#### Admin changes
- none

#### System admin changes
- none

- [ ] anet.yml needs change
- [ ] db needs migration
- [ ] documentation has changed
- [ ] graphql schema has changed

### Checklist
  - [X] Described the user behavior in PR body
  - [X] Referenced/updated all related issues
  - [X] commits follow a `repo#issue: Title` title format and [these 7 rules](https://chris.beams.io/posts/git-commit/)
  - [X] commits have a [clean history](https://epage.github.io/dev/commits/), otherwise PR may be squash-merged
  - [ ] Added and/or updated unit tests
  - [ ] Added and/or updated e2e tests
  - [ ] Added and/or updated data migrations
  - [ ] Updated documentation
  - [ ] Resolved all build errors and warnings
  - [ ] Opened debt issues for anything not resolved here

user: ysf-simsoft
issue_3045: state: open
title: Add a locations layer to the map for displaying all locations
body: Add a locations "layer" to the map, displaying all locations.

Part of epic [#547](https://github.com/NCI-Agency/anet/issues/244)

The rationale here is that we always want to see the ANET Locations when looking at any map. An icon should be chosen to make location less dominant than engagements, and to cluster when necessary.
user: ysf-simsoft
labels: D3 [ ~8h ]: Difficulty - hard
issue_3044: state: open
title: Make report collection render items on map using a geo boundary
body: Make report collection render items on map using a geo boundary and not pagination by using geo query from #3043.

Part of epic [#547](https://github.com/NCI-Agency/anet/issues/244)
user: ysf-simsoft
labels: D2 [ ~4h ]: Difficulty - medium
issue_3043: state: open
title: Extend graphql queries with a geo query
body: Extend graphql queries for locations, reports and positions with a geo query (as described in #1705) 

```
reportList(query: { withinPolygon: [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]  } ) {
  list {
     uuid
  }
}
```

Make map widget add this constraint to the queries it generates add geo searches.

Part of epic [#547](https://github.com/NCI-Agency/anet/issues/244) and #1705 
user: ysf-simsoft
labels: D4 [ ~16h ]: Difficulty - complex
issue_3024: state: open
title: Add all-day report indicators throughout UI
body: Currently, when creating a report if duration field is left blank, that report is considered to be an all-day event. However this consideration is vague because of two reasons:

1. Entering a time (hour:minute) for an all-day event creates ambiguity.
2. Throughout the UI there is no indication of whether an event is an all-day event or not (except `ReportCalendar` week, day, list-day views).

Prospective solution would be;
1. When creating/editing a report, either;
    1. Allow user to explicitly choose whether this report is an all-day event or not.
        - Add a checkbox under the calendar with label "Create all-day event".
        - If checkbox is checked;
            1. Set duration to null and hide/disable the duration field.
            2. Disallow time selection in calendar.
            3. Automatically set time to 00:00 on selected engagementDate.
    2. Keep current behavior. If duration is set to 0 (zero) or left blank, consider it as an all-day event.
        - Add a hint/message under the duration field such as; "If duration is blank or 0 an all-day event will be created".
        - Allow user to select time regardless of duration value.
2. When displaying reports throughout the UI;
    1. If event is an all-day event; don't display time and add an indicator next to *engagementDate* such as; **05-05-2020 (all day)**
    2. If event is not an all-day event; display start and end times along with *engagementDate* such as; **05-05-2020 01:00-03:00**

Currently, if **duration** is set to **null**, in `ReportCalendar` component, events are displayed in **all days** section on week, day, list-day views.

user: ysf-simsoft
labels: D2 [ ~4h ]: Difficulty - medium
issue_3018: state: open
title: Replace hopscotch
body: Hopscotch is unmaintained

**Proposed solution**
Replace with `react-joyride` or `reactour` (careful with dependency baggage)

**Additional context**
Consider a better placement for steps (in the actual code?)
Also, consider a "What's new" tour

user: VassilIordanov
issue_2960: state: open
title: Infinite scrolling
body: Pagination in ANET is quite clumsy. Often we show only 6 results, and it involves a lot of clicking to get to explore lists.

As a user, I would like to have infinite scrolling in most menus.

**Proposed approach**
Proof of concept of https://github.com/bvaughn/react-window or/and similar instead of pagination
user: VassilIordanov
issue_2958: state: open
title: Epic 2958: Data replication
body: Currently ANET is a closed system. 2 instances of ANET can't synchronize portions of their data stores.

The following behaviours are desired:

**2 instances of ANET with unidirectional synchornization**
As a user, I want to be able to use one instance of ANET to create or modify Reports/People/Organziations/etc and after a certain delay I want to be able to see the same entities, with matching UUIDs on another instance.

Example: ANET instance 1 is on a public network, open to mobile devices while ANET instance 2 is on a private network, behind a corporate firewall. Users can use ANET instance 1 to draft new reports. After a certain period of time these reports should appear on ANET instance 2. ANET instance 2 can contain a complete dataset - people/positions/organizations/etc. ANET instance 1 should contain a minimal subset of that content, sufficient to draft reports or perform other needed tasks. ANET instance 1 should not contain information that is of interest to data breaches. As an example, if ANET instance 2 has a directory of employees, their personal information such as names, or email addresses should not be stored in ANET instance 1, but instead their job position should be used to reference them in engagements.

Example: ANET instance 1 is a prodution database, ANET instance 2 is a training database. A training event wants to use the ANET instance 2 in a manner that they can create data that will not pollute the production data while being able to receive and observe live updates of the production data.

**A single instance of ANET with different versions of the same data entity**
Currently data entities in ANET are identified by a UUID. For example - a Person entry has a UUID. In the current design, an entry with an UUID is unique - there could be only one entry for a specific UUID. This creates a "single truth" constraint that can be rather limiting. We want to be able to have 2 versions of an entity refering to the same UUID, and a management mechanisms for it an enabler to enhance ANET functionality.
This request is rather similar to the first request - both deal with potentially different version of an entity with the same UUID - in the first case in 2 distributed instances, while in the second case in the same instance.

Example: Currently, we can have a singular representation for a Location for a given UUID. This results in the following issue regarding editing rights of that Location: if _any user_ of ANET can modify a Location, we end up with a situation where changes are made in an unmanaged or unwanted manner (i.e. users rename the wrong location). If on the other hand we restrict who can modify or add a Location to a super user (the current behaviour), we end up in a situation where users who have useful information about an inaccuracy in ANET - but have no permissions - are not encouraged to correct it / enter it, or worse pick an inaccurate location as the intended one does not exist yet. The envisioned solution is that such users could propose a new version of a Location, which can subsequently go to a super user for approval. This could apply obviously to all ANET entity objects.

Example: A similar concept could be used to recreate historical snapshots of ANET. 

**Proposed Approach**
- [ ]  conceptualize distributed protocols and contracts - what is an entity, version, what are they identified by, etc
- [ ] assess what can be added incrementally to the existing implementation
- [ ]  define external APIs - instance to instance
- [ ] to be defined after design session
- [ ] implement a cross domain integration over a standard message queue protocol (AMQP, MQTT, RabbitMQ, etc...)

**Additional context**
See related prior work here: https://github.com/NCI-Agency/anet/issues/552
There are also many academic and other references, let's discuss on slack


user: VassilIordanov
labels: D5 [ please split ]: Difficulty - needs splitting
issue_2957: state: open
title: Epic 2957: Responsive behavior
body: ANET does render in a phone, as well as on a 4K screen. However, it designed with a desktop browser with HD screen resolution as a target. On any other environment, the layout is not optimal and user interaction is not tested.

As a user, I would like to be able to author and submit reports from a smart phone or tablet device in addition to a desktop computer. I expect the touch interface to be functional

As a user or a superuser I want to be able to perform most ANET functions from a phone or tablet device. I understand that some functionality might be limited due to screen real estate

As a super user and experienced user, I want to use ANET on a 4K desktop to visualize analytical products

**Proposed approach**
- [ ] perform a survey of the shortcomings of the user interface and identify specific areas that need improvement per component ( i.e. layout of all FormFields do not scale well when on big screen, or advanced search component does not work well with a touch screen)
- [ ] to be confirmed after initial study
- [ ] propose solutions and or technologies for addressing so (i.e. utilize `emotionjs` + `facepaint` to handle media queries, and/or structure React Components a certain way, etc). It should be ideally an incremental approach.

**Prior work**
see https://github.com/NCI-Agency/anet/issues/551 and also some items here: https://github.com/NCI-Agency/anet/issues/2293 and https://github.com/NCI-Agency/anet/issues/1964
user: VassilIordanov
issue_2932: state: open
title: Replace dropwizard with spring-boot
body: **Technical debt description**
spring-boot offers a more active ecosystem

**Proposed solution**
Replace dropwizard with spring-boot, while (at least at first) to the extend possible keeping as many as the used libraries the same (i.e. jdbi, liquibase, etc)

**Additional context**
Not an small/easy task, as it touches most of the server-side code. However it should not be too specific to the ANET architecture

user: VassilIordanov
labels: D5 [ please split ]: Difficulty - needs splitting
issue_2889: state: open
title: Add ability to make process boards
body: As a super user I should be able to:
- [ ] create a new process board, in a sense a diagram editing tool.
- [ ] In that process board I can drag/drop any ANET entity. 
- [ ] I can arrange entities on the canvas and create links between them. 
- [ ] I should be able to also associate links with entities
- [ ] I can control color and styling of of entities and links
- [ ] the diagram can decorate ANET items with assessments or other statistics
- [ ] I can save the diagram to my position. As I am the author, it will remain linked there
- [ ] I can publish this diagram on any other page with UUID in ANET

And as a user:
- [ ] I can see process boards wherever they are published
user: VassilIordanov
issue_2442: state: open
title: Identify who created an object and who updated an object
body: The requirements owner is now checking the validity of data created and updated in ANET.

If the requirements owner finds invalid data, then I must find the created date or updated date in the database.

Then I must find the respective auditLogger log file.

Then I must find the log file entry and email it to the requirements owner so he can send an email to the super user.

Would it be possible to also display the super user who created the object and the date/time and also display the super user who updated the object and the date/time.  This information would only be visible to administrators.
user: dspCarlson
issue_2347: state: open
title: Improve simulator
body: The simulator should be improved to also consider:
- [x] make it possible to run it concurrently
- [x] use more locations
- [ ] workflow of reports approval[*]
- [x] create organizations in a hierarchy (e.g. with a certain probability, pick a random parent organization)
- [x] create and assign positions
- [ ] fix the old scenarios
- [ ] populate customFields based on yup rules

[*] The simulator current creates reports with state *PUBLISHED* as admin, since this is still allowed, but eventually reports should always be created with state *DRAFT* (regardless of who creates them) and go through the approval workflow.
user: maradragan
issue_2307: state: open
title: Rethink when to store and reset state
body: From the feedback of Vassil after one of the trainings:
"We need to revisit what is stored in the state of each "page" and when is this state reset. For example, users do a search, then click to calendar, go to a specific month, then day view of one day, then select one of the reports. They read the report, then go back to read another one of that day, but they have to re-navigate again. I suggest to go over the UI and define for each page which state properties are reset and how depending on navigation path. Might be a good opportunity now that we have hooks."
user: maradragan
issue_2293: state: open
title: Epic 2293 - 'Nice to have' issues
body: Originally posted by Vassil on Slack on the 4th and  6th of October 2019

I am at the training event. A few "nice to have" low hanging fruits:
- [x] add has a bio filter to the advanced search for people (see #2305)
- [x]  add page tabs to the bottom of lists, not only the top (I think a search result for reports has them at the top only) (see ##2309)
- [x]  in advanced search for dates, have an option of exact date, maybe call it on day of or simply on
- [x]  clicking on the ANET logo should clear the search text (see #2313)
- [x]  (super minor) the print version of the rollup has links to /reports/uuid/min but they do not render
- [x] error while emailing rollup:
Internal server error - Validation error of type SubSelectionNotAllowed. Sub selection not allowed on leaf type int of field emailRollup @ 'emailRollup' 


Some other observations that require a bit more thought:
- [x]  having a user type while a report is saving seem to have eaten up a few words. Also, the toast for saved reports is a bit distracting. We need to come up with some more subtle feedback for autosave. I suggest a  save draft that changes to a green draft saved indicator (see #2306)
- [ ]  we need to revisit what is stored in the state of each "page" and when is this state reset. For example, users do a search, then click to calendar, go to a specific month, then day view of one day, then select one of the reports. They read the report, then go back to read another one of that day, but they have to re-navigate again. I suggest to go over the UI and define for each page which state properties are reset and how depending on navigation path. Might be a good opportunity now that we have hooks. (see  #2307)

Related to the rollup usability:
- [ ] Does it make sense to move the advisor organization / principal organization button to the Chart by org widget? it would free up some real estate for the rollup. I suggest to try to put it in the title - i.e. Rollup by [advisor ▼] organization where [advisor ▼] is a dropdown.
- [ ] rollup -> we should add an indicator of which org is selected and a way to go up. Maybe something like Rollup by [advisor ▼] organization for organization [org_xyz ▼]▲ where [org_xyz ▼] brings an org selector and ▲ navigates directly to parent
- [x] I suggest to place the mosaic layout toolbar on the same level of the title, to the right of it, and also to remove the redundant title it has.
- [ ] I suggest to reduce the padding of the mosaic window

- [ ] everybody gets stuck at having to use ctrl+wheel for the map. I did not see a single person using ctrl. I suggest to switch back to just wheel. The downside is, as discussed before, that they will have to use the scrollbar if they want to scroll down in that case. I think it the lesser of the two evils, and that we can help that with a bit more context navigation help in the left nav bar and/or a fancier scrolling mechanism.

- [ ] I saw a person reading a report, and attempting to scroll with the wheel while in the nav pane. Not too sure about that, we could make wheel movements in the unused space (if any) under the nav bar move the main pane.

Related to the search functionality:
- [x] Another one which is very confusing to users:
they click on add filters, Then select reports, and then click on Search -> there is no search happening.
I understand why it is confusing - they have followed the UI, selected something they want to see (reports), clicked on search and they get an error. At this point, the UI even says "add another filter" which implies that they have added a filter already.
~I propose to have that result into basically returning all reports (or other objects)~
the alternative is to give some feedback that they have not completed their filter selection
- [x]  Searching with not filled filters
- I search on reports, add the author filter, but don't fill this in
- I click search => get lots of results
- I do save search 
- I go to homepage, select the just saved search and under the saved searches I see the results preview for it => as expected
- I click on show search => goes to the search page and displays "You did not enter any search criteria" => I would expect to have the same search results
user: jose-west
issue_2235: state: open
title: Change behaviour of advisor reports insight export to CSV
body: Right now, in the advisor reports insight, if I use the filterText to filter the data and click export to CSV afterwards, without having checked any rows, I get all data in the export, not only the filtered data. Also, if I select an organization, filter afterwards and only see another organization in the table, when clicking on the export button it exports the selected organization, which is not even visible for the user.

This is strange, we should make it more clear what is being exported. Do we really need the checkboxes, can't we just make it that it exports the results on the screen?
user: maradragan
issue_2206: state: open
title: Epic 2206 - Trend indicators
body: - [x] Add rudimentary trend indicators (past 30d vs previous period)
- [ ] trends as a miniature graph activity
- [x] add them to dashboards
- [ ] add them to org charts


user: VassilIordanov
issue_2107: state: open
title: Epic 1704: Cancelled engagements workflow
body: Part of #1704: what would be the workflow for cancelled engagements? (see also #1722)
user: gjvoosten
issue_1978: state: open
title: Epic 1978 - Improve usability of filling in the report
body: This epic contains improvements to the way users can add reports to ANET, which should make users have a better experience with ANET and should end up with more accurate reports.

The report author can't always efficiently add a report to ANET because of various reasons:
- the attendees of the engagement are not yet in the system, and therefore the report author first has to ask the superusers to add the attendees to the system
- the report author can't find the attendees (why?)
- it is not clear which location to use

This can be improved by:
- [ ] ...
user: maradragan
issue_1972: state: open
title: Epic 1972 - Persons management
body: - [ ] Do not allow to save a person's record when all the letters in the first name are capitalized (was #902)
When saving an advisor's first name or a principal's first name, do not allow the person to be saved if all the letters of the first name are capitalized.
Display an error message stating "Given names / first names are not capitalized. Only the first letter of each given name / first name is capitalized"

- [ ] Revise principal pedigree/bio information structure (was #1014)
Add ethnicity, tribe, affiliation.....
Possibly hide nationality
@devin040 anything else?

- [ ] Standardize how principal names are inputted and how principal names are displayed (was #1104)
Principal names vary.  For example, some principals litter have one name.  Other principals have a name followed by their father's name.  Allow the super users to enter principal names based on the name formation.

Here are the name permutations for principal names:
1. One name only
2. Given name(s) and surname(s)
3. Given name(s) and surname(s) "son of" <father's surname>
4. Given name(s) and surname(s) "son of" <father's given name(s) and father's surname(s)>

Could a data entry template be created that takes these four permutations into consideration?  Principal names are all over the place when it comes to the "son of" names.

- [ ] Force Super Users to Enter an End of Tour Date When Setting a Principal's Status to "Inactive" (was #352)
When a super user sets a principal's profile to "Inactive," force the super user to enter an end of tour date when saving the profile.
Note: Principals have an end of tour date when they retire or are fired.
Reference item 129

- [ ] Remove Titles from Names When Saving the Name (was #202)
It seems like there is a list of titles that can't be easily confused with people's names. The suggestion is to add this list to the dictionary and have client-side validation that prevents a user from adding a name containing these. This applies to people creation and onboarding.
The validation error should be something along the lines of:
"You must provide a valid name without ranks, titles, and grades. %offendingValue% is not allowed in name fields"

user: maradragan
issue_1967: state: open
title: Epic 1967 - Onboarding improvements
body: - [ ] Add a custom dialog when first onboarding
- [ ] Advisors should be assigned to an org early on (was #355)
When a new advisor person is created, either explicitly or through onboarding, that person should be assigned to an organization.
The goal here is mostly towards onboarding - users are to select the organization to which they (think they) belong.
In case the user can't find their organization, they should select "Other".

- [ ]  Redo onboarding if user profile incomplete (was #1570)
If a user has missing info from his/her profile, bring the onboarding screen to fill the gaps (ideally with missing fields highlighted).
This will allow us to do stuff like:

- automatically import user profiles from Active Directory and then ask new users to fill in the info which is not imported)
- ask existing users to fill in new fields that have since become required

user: maradragan
issue_1966: state: open
title: Epic 1966 - Daily rollup improvements
body: - [ ] Organizational Structure is Different than Rollup Structure (was #250 )
Four advisor organizations report directly to a parent organization. However, in the program these four advisor organizations cannot be assigned to the parent organization for two reasons:
    On the Daily Rollup Report, the reports of the four advisor organizations will appear under the parent organization when they need to appear at the same level of the parent organization.
    The four advisor organizations will not appear in the "All Advisor Organizations" drop down list in the left hand column.
Can the daily rollup and "All Advisor Organizations" drop down list be made independent of the actual advisor organizational structure in order to display the correct organizational structure?
Reference item 76
- [ ] Daily Rollup Bar Chart: Clicking on the Orange Part of the Bar Should Display Cancelled Reports (was #258)
On the Daily Rollup bar chart, clicking on the blue or orange section of the bar will only display reports that are released, but not reports that are cancelled. Clicking on the blue section should display only released reports. Clicking on the orange section should only display cancelled reports.
Reference item 93
user: maradragan
issue_1965: state: open
title: Epic 1965 - Admin users usability improvements
body: - [ ] Powershell scripts (was #907)
Create a graphql-based API to ANET.
Add some common admin srcipts
- [x] #3858
- [x] Change the banner "General banner visibility" input from text to a drop down menu (was #587)
The  "General banner visibility" parameter accepts three numerical values  that must be typed in.  Change the inputted value to a drop down menu. The three values are:
1 - Users only
2 - Super users and administrators only
3 - Users, super users and administrators
- [x] Banner does not change color when the "General banner level" parameter is changed (was #585)
When an existing banner is displayed, the color does not change when changing the "General banner level" parameter.
The work around to change the banner color is to:
    - Change the "General banner level" value
    - Select the "Save settings" button
    - Change the "General banner visibility" value to "1"
    - Select the "Save settings" button
    - Change the "General banner visibility" value again
    - Select the "Save settings" button again
- [ ] GraphQL admin interface (was #824)
Enhance the current graphiql interface to permit saving/loading queries
Ideally, admins should be allowed to save/share queries, and eventually compile a toolbox of queries/mutations for data maintenance that is not possible yet through the UI
see discussion here: apollographql/apollo-client-devtools#16

- [ ] Markdown support for banner (was #312)
Add the ability to insert markdown formatted text into the banner. Mostly useful for hyperlinks.
user: maradragan
issue_1964: state: open
title: Epic 1964 - Advanced select widget improvements
body: Issues with the advanced select:
- [x] The advanced select widget looks different when used in the advanced search or in a form. This is because it now contains the label, the input widget and the 3rd column with recents, which makes it a field renderer instead of simply a widget. Make the advanced search a real widget, containing only the input field and the overlay. 
- [x] The widget is now making use of the Formik Field component, this should not be the case, the Field component should only be used from forms, the widget should be independent of the use of Formik or not.
- [x] Not enough real estate to display pagination on filtered search / organization partially displayed (see #1810)
Maybe this can be achieved by adding vertical scrolling to the widget?
- [x] Make the widget responsive

Nice to have:
- [ ] Recent locations layout (was #1648)
The recent locations side list is pushing the atmospherics widget down. There is a lot of wasted white space.
- [ ] Do we really want the advanced select to align left under the field label or is this just a nice to have? => nice to have

Improvements:
- [ ] Change layout of report form on small screens (was #1605)
When we are on a small screen and the navigation bar goes to the left, do not display the recents shortcuts in forms (when the alignment of the form becomes vertical).

Filter settings for fields:
- [x] Update filter definition for report tasks advanced select widget (was #1604)
Tasks assigned to my organization should also contain tasks assigned to all parent orgs.
- [x] Allow super users to mark commonly used tasks for their advisor organization (was #1163)
The super user for each advisor organization should be able to associate tasks with an advisor organization.
Make it easier for advisors to select tasks for an engagement report based on:
    - The advisor organization's commander's guidance; the commander wants to focus on certain tasks.
    - What tasks have been historically chosen from the organization's advisor engagement reports
When a report author from the organization creates a report, the tasks would be displayed for easy selection.
user: maradragan
issue_1958: state: open
title: Epic 1958 - Insights
body: - [ ] Add reporting on active advisors (was #30 )
There has been a request to be able to see how many active advisors there are on ANET at any time.
If they could then dive down into specific orgs to see their totals that would be useful.
I think it could work well as a dashboard.

- [ ] Add Report with administrators (was #38)
Identify ANET administrator positions and the person assigned to that position.  See attached specification and report prototype.
Reference item 38

- [ ] Add Insight of approval steps (was #39 )
Identify approval steps with only one approver.  Identify advisor organizations without any approval steps.  Identify advisor organizations with three or more approval steps.  See attached specification and report prototype.
Reference item 39

- [ ] Add current pending insight (was #40 )
Identify how many pending reports an advisor organization currently has.  Identify the average number of days the advisor organization currently has pending reports.  Identify the average number of days for reports pending from all the advisor organizations.  See attached specification and report prototype.
Reference item 40

- [ ] Add historical pending reports (was #41 )
Identify how many reports are released be an advisor organization with a date range.  Identify the average number of days for an advisor organization to release a report (from the engagement date to the report release date).  Creating this report requires input (start date and end date) from the user.  See attached specification and report prototype.
Reference item 41
- [ ] Reports by Task-Task Numbers are not Legible (was #432)
Task numbers are not legible on the bar chart for the "Reports by Task" Insights report.
Reference item 137
This is to be addressed by making the tasks hierarchical and grouping them by parent in the insight. Otherwise, there are too many tasks to display.

- [ ] Insight for Reports Created During a Given Time Period for Report Authors Assigned to an Organization or a Sub-Organization (was #260)
Create a report that identifies reports created during a given time period. The reports are created by report authors assigned to an organization or a sub-organization.
User must be able to input an advisor organization, a start date and an end date.
Report example (Excel spreadsheet format) and SQL statement emailed to @VassilIordanov on 6 November 2017.
Reference item 111

- [ ] Summary of principals not assigned to a position (was #44 )
This report is a summary by advisor organization of principals who are not assigned yet are being advised by an advisor.  This report excludes active principals who are not assigned and are not being advised.  See attachment for the report prototype.
Reference item 44

- [ ] Add report of principals not assigned by advisor organization (was #45 )
This report lists advisor organization's principals who are not assigned to a position.  The report is used by super users to keep their advisor organization's data accurate.  See attachment for the report prototype.
Reference item 45

- [ ] add report of principals not assigned and not being advised (was #46 )
This report lists all active principals who are not assigned to a position and are not being advised.  This report is used to keep the data accurate.  The report is used to see the details of all the advisor organizations.  See attachment for the report prototype.
Reference item 46

- [ ] Add super user reporting (was #42 )
Identify which advisor organizations do not have any super users.  Identify which advisor organizations only have one super user.  Identify the total number of active super users in ANET.  See attached specification and report prototype.
Reference item 42

- [ ] Add a report to show Approvers how many reports are pending for sub-organizations (was #35 )
Reference item 34

- [ ] Add report for all principals not assigned to a position (was #43 )
This  report lists all principals who are not assigned to a position.  The  report is used to see the details of all the advisor organizations.  See  attachment for the report prototype. Reference item 43

- [ ] Code refactoring insights
The functions goToSelection and updateHighlight are used in several insights, maybe we can define them in ony one place, in order to avoid code duplication. 
Each insights defines it's own components Collection and Map, which are all the same, it would be nice to have them defined in only one place and than reuse them to avoid code duplication.
Should we maybe consider that this makes the inights less self-contained?
user: maradragan
issue_1954: state: open
title: Epic 1705: Make attendees counterparts a regular search
body: Right now the attendees widget of a report also has a counterparts list, which is the list of counterparts for the current user. This doesn't use a specific search query, but just uses
```
this.props.currentUser.position.associatedPositions
                .filter(ap => ap.person)
                .map(ap => ap.person)
```
It would be nicer if we could use a search query for it, as that way the widget would get simplified and the pagination would also work directly (right now it is not working for this list).

This is part of epic #1705 
user: maradragan
issue_1732: state: open
title: Display of new users not having filled their profile yet
body: Currently we display the UUID when a new user doesn't have his/her name filled in yet. We should use the domainname instead.
user: maradragan
issue_1706: state: open
title: Epic 1706 - Organization Hierarchy
body: - [x] Users should see an org chart on each organization page. The org chart should represent the hierarchy of that organizations, as well as the positions
- [ ] Users should see a counterpart org chart on each organization. Same as above, but for the counterparts of that org
- [ ] Users should see an org chart for report collections - organizations that have been part of the engagements should be shown, as well as statistics on the number of reports
- [ ] assessment progress should be shown on org charts for both advisors and principals. 
  - [ ]  green icon = assessed (by) all counterparts in the past month
  - [ ]  yellow icon = assessed (by) all some in the past month
  - [ ]  red icon = assessed (by) none some in the past month
- [ ] an org hierarchy should be used when selecting orgs, positions or people from advanced autosuggest
user: VassilIordanov
issue_1705: state: open
title: Epic 1705 - Improve GraphQL model
body: - [x] #1079
- [x] #1666 
- [ ] Make attendees counterparts a regular search #1954
- [x] Make the queries for recents a regular search #1952
- [ ] Make the daily rollup a regular report search #1733
- [x] add query parameters to nested batched graphql functions:
```
      taskList(query: { pageNum: 0, pageSize: 0, status: Task.STATUS.ACTIVE} ) {
        list {
          reports(query: { pageNum: 0, pageSize: 0, engagementDateStart: -604800000} ) { uuid }
        }
      }
```
- [x] make query params uniform, and polymorphic (i.e. pageNum: 0, pageSize: 0 )
- [x] sensible defaults
```
      taskList {
        list {
          uuid 
        }
      }
```
- [ ] ~when `list` is not requested, but only `totalCount` is, do not get all fields and parse them into java beans~
- [ ] add geo searches for locations, reports and positions #3043 
```
      reportList(query: { withinPolygon: [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]  } ) {
        list {
          uuid
        }
      }
````
user: VassilIordanov
issue_1704: state: open
title: Epic 1704 - Planning Engagements
body: - [x] Update future engagements form #1721 
- [x] Add engagements calendar #1723
- [x] Add future engagements planning workflow #1722
- [ ] ANET like styling for the calendar
- [ ] Make calendar component responsive #1916
- [x] Detect planning conflicts #1839
- [ ] Display report planning conflicts in Summary, Calendar, Map and Table tabs #3082 
- [ ] Cancelled engagements workflow #2107

A bit later:
Generic features, not specific to the calendar but to any collection of reports:
- [ ] Use for the calendar the formatting strings from the dictionary. This would seem to be possible by using the @fullcalendar/moment plugin: https://fullcalendar.io/docs/date-formatting#formatting-strings and https://fullcalendar.io/docs/moment-plugins
- [ ] On click on an event, popup with details (as preview behavior on LinkTo)
- [ ] Make it possible to filter the selection of the lists by status or other field
    - For instance, for reports, at the top of the calendar (or at the left side), display the different states of reports which are to be displayed and make it possible to check/uncheck them.
    - Or, also for reports, make it possible to filter on primary adviser, or on author. [Although that may be redundant with opening the calendar of that person)
    - People have 2 lists: authored and attended, maybe combine them in the future in a single collection with a filter
    - add the filter option of "show engagements of children orgs" to the org's report collection

Even later, other uses of the calendar component:
- [ ] on the homepage, to display the person's attended reports?
      This is already displayed on the person's page, maybe a more clear/clever link to it.
- [ ] maybe something for the admin to display a calendar of end of tour dates?
      I suggest to do that when we display a list of people and we show them on a calendar
- [ ] maybe a calendar of projected/planned completions of tasks?
      Same as people - have the ability to show a list of anything with a date on a calendar.
- [x] on a location's page, to display the reports at that location
- [x] add colors. 
  - cancelled reports as gray
  - published reports as blue
  - future reports as green
  - future reports with a conflict ( #1839 ) as red - or some decorator
  - experiment with a decorator for pending/approved reports
- [ ] maybe display different details depending on the selected view?

Will not do:
- Add extra views, like 3 weeks view
user: VassilIordanov
issue_1638: state: open
title: Clearly show feedback on submit button when form is not valid
body: after implementing #1523, provide feedback on the submit button to show that the form is not valid (make it red / flash / something else, but do not disable it) 
user: VassilIordanov
issue_1595: state: open
title: Epic 1595 - Usability observations
body: - [ ] Modal Popups - eg Assigning Person to Position, should have focus in the typing field
- [ ] Admins should be able to save incomplete people profiles (after a warning)
(this is a placeholder... more to come)
- [ ] Simplify change assigned person for position modal  (was #1594 )
The current change assigned person modal contains quite a lot of things:
    - remove current assigned person button
    - widget to select a different person (on which one can also remove the current selected person (and afterwards click save to save the remove action)
    - under the widget displaying some details about the selected person
It is cumbersome to add a new person to existing position. One possible solution is to: 
  - add a field for a position to the form of a person
  - add a "new person" button to the person assignment modal that opens a person form with position pre-populated
Do we really need the remove button?
Do we need the extra info about the selected person under the input field?
- [ ] Add context-sensitive action toolbars, possibly with sticky layout (was #561)
Requirement: Action buttons should not be hidden due to scrolling and should be shown in a consistent and clear manner
- [ ] Improve the Hop Scotch Messages (was #431)
    - Make existing data items more descriptive. Describe the data items, but also how to use them. For example, rank should include instructions for civilians not using equivalent military rank.
    - Add hop scotch messages for new data items like key word tags and sensitive information.
    - Ensure all pages have hop scotch messages to include differentiating messages for advisor organizations vs. principal organizations, advisor positions vs. principal positions, advisor profiles vs principal profiles.
Specific hop scotch messages to follow....
Reference item 136
- [ ] "Report Problem" mechanism for users (was #81 )
When users are experiencing a problem, they should be given a quick mean to report it. A problem report should be sent to the administrators with the following content:
    - user-provided problem description
    - automatically generated:
        - copy of the DOM, or other mean to recreate what the users are seeing
        - client-side logs, exceptions or capturing window.onerror (implemented in #419)
        - context information (anet version, date, time, username, client hostname, etc.)

user: VassilIordanov
issue_1521: state: open
title: Epic 1963: Address Java checkstyle warnings
body: `./gradlew checkstyleMain checkstyleTest` reports some warnings; these should be addressed
user: gjvoosten
issue_1347: state: open
title: Improve notes user interface
body: Address the following:
- [ ] Wider note editor to accommodate document-like editing (i.e. as in #1013)
- [ ] Make notes look like message bubbles (as in whatsapp / office comments / etc)
- [ ] different states of the notes side panel:
  - [ ] collapsed (as now, probably even smaller if we can move the notes icon somewhere else - floating or in #561
  - [ ] preview - show message bubbles with author and a message preview
  - [ ] full - taking half of the screen

user: VassilIordanov
issue_1325: state: open
title: Print or export ANET information
body: Provide a capability to print (or export to PDF) the following:
- [x] People profiles #3621
- [ ] (Planned) Engagement attendees
- [ ] Search results

Now that we have the people profiles (a.k.a. 'baseball cards'), it would be nice to have a way to print this e.g. on individual sheets of paper. When these also contain sensitive information, we can see 3 ways these could be printed/exported:

1. all data
2. data excluding the sensitive information
3. just the sensitive information (so someone can print/export both 2 and 3, where 2 can be of general use/availability, and 3 only for authorized users)

For (planned) engagements, it would be useful to print a complete set of attendees, e.g. to be used as background information in preparation for a planned engagement.

Search results can currently be exported to e.g. a spreadsheet, but having these neatly layed out (for printing or PDF) could be useful.
user: VassilIordanov
labels: D5 [ please split ]: Difficulty - needs splitting
issue_1182: state: open
title: Fix back navigation behaviour
body: When using the back browser button we should use the ~~Redux-state~~ history to make sure the user gets the expected information on each page (especially when using the search or the insights).

This should fix the following problem:
- we go to home and search on "EF"
- we get all types of results (organizations, people, positions ...)
- we go to an insights page
- when we use the back browser button we are now redirected to the search results page but it contains the search filter used on the insights page and as search results the reports used in the insight
- we would expect to see the search results page with the filter on "EF" and the corresponding search results.

user: maradragan
issue_1157: state: open
title: Add "who accessed" my report?
body: When users get their document approved they want to see who is using their report. This can be achieved by adding a list of users that have visited the report. Data to be displayed [User - date and time last viewing]
* This information can be actionable when certain advisors are using their report they are able to take action with them (Collaboration). 
* Also users get feedback that people are actually viewing/using their reports.
* It is not enough to simply show the amount of views, since this information is not actionable.

user: evdhoudt
issue_1013: state: open
title: End of tour (periodic) assessment of principal
body: Provide capability to assess principals on a recurring basis.
Person and Position should be referenced, also possibly a number of engagement reports.
user: VassilIordanov
issue_999: state: open
title: Integrate gazetteer data in ANET
body: Should provide functionality similar to: https://www.openstreetmap.org/search?query=kabul#map=14/32.8741/35.2049

http://www.geonames.org/ provides a download with AFG data
user: VassilIordanov
issue_607: state: open
title: Integrate ANET with R through graphql
user: VassilIordanov
issue_599: state: open
title: Link to the ANET SOP
body: A link in the left-hand column that points directly to the ANET SOP.

The link should be below the "Help" link.

The link should open up the SOP in a separate web browser tab.

The link should be administered in the Admin section of ANET.
user: dspCarlson
issue_552: state: open
title: Epic 552 - Decentralize data model
body: - [x] Make all IDs to be universal - #562 
- [ ] Add a SHA1 hash and timestamp fields
- [ ] ID + hash should be unique
- [ ] design a way to designate which revisions have been approved, through an approval chain similar to reports; see #199 for example
user: VassilIordanov
issue_551: state: open
title: Epic 551 - Improve UI
body: Todo now
- [ ] Make layout responsive ( http://jsfiddle.net/10ebac2q/36/ )
  - [x] Make layout use all available space
  - [x] When real-estate is small, nav menu currently shifts to the top. Similar to http://jsfiddle.net/s4Bb8/27/ and http://rosskevin.github.io/bootstrap-material-design/examples/dashboard/
  - [ ] verify that nothing is broken/awkward through the whole interface, especially in IE11

Code style requirements(continuously)
  - in general minimize the amount of code, reuse code, etc...
  - [ ] get rid of global css and replace with inline snippets. Do we need something like emotion? Anything else that may apply? What is the best practice with material-ui

todo next
- [x] #995 ANET View management
- [ ] #1735 Insights layout
- [ ] Add the following view components:
    - pivot table
    - d3 component
      - map
      - timeline/calendar
- [ ] The toast for saved reports is a bit distracting. We need to come up with some more subtle feedback for autosave. I suggest a save draft that changes to a green draft saved indicator. Maybe we can display it shorter?

Need more exploring:
- [ ] Add context-sensitive action toolbars, possibly with sticky layout
  - requirement: Action buttons should not be hidden due to scrolling and should be shown in a consistent and clear manner
- [ ] Make search result tables configurable (to be further refined) and integrated with pivot tables/graphs
- [ ] responsive components - i.e. search result report summaries
- [ ] If needed, add the ability to minimize navigation/headers/etc, and maximize the content pane 

low priority:
- [ ] Add a 'what's new' dialog with md-styled content
  - requirement: Better communicate to users what is new since last change. Ideally through animated gifs of the change with a paragraph of text, possibly similar to: https://code.visualstudio.com/updates/v1_21
- [ ] Improve consistency of:
  - [ ] pagination
  - [ ] downloads/exports
user: VassilIordanov
issue_438: state: open
title: Make Managing the Report Approval Chain More Intuitive
body: Super users do not understand they must select the blue "Edit" button to manage their report approval chains.

1.  Can a separate button be added that states "Manage Report Approval Chain" or something to that effect?
2.  Place the button next to the "Approval process" section instead of expecting the super user to find the button at the upper right-hand corner of the page.
3.  After clicking the button, only allow the super user to edit the report approval chain and not other advisor organization information.
4.  Place the "Save" (report approval chain) button where it can be seen without having to scroll up or down.
5.  Place the "Cancel" button where it can be seen without having to scroll to the bottom.
user: dspCarlson
issue_367: state: open
title: Request actions through Email 
body: Until we have native ANET taskable actions, add the ability for a user to request actions from other users through emails.

For example:
A user is unable to submit a report due to the primary principal not being assigned. The warning could be something along the lines of:

Primary principal is not assigned to a position. Please <a href="mailto:super.user.1@anet.com; super.user.2@anet.com?bcc=anet.log@anet.com&amp;subject=ANET%20Action%20requst%3A%20Assign%20pricipal%20to%20position&amp;body=Dear%20ANET%20super%20user(s)%2C%0AI%20would%20like%20to%20request%20that%20principal%20%3Ca%20href%3D%22anet%2Fperson%23123%22%3EMr%20XYZ%3C%2Fa%3E%20is%20assigned%20to%20an%20organization.%0AKind%20regards%2C%0A%3Ca%20href%3D%22anet%2Fperson%23102%22%3EJoe%20Advisor%3C%2Fa%3E%0A">ask your superusers to assign pricipal XYZ to position</a>
 
Submission message, including email template, to be stored in the dictionary, in the form of:

```
report:
   submission:
    primaryPrincipalNotAssignedMessage: 'Please <a href="mailto:super.user.1@anet.com; super.user.2@anet.com?bcc=anet.log@anet.com&amp;subject=ANET%20Action%20requst%3A%20Assign%20pricipal%20to%20position&amp;body=Dear%20ANET%20super%20user(s)%2C%0AI%20would%20like%20to%20request%20that%20principal%20%3Ca%20href%3D%22anet%2Fperson%23{$report.primaryPrincipal.id}%22%3E{$report.primaryPrincipal.name}%3C%2Fa%3E%20is%20assigned%20to%20an%20organization.%0AKind%20regards%2C%0A%3Ca%20href%3D%22anet%2Fperson%23{$user.id}%22%3E{$user.name}%3C%2Fa%3E%0A">ask your superusers to assign pricipal {$report.primaryPrincipal.name} to position</a>' 
    primaryAdvisorNotAssignedMessage: '.......................'
```

A universal context object to be injected to resolve templates, possibly in the vein of
```
{
  user: {id: 15, name: "SMITH, Joe"},
  superusers: [{id: 15, name: "SMITH, Joe", email:"j.s@anet.com"}],
  report: {id: 123, primaryAdvisor: {id: 15, name: "SMITH, Joe"}, primaryPrincipal {id: 16, name: "SMITH, Jack"}}
}
```

Relatred to:
- This is a quick solution for #199 

  
user: VassilIordanov
issue_335: state: open
title: Add insight with org structure, aka map&link
body: Implement an org view insight of advisor and principal orgs.
- [x] Orgs should be collapsible
- [ ] View should show org relations in the future
- [ ] Widget should be reusable
- [x] It should go down to positions

Part of epic #1706 
user: VassilIordanov
issue_254: state: open
title: Report Approval Reminder Email
body: If a pending report has been waiting at an approval step for more than 48 hours, send the report approver(s) for that report approval step an email to remind them the report needs approval.
user: dspCarlson
issue_251: state: open
title: Allow Report Authors to Choose the Report's Protected Marking
body: Allow the report author to choose their individual report's protected / distribution marking (classification).  All reports should not have the same protected marking.

user: dspCarlson
issue_244: state: open
title: Epic 547: Improve map support
body: edited by @VassilIordanov

- [x] add MGRS coordinate format. Define in dictionary a geo location format. At first, the two possible choices should be lat/lon and [MGRS](https://en.wikipedia.org/wiki/Military_Grid_Reference_System) (#3042).
- [x]  Display location throughout the UI in the specified format (#3042)
- [x] In the location editor, make the geo location an editable field (#2934)
- [x] make it possible to have a location with a null geo position (#2934)
- [x] the current "drag-and-drop-only" way of placing a location is clumsy as it is very difficult to zoop out, find a new area, zoom in and place marker. When in edit mode, clicking on the map should do that. (implemented as part of #2934 in #2984)
- [ ] extend graphql queries with a geo query (as described in #1705). Make map widget add this constraint to the queries it generates (#3043)
- [ ] make report collection render items on map using a geo boundary and not pagination (#3044)
- [ ] add a locations "layer" to the map, displaying all locations (#3045)
- [ ] experiment with https://github.com/mapbox/mapbox-gl-js instead of leaflet



user: dspCarlson
labels: D5 [ please split ]: Difficulty - needs splitting
issue_229: state: open
title: Report engagement reports by Workstrand
body: As a user, I want to see for each report collection - i.e. on pages of Orgs, People, Tasks, ..., some dashboard-like widgets that show basic statistics such as:
- [ ] aggregations of custom fields of Engagements
- [ ] mini maps of engagements
- [ ] top tasks for engatements
- [ ] org chart for egagements
user: maradragan
issue_199: state: open
title: Allow users to propose changes to positions or create new postions
body: Principal positions are subject to bogus data because super users don't understand the principal position system.  Make entering principal position data user friendly and foolproof.

Probably better to allow advisors (users) to manage the position. 

**Suggestion:**
Improved way of working, is to kind of propose a change to a position. This same mechamism could be applied for location, task, organisation, postion, authorization group (maybe also report).

Related: 
- #552
user: dspCarlson
issue_120: state: open
title: docker image for ANET application server
body: Revive the ANET Docker products:
- [ ] make sure ANET application containers are built well by gradle
- [ ] make sure ANET App containers are published to Dockerhub on tag pushes
- [ ]  make sure the example docker compose files provide an easy and meaningful way to start and try ANET
user: VassilIordanov
issue_100: state: open
title: Epic 1773: Add Spell Checking for Six Text Fields When Drafting/Editing an Engagement Report
body: Add spell checking to the following six fields:
1. Meeting purpose
2. Atmospherics details
3. Key outcomes
4. Next steps
5. Report text
6. Sensitive information

Reference item 58

Part of Epic #1773
user: dspCarlson
issue_68: state: open
title: Automate Handover-Takeover
body: - [ ] When a Person is scheduled to complete their tour, deactivate that person.
- [ ] For a certain time prior to that date (2 weeks is suggested), display a banner reminding the user of this upcoming action and permitting them to:
  - [ ] update their end-of-tour date in case it has to be modified
  - [ ] nominate their replacement and prepare their Person account. Normally, privileges are needed to put a Person in a Position. In this case, an advisor should be allowed to associate a new Person to their own position - thus nominating a successor.

Possible solution could be to allow a person and it's successor to be on the same position for a limited period.
user: VassilIordanov
issue_21: state: open
title: Approvers Receives Notification Emails for Sub-Organization Reports
body: Approvers receive notification emails for advisors in sub-advisor organizations.

Reference item 8

user: VassilIordanov