diff options
Diffstat (limited to 'vendor/oojs/oojs-ui/src/widgets/DecoratedOptionWidget.js')
-rw-r--r-- | vendor/oojs/oojs-ui/src/widgets/DecoratedOptionWidget.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/oojs/oojs-ui/src/widgets/DecoratedOptionWidget.js b/vendor/oojs/oojs-ui/src/widgets/DecoratedOptionWidget.js new file mode 100644 index 00000000..e39ebcad --- /dev/null +++ b/vendor/oojs/oojs-ui/src/widgets/DecoratedOptionWidget.js @@ -0,0 +1,55 @@ +/** + * DecoratedOptionWidgets are {@link OO.ui.OptionWidget options} that can be configured + * with an {@link OO.ui.IconElement icon} and/or {@link OO.ui.IndicatorElement indicator}. + * This class is used with OO.ui.SelectWidget to create a selection of mutually exclusive + * options. For more information about options and selects, please see the + * [OOjs UI documentation on MediaWiki][1]. + * + * @example + * // Decorated options in a select widget + * var select = new OO.ui.SelectWidget( { + * items: [ + * new OO.ui.DecoratedOptionWidget( { + * data: 'a', + * label: 'Option with icon', + * icon: 'help' + * } ), + * new OO.ui.DecoratedOptionWidget( { + * data: 'b', + * label: 'Option with indicator', + * indicator: 'next' + * } ) + * ] + * } ); + * $( 'body' ).append( select.$element ); + * + * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options + * + * @class + * @extends OO.ui.OptionWidget + * @mixins OO.ui.IconElement + * @mixins OO.ui.IndicatorElement + * + * @constructor + * @param {Object} [config] Configuration options + */ +OO.ui.DecoratedOptionWidget = function OoUiDecoratedOptionWidget( config ) { + // Parent constructor + OO.ui.DecoratedOptionWidget.super.call( this, config ); + + // Mixin constructors + OO.ui.IconElement.call( this, config ); + OO.ui.IndicatorElement.call( this, config ); + + // Initialization + this.$element + .addClass( 'oo-ui-decoratedOptionWidget' ) + .prepend( this.$icon ) + .append( this.$indicator ); +}; + +/* Setup */ + +OO.inheritClass( OO.ui.DecoratedOptionWidget, OO.ui.OptionWidget ); +OO.mixinClass( OO.ui.OptionWidget, OO.ui.IconElement ); +OO.mixinClass( OO.ui.OptionWidget, OO.ui.IndicatorElement ); |