{"version":3,"file":"kendo.tabstrip.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendotabstrip","js","this","$","undefined$1","kendo","window","ui","keys","map","each","trim","extend","isFunction","outerWidth","template","_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","HOVERABLEITEMS","ARIA_HIDDEN","ARIA_CONTROLS","ARIA_DISABLED","ARIA_SELECTED","ARIA_LABELLEDBY","templates","content","data","contentAttributes","item","textWrapper","tag","contentUrl","textAttributes","image","sprite","text","itemWrapper","wrapperCssClass","group","active","imageUrl","spriteCssClass","empty","rendering","result","index","enabled","push","length","join","url","encoded","htmlEncode","attr","updateTabClasses","tabs","children","addClass","filter","prop","parent","is","contents","nodeName","match","nodeType","nodeValue","wrapAll","updateFirstLast","tabGroup","removeClass","scrollButtonHtml","buttonClass","iconClass","icon","TabStrip","init","element","options","value","that","fn","call","_animations","_contentUrls","contentUrls","_wrapper","_isRtl","support","isRtl","wrapper","_updateClasses","_dataSource","_tabindex","dataSource","fetch","_tabPosition","_scrollable","_sortable","_processContentUrls","_attachEvents","_initialActivate","notify","_showWatermarkOverlay","events","name","dataEncodedField","dataTextField","dataContentField","dataImageUrlField","dataUrlField","dataSpriteCssClass","dataContentUrlField","tabPosition","tabTemplate","animation","open","effects","duration","close","collapsible","navigatable","applyMinHeight","scrollable","distance","sortable","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","showContentElement","removeAttr","resize","complete","oldMinHeight","browser","msie","edge","finish","animate","opacity","showContent","ajaxRequest","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","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","model","indexOf","field","get","reload","elements","_removeUrlItem","select","arguments","hasClass","_active","_endItem","_appendUrlItem","_itemClick","bind","_toggleHover","_keydown","_click","prevent","isAnchor","href","collapse","oldFocusedTab","_focused","charAt","ObservableArray","toJSON","isPlainObject","Array","isArray","renderItem","tabstripContent","renderContent","applyStylesFromKendoAttributes","test","parentNode","className","getAttribute","add","candidate","preventFocus","focused","DataSource","create","_elementId","elementId","wrapperId","guid","tabStripID","_getItem","selectedItems","childNodes","_item","endItem","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","axis","Sortable","container","hint","el","change","_sortChange","start","reference","newIndex","oldIndex","appendTo","toggleClass","ul","activeItem","activeTab","wrap","display","isInitialUpdate","tabId","contentId","setAttribute","currentContent","mobile","Scroller","touchScroller","tabStrip","templateOptions","plugin"],"sources":["kendo.tabstrip.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.data.js'), require('kendo.icons.js'), require('kendo.sortable.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.data', 'kendo.icons', 'kendo.sortable'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendotabstrip = global.kendotabstrip || {}, global.kendotabstrip.js = factory()));\n})(this, (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\", \"icons\", \"sortable\" ],\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: (data) =>\n `
${data.content(data.item)}
`,\n textWrapper: ({ tag, item , contentUrl, textAttributes, image, sprite, text }) =>\n `<${tag(item)} class='k-link' ${contentUrl(item)} ${textAttributes(item)}>` +\n `${image(item)}${sprite(item)}${text(item)}` +\n ``,\n item: (data) =>templates.itemWrapper(data,`${data.textWrapper(data)}`),\n itemWrapper: (data, item) =>\n `\",\n image: ({ imageUrl }) => ``,\n sprite: ({ spriteCssClass }) => ``,\n empty: () => \"\"\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 ? ` ${kendo.attr(\"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\n tabs.each(function() {\n var item = $(this);\n item.attr(ARIA_SELECTED, item.is(\".\" + ACTIVESTATE));\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._updateClasses();\n that._dataSource();\n\n that._tabindex(that.tabGroup);\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._sortable();\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 if (that._showWatermarkOverlay) {\n that._showWatermarkOverlay(that.element[0]);\n }\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 tabTemplate: null,\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 applyMinHeight: true,\n scrollable: {\n distance: DEFAULTDISTANCE\n },\n sortable: false\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.tabGroup.on(\"keydown\" + NS, that._keyDownProxy);\n } else {\n that.tabGroup.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, true);\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.attr(ARIA_SELECTED, false);\n item.attr(ARIA_SELECTED, true);\n that.tabGroup.attr(\"aria-activedescendant\", item.attr(\"id\"));\n\n that._current(item, true);\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 // See https://github.com/telerik/kendo-ui-core/issues/6660\n that.element.css('min-height', oldMinHeight);\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\n if (that.options.applyMinHeight) {\n that.element.css('min-height', that.element.outerHeight());\n }\n\n visibleContents.removeClass(ACTIVESTATE);\n that.tabGroup.find(\".\" + TABONTOP).removeClass(TABONTOP);\n item.addClass(TABONTOP).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 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 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.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 });\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.attr(ARIA_SELECTED, false);\n that.tabGroup.removeAttr(\"aria-activedescendant\");\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 });\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 });\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.tabTemplate) {\n tab.model = view[idx];\n tab.template = options.tabTemplate;\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 that.tabGroup.attr(\"aria-activedescendant\", item.attr(\"id\"));\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 that = this;\n setTimeout(function() {\n var item = that.tabGroup.children().filter(\".\" + ACTIVESTATE);\n\n item = item[0] ? item : that._endItem(\"first\");\n if (item[0]) {\n that._current(item);\n }\n }, 100);\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.tabGroup\n .on(CLICK + NS, \".k-disabled .k-link\", false)\n .on(CLICK + NS, \" > \" + NAVIGATABLEITEMS, that._itemClick.bind(that));\n\n that.wrapper.on(\"focus\" + NS, function() { that.tabGroup.trigger(\"focus\"); });\n\n that.tabGroup\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.tabGroup.on(\"keydown\" + NS, that._keyDownProxy);\n }\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-tabstrip\")[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 that._current(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 let tabstripContent = $(TabStrip.renderContent({\n item: extend(value, { index: idx })\n }));\n\n kendo.applyStylesFromKendoAttributes(tabstripContent, [\"display\"]);\n return tabstripContent;\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, preventFocus) {\n var that = this,\n focused = that._focused;\n\n if (candidate === undefined$1) {\n return focused;\n }\n\n if (focused && candidate && focused[0] === candidate[0]) {\n focused = false;\n }\n\n if (focused) {\n focused.removeClass(FOCUSEDSTATE);\n }\n\n if (candidate && !preventFocus) {\n candidate.addClass(FOCUSEDSTATE);\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 tabGroup = that.tabGroup[0];\n\n if (tabGroup !== document.activeElement) {\n var msie = kendo.support.browser.msie;\n if (msie) {\n try {\n // does not scroll to the active element\n tabGroup.setActive();\n } catch (j) {\n tabGroup.focus();\n }\n } else {\n tabGroup.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\", \"caret-alt-left\"));\n that.tabWrapper.append(scrollButtonHtml(\"next\", \"caret-alt-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 _sortable: function() {\n var that = this,\n options = that.options,\n position = options.tabPosition,\n axis = position === 'left' || position === 'right' ? 'y' : 'x';\n\n if (!that.options.sortable) {\n return;\n }\n\n that.sortable = new kendo.ui.Sortable(that.tabGroup, {\n filter: \"li.k-tabstrip-item\",\n axis,\n container: that.tabWrapper,\n hint: el => `
\n
\n
    \n
  • ${el.html()}
  • \n
\n
\n
`,\n change: that._sortChange.bind(that),\n start: e => that.activateTab(e.item)\n });\n\n },\n\n _sortChange: function(e) {\n var that = this,\n reference = that.tabGroup.children().eq(e.newIndex);\n\n if (e.oldIndex < e.newIndex) {\n that.insertAfter(e.item, reference);\n } else {\n that.insertBefore(e.item, reference);\n }\n },\n\n _tabPosition: function() {\n var that = this,\n tabPosition = that.options.tabPosition;\n\n that.wrapper.addClass(\"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 activeItem = tabs.filter(\".\" + ACTIVESTATE).index();\n\n that.tabGroup.attr(\"aria-activedescendant\", tabs.eq(activeItem).attr(\"id\"));\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 templateOptions = extend(options, {\n image: item.imageUrl ? templates.image : empty,\n sprite: item.spriteCssClass ? templates.sprite : empty,\n textWrapper: templates.textWrapper\n }, rendering);\n\n if (item.template) {\n return templates.itemWrapper(templateOptions, kendo.template(item.template)(item.model));\n }\n\n return templates.item(templateOptions);\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 var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}