(index: number, aria: boolean)
| 1159 | } |
| 1160 | |
| 1161 | renderHeader(index: number, aria: boolean) { |
| 1162 | // Renders a single header |
| 1163 | var that = this; |
| 1164 | var template = _ElementUtilities._syncRenderer(pivotDefaultHeaderTemplate); |
| 1165 | var item = this.pivot.items.getAt(index); |
| 1166 | |
| 1167 | var headerContainerEl = _Global.document.createElement("BUTTON"); |
| 1168 | headerContainerEl.tabIndex = -1; |
| 1169 | headerContainerEl.setAttribute("type", "button"); |
| 1170 | headerContainerEl.style.marginLeft = headerContainerEl.style.marginRight = HeaderStateBase.headerHorizontalMargin + "px"; |
| 1171 | _ElementUtilities.addClass(headerContainerEl, _Constants._ClassNames.pivotHeader); |
| 1172 | headerContainerEl["_item"] = item; |
| 1173 | headerContainerEl["_pivotItemIndex"] = index; |
| 1174 | template(item, headerContainerEl); |
| 1175 | |
| 1176 | function ariaSelectedMutated() { |
| 1177 | if (that.pivot._disposed) { |
| 1178 | return; |
| 1179 | } |
| 1180 | |
| 1181 | if (that.pivot._headersContainerElement.contains(headerContainerEl) && |
| 1182 | index !== that.pivot.selectedIndex && |
| 1183 | headerContainerEl.getAttribute('aria-selected') === "true") { |
| 1184 | // Ignore aria selected changes on selected item. |
| 1185 | // By selecting another tab we change to it. |
| 1186 | that.pivot.selectedIndex = index; |
| 1187 | } |
| 1188 | } |
| 1189 | if (aria) { |
| 1190 | headerContainerEl.setAttribute('aria-selected', "" + (index === this.pivot.selectedIndex)); |
| 1191 | headerContainerEl.setAttribute('role', 'tab'); |
| 1192 | new _ElementUtilities._MutationObserver(ariaSelectedMutated).observe(headerContainerEl, { attributes: true, attributeFilter: ["aria-selected"] }); |
| 1193 | } |
| 1194 | |
| 1195 | return headerContainerEl; |
| 1196 | } |
| 1197 | |
| 1198 | updateHeader(item: _PivotItem.PivotItem) { |
| 1199 | // Updates the label of a header |
no test coverage detected