# all files / src/mixins/ ItemWidget.js

100% Statements 7/7
100% Branches 3/3
100% Functions 3/3
100% Lines 7/7

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49

    1×

    1×
    17762×

    1×

    2503×

    2503×

    2503×

     /**
     * Mixin for widgets used as items in widgets that mix in OO.ui.mixin.GroupWidget.
     *
     * Item widgets have a reference to a OO.ui.mixin.GroupWidget while they are attached to the group. This
     * allows bidirectional communication.
     *
     * Use together with OO.ui.mixin.GroupWidget to make disabled state inheritable.
     *
     * @private
     * @abstract
     * @class
     *
     * @constructor
     */
    OO.ui.mixin.ItemWidget = function OoUiMixinItemWidget() {
    	//
    };

    /* Methods */

    /**
     * Check if widget is disabled.
     *
     * Checks parent if present, making disabled state inheritable.
     *
     * @return {boolean} Widget is disabled
     */
    OO.ui.mixin.ItemWidget.prototype.isDisabled = function () {
    	return this.disabled ||
    		( this.elementGroup instanceof OO.ui.Widget && this.elementGroup.isDisabled() );
    };

    /**
     * Set group element is in.
     *
     * @param {OO.ui.mixin.GroupElement|null} group Group element, null if none
     * @chainable
     */
    OO.ui.mixin.ItemWidget.prototype.setElementGroup = function ( group ) {
    	// Parent method
    	// Note: Calling #setElementGroup this way assumes this is mixed into an OO.ui.Element
    	OO.ui.Element.prototype.setElementGroup.call( this, group );

    	// Initialize item disabled states
    	this.updateDisabled();

    	return this;
    };