src/cm/media/js/lib/yui/yui_3.10.3/build/tabview/tabview-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('tabview', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * The TabView module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * @module tabview
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
var DOT = '.',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
     * Provides a tabbed widget interface
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
     * @param config {Object} Object literal specifying tabview configuration properties.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
     * @class TabView
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
     * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
     * @extends Widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
     * @uses WidgetParent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    TabView = Y.Base.create('tabView', Y.Widget, [Y.WidgetParent], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
    _afterChildAdded: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
        this.get('contentBox').focusManager.refresh();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    _defListNodeValueFn: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        var node = Y.Node.create(this.LIST_TEMPLATE);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        node.addClass(Y.TabviewBase._classNames.tabviewList);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
        return node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    _defPanelNodeValueFn: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
        var node = Y.Node.create(this.PANEL_TEMPLATE);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        node.addClass(Y.TabviewBase._classNames.tabviewPanel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        return node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    _afterChildRemoved: function(e) { // update the selected tab when removed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        var i = e.index,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
            selection = this.get('selection');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
        if (!selection) { // select previous item if selection removed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
            selection = this.item(i - 1) || this.item(0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
            if (selection) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
                selection.set('selected', 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
        this.get('contentBox').focusManager.refresh();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    _initAria: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
        var contentBox = this.get('contentBox'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
            tablist = contentBox.one(Y.TabviewBase._queries.tabviewList);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
        if (tablist) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
            tablist.setAttrs({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
                //'aria-labelledby':
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
                role: 'tablist'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    bindUI: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
        //  Use the Node Focus Manager to add keyboard support:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        //  Pressing the left and right arrow keys will move focus
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
        //  among each of the tabs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
        this.get('contentBox').plug(Y.Plugin.NodeFocusManager, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
                        descendants: DOT + Y.TabviewBase._classNames.tabLabel,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
                        keys: { next: 'down:39', // Right arrow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                                previous: 'down:37' },  // Left arrow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                        circular: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
                    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
        this.after('render', this._setDefSelection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
        this.after('addChild', this._afterChildAdded);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        this.after('removeChild', this._afterChildRemoved);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    renderUI: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
        var contentBox = this.get('contentBox');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
        this._renderListBox(contentBox);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        this._renderPanelBox(contentBox);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        this._childrenContainer = this.get('listNode');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
        this._renderTabs(contentBox);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    _setDefSelection: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
        //  If no tab is selected, select the first tab.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
        var selection = this.get('selection') || this.item(0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
        this.some(function(tab) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
            if (tab.get('selected')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
                selection = tab;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
                return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
        if (selection) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            // TODO: why both needed? (via widgetParent/Child)?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            this.set('selection', selection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
            selection.set('selected', 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
    _renderListBox: function(contentBox) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
        var node = this.get('listNode');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        if (!node.inDoc()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
            contentBox.append(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    _renderPanelBox: function(contentBox) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        var node = this.get('panelNode');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        if (!node.inDoc()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
            contentBox.append(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    _renderTabs: function(contentBox) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
        var _classNames = Y.TabviewBase._classNames,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
            _queries = Y.TabviewBase._queries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
            tabs = contentBox.all(_queries.tab),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
            panelNode = this.get('panelNode'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
            panels = (panelNode) ? this.get('panelNode').get('children') : null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
            tabview = this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
        if (tabs) { // add classNames and fill in Tab fields from markup when possible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
            tabs.addClass(_classNames.tab);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
            contentBox.all(_queries.tabLabel).addClass(_classNames.tabLabel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
            contentBox.all(_queries.tabPanel).addClass(_classNames.tabPanel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
            tabs.each(function(node, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
                var panelNode = (panels) ? panels.item(i) : null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
                tabview.add({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
                    boundingBox: node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
                    contentBox: node.one(DOT + _classNames.tabLabel),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
                    panelNode: panelNode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        defaultChildType: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
            value: 'Tab'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        listNode: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
            setter: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
                node = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
                if (node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
                    node.addClass(Y.TabviewBase._classNames.tabviewList);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
                return node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
            valueFn: '_defListNodeValueFn'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        panelNode: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
            setter: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
                node = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
                if (node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
                    node.addClass(Y.TabviewBase._classNames.tabviewPanel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
                return node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
            valueFn: '_defPanelNodeValueFn'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        tabIndex: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
            value: null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
            //validator: '_validTabIndex'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    HTML_PARSER: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
        listNode: function(srcNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
            return srcNode.one(Y.TabviewBase._queries.tabviewList);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
        panelNode: function(srcNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
            return srcNode.one(Y.TabviewBase._queries.tabviewPanel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    // Static for legacy support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
    LIST_TEMPLATE: '<ul></ul>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    PANEL_TEMPLATE: '<div></div>'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
// Map to static values by default.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
TabView.prototype.LIST_TEMPLATE = TabView.LIST_TEMPLATE;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
TabView.prototype.PANEL_TEMPLATE = TabView.PANEL_TEMPLATE;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
Y.TabView = TabView;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
 * Provides Tab instances for use with TabView
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
 * @param config {Object} Object literal specifying tabview configuration properties.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
 * @class Tab
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
 * @extends Widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
 * @uses WidgetChild
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
Y.Tab = Y.Base.create('tab', Y.Widget, [Y.WidgetChild], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
    BOUNDING_TEMPLATE: '<li></li>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    CONTENT_TEMPLATE: '<a></a>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
    PANEL_TEMPLATE: '<div></div>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    _uiSetSelectedPanel: function(selected) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
        this.get('panelNode').toggleClass(Y.TabviewBase._classNames.selectedPanel, selected);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
    _afterTabSelectedChange: function(event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
       this._uiSetSelectedPanel(event.newVal);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
    _afterParentChange: function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        if (!e.newVal) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
            this._remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
            this._add();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
    _initAria: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
        var anchor = this.get('contentBox'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
            id = anchor.get('id'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
            panel = this.get('panelNode');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
        if (!id) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
            id = Y.guid();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
            anchor.set('id', id);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
        //  Apply the ARIA roles, states and properties to each tab
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
        anchor.set('role', 'tab');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
        anchor.get('parentNode').set('role', 'presentation');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
        //  Apply the ARIA roles, states and properties to each panel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        panel.setAttrs({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
            role: 'tabpanel',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
            'aria-labelledby': id
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
    syncUI: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
        var _classNames = Y.TabviewBase._classNames;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
        this.get('boundingBox').addClass(_classNames.tab);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
        this.get('contentBox').addClass(_classNames.tabLabel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
        this.set('label', this.get('label'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
        this.set('content', this.get('content'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        this._uiSetSelectedPanel(this.get('selected'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    bindUI: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
       this.after('selectedChange', this._afterTabSelectedChange);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
       this.after('parentChange', this._afterParentChange);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
    renderUI: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
        this._renderPanel();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
        this._initAria();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
    _renderPanel: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
        this.get('parent').get('panelNode')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
            .appendChild(this.get('panelNode'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
    _add: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
        var parent = this.get('parent').get('contentBox'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
            list = parent.get('listNode'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
            panel = parent.get('panelNode');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
        if (list) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
            list.appendChild(this.get('boundingBox'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
        if (panel) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
            panel.appendChild(this.get('panelNode'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    _remove: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
        this.get('boundingBox').remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
        this.get('panelNode').remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
    _onActivate: function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
         if (e.target === this) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
             //  Prevent the browser from navigating to the URL specified by the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
             //  anchor's href attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
             e.domEvent.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
             e.target.set('selected', 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
         }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
    initializer: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
       this.publish(this.get('triggerEvent'), {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
           defaultFn: this._onActivate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
    _defLabelGetter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
        return this.get('contentBox').getHTML();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    _defLabelSetter: function(label) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
        var labelNode = this.get('contentBox');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
        if (labelNode.getHTML() !== label) { // Avoid rewriting existing label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
            labelNode.setHTML(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
        return label;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    _defContentSetter: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
        var panel = this.get('panelNode');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
        if (panel.getHTML() !== content) { // Avoid rewriting existing content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
            panel.setHTML(content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
        return content;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    _defContentGetter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
        return this.get('panelNode').getHTML();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    // find panel by ID mapping from label href
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    _defPanelNodeValueFn: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        var _classNames = Y.TabviewBase._classNames,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
            href = this.get('contentBox').get('href') || '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
            parent = this.get('parent'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
            hashIndex = href.indexOf('#'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
            panel;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
        href = href.substr(hashIndex);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
        if (href.charAt(0) === '#') { // in-page nav, find by ID
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
            panel = Y.one(href);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
            if (panel) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
                panel.addClass(_classNames.tabPanel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
        // use the one found by id, or else try matching indices
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
        if (!panel && parent) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
            panel = parent.get('panelNode')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
                    .get('children').item(this.get('index'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
        if (!panel) { // create if none found
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
            panel = Y.Node.create(this.PANEL_TEMPLATE);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
            panel.addClass(_classNames.tabPanel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
        return panel;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
         * @attribute triggerEvent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
         * @default "click"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
        triggerEvent: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
            value: 'click'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
         * @attribute label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
         * @type HTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
        label: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
            setter: '_defLabelSetter',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
            getter: '_defLabelGetter'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
         * @attribute content
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
         * @type HTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
        content: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
            setter: '_defContentSetter',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
            getter: '_defContentGetter'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
         * @attribute panelNode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
         * @type Y.Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
        panelNode: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
            setter: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
                node = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
                if (node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
                    node.addClass(Y.TabviewBase._classNames.tabPanel);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
                return node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
            valueFn: '_defPanelNodeValueFn'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
        tabIndex: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
            value: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
            validator: '_validTabIndex'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
    HTML_PARSER: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
        selected: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
            var ret = (this.get('boundingBox').hasClass(Y.TabviewBase._classNames.selectedTab)) ?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
                        1 : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
            return ret;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
}, '3.10.3', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
    "requires": [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
        "widget",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
        "widget-parent",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
        "widget-child",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
        "tabview-base",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
        "node-pluginhost",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
        "node-focusmanager"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
    "skinnable": true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
});