{"version":3,"sources":["kendo.tabstrip.js"],"names":["f","define","$","undefined","updateTabClasses","tabs","children","IMG","addClass","IMAGE","LINK","filter","DEFAULTSTATE","DISABLEDSTATE","attr","removeAttr","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","enabled","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","_sizeScrollWrap","kendoStop","kendoAnimate","data","is","resize","complete","scrollWrap","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","before","_scrollPrevButton","_updateContentElements","contentElements","id","i","len","isNaN","kineticScrollNeeded","eq","scrollContainer","touch","deactivateTab","_refreshHandler","unbind","_scrollNextButton","unwrap","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","push","_toggleHover","proxy","_keydown","_itemClick","_click","prevent","isAnchor","href","collapse","oldFocusedTab","_focused","charAt","ObservableArray","toJSON","isPlainObject","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","_setContentElementsDimensions","wrapperOffsetWidth","tabGroupScrollWidth","scrollPrevButton","scrollNextButton","mouseDown","mouseUp","isRtlScrollDirection","_scrollableAllowed","offsetWidth","scrollWidth","_nowScrollingTabs","marginRight","_scrollTabsByDelta","_toggleScrollButtons","itemPosition","currentScrollOffset","scrollLeft","itemWidth","itemOffset","position","left","first","tabGroupWidth","tabGroupPadding","ceil","parseFloat","mozilla","webkit","delta","scrLeft","jQuery","fx","contentDivs","activeDiv","marginStyleProperty","margin","minHeight","height","h","floor","appendTo","toggleClass","ul","toggle","activeItem","activeTab","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-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 = 'k-item', index = item.index;\n if (item.enabled === false) {\n result += ' k-state-disabled';\n } else {\n result += ' k-state-default';\n }\n if (index === 0) {\n result += ' k-first';\n }\n if (index == group.length - 1) {\n result += ' k-last';\n }\n return result;\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').removeAttr('disabled');\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', '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 that._sizeScrollWrap(visibleContents);\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 that._sizeScrollWrap(contentElement);\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 that.scrollWrap.css('height', '').css('height');\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.tabGroup.before(contents);\n } else if (that._scrollableModeActive) {\n that._scrollPrevButton.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, scrollWrap = that.scrollWrap;\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.wrapper.children('.k-tabstrip-items').off(NS);\n if (that._scrollableModeActive) {\n that._scrollPrevButton.off().remove();\n that._scrollNextButton.off().remove();\n }\n kendo.destroy(that.wrapper);\n scrollWrap.children('.k-tabstrip').unwrap();\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.wrapper.children('.k-tabstrip-items').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) || $.isArray(tab)) {\n tab = $.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.wrapper.find('.k-tabstrip-items > .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._setContentElementsDimensions();\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.wrapper.append(scrollButtonHtml('prev', 'k-i-arrow-60-left') + scrollButtonHtml('next', 'k-i-arrow-60-right'));\n scrollPrevButton = that._scrollPrevButton = that.wrapper.children('.k-tabstrip-prev');\n scrollNextButton = that._scrollNextButton = that.wrapper.children('.k-tabstrip-next');\n that.tabGroup.css({\n marginLeft: outerWidth(scrollPrevButton) + 9,\n marginRight: outerWidth(scrollNextButton) + 12\n });\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 that.tabGroup.css({\n marginLeft: '',\n marginRight: ''\n });\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, tabGroupPadding = Math.ceil(parseFloat(tabGroup.css('padding-left'))), 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) - tabGroupPadding;\n } else if (itemOffset + itemWidth > tabGroupWidth) {\n itemPosition = currentScrollOffset + itemOffset - itemWidth + tabGroupPadding * 2;\n }\n } else {\n if (currentScrollOffset + tabGroupWidth < itemOffset + itemWidth) {\n itemPosition = itemOffset + itemWidth - tabGroupWidth + tabGroupPadding * 2;\n } else if (currentScrollOffset > itemOffset) {\n itemPosition = itemOffset - tabGroupPadding;\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 _setContentElementsDimensions: function () {\n var that = this, tabPosition = that.options.tabPosition;\n if (tabPosition == 'left' || tabPosition == 'right') {\n var contentDivs = that.wrapper.children('.k-content'), activeDiv = contentDivs.filter(':visible'), marginStyleProperty = 'margin-' + tabPosition, tabGroup = that.tabGroup, margin = outerWidth(tabGroup);\n var minHeight = Math.ceil(tabGroup.height()) - parseInt(activeDiv.css('padding-top'), 10) - parseInt(activeDiv.css('padding-bottom'), 10) - parseInt(activeDiv.css('border-top-width'), 10) - parseInt(activeDiv.css('border-bottom-width'), 10);\n setTimeout(function () {\n contentDivs.css(marginStyleProperty, margin).css('min-height', minHeight);\n });\n }\n },\n _sizeScrollWrap: function (element) {\n if (element.is(':visible')) {\n var tabPosition = this.options.tabPosition;\n var h = Math.floor(outerHeight(element, true)) + (tabPosition === 'left' || tabPosition === 'right' ? 2 : this.tabsHeight);\n this.scrollWrap.css('height', h).css('height');\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.tabGroup.appendTo(that.wrapper);\n }\n if (tabPosition === 'left' || tabPosition === 'right') {\n that.tabGroup.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.toggle(scrollLeft !== 0);\n that._scrollNextButton.toggle(scrollLeft < ul[0].scrollWidth - ul[0].offsetWidth - 1);\n },\n _updateClasses: function () {\n var that = this, tabs, activeItem, activeTab;\n that.wrapper.addClass('k-widget k-header k-tabstrip');\n that.tabGroup = that.wrapper.children('ul').addClass('k-tabstrip-items k-reset');\n if (!that.tabGroup[0]) {\n that.tabGroup = $('
      ').appendTo(that.wrapper);\n }\n tabs = that.tabGroup.find('li').addClass('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');\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'), _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');\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 that.scrollWrap = that.wrapper.parent('.k-tabstrip-wrapper');\n if (!that.scrollWrap[0]) {\n that.scrollWrap = that.wrapper.wrapAll('
      ').parent();\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}));"]}