From 1de60f3376a0916661117de039a347601aefbd77 Mon Sep 17 00:00:00 2001 From: louismaximepiton Date: Wed, 28 Jun 2023 09:25:12 +0200 Subject: [PATCH] fix(review) --- js/src/dropdown.js | 4 +++- site/content/docs/5.3/components/dropdowns.md | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/js/src/dropdown.js b/js/src/dropdown.js index a630f38e77..125adf2d65 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -71,6 +71,7 @@ const PLACEMENT_BOTTOMCENTER = 'bottom' const Default = { autoClose: true, boundary: 'clippingParents', + cycling: true, display: 'dynamic', offset: [0, 2], popperConfig: null, @@ -80,6 +81,7 @@ const Default = { const DefaultType = { autoClose: '(boolean|string)', boundary: '(string|element)', + cycling: 'boolean', display: 'string', offset: '(array|string|function)', popperConfig: '(null|object|function)', @@ -332,7 +334,7 @@ class Dropdown extends BaseComponent { } // Allow cycling with up and down arrows - getNextActiveElement(items, target, key === ARROW_DOWN_KEY, true).focus() + getNextActiveElement(items, target, key === ARROW_DOWN_KEY, this._config.cycling || !items.includes(target)).focus() } // Static diff --git a/site/content/docs/5.3/components/dropdowns.md b/site/content/docs/5.3/components/dropdowns.md index 0988820649..707f84c2e4 100644 --- a/site/content/docs/5.3/components/dropdowns.md +++ b/site/content/docs/5.3/components/dropdowns.md @@ -1078,6 +1078,7 @@ const dropdownList = [...dropdownElementList].map(dropdownToggleEl => new bootst | --- | --- | --- | --- | | `autoClose` | boolean, string | `true` | Configure the auto close behavior of the dropdown: Note: the dropdown can always be closed with the Esc key. | | `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the dropdown menu (applies only to Popper's preventOverflow modifier). By default it's `clippingParents` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Popper's [detectOverflow docs](https://popper.js.org/docs/v2/utils/detect-overflow/#boundary). | +| `cycling` | boolean | `true` | Configure cycling among `.dropdown-item` using `up` and `down` arrow. | | `display` | string | `'dynamic'` | By default, we use Popper for dynamic positioning. Disable this with `static`. | | `offset` | array, string, function | `[0, 2]` | Offset of the dropdown relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the popper placement, the reference, and popper rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [skidding](https://popper.js.org/docs/v2/modifiers/offset/#skidding-1), [distance](https://popper.js.org/docs/v2/modifiers/offset/#distance-1). For more information refer to Popper's [offset docs](https://popper.js.org/docs/v2/modifiers/offset/#options). | | `popperConfig` | null, object, function | `null` | To change Bootstrap's default Popper config, see [Popper's configuration](https://popper.js.org/docs/v2/constructors/#options). When a function is used to create the Popper configuration, it's called with an object that contains the Bootstrap's default Popper configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Popper. |