/*!
- * OOjs UI v0.23.2
+ * OOjs UI v0.24.3
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2017 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2017-09-26T20:18:42Z
+ * Date: 2017-11-28T23:28:05Z
*/
( function ( OO ) {
/* Methods */
+/**
+ * @inheritdoc OO.ui.mixin.ClippableElement
+ */
+OO.ui.PopupToolGroup.prototype.getHorizontalAnchorEdge = function () {
+ var out;
+ if ( this.$element.hasClass( 'oo-ui-popupToolGroup-right' ) ) {
+ out = 'right';
+ } else {
+ out = 'left';
+ }
+ // Flip for RTL
+ if ( this.$element.css( 'direction' ) === 'rtl' ) {
+ out = ( out === 'left' ) ? 'right' : 'left';
+ }
+ return out;
+};
+
+/**
+ * @inheritdoc OO.ui.mixin.ClippableElement
+ */
+OO.ui.PopupToolGroup.prototype.getVerticalAnchorEdge = function () {
+ if ( this.toolbar.position === 'bottom' ) {
+ return 'bottom';
+ }
+ return 'top';
+};
+
/**
* @inheritdoc
*/
this.$clippable.css( 'left', '' );
// Try anchoring the popup to the left first
this.$element.addClass( 'oo-ui-popupToolGroup-active oo-ui-popupToolGroup-left' );
+ this.setFlags( { progressive: true } );
this.toggleClipping( true );
if ( this.isClippedHorizontally() ) {
// Anchoring to the left caused the popup to clip, so anchor it to the right instead
if ( this.isClippedHorizontally() ) {
// Anchoring to the right also caused the popup to clip, so just make it fill the container
containerWidth = this.$clippableScrollableContainer.width();
- containerLeft = this.$clippableScrollableContainer.offset().left;
+ containerLeft = this.$clippableScrollableContainer[ 0 ] === document.documentElement ?
+ 0 :
+ this.$clippableScrollableContainer.offset().left;
this.toggleClipping( false );
this.$element.removeClass( 'oo-ui-popupToolGroup-right' );
this.$element.removeClass(
'oo-ui-popupToolGroup-active oo-ui-popupToolGroup-left oo-ui-popupToolGroup-right'
);
+ this.setFlags( { progressive: false } );
this.toggleClipping( false );
}
}