diff options
Diffstat (limited to 'vendor/oojs/oojs-ui/src/layouts/MenuLayout.js')
-rw-r--r-- | vendor/oojs/oojs-ui/src/layouts/MenuLayout.js | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/vendor/oojs/oojs-ui/src/layouts/MenuLayout.js b/vendor/oojs/oojs-ui/src/layouts/MenuLayout.js deleted file mode 100644 index 53937cc7..00000000 --- a/vendor/oojs/oojs-ui/src/layouts/MenuLayout.js +++ /dev/null @@ -1,156 +0,0 @@ -/** - * MenuLayouts combine a menu and a content {@link OO.ui.PanelLayout panel}. The menu is positioned relative to the content (after, before, top, or bottom) - * and its size is customized with the #menuSize config. The content area will fill all remaining space. - * - * @example - * var menuLayout = new OO.ui.MenuLayout( { - * position: 'top' - * } ), - * menuPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } ), - * contentPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } ), - * select = new OO.ui.SelectWidget( { - * items: [ - * new OO.ui.OptionWidget( { - * data: 'before', - * label: 'Before', - * } ), - * new OO.ui.OptionWidget( { - * data: 'after', - * label: 'After', - * } ), - * new OO.ui.OptionWidget( { - * data: 'top', - * label: 'Top', - * } ), - * new OO.ui.OptionWidget( { - * data: 'bottom', - * label: 'Bottom', - * } ) - * ] - * } ).on( 'select', function ( item ) { - * menuLayout.setMenuPosition( item.getData() ); - * } ); - * - * menuLayout.$menu.append( - * menuPanel.$element.append( '<b>Menu panel</b>', select.$element ) - * ); - * menuLayout.$content.append( - * contentPanel.$element.append( '<b>Content panel</b>', '<p>Note that the menu is positioned relative to the content panel: top, bottom, after, before.</p>') - * ); - * $( 'body' ).append( menuLayout.$element ); - * - * If menu size needs to be overridden, it can be accomplished using CSS similar to the snippet - * below. MenuLayout's CSS will override the appropriate values with 'auto' or '0' to display the - * menu correctly. If `menuPosition` is known beforehand, CSS rules corresponding to other positions - * may be omitted. - * - * .oo-ui-menuLayout-menu { - * height: 200px; - * width: 200px; - * } - * .oo-ui-menuLayout-content { - * top: 200px; - * left: 200px; - * right: 200px; - * bottom: 200px; - * } - * - * @class - * @extends OO.ui.Layout - * - * @constructor - * @param {Object} [config] Configuration options - * @cfg {boolean} [showMenu=true] Show menu - * @cfg {string} [menuPosition='before'] Position of menu: `top`, `after`, `bottom` or `before` - */ -OO.ui.MenuLayout = function OoUiMenuLayout( config ) { - // Configuration initialization - config = $.extend( { - showMenu: true, - menuPosition: 'before' - }, config ); - - // Parent constructor - OO.ui.MenuLayout.super.call( this, config ); - - /** - * Menu DOM node - * - * @property {jQuery} - */ - this.$menu = $( '<div>' ); - /** - * Content DOM node - * - * @property {jQuery} - */ - this.$content = $( '<div>' ); - - // Initialization - this.$menu - .addClass( 'oo-ui-menuLayout-menu' ); - this.$content.addClass( 'oo-ui-menuLayout-content' ); - this.$element - .addClass( 'oo-ui-menuLayout' ) - .append( this.$content, this.$menu ); - this.setMenuPosition( config.menuPosition ); - this.toggleMenu( config.showMenu ); -}; - -/* Setup */ - -OO.inheritClass( OO.ui.MenuLayout, OO.ui.Layout ); - -/* Methods */ - -/** - * Toggle menu. - * - * @param {boolean} showMenu Show menu, omit to toggle - * @chainable - */ -OO.ui.MenuLayout.prototype.toggleMenu = function ( showMenu ) { - showMenu = showMenu === undefined ? !this.showMenu : !!showMenu; - - if ( this.showMenu !== showMenu ) { - this.showMenu = showMenu; - this.$element - .toggleClass( 'oo-ui-menuLayout-showMenu', this.showMenu ) - .toggleClass( 'oo-ui-menuLayout-hideMenu', !this.showMenu ); - } - - return this; -}; - -/** - * Check if menu is visible - * - * @return {boolean} Menu is visible - */ -OO.ui.MenuLayout.prototype.isMenuVisible = function () { - return this.showMenu; -}; - -/** - * Set menu position. - * - * @param {string} position Position of menu, either `top`, `after`, `bottom` or `before` - * @throws {Error} If position value is not supported - * @chainable - */ -OO.ui.MenuLayout.prototype.setMenuPosition = function ( position ) { - this.$element.removeClass( 'oo-ui-menuLayout-' + this.menuPosition ); - this.menuPosition = position; - this.$element.addClass( 'oo-ui-menuLayout-' + position ); - - return this; -}; - -/** - * Get menu position. - * - * @return {string} Menu position - */ -OO.ui.MenuLayout.prototype.getMenuPosition = function () { - return this.menuPosition; -}; |