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