{"version":3,"file":"kendo.tabstrip.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","ui","keys","map","each","trim","extend","isFunction","template","outerWidth","_outerWidth","outerHeight","_outerHeight","Widget","excludedNodesRegExp","NS","HREF","PREV","NEXT","SHOW","LINK","LAST","CLICK","IMAGE","FIRST","SELECT","ACTIVATE","CONTENT","CONTENTURL","MOUSEENTER","CONTENTLOAD","DISABLEDSTATE","ACTIVESTATE","FOCUSEDSTATE","HOVERSTATE","TABONTOP","NAVIGATABLEITEMS","KEYBOARDNAVIGATABLEITEMS","ARIA_HIDDEN","ARIA_CONTROLS","ARIA_DISABLED","ARIA_SELECTED","ARIA_LABELLEDBY","templates","content","itemWrapper","item","image","sprite","empty","rendering","wrapperCssClass","group","result","index","enabled","push","length","join","textAttributes","url","text","encoded","htmlEncode","tag","contentAttributes","active","contentUrl","attr","updateTabClasses","tabs","children","addClass","filter","prop","parent","this","contents","nodeName","match","nodeType","nodeValue","wrapAll","updateFirstLast","tabGroup","removeClass","scrollButtonHtml","buttonClass","iconClass","TabStrip","init","element","options","value","that","fn","call","_animations","_contentUrls","contentUrls","_wrapper","_isRtl","support","isRtl","wrapper","_tabindex","_updateClasses","_dataSource","dataSource","fetch","_tabPosition","_scrollable","_processContentUrls","_attachEvents","_initialActivate","notify","events","name","dataEncodedField","dataTextField","dataContentField","dataImageUrlField","dataUrlField","dataSpriteCssClass","dataContentUrlField","tabPosition","animation","open","effects","duration","close","collapsible","navigatable","scrollable","distance","setDataSource","setOptions","on","_keyDownProxy","off","activateTab","find","animationSettings","hasCloseAnimation","neighbours","oldTab","itemIndex","isAnimationEnabled","reverse","hide","size","kendoRemoveClass","contentAnimators","inRequest","xhr","abort","css","_current","trigger","_scrollableModeActive","_scrollTabsToItem","visibleContents","contentHolder","contentElement","closest","tabsHeight","parseInt","kendoStop","kendoAnimate","isAjaxContent","data","is","showContentElement","removeAttr","resize","complete","browser","msie","edge","finish","animate","opacity","showContent","ajaxRequest","oldMinHeight","kendoAddClass","ajaxSettings","link","halfWidth","width","fakeProgress","statusIcon","prependTo","endState","oldProgressAnimation","marginLeft","version","setTimeout","ajaxOptions","type","cache","dataType","current","request","event","progressUpload","progress","upload","addEventListener","evt","noProgress","XMLHttpRequest","lengthComputable","percent","loaded","total","stop","error","status","stopProgress","clearInterval","style","cssText","statusText","remove","success","setInterval","Math","min","angular","elements","get","destroy","html","e","console","message","ajax","append","tab","inserted","_create","idx","tabWrapper","before","_updateContentElements","isNaN","contentElements","kineticScrollNeeded","id","i","len","eq","scrollContainer","touch","deactivateTab","_refreshHandler","unbind","_scrollPrevButton","_scrollNextButton","disable","_toggleDisabled","enable","state","insertAfter","referenceTab","prev","referenceContent","fromIndex","newTabsCreated","after","_moveUrlItem","insertBefore","next","items","refresh","getter","view","action","imageUrl","spriteCssClass","indexOf","field","reload","_removeUrlItem","select","arguments","hasClass","_active","_endItem","_appendUrlItem","_toggleHover","bind","_keydown","_itemClick","_click","prevent","isAnchor","href","collapse","oldFocusedTab","_focused","charAt","ObservableArray","toJSON","isPlainObject","Array","isArray","renderItem","renderContent","test","parentNode","className","getAttribute","add","candidate","focused","DataSource","create","_elementId","elementId","wrapperId","guid","tabStripID","_getItem","selectedItems","childNodes","_item","endItem","wr","document","activeElement","setActive","j","focus","currentTarget","preventDefault","key","keyCode","rtl","isHorizontal","target","DOWN","UP","RIGHT","LEFT","ENTER","SPACEBAR","HOME","END","from","to","splice","_resize","wrapperOffsetWidth","tabGroupScrollWidth","scrollPrevButton","scrollNextButton","_scrollableAllowed","offsetWidth","scrollWidth","_nowScrollingTabs","mouseDown","mouseUp","isRtlScrollDirection","prepend","_scrollTabsByDelta","_toggleScrollButtons","itemPosition","currentScrollOffset","scrollLeft","itemWidth","itemOffset","position","left","first","tabGroupWidth","mozilla","webkit","delta","scrLeft","jQuery","fx","appendTo","toggleClass","ul","activeItem","activeTab","wrap","display","isInitialUpdate","tabId","contentId","setAttribute","currentContent","mobile","Scroller","touchScroller","tabStrip","plugin"],"sources":["kendo.tabstrip.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.data'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"tabstrip\",\n name: \"TabStrip\",\n category: \"web\",\n description: \"The TabStrip widget displays a collection of tabs with associated tab content.\",\n depends: [ \"data\" ],\n features: [ {\n id: \"tabstrip-fx\",\n name: \"Animation\",\n description: \"Support for animation\",\n depends: [ \"fx\" ]\n } ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n keys = kendo.keys,\n map = $.map,\n each = $.each,\n trim = kendo.trim,\n extend = $.extend,\n isFunction = kendo.isFunction,\n template = kendo.template,\n outerWidth = kendo._outerWidth,\n outerHeight = kendo._outerHeight,\n Widget = ui.Widget,\n excludedNodesRegExp = /^(a|div)$/i,\n NS = \".kendoTabStrip\",\n IMG = \"img\",\n HREF = \"href\",\n PREV = \"prev\",\n NEXT = \"next\",\n SHOW = \"show\",\n LINK = \"k-link\",\n LAST = \"k-last\",\n CLICK = \"click\",\n ERROR = \"error\",\n EMPTY = \":empty\",\n IMAGE = \"k-image\",\n FIRST = \"k-first\",\n SELECT = \"select\",\n ACTIVATE = \"activate\",\n CONTENT = \"k-tabstrip-content k-content\",\n CONTENTURL = \"contentUrl\",\n MOUSEENTER = \"mouseenter\",\n MOUSELEAVE = \"mouseleave\",\n CONTENTLOAD = \"contentLoad\",\n DISABLEDSTATE = \"k-disabled\",\n ACTIVESTATE = \"k-active\",\n FOCUSEDSTATE = \"k-focus\",\n HOVERSTATE = \"k-hover\",\n TABONTOP = \"k-tab-on-top\",\n NAVIGATABLEITEMS = \".k-item:not(.\" + DISABLEDSTATE + \")\",\n KEYBOARDNAVIGATABLEITEMS = \".k-item\",\n HOVERABLEITEMS = \".k-tabstrip-items > \" + NAVIGATABLEITEMS + \":not(.\" + ACTIVESTATE + \")\",\n DEFAULTDISTANCE = 200,\n ARIA_HIDDEN = \"aria-hidden\",\n ARIA_CONTROLS = \"aria-controls\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_SELECTED = \"aria-selected\",\n ARIA_ORIENTATION = \"aria-orientation\",\n ARIA_LABELLEDBY = \"aria-labelledby\",\n\n templates = {\n content: template(\n \"
#= content(item) #
\"\n ),\n itemWrapper: template(\n \"<#= tag(item) # class='k-link' #= contentUrl(item) # #= textAttributes(item) #>\" +\n \"#= image(item) ##= sprite(item) ##= text(item) #\" +\n \"\"\n ),\n item: template(\n \"\"\n ),\n image: template(\"\"),\n sprite: template(\"\"),\n empty: template(\"\")\n },\n\n rendering = {\n wrapperCssClass: function(group, item) {\n var result = [\"k-tabstrip-item\", \"k-item\"],\n index = item.index;\n\n if (item.enabled === false) {\n result.push(\"k-disabled\");\n }\n\n if (index === 0) {\n result.push(\"k-first\");\n }\n\n if (index == group.length - 1) {\n result.push(\"k-last\");\n }\n\n return result.join(\" \");\n },\n textAttributes: function(item) {\n return item.url ? \" href='\" + item.url + \"'\" : \"\";\n },\n text: function(item) {\n return item.encoded === false ? item.text : kendo.htmlEncode(item.text);\n },\n tag: function(item) {\n return item.url ? \"a\" : \"span\";\n },\n contentAttributes: function(content) {\n return content.active !== true ? \" style='display:none' aria-hidden='true'\" : \"\";\n },\n content: function(item) {\n return item.content ? item.content : item.contentUrl ? \"\" : \" \";\n },\n contentUrl: function(item) {\n return item.contentUrl ? kendo.attr(\"content-url\") + '=\"' + item.contentUrl + '\"' : \"\";\n }\n };\n\n function updateTabClasses(tabs) {\n tabs.children(IMG)\n .addClass(IMAGE);\n\n tabs.children(\"a\")\n .addClass(LINK)\n .children(IMG)\n .addClass(IMAGE);\n\n tabs.filter(\"li[disabled]\")\n .addClass(DISABLEDSTATE)\n .attr(ARIA_DISABLED, \"true\")\n .prop(\"disabled\", false);\n\n tabs.filter(\":not([class*=k-state])\")\n .children(\"a\")\n .filter(\":focus\")\n .parent()\n .addClass(ACTIVESTATE + \" \" + TABONTOP);\n\n tabs.attr(\"role\", \"tab\");\n tabs.filter(\".\" + ACTIVESTATE)\n .attr(ARIA_SELECTED, true);\n\n\n tabs.each(function() {\n var item = $(this);\n\n if (!item.children(\".\" + LINK).length) {\n item\n .contents() // exclude groups, real links, templates and empty text nodes\n .filter(function() { return (!this.nodeName.match(excludedNodesRegExp) && !(this.nodeType == 3 && !trim(this.nodeValue))); })\n .wrapAll(\"\");\n }\n });\n\n }\n\n function updateFirstLast(tabGroup) {\n var tabs = tabGroup.children(\".k-item\");\n\n tabs.filter(\".k-first:not(:first-child)\").removeClass(FIRST);\n tabs.filter(\".k-last:not(:last-child)\").removeClass(LAST);\n tabs.filter(\":first-child\").addClass(FIRST);\n tabs.filter(\":last-child\").addClass(LAST);\n }\n\n function scrollButtonHtml(buttonClass, iconClass) {\n return \"\";\n }\n\n var TabStrip = Widget.extend({\n init: function(element, options) {\n var that = this, value;\n\n Widget.fn.init.call(that, element, options);\n\n that._animations(that.options);\n\n options = that.options;\n\n that._contentUrls = options.contentUrls || [];\n\n that._wrapper();\n\n that._isRtl = kendo.support.isRtl(that.wrapper);\n\n that._tabindex();\n that._updateClasses();\n that._dataSource();\n\n that.tabGroup.attr(\"role\", \"tablist\");\n\n if (options.dataSource) {\n that.dataSource.fetch();\n }\n\n that._tabPosition();\n that._scrollable();\n that._processContentUrls();\n that._attachEvents();\n\n if (that.options.value) {\n value = that.options.value;\n }\n\n that._initialActivate();\n that.value(value);\n kendo.notify(that);\n },\n\n events: [\n SELECT,\n ACTIVATE,\n SHOW,\n ERROR,\n CONTENTLOAD,\n \"change\",\n \"dataBinding\",\n \"dataBound\"\n ],\n\n options: {\n name: \"TabStrip\",\n dataEncodedField: \"\",\n dataTextField: \"\",\n dataContentField: \"\",\n dataImageUrlField: \"\",\n dataUrlField: \"\",\n dataSpriteCssClass: \"\",\n dataContentUrlField: \"\",\n tabPosition: \"top\",\n animation: {\n open: {\n effects: \"expand:vertical fadeIn\",\n duration: 200\n },\n close: { // if close animation effects are defined, they will be used instead of open.reverse\n duration: 200\n }\n },\n collapsible: false,\n navigatable: true,\n contentUrls: false,\n scrollable: {\n distance: DEFAULTDISTANCE\n }\n },\n\n setDataSource: function(dataSource) {\n var that = this;\n\n that.options.dataSource = dataSource;\n that._dataSource();\n that.dataSource.fetch();\n },\n\n setOptions: function(options) {\n var that = this,\n animation = that.options.animation;\n\n that._animations(options);\n\n if (options.contentUrls) {\n that._contentUrls = options.contentUrls;\n }\n\n options.animation = extend(true, animation, options.animation);\n\n if (options.navigatable) {\n that.wrapper.on(\"keydown\" + NS, that._keyDownProxy);\n } else {\n that.wrapper.off(\"keydown\" + NS, that._keyDownProxy);\n }\n\n Widget.fn.setOptions.call(that, options);\n },\n\n activateTab: function(item) {\n if (this.tabGroup.children(\"[data-animating]\").length) { return; }\n\n item = this.tabGroup.find(item);\n\n var that = this,\n animationSettings = that.options.animation,\n animation = animationSettings.open,\n close = extend({}, animationSettings.close),\n hasCloseAnimation = close && \"effects\" in close,\n neighbours = item.parent().children(),\n oldTab = neighbours.filter(\".\" + ACTIVESTATE),\n itemIndex = neighbours.index(item),\n isAnimationEnabled = animation && \"duration\" in animation && \"effects\" in animation;\n\n close = extend( hasCloseAnimation ? close : extend({ reverse: true }, animation), { hide: true });\n // deactivate previously active tab\n if (kendo.size(animation.effects)) {\n oldTab.kendoRemoveClass(ACTIVESTATE, { duration: close.duration });\n item.kendoRemoveClass(HOVERSTATE, { duration: close.duration });\n } else {\n oldTab.removeClass(ACTIVESTATE);\n item.removeClass(HOVERSTATE);\n }\n\n // handle content elements\n var contentAnimators = that.contentAnimators;\n\n if (that.inRequest) {\n that.xhr.abort();\n that.inRequest = false;\n }\n\n if (contentAnimators.length === 0) {\n that.tabGroup.find(\".\" + TABONTOP).removeClass(TABONTOP);\n item.addClass(TABONTOP) // change these directly to bring the tab on top.\n .css(\"z-index\");\n\n item.addClass(ACTIVESTATE);\n that._current(item);\n\n that.trigger(\"change\");\n\n if (that._scrollableModeActive) {\n that._scrollTabsToItem(item);\n }\n\n return false;\n }\n\n var visibleContents = contentAnimators.filter(\".\" + ACTIVESTATE),\n contentHolder = that.contentHolder(itemIndex),\n contentElement = contentHolder.closest(\".k-content\");\n\n that.tabsHeight = outerHeight(that.tabGroup) +\n parseInt(that.wrapper.css(\"border-top-width\"), 10) +\n parseInt(that.wrapper.css(\"border-bottom-width\"), 10);\n\n if (contentHolder.length === 0) {\n visibleContents\n .removeClass( ACTIVESTATE )\n .attr(ARIA_HIDDEN, true)\n .kendoStop(true, true)\n .kendoAnimate( close );\n return false;\n }\n\n item.attr(\"data-animating\", true);\n\n var isAjaxContent = (item.children(\".\" + LINK).data(CONTENTURL) || that._contentUrls[itemIndex] || false) && contentHolder.is(EMPTY),\n showContentElement = function() {\n oldTab.removeAttr(ARIA_SELECTED);\n item.attr(ARIA_SELECTED, true);\n\n that._current(item);\n\n contentElement\n .addClass(ACTIVESTATE)\n .removeAttr(ARIA_HIDDEN)\n .kendoStop(true, true)\n .kendoAnimate( extend({ init: function() {\n that.trigger(SHOW, { item: item[0], contentElement: contentHolder[0] });\n kendo.resize(contentHolder);\n } }, animation, {\n complete: function() {\n item.removeAttr(\"data-animating\");\n\n that.trigger(ACTIVATE, { item: item[0], contentElement: contentHolder[0] });\n kendo.resize(contentHolder);\n\n // Force IE and Edge rendering to fix visual glitches telerik/kendo-ui-core#2777.\n if (isAnimationEnabled && (kendo.support.browser.msie || kendo.support.browser.edge)) {\n contentHolder.finish().animate({\n opacity: 0.9\n },\"fast\", \"linear\", function() {\n contentHolder.finish().animate({\n opacity: 1\n },\"fast\", \"linear\");\n });\n }\n }\n } ) );\n },\n showContent = function() {\n if (!isAjaxContent) {\n showContentElement();\n that.trigger(\"change\");\n } else {\n item.removeAttr(\"data-animating\");\n that.ajaxRequest(item, contentHolder, function() {\n item.attr(\"data-animating\", true);\n showContentElement();\n that.trigger(\"change\");\n });\n }\n\n if (that._scrollableModeActive) {\n that._scrollTabsToItem(item);\n }\n\n };\n\n // See https://github.com/telerik/kendo-ui-core/issues/6660\n var oldMinHeight = that.element.css('min-height');\n that.element.css('min-height', that.element.outerHeight());\n\n visibleContents\n .removeClass(ACTIVESTATE);\n\n that.tabGroup.find(\".\" + TABONTOP).removeClass(TABONTOP);\n item.addClass(TABONTOP) // change these directly to bring the tab on top.\n .css(\"z-index\");\n\n if (kendo.size(animation.effects)) {\n item.kendoAddClass(ACTIVESTATE, { duration: animation.duration });\n } else {\n item.addClass(ACTIVESTATE);\n }\n\n visibleContents.attr(ARIA_HIDDEN, true);\n\n if (visibleContents.length) {\n visibleContents\n .kendoStop(true, true)\n .kendoAnimate(extend( {\n complete: showContent\n }, close ));\n } else {\n showContent();\n }\n\n that.element.css('min-height', oldMinHeight);\n\n return true;\n },\n\n ajaxRequest: function(element, content, complete, url) {\n element = this.tabGroup.find(element);\n\n var that = this,\n xhr = $.ajaxSettings.xhr,\n link = element.find(\".\" + LINK),\n data = {},\n halfWidth = element.width() / 2,\n fakeProgress = false,\n statusIcon = element.find(\".k-loading\").removeClass(\"k-complete\");\n\n if (!statusIcon[0]) {\n statusIcon = $(\"\").prependTo(element);\n }\n\n var endState = halfWidth * 2 - statusIcon.width();\n\n var oldProgressAnimation = function() {\n statusIcon.animate({ marginLeft: (parseInt(statusIcon.css(\"marginLeft\"), 10) || 0) < halfWidth ? endState : 0 }, 500, oldProgressAnimation);\n };\n\n if (kendo.support.browser.msie && kendo.support.browser.version < 10) {\n setTimeout(oldProgressAnimation, 40);\n }\n\n url = url || link.data(CONTENTURL) || that._contentUrls[element.index()] || link.attr(HREF);\n that.inRequest = true;\n\n var ajaxOptions = {\n type: \"GET\",\n cache: false,\n url: url,\n dataType: \"html\",\n data: data,\n xhr: function() {\n var current = this,\n request = xhr(),\n event = current.progressUpload ? \"progressUpload\" : current.progress ? \"progress\" : false;\n\n if (request) {\n $.each([ request, request.upload ], function() {\n if (this.addEventListener) {\n this.addEventListener(\"progress\", function(evt) {\n if (event) {\n current[event](evt);\n }\n }, false);\n }\n });\n }\n\n current.noProgress = !(window.XMLHttpRequest && ('upload' in new XMLHttpRequest()));\n return request;\n },\n\n progress: function(evt) {\n if (evt.lengthComputable) {\n var percent = parseInt((evt.loaded / evt.total * 100), 10) + \"%\";\n statusIcon\n .stop(true)\n .addClass(\"k-progress\")\n .css({\n \"width\": percent,\n \"marginLeft\": 0\n });\n }\n },\n\n error: function(xhr, status) {\n if (that.trigger(\"error\", { xhr: xhr, status: status })) {\n this.complete();\n }\n },\n\n stopProgress: function() {\n clearInterval(fakeProgress);\n statusIcon\n .stop(true)\n .addClass(\"k-progress\")\n [0].style.cssText = \"\";\n },\n\n complete: function(xhr) {\n that.inRequest = false;\n if (this.noProgress) {\n setTimeout(this.stopProgress, 500);\n } else {\n this.stopProgress();\n }\n\n if (xhr.statusText == \"abort\") {\n statusIcon.remove();\n }\n },\n\n success: function(data) {\n statusIcon.addClass(\"k-complete\");\n try {\n var current = this,\n loaded = 10;\n\n if (current.noProgress) {\n statusIcon.width(loaded + \"%\");\n fakeProgress = setInterval(function() {\n current.progress({ lengthComputable: true, loaded: Math.min(loaded, 100), total: 100 });\n loaded += 10;\n }, 40);\n }\n\n that.angular(\"cleanup\", function() { return { elements: content.get() }; });\n kendo.destroy(content);\n content.html(data);\n } catch (e) {\n var console = window.console;\n\n if (console && console.error) {\n console.error(e.name + \": \" + e.message + \" in \" + url);\n }\n this.error(this.xhr, \"error\");\n }\n\n if (complete) {\n complete.call(that, content);\n }\n\n that.angular(\"compile\", function() { return { elements: content.get() }; });\n\n that.trigger(CONTENTLOAD, { item: element[0], contentElement: content[0] });\n }\n };\n\n if (typeof url === \"object\") {\n ajaxOptions = $.extend(true, {}, ajaxOptions, url);\n\n if (isFunction(ajaxOptions.url)) {\n ajaxOptions.url = ajaxOptions.url();\n }\n }\n\n that.xhr = $.ajax(ajaxOptions);\n },\n\n append: function(tab) {\n var that = this,\n inserted = that._create(tab);\n\n each(inserted.tabs, function(idx) {\n var contents = inserted.contents[idx];\n that.tabGroup.append(this);\n if (that.options.tabPosition == \"bottom\") {\n that.tabWrapper.before(contents);\n } else {\n that.wrapper.append(contents);\n }\n that.angular(\"compile\", function() { return { elements: [ contents ] }; });\n });\n\n updateFirstLast(that.tabGroup);\n that._updateContentElements();\n that.resize(true);\n\n return that;\n },\n\n contentElement: function(itemIndex) {\n if (isNaN(itemIndex - 0)) {\n return undefined$1;\n }\n\n var contentElements = this.contentElements && this.contentElements[0] && !kendo.kineticScrollNeeded ? this.contentElements : this.contentAnimators;\n var id = $(this.tabGroup.children()[itemIndex]).attr(ARIA_CONTROLS);\n\n if (contentElements) {\n for (var i = 0, len = contentElements.length; i < len; i++) {\n if (contentElements.eq(i).closest(\".k-content\")[0].id == id) {\n return contentElements[i];\n }\n }\n }\n\n return undefined$1;\n },\n\n contentHolder: function(itemIndex) {\n var contentElement = $(this.contentElement(itemIndex)),\n scrollContainer = contentElement.children(\".km-scroll-container\");\n\n return kendo.support.touch && scrollContainer[0] ? scrollContainer : contentElement;\n },\n\n deactivateTab: function(item) {\n var that = this,\n animationSettings = that.options.animation,\n animation = animationSettings.open,\n close = extend({}, animationSettings.close),\n hasCloseAnimation = close && \"effects\" in close;\n item = that.tabGroup.find(item);\n\n close = extend( hasCloseAnimation ? close : extend({ reverse: true }, animation), { hide: true });\n\n if (kendo.size(animation.effects)) {\n item.kendoRemoveClass(ACTIVESTATE, { duration: animation.duration });\n } else {\n item.removeClass(ACTIVESTATE);\n }\n\n item.removeAttr(ARIA_SELECTED);\n\n that.contentAnimators\n .filter(\".\" + ACTIVESTATE)\n .kendoStop(true, true)\n .kendoAnimate( close )\n .removeClass(ACTIVESTATE)\n .attr(ARIA_HIDDEN, true);\n },\n\n destroy: function() {\n var that = this;\n\n Widget.fn.destroy.call(that);\n\n if (that._refreshHandler) {\n that.dataSource.unbind(\"change\", that._refreshHandler);\n }\n\n that.wrapper.off(NS);\n that.tabGroup.off(NS);\n\n if (that._scrollableModeActive) {\n that._scrollPrevButton.off().remove();\n that._scrollNextButton.off().remove();\n }\n\n kendo.destroy(that.wrapper);\n },\n\n disable: function(element) {\n this._toggleDisabled(element, false);\n\n return this;\n },\n\n enable: function(element, state) {\n this._toggleDisabled(element, state !== false);\n\n return this;\n },\n\n insertAfter: function(tab, referenceTab) {\n if ($(tab).is($(referenceTab))) {\n referenceTab = this.tabGroup.find(referenceTab).prev();\n } else {\n referenceTab = this.tabGroup.find(referenceTab);\n }\n\n var that = this,\n inserted = that._create(tab),\n referenceContent = that.element.find(\"[id='\" + referenceTab.attr(ARIA_CONTROLS) + \"']\");\n\n each(inserted.tabs, function(idx) {\n var contents = inserted.contents[idx];\n var fromIndex = inserted.newTabsCreated ? that._contentUrls.length - (inserted.tabs.length - idx) : $(contents).index() - 1;\n\n referenceTab.after(this);\n referenceContent.after(contents);\n\n that._moveUrlItem(fromIndex, $(this).index());\n that.angular(\"compile\", function() { return { elements: [ contents ] }; });\n });\n\n updateFirstLast(that.tabGroup);\n that._updateContentElements(inserted.newTabsCreated);\n that.resize(true);\n\n return that;\n },\n\n insertBefore: function(tab, referenceTab) {\n if ($(tab).is($(referenceTab))) {\n referenceTab = this.tabGroup.find(referenceTab).next();\n } else {\n referenceTab = this.tabGroup.find(referenceTab);\n }\n\n var that = this,\n inserted = that._create(tab),\n referenceContent = that.element.find(\"[id='\" + referenceTab.attr(ARIA_CONTROLS) + \"']\");\n\n each(inserted.tabs, function(idx) {\n var contents = inserted.contents[idx];\n var fromIndex = inserted.newTabsCreated ? that._contentUrls.length - (inserted.tabs.length - idx) : $(contents).index() - 1;\n\n referenceTab.before(this);\n referenceContent.before(contents);\n\n that._moveUrlItem(fromIndex, $(this).index());\n that.angular(\"compile\", function() { return { elements: [ contents ] }; });\n });\n\n updateFirstLast(that.tabGroup);\n that._updateContentElements(inserted.newTabsCreated);\n that.resize(true);\n\n return that;\n },\n\n items: function() {\n return this.tabGroup[0].children;\n },\n\n refresh: function(e) {\n var that = this,\n options = that.options,\n encoded = kendo.getter(options.dataEncodedField),\n text = kendo.getter(options.dataTextField),\n content = kendo.getter(options.dataContentField),\n contentUrl = kendo.getter(options.dataContentUrlField),\n image = kendo.getter(options.dataImageUrlField),\n url = kendo.getter(options.dataUrlField),\n sprite = kendo.getter(options.dataSpriteCssClass),\n idx,\n tabs = [],\n tab,\n action,\n view = that.dataSource.view(),\n length;\n\n\n e = e || {};\n action = e.action;\n\n if (action) {\n view = e.items;\n }\n\n for (idx = 0, length = view.length; idx < length; idx ++) {\n tab = {\n text: text(view[idx])\n };\n\n if (options.dataEncodedField) {\n tab.encoded = encoded(view[idx]);\n }\n\n if (options.dataContentField) {\n tab.content = content(view[idx]);\n }\n\n if (options.dataContentUrlField) {\n tab.contentUrl = contentUrl(view[idx]);\n }\n\n if (options.dataUrlField) {\n tab.url = url(view[idx]);\n }\n\n if (options.dataImageUrlField) {\n tab.imageUrl = image(view[idx]);\n }\n\n if (options.dataSpriteCssClass) {\n tab.spriteCssClass = sprite(view[idx]);\n }\n\n tabs[idx] = tab;\n }\n\n if (e.action == \"add\") {\n if (e.index < that.tabGroup.children().length) {\n that.insertBefore(tabs, that.tabGroup.children().eq(e.index));\n } else {\n that.append(tabs);\n }\n } else if (e.action == \"remove\") {\n for (idx = 0; idx < view.length; idx++) {\n that.remove(e.index);\n }\n } else if (e.action == \"itemchange\") {\n idx = that.dataSource.view().indexOf(view[0]);\n if (e.field === options.dataTextField) {\n that.tabGroup.children().eq(idx).find(\".k-link\").text(view[0].get(e.field));\n }\n\n if (e.field === options.dataUrlField) {\n that._contentUrls[idx] = view[0].get(e.field);\n }\n } else {\n that.trigger(\"dataBinding\");\n that.remove(\"li\");\n that._contentUrls = [];\n that.append(tabs);\n that.trigger(\"dataBound\");\n }\n },\n\n reload: function(element) {\n element = this.tabGroup.find(element);\n var that = this;\n var contentUrls = that._contentUrls;\n\n element.each(function() {\n var item = $(this),\n contentUrl = item.find(\".\" + LINK).data(CONTENTURL) || contentUrls[item.index()],\n content = that.contentHolder(item.index());\n\n if (contentUrl) {\n that.ajaxRequest(item, content, null, contentUrl);\n }\n });\n\n return that;\n },\n\n remove: function(elements) {\n var that = this;\n var type = typeof elements;\n var contents;\n\n if (type === \"string\") {\n elements = that.tabGroup.find(elements);\n } else if (type === \"number\") {\n elements = that.tabGroup.children().eq(elements);\n }\n\n contents = elements.map(function() {\n var idx = $(this).index();\n var content = that.contentElement(idx);\n\n kendo.destroy(content);\n that._removeUrlItem(idx);\n\n return content;\n });\n\n elements.remove();\n contents.empty();\n contents.remove();\n\n that._updateContentElements();\n that.resize(true);\n\n return that;\n },\n\n select: function(element) {\n var that = this;\n\n if (arguments.length === 0) {\n return that.tabGroup.children(\"li.\" + ACTIVESTATE);\n }\n\n if (!isNaN(element)) {\n element = that.tabGroup.children().get(element);\n }\n\n element = that.tabGroup.find(element);\n $(element).each(function(index, item) {\n item = $(item);\n if (!item.hasClass(ACTIVESTATE) && !that.trigger(SELECT, { item: item[0], contentElement: that.contentHolder(item.index())[0] })) {\n that.activateTab(item);\n }\n });\n\n return that;\n },\n\n value: function(value) {\n var that = this;\n\n if (value !== undefined$1) {\n if (value != that.value()) {\n that.tabGroup.children().each(function() {\n if (kendo.trim($(this).text()) == value) {\n that.select(this);\n }\n });\n }\n } else {\n return that.select().text();\n }\n },\n\n _active: function() {\n var item = this.tabGroup.children().filter(\".\" + ACTIVESTATE);\n\n item = item[0] ? item : this._endItem(\"first\");\n if (item[0]) {\n this._current(item);\n }\n },\n\n _animations: function(options) {\n if (options && (\"animation\" in options) && !options.animation) {\n options.animation = { open: { effects: {} }, close: { effects: {} } }; // No animation\n }\n },\n\n _appendUrlItem: function(url) {\n this._contentUrls.push(url);\n },\n\n _attachEvents: function() {\n var that = this,\n options = that.options;\n\n that.wrapper\n .on(MOUSEENTER + NS + \" \" + MOUSELEAVE + NS, HOVERABLEITEMS, that._toggleHover)\n .on(\"focus\" + NS, that._active.bind(that))\n .on(\"blur\" + NS, function() { that._current(null); });\n\n that._keyDownProxy = that._keydown.bind(that);\n\n if (options.navigatable) {\n that.wrapper.on(\"keydown\" + NS, that._keyDownProxy);\n }\n\n that.tabGroup\n .on(CLICK + NS, \".k-disabled .k-link\", false)\n .on(CLICK + NS, \" > \" + NAVIGATABLEITEMS, that._itemClick.bind(that));\n },\n\n _click: function(item) {\n var that = this,\n link = item.find(\".\" + LINK),\n href = link.attr(HREF),\n collapse = that.options.collapsible,\n index = item.index(),\n contentHolder = that.contentHolder(index),\n prevent, isAnchor,\n neighbours = item.parent().children(),\n oldFocusedTab = neighbours.filter(\".\" + FOCUSEDSTATE);\n\n if (item.closest(\".k-widget\")[0] != that.wrapper[0]) {\n return;\n }\n\n if (item.is(\".\" + DISABLEDSTATE + (!collapse ? \",.\" + ACTIVESTATE : \"\"))) {\n oldFocusedTab.removeClass(FOCUSEDSTATE);\n that._focused = item;\n\n item.addClass(FOCUSEDSTATE);\n that._current(item);\n\n if (that._scrollableModeActive) {\n that._scrollTabsToItem(item);\n }\n return true;\n }\n\n isAnchor = link.data(CONTENTURL) || that._contentUrls[index] || (href && (href.charAt(href.length - 1) == \"#\" || href.indexOf(\"#\" + that.element[0].id + \"-\") != -1));\n prevent = !href || isAnchor;\n\n if (that.tabGroup.children(\"[data-animating]\").length) {\n return prevent;\n }\n\n if (that.trigger(SELECT, { item: item[0], contentElement: contentHolder[0] })) {\n return true;\n }\n\n if (prevent === false) {\n return;\n }\n\n if (collapse && item.is(\".\" + ACTIVESTATE)) {\n that.deactivateTab(item);\n return true;\n }\n\n if (that.activateTab(item)) {\n prevent = true;\n }\n\n return prevent;\n },\n\n _create: function(tab) {\n var that = this,\n tabs,\n contents,\n content,\n newTabsCreated = false;\n\n tab = tab instanceof kendo.data.ObservableArray ? tab.toJSON() : tab;\n\n if ($.isPlainObject(tab) || Array.isArray(tab)) {\n tab = Array.isArray(tab) ? tab : [tab];\n newTabsCreated = true;\n\n tabs = map(tab, function(value, idx) {\n that._appendUrlItem(tab[idx].contentUrl || null);\n\n return $(TabStrip.renderItem({\n group: that.tabGroup,\n item: extend(value, { index: idx })\n }));\n });\n\n contents = map( tab, function(value, idx) {\n if (typeof value.content == \"string\" || value.contentUrl) {\n return $(TabStrip.renderContent({\n item: extend(value, { index: idx })\n }));\n }\n });\n } else {\n if (typeof tab == \"string\" && tab[0] != \"<\") {\n tabs = that.element.find(tab);\n } else {\n tabs = $(tab);\n }\n contents = $();\n tabs.each(function() {\n if (/k-tabstrip-items/.test(this.parentNode.className)) {\n var element = that.element.find(\"[id='\" + this.getAttribute(ARIA_CONTROLS) + \"']\");\n content = element;\n } else {\n content = $(\"
\");\n }\n\n contents = contents.add(content);\n });\n\n updateTabClasses(tabs);\n }\n\n return { tabs: tabs, contents: contents, newTabsCreated: newTabsCreated };\n },\n\n _current: function(candidate) {\n var that = this,\n focused = that._focused;\n\n if (candidate === undefined$1) {\n return focused;\n }\n\n if (focused) {\n focused.removeClass(FOCUSEDSTATE);\n }\n\n if (candidate) {\n if (!candidate.hasClass(ACTIVESTATE)) {\n candidate.addClass(FOCUSEDSTATE);\n }\n }\n\n that._focused = candidate;\n },\n\n _dataSource: function() {\n var that = this;\n\n if (that.dataSource && that._refreshHandler) {\n that.dataSource.unbind(\"change\", that._refreshHandler);\n } else {\n that._refreshHandler = that.refresh.bind(that);\n }\n\n that.dataSource = kendo.data.DataSource.create(that.options.dataSource)\n .bind(\"change\", that._refreshHandler);\n },\n\n _elementId: function(element, idx, tab) {\n var elementId = element.attr(\"id\"),\n wrapperId = this.element.attr(\"id\"),\n guid = kendo.guid();\n\n if (!elementId || elementId.indexOf(wrapperId + \"-\") > -1) {\n var tabStripID = (wrapperId || guid) + \"-\";\n\n if (tab) {\n tabStripID += \"tab-\";\n }\n\n return tabStripID + (idx + 1);\n }\n\n return elementId;\n },\n\n _endItem: function(action) {\n return this.tabGroup.children(NAVIGATABLEITEMS)[action]();\n },\n\n _getItem: function(action) {\n return this.tabGroup.children(KEYBOARDNAVIGATABLEITEMS)[action]();\n },\n\n _initialActivate: function() {\n var that = this,\n selectedItems = that.tabGroup.children(\"li.\" + ACTIVESTATE),\n content = that.contentHolder(selectedItems.index());\n\n if (selectedItems[0] && content.length > 0 && content[0].childNodes.length === 0) {\n that.activateTab(selectedItems.eq(0));\n }\n },\n\n _item: function(item, action) {\n var endItem;\n if (action === PREV) {\n endItem = \"last\";\n } else {\n endItem = \"first\";\n }\n\n if (!item) {\n return this._endItem(endItem);\n }\n\n item = item[action]();\n\n if (!item[0]) {\n item = this.tabGroup.children(KEYBOARDNAVIGATABLEITEMS)[endItem]();\n }\n\n if (item.hasClass(DISABLEDSTATE)) {\n item.addClass(FOCUSEDSTATE);\n }\n if (item.hasClass(DISABLEDSTATE) || item.hasClass(ACTIVESTATE)) {\n this._focused = item;\n }\n\n return item;\n },\n\n _itemClick: function(e) {\n var that = this,\n wr = that.wrapper[0];\n\n if (wr !== document.activeElement) {\n var msie = kendo.support.browser.msie;\n if (msie) {\n try {\n // does not scroll to the active element\n wr.setActive();\n } catch (j) {\n wr.focus();\n }\n } else {\n wr.focus();\n }\n }\n\n if (that._click($(e.currentTarget))) {\n e.preventDefault();\n }\n },\n\n _keydown: function(e) {\n var that = this,\n key = e.keyCode,\n current = that._current(),\n rtl = that._isRtl,\n isHorizontal = /top|bottom/.test(that.options.tabPosition),\n action;\n\n if (e.target != e.currentTarget || !current) {\n return;\n }\n\n if (key === keys.DOWN && !isHorizontal) {\n action = NEXT;\n } else if (key === keys.UP && !isHorizontal) {\n action = PREV;\n } else if (key === keys.RIGHT && isHorizontal) {\n action = rtl ? PREV : NEXT;\n } else if (key === keys.LEFT && isHorizontal) {\n action = rtl ? NEXT : PREV;\n } else if (key == keys.ENTER || key == keys.SPACEBAR) {\n that._click(current);\n e.preventDefault();\n } else if (key == keys.HOME) {\n that._click(that._getItem(\"first\"));\n e.preventDefault();\n return;\n } else if (key == keys.END) {\n that._click(that._getItem(\"last\"));\n e.preventDefault();\n return;\n }\n\n if (action) {\n that._click(that._item(current, action));\n e.preventDefault();\n }\n },\n\n _moveUrlItem: function(from, to) {\n this._contentUrls.splice(to, 0, this._contentUrls.splice(from, 1)[0]);\n },\n\n _processContentUrls: function() {\n var that = this;\n\n if (that._contentUrls.length) {\n that.tabGroup.children(\".k-item\")\n .each(function(index, item) {\n var url = that._contentUrls[index];\n\n if (typeof url === 'string') {\n $(item).find(\">.\" + LINK).data(CONTENTURL, url);\n }\n });\n } else {\n that._contentUrls.length = that.tabGroup.find(\"li.k-item\").length;\n }\n },\n\n _removeUrlItem: function(index) {\n this._contentUrls.splice(index, 1);\n },\n\n _resize: function() {\n this._scrollable();\n },\n\n _scrollable: function() {\n var that = this,\n options = that.options,\n wrapperOffsetWidth,\n tabGroupScrollWidth,\n scrollPrevButton,\n scrollNextButton;\n\n if (that._scrollableAllowed()) {\n\n that.wrapper.addClass(\"k-tabstrip-scrollable\");\n\n wrapperOffsetWidth = that.wrapper[0].offsetWidth;\n tabGroupScrollWidth = that.tabGroup[0].scrollWidth;\n\n if (tabGroupScrollWidth > wrapperOffsetWidth && !that._scrollableModeActive) {\n that._nowScrollingTabs = false;\n that._isRtl = kendo.support.isRtl(that.element);\n var mouseDown = kendo.support.touch ? \"touchstart\" : \"mousedown\";\n var mouseUp = kendo.support.touch ? \"touchend\" : \"mouseup\";\n var browser = kendo.support.browser;\n var isRtlScrollDirection = that._isRtl && !browser.msie && !browser.edge;\n\n that.tabWrapper.prepend(scrollButtonHtml(\"prev\", \"k-i-arrow-60-left\"));\n that.tabWrapper.append(scrollButtonHtml(\"next\", \"k-i-arrow-60-right\"));\n\n scrollPrevButton = that._scrollPrevButton = that.tabWrapper.children(\".k-tabstrip-prev\");\n scrollNextButton = that._scrollNextButton = that.tabWrapper.children(\".k-tabstrip-next\");\n\n scrollPrevButton.on(mouseDown + NS, function() {\n that._nowScrollingTabs = true;\n that._scrollTabsByDelta(options.scrollable.distance * (isRtlScrollDirection ? 1 : -1));\n });\n\n scrollNextButton.on(mouseDown + NS, function() {\n that._nowScrollingTabs = true;\n that._scrollTabsByDelta(options.scrollable.distance * (isRtlScrollDirection ? -1 : 1));\n });\n\n scrollPrevButton.add(scrollNextButton).on(mouseUp + NS, function() {\n that._nowScrollingTabs = false;\n });\n\n that._scrollableModeActive = true;\n\n that._toggleScrollButtons();\n } else if (that._scrollableModeActive && tabGroupScrollWidth <= wrapperOffsetWidth) {\n that._scrollableModeActive = false;\n\n that.wrapper.removeClass(\"k-tabstrip-scrollable\");\n\n that._scrollPrevButton.off().remove();\n that._scrollNextButton.off().remove();\n } else if (!that._scrollableModeActive) {\n that.wrapper.removeClass(\"k-tabstrip-scrollable\");\n } else {\n that._toggleScrollButtons();\n }\n }\n },\n\n _scrollableAllowed: function() {\n var options = this.options;\n\n if (options.scrollable && !options.scrollable.distance) {\n options.scrollable = { distance: DEFAULTDISTANCE };\n }\n\n return options.scrollable && !isNaN(options.scrollable.distance) && (options.tabPosition == \"top\" || options.tabPosition == \"bottom\");\n },\n\n _scrollTabsToItem: function(item) {\n var that = this,\n tabGroup = that.tabGroup,\n currentScrollOffset = kendo.scrollLeft(tabGroup),\n itemWidth = outerWidth(item),\n itemOffset = that._isRtl ? item.position().left : item.position().left - tabGroup.children().first().position().left,\n tabGroupWidth = tabGroup[0].offsetWidth,\n browser = kendo.support.browser,\n itemPosition;\n\n if (that._isRtl && (browser.mozilla || (browser.webkit && browser.version >= 85))) {\n currentScrollOffset = currentScrollOffset * -1;\n }\n\n if (that._isRtl) {\n if (itemOffset < 0) {\n itemPosition = currentScrollOffset + itemOffset - (tabGroupWidth - currentScrollOffset);\n } else if (itemOffset + itemWidth > tabGroupWidth) {\n itemPosition = currentScrollOffset + itemOffset - itemWidth;\n }\n } else {\n if (currentScrollOffset + tabGroupWidth < itemOffset + itemWidth) {\n itemPosition = itemOffset + itemWidth - tabGroupWidth;\n } else if (currentScrollOffset > itemOffset) {\n itemPosition = itemOffset;\n }\n }\n\n tabGroup.finish().animate({ \"scrollLeft\": itemPosition }, \"fast\", \"linear\", function() {\n that._toggleScrollButtons();\n });\n },\n\n _scrollTabsByDelta: function(delta) {\n var that = this;\n var tabGroup = that.tabGroup;\n var scrLeft = kendo.scrollLeft(tabGroup);\n var browser = kendo.support.browser;\n\n if (that._isRtl && (browser.mozilla || (browser.webkit && browser.version >= 85))) {\n scrLeft = scrLeft * -1;\n }\n\n tabGroup.finish().animate({ \"scrollLeft\": scrLeft + delta }, \"fast\", \"linear\", function() {\n if (that._nowScrollingTabs && !jQuery.fx.off) {\n that._scrollTabsByDelta(delta);\n } else {\n that._toggleScrollButtons();\n }\n });\n },\n\n _tabPosition: function() {\n var that = this,\n tabPosition = that.options.tabPosition;\n\n that.wrapper.addClass(\"k-floatwrap k-tabstrip-\" + tabPosition);\n\n if (tabPosition == \"bottom\") {\n that.tabWrapper.appendTo(that.wrapper);\n }\n\n if (tabPosition === \"left\" || tabPosition === \"right\") {\n that.tabGroup.attr(ARIA_ORIENTATION, \"vertical\");\n }\n\n that.resize(true);\n },\n\n _toggleHover: function(e) {\n $(e.currentTarget).toggleClass(HOVERSTATE, e.type == MOUSEENTER);\n },\n\n _toggleDisabled: function(element, enable) {\n element = this.tabGroup.find(element);\n element.each(function() {\n $(this)\n .toggleClass(DISABLEDSTATE, !enable)\n .attr(ARIA_DISABLED, !enable);\n });\n },\n\n _toggleScrollButtons: function() {\n var that = this,\n ul = that.tabGroup,\n scrollLeft = kendo.scrollLeft(ul);\n\n that._scrollPrevButton.toggleClass('k-disabled', scrollLeft === 0);\n that._scrollNextButton.toggleClass('k-disabled', scrollLeft === ul[0].scrollWidth - ul[0].offsetWidth);\n },\n\n _updateClasses: function() {\n var that = this,\n tabs, activeItem, activeTab;\n var isHorizontal = /top|bottom/.test(that.options.tabPosition);\n\n that.wrapper.addClass(\"k-widget k-tabstrip\");\n\n if (!that.tabGroup) {\n that.tabGroup = that.wrapper.children(\"ul\");\n that.tabGroup.wrap('
');\n that.tabWrapper = that.tabGroup.parent();\n }\n\n if (!that.tabGroup[0]) {\n that.tabGroup = $(\"
    \").prependTo(that.wrapper);\n that.tabGroup.wrap('
    ');\n that.tabWrapper = that.tabGroup.parent();\n }\n\n that.tabWrapper.addClass('k-tabstrip-items-wrapper');\n that.tabWrapper.addClass(isHorizontal ? 'k-hstack' : 'k-vstack');\n that.tabGroup.addClass('k-tabstrip-items k-reset');\n\n tabs = that.tabGroup.find(\"li\").addClass(\"k-tabstrip-item k-item\");\n\n if (tabs.length) {\n activeItem = tabs.filter(\".\" + ACTIVESTATE).index();\n activeTab = activeItem >= 0 ? activeItem : undefined$1;\n\n that.tabGroup // Remove empty text nodes\n .contents()\n .filter(function() { return (this.nodeType == 3 && !trim(this.nodeValue)); })\n .remove();\n }\n\n if (activeItem >= 0) {\n tabs.eq(activeItem).addClass(TABONTOP);\n }\n\n that.contentElements = that.wrapper.children(\"div:not(.k-tabstrip-items-wrapper)\");\n\n that.contentElements\n .addClass(CONTENT)\n .eq(activeTab)\n .addClass(ACTIVESTATE)\n .css({ display: \"block\" });\n\n if (tabs.length) {\n updateTabClasses(tabs);\n\n updateFirstLast(that.tabGroup);\n that._updateContentElements(true);\n }\n },\n\n _updateContentElements: function(isInitialUpdate) {\n var that = this,\n contentUrls = that._contentUrls,\n items = that.tabGroup.children(\".k-item\"),\n contentElements = that.wrapper.children(\"div:not(.k-tabstrip-items-wrapper)\"),\n _elementId = that._elementId.bind(that);\n\n if (contentElements.length && (items.length > contentElements.length)) {\n contentElements.each(function(idx) {\n // Generate an ID for each content element\n var contentId = _elementId($(this), idx),\n item = items.filter(\"[aria-controls=\" + (contentId || 0) + \"]\")[0],\n tabId;\n\n if (!item && isInitialUpdate) {\n // On initialization of the widget get the tab by its index\n item = items[idx];\n }\n\n if (item) {\n // set the tab aria-controls attribute to the content ID\n item.setAttribute(ARIA_CONTROLS, contentId);\n tabId = item.id = _elementId($(item), idx, true);\n this.setAttribute(ARIA_LABELLEDBY, tabId);\n }\n\n // set the get (possibly existing) ID on the content element\n this.setAttribute(\"id\", contentId);\n });\n } else {\n items.each(function(idx) {\n var currentContent = contentElements.eq(idx),\n contentId = _elementId(currentContent, idx),\n tabId;\n\n // set the tab aria-controls attribute to the content ID\n this.setAttribute(ARIA_CONTROLS, contentId);\n\n tabId = this.id = _elementId($(this), idx, true);\n\n if (!currentContent.length && contentUrls[idx]) {\n // Append content element in case contentUrl is used\n $(\"
    \").appendTo(that.wrapper).attr(\"id\", contentId);\n } else {\n // set the ID on the content element\n currentContent.attr(\"id\", contentId);\n\n if (!$(this).children(\".k-loading\")[0] && !contentUrls[idx]) {\n $(\"\").prependTo(this);\n }\n }\n\n currentContent.attr(\"role\", \"tabpanel\");\n currentContent.attr(\"tabindex\", \"0\");\n currentContent.attr(ARIA_LABELLEDBY, tabId);\n currentContent.filter(\":not(.\" + ACTIVESTATE + \")\").attr(ARIA_HIDDEN, true);\n });\n }\n\n that.contentElements = that.contentAnimators = that.wrapper.children(\"div:not(.k-tabstrip-items-wrapper)\"); // refresh the contents\n\n that.tabsHeight = outerHeight(that.tabGroup) +\n parseInt(that.wrapper.css(\"border-top-width\"), 10) +\n parseInt(that.wrapper.css(\"border-bottom-width\"), 10);\n\n if (kendo.kineticScrollNeeded && kendo.mobile.ui.Scroller) {\n kendo.touchScroller(that.contentElements);\n that.contentElements = that.contentElements.children(\".km-scroll-container\");\n }\n },\n\n _wrapper: function() {\n var that = this;\n\n if (that.element.is(\"ul\")) {\n that.wrapper = that.element.wrapAll(\"
    \").parent();\n } else {\n that.wrapper = that.element;\n }\n }\n });\n\n // client-side rendering\n extend(TabStrip, {\n renderItem: function(options) {\n options = extend({ tabStrip: {}, group: {} }, options);\n\n var empty = templates.empty,\n item = options.item;\n\n return templates.item(extend(options, {\n image: item.imageUrl ? templates.image : empty,\n sprite: item.spriteCssClass ? templates.sprite : empty,\n itemWrapper: templates.itemWrapper\n }, rendering));\n },\n\n renderContent: function(options) {\n return templates.content(extend(options, rendering));\n }\n });\n\n kendo.ui.plugin(TabStrip);\n\n })(window.kendo.jQuery);\n\n}));\n"]}