]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Allow to disable flip behaviour on Dropdown + documentation
authorJohann-S <johann.servoire@gmail.com>
Fri, 21 Apr 2017 08:49:04 +0000 (10:49 +0200)
committerJohann-S <johann.servoire@gmail.com>
Sun, 14 May 2017 09:41:19 +0000 (11:41 +0200)
docs/components/dropdowns.md
js/src/dropdown.js

index 6481e83191101ac3c695513595d1661893795083..3abc27106110e0b33d09a53d7fcb3b35ac94b137 100644 (file)
@@ -17,6 +17,7 @@ Dropdowns are toggleable, contextual overlays for displaying lists of links and
 Things to know when using the popover plugin:
 
 - Dropdown rely on the 3rd party library [Popper.js](https://popper.js.org) for positioning. You must include [popper.min.js](https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.8.2/umd/popper.min.js) before bootstrap.js in order for dropdowns to work!
+- Popper.js handle natively the flip of Dropdown when it's outside the viewport, if you want to disable that's behavior use `flip` attribute
 
 ## Examples
 
@@ -551,7 +552,6 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
       <td>'bottom'</td>
       <td>
         <p>How to position the popover - top | bottom.</p>
-        <p>When a function is used to determine the placement, it is called with the popover DOM node as its first argument and the triggering element DOM node as its second. The <code>this</code> context is set to the dropdown instance.</p>
       </td>
     </tr>
     <tr>
@@ -560,6 +560,12 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
       <td>0</td>
       <td>Offset of the dropdown relative to its target. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..offset.offset">offset docs</a>.</td>
     </tr>
+    <tr>
+      <td>flip</td>
+      <td>boolean</td>
+      <td>true</td>
+      <td>Allow Dropdown to flip in case of an overlapping on the reference element. For more information refer to Popper.js's <a href="https://popper.js.org/popper-documentation.html#modifiers..flip.enabled">flip docs</a>.</td>
+    </tr>
   </tbody>
 </table>
 
index 0c082edd60bf3ef633784127725a18ff3eb4b6b0..71247728a3a3a3eab5729514d7150acc6bb4443a 100644 (file)
@@ -71,12 +71,14 @@ const Dropdown = (($) => {
 
   const Default = {
     placement   : AttachmentMap.BOTTOM,
-    offset      : 0
+    offset      : 0,
+    flip        : true
   }
 
   const DefaultType = {
     placement   : 'string',
-    offset      : '(number|string)'
+    offset      : '(number|string)',
+    flip        : 'boolean'
   }
 
 
@@ -153,6 +155,9 @@ const Dropdown = (($) => {
         modifiers : {
           offset : {
             offset : context._config.offset
+          },
+          flip : {
+            enabled : context._config.flip
           }
         }
       })
@@ -201,6 +206,11 @@ const Dropdown = (($) => {
     }
 
     _getConfig(config) {
+      const elementData = $(this._element).data()
+      if (elementData.placement !== undefined) {
+        elementData.placement = AttachmentMap[elementData.placement.toUpperCase()]
+      }
+
       config = $.extend(
         {},
         this.constructor.Default,