aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJohann-S <[email protected]>2017-10-29 23:29:13 +0100
committerMark Otto <[email protected]>2017-10-29 15:29:13 -0700
commite454c8ec1e5197d959baf48fb089719bf900fb2a (patch)
treec7222c85329f59ae8fba5c350cf1ba7538422b2e /js
parentb1623c44290b414b656bb4d9e3baaaa3093bda8f (diff)
downloadbootstrap-e454c8ec1e5197d959baf48fb089719bf900fb2a.tar.xz
bootstrap-e454c8ec1e5197d959baf48fb089719bf900fb2a.zip
Add dropright and dropleft (right and left placements for our dropdown) (#23860)
* Add dropright (right placement for our dropdown) * Add dropleft * moves drop left arrow to the left
Diffstat (limited to 'js')
-rw-r--r--js/src/dropdown.js14
-rw-r--r--js/tests/visual/dropdown.html48
2 files changed, 60 insertions, 2 deletions
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index 18b051b89..45d061c93 100644
--- a/js/src/dropdown.js
+++ b/js/src/dropdown.js
@@ -55,6 +55,8 @@ const Dropdown = (($) => {
DISABLED : 'disabled',
SHOW : 'show',
DROPUP : 'dropup',
+ DROPRIGHT : 'dropright',
+ DROPLEFT : 'dropleft',
MENURIGHT : 'dropdown-menu-right',
MENULEFT : 'dropdown-menu-left'
}
@@ -71,7 +73,11 @@ const Dropdown = (($) => {
TOP : 'top-start',
TOPEND : 'top-end',
BOTTOM : 'bottom-start',
- BOTTOMEND : 'bottom-end'
+ BOTTOMEND : 'bottom-end',
+ RIGHT : 'right-start',
+ RIGHTEND : 'right-end',
+ LEFT : 'left-start',
+ LEFTEND : 'left-end'
}
const Default = {
@@ -227,7 +233,7 @@ const Dropdown = (($) => {
_getPlacement() {
const $parentDropdown = $(this._element).parent()
- let placement = AttachmentMap.BOTTOM
+ let placement = AttachmentMap.BOTTOM
// Handle dropup
if ($parentDropdown.hasClass(ClassName.DROPUP)) {
@@ -235,6 +241,10 @@ const Dropdown = (($) => {
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.TOPEND
}
+ } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
+ placement = AttachmentMap.RIGHT
+ } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
+ placement = AttachmentMap.LEFT
} else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.BOTTOMEND
}
diff --git a/js/tests/visual/dropdown.html b/js/tests/visual/dropdown.html
index 11b89b0f2..b2e588677 100644
--- a/js/tests/visual/dropdown.html
+++ b/js/tests/visual/dropdown.html
@@ -93,6 +93,7 @@
</div>
</div>
</div>
+
<div class="col-sm-12 mt-4">
<div class="btn-group dropup" role="group">
<a href="#" class="btn btn-secondary">Dropup split align right</a>
@@ -114,8 +115,55 @@
</div>
</div>
</div>
+
+ <div class="col-sm-12 mt-4">
+ <div class="btn-group dropright" role="group">
+ <a href="#" class="btn btn-secondary">Dropright split</a>
+ <button type="button" id="dropdown-page-subheader-button-4" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <span class="sr-only">Product actions</span>
+ </button>
+ <div class="dropdown-menu">
+ <button class="dropdown-item" type="button">Action</button>
+ <button class="dropdown-item" type="button">Another action</button>
+ <button class="dropdown-item" type="button">Something else here with a long text</button>
+ </div>
+ </div>
+ <div class="btn-group dropright">
+ <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuRight" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Dropright
+ </button>
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuRight">
+ <button class="dropdown-item" type="button">Action</button>
+ <button class="dropdown-item" type="button">Another action</button>
+ <button class="dropdown-item" type="button">Something else here</button>
+ </div>
+ </div>
+ <!-- dropleft -->
+ <div class="btn-group dropleft" role="group">
+ <a href="#" class="btn btn-secondary">Dropleft split</a>
+ <button type="button" id="dropdown-page-subheader-button-5" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <span class="sr-only">Product actions</span>
+ </button>
+ <div class="dropdown-menu">
+ <button class="dropdown-item" type="button">Action</button>
+ <button class="dropdown-item" type="button">Another action</button>
+ <button class="dropdown-item" type="button">Something else here with a long text</button>
+ </div>
+ </div>
+ <div class="btn-group dropleft">
+ <button class="btn btn-secondary dropdown-toggle" type="button" id="dropleftMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Dropleft
+ </button>
+ <div class="dropdown-menu" aria-labelledby="dropleftMenu">
+ <button class="dropdown-item" type="button">Action</button>
+ <button class="dropdown-item" type="button">Another action</button>
+ <button class="dropdown-item" type="button">Something else here</button>
+ </div>
+ </div>
</div>
+
</div>
+ </div>
<script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../assets/js/vendor/popper.min.js"></script>