#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# WidgetStack Class

Defined in: `widget-stack/js/Widget-Stack.js:46`
Module: widget-stack

Widget extension, which can be used to add stackable (z-index) support to the base Widget class along with a shimming solution, through the Base.build method.

- Index
- Methods
- Properties
- Attributes

## Item Index

### Methods

- _addShimResizeHandlers
- _afterShimChange
- _afterZIndexChange
- _bindUIStack
- _destroyShim
- _detachStackHandles
- _getShimTemplate
- _parseZIndex
- _renderShim
- _renderShimDeferred
- _renderUIStack
- _setZIndex
- _syncUIStack
- _uiSetShim
- _uiSetZIndex
- sizeShim

### Properties

- ATTRS static
- HTML_PARSER static
- SHIM_CLASS_NAME static
- SHIM_TEMPLATE static
- STACKED_CLASS_NAME static

### Attributes

- shim
- zIndex

## Methods

### `_addShimResizeHandlers`

() private

Defined in `widget-stack/js/Widget-Stack.js:327`

Sets up event listeners to resize the shim when the size of the Widget changes.

NOTE: This method is only used for IE6 currently, since IE6 doesn't support a way to resize the shim purely through CSS, when the Widget does not have an explicit width/height set.

### `_afterShimChange`

(

- `e`

)
protected

Defined in `widget-stack/js/Widget-Stack.js:237`

Default attribute change listener for the shim attribute, responsible for updating the UI, in response to attribute changes.

#### Parameters:

- `e` EventFacade

  The event facade for the attribute change

### `_afterZIndexChange`

(

- `e`

)
protected

Defined in `widget-stack/js/Widget-Stack.js:249`

Default attribute change listener for the zIndex attribute, responsible for updating the UI, in response to attribute changes.

#### Parameters:

- `e` EventFacade

  The event facade for the attribute change

### `_bindUIStack`

() protected

Defined in `widget-stack/js/Widget-Stack.js:155`

Binds event listeners responsible for updating the UI state in response to Widget stack related state changes.

This method is invoked after bindUI is invoked for the Widget class using YUI's aop infrastructure.

### `_destroyShim`

() private

Defined in `widget-stack/js/Widget-Stack.js:387`

Removes the shim from the DOM, and detaches any related event listeners.

### `_detachStackHandles`

(

- `String`

)
private

Defined in `widget-stack/js/Widget-Stack.js:350`

Detaches any handles stored for the provided key

#### Parameters:

- `String` Object

  handleKey The key defining the group of handles which should be detached

### `_getShimTemplate`

() Node private

Defined in `widget-stack/js/Widget-Stack.js:421`

Creates a cloned shim node, using the SHIM_TEMPLATE html template, for use on a new instance.

#### Returns:

Node: node A new shim Node instance.

### `_parseZIndex`

(

- `srcNode`

)
Mixed protected

Defined in `widget-stack/js/Widget-Stack.js:183`

Parses a `zIndex` attribute value from this widget's `srcNode`.

#### Parameters:

- `srcNode` Node

  The node to parse a `zIndex` value from.

#### Returns:

Mixed: The parsed `zIndex` value.

### `_renderShim`

() private

Defined in `widget-stack/js/Widget-Stack.js:368`

Creates the shim element and adds it to the DOM

### `_renderShimDeferred`

() private

Defined in `widget-stack/js/Widget-Stack.js:301`

Sets up change handlers for the visible attribute, to defer shim creation/rendering until the Widget is made visible.

### `_renderUIStack`

() protected

Defined in `widget-stack/js/Widget-Stack.js:170`

Creates/Initializes the DOM to support stackability.

This method in invoked after renderUI is invoked for the Widget class using YUI's aop infrastructure.

### `_setZIndex`

(

- `zIndex`

)
Number protected

Defined in `widget-stack/js/Widget-Stack.js:218`

Default setter for zIndex attribute changes. Normalizes zIndex values to numbers, converting non-numerical values to 0.

#### Parameters:

- `zIndex` String | Number

#### Returns:

Number: Normalized zIndex

### `_syncUIStack`

() protected

Defined in `widget-stack/js/Widget-Stack.js:143`

Synchronizes the UI to match the Widgets stack state. This method in invoked after syncUI is invoked for the Widget class using YUI's aop infrastructure.

### `_uiSetShim`

(

- `enable`

)
protected

Defined in `widget-stack/js/Widget-Stack.js:272`

Updates the UI to enable/disable the shim. If the widget is not currently visible, creation of the shim is deferred until it is made visible, for performance reasons.

#### Parameters:

- `enable` Boolean

  If true, creates/renders the shim, if false, removes it.

### `_uiSetZIndex`

(

- `zIndex`

)
protected

Defined in `widget-stack/js/Widget-Stack.js:261`

Updates the UI to reflect the zIndex value passed in.

#### Parameters:

- `zIndex` Number

  The zindex to be reflected in the UI

### `sizeShim`

()

Defined in `widget-stack/js/Widget-Stack.js:404`

For IE6, synchronizes the size and position of iframe shim to that of Widget bounding box which it is protecting. For all other browsers, this method does not do anything.

## Properties

### `ATTRS`

Object static

Defined in `widget-stack/js/Widget-Stack.js:65`

Static property used to define the default attribute configuration introduced by WidgetStack.

### `HTML_PARSER`

Object static

Defined in `widget-stack/js/Widget-Stack.js:99`

The HTML parsing rules for the WidgetStack class.

### `SHIM_CLASS_NAME`

String static

Defined in `widget-stack/js/Widget-Stack.js:112`

Default class used to mark the shim element

Default: "yui3-widget-shim"

### `SHIM_TEMPLATE`

String static

Defined in `widget-stack/js/Widget-Stack.js:132`

Default markup template used to generate the shim element.

### `STACKED_CLASS_NAME`

String static

Defined in `widget-stack/js/Widget-Stack.js:122`

Default class used to mark the boundingBox of a stacked widget.

Default: "yui3-widget-stacked"

## Attributes

### `shim`

Boolean

Defined in `widget-stack/js/Widget-Stack.js:74`

Boolean flag to indicate whether or not a shim should be added to the Widgets boundingBox, to protect it from select box bleedthrough.

Default: false, for all browsers other than IE6, for which a shim is enabled by default.

#### Fires event `shimChange`

Fires when the value for the configuration attribute `shim` is changed. You can listen for the event using the `on` method if you wish to be notified before the attribute's value has changed, or using the `after` method if you wish to be notified after the attribute's value has changed.

#### Parameters:

- `e` EventFacade
  An Event Facade object with the following attribute-specific properties added:
  - `prevVal` Any
    The value of the attribute, prior to it being set.
  - `newVal` Any
    The value the attribute is to be set to.
  - `attrName` String
    The name of the attribute being set.
  - `subAttrName` String
    If setting a property within the attribute's value, the name of the sub-attribute property being set.

### `zIndex`

Number

Defined in `widget-stack/js/Widget-Stack.js:86`

The z-index to apply to the Widgets boundingBox. Non-numerical values for zIndex will be converted to 0

Default: 0

#### Fires event `zIndexChange`

Fires when the value for the configuration attribute `zIndex` is changed. You can listen for the event using the `on` method if you wish to be notified before the attribute's value has changed, or using the `after` method if you wish to be notified after the attribute's value has changed.

#### Parameters:

- `e` EventFacade
  An Event Facade object with the following attribute-specific properties added:
  - `prevVal` Any
    The value of the attribute, prior to it being set.
  - `newVal` Any
    The value the attribute is to be set to.
  - `attrName` String
    The name of the attribute being set.
  - `subAttrName` String
    If setting a property within the attribute's value, the name of the sub-attribute property being set.