{"version":3,"sources":["kendo.toolbar.js"],"names":["f","define","$","undefined","toggleActive","e","target","is","toggleClass","STATE_ACTIVE","type","actionSheetWrap","element","hasClass","closest","addClass","wrap","parent","preventClick","length","preventDefault","findFocusableSibling","dir","getSibling","fn","next","prev","getter","first","last","candidate","call","find","components","Item","Button","ToolBarButton","OverflowButton","ButtonGroup","ToolBarButtonGroup","OverflowButtonGroup","ToolBarSplitButton","OverflowSplitButton","ToolBarSeparator","OverflowSeparator","TemplateItem","OverflowTemplateItem","Group","ToolBar","kendo","window","Class","Widget","ui","proxy","isFunction","keys","outerWidth","_outerWidth","TOOLBAR","BUTTON","OVERFLOW_BUTTON","TOGGLE_BUTTON","BUTTON_GROUP","SPLIT_BUTTON","SEPARATOR","POPUP","RESIZABLE_TOOLBAR","STATE_DISABLED","STATE_HIDDEN","GROUP_START","GROUP_END","PRIMARY","ICON","ICON_PREFIX","BUTTON_ICON","BUTTON_ICON_TEXT","LIST_CONTAINER","SPLIT_BUTTON_ARROW","OVERFLOW_ANCHOR","OVERFLOW_CONTAINER","FIRST_TOOLBAR_VISIBLE","LAST_TOOLBAR_VISIBLE","CLICK","TOGGLE","OPEN","CLOSE","OVERFLOW_OPEN","OVERFLOW_CLOSE","OVERFLOW_NEVER","OVERFLOW_AUTO","OVERFLOW_ALWAYS","OVERFLOW_HIDDEN","OPTION_LIST_SUFFIX","KENDO_UID_ATTR","attr","toolbar","overflowAnchor","overflowContainer","registerComponent","name","overflow","extend","addOverflowAttr","this","options","addUidAttr","uid","addIdAttr","id","addOverflowIdAttr","attributes","show","removeClass","hidden","hide","overflowHidden","remove","enable","isEnabled","twin","splitContainerId","data","resizable","popup","init","useButtonTag","primary","togglable","toggle","selected","url","mobile","group","addToGroup","click","clickHandler","toggleHandler","state","propagate","select","getParentGroup","isChild","_addGraphics","isEmpty","span","img","icon","spriteCssClass","imageUrl","contents","filter","each","idx","el","nodeType","trim","nodeValue","children","prependTo","align","showText","text","html","hasIcon","showIcon","button","_wrap","createButtons","buttonConstructor","item","i","items","buttons","guid","appendTo","refresh","buttonGroup","mainButton","arrowButton","popupElement","removeAttr","createMenuButtons","createPopup","_navigatable","main","splitButton","kendoPopup","that","on","li","keyCode","ESC","TAB","altKey","UP","focus","DOWN","SPACEBAR","ENTER","userEvents","trigger","HOME","END","menuButtons","rootUid","anchor","isRtl","_isRtl","copyAnchorStyles","animation","open","isDefaultPrevented","adjustPopupWidth","sender","activate","close","width","computedWidth","css","fontFamily","min-width","off","destroy","visible","separator","template","jQuery","add","index","inArray","splice","tmp","wrapper","support","_groups","isMobile","effects","_renderOverflow","overflowUserEvents","UserEvents","threshold","allowSelection","tap","_toggleOverflow","_resizeHandler","onResize","resize","_shrink","innerWidth","document","_buttonClick","press","release","_toggleOverflowAnchor","notify","events","groupName","unbindResize","tool","overflowTool","component","itemClasses","overflowTemplate","container","angular","elements","get","_getItem","toolbarItem","overflowItem","isResizable","getSelectedFromGroup","checked","horizontalDirection","append","Popup","origin","position","parseFloat","innerHeight","isComplexTool","hasVisibleChildren","visibility","splitContainer","handler","eventData","urlTarget","isSplitButtonArrow","_toggle","parents","ev","_keydown","lastHasFocus","firstHasFocus","isFirstTool","prevFocusable","isOverflowAnchor","direction","parentsUntil","shiftKey","not","_getPrevFocusable","_preventNextFocus","activeElement","eq","RIGHT","_getNextElement","LEFT","itemIndex","parentElement","startIndex","directionNumber","searchIndex","focusableItem","elementToFocus","prevElement","prevElements","prevAll","_resize","containerWidth","_stretch","_markVisibles","_childrenWidth","childrenWidth","Math","ceil","commandElement","visibleCommands","_hideItem","hiddenCommands","_showItem","overflowItems","toolbarItems","visibleOverflowItems","visibleToolbarItems","plugin","amd","a1","a2","a3"],"mappings":"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","file":"kendo.toolbar.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.toolbar', [\n 'kendo.core',\n 'kendo.userevents',\n 'kendo.popup'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'toolbar',\n name: 'ToolBar',\n category: 'web',\n description: 'The ToolBar widget displays one or more command buttons divided into groups.',\n depends: ['core']\n };\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, Widget = kendo.ui.Widget, proxy = $.proxy, isFunction = kendo.isFunction, keys = kendo.keys, outerWidth = kendo._outerWidth, TOOLBAR = 'k-toolbar', BUTTON = 'k-button', OVERFLOW_BUTTON = 'k-overflow-button', TOGGLE_BUTTON = 'k-toggle-button', BUTTON_GROUP = 'k-button-group', SPLIT_BUTTON = 'k-split-button', SEPARATOR = 'k-separator', POPUP = 'k-popup', RESIZABLE_TOOLBAR = 'k-toolbar-resizable', STATE_ACTIVE = 'k-state-active', STATE_DISABLED = 'k-state-disabled', STATE_HIDDEN = 'k-state-hidden', GROUP_START = 'k-group-start', GROUP_END = 'k-group-end', PRIMARY = 'k-primary', ICON = 'k-icon', ICON_PREFIX = 'k-i-', BUTTON_ICON = 'k-button-icon', BUTTON_ICON_TEXT = 'k-button-icontext', LIST_CONTAINER = 'k-list-container k-split-container', SPLIT_BUTTON_ARROW = 'k-split-button-arrow', OVERFLOW_ANCHOR = 'k-overflow-anchor', OVERFLOW_CONTAINER = 'k-overflow-container', FIRST_TOOLBAR_VISIBLE = 'k-toolbar-first-visible', LAST_TOOLBAR_VISIBLE = 'k-toolbar-last-visible', CLICK = 'click', TOGGLE = 'toggle', OPEN = 'open', CLOSE = 'close', OVERFLOW_OPEN = 'overflowOpen', OVERFLOW_CLOSE = 'overflowClose', OVERFLOW_NEVER = 'never', OVERFLOW_AUTO = 'auto', OVERFLOW_ALWAYS = 'always', OVERFLOW_HIDDEN = 'k-overflow-hidden', OPTION_LIST_SUFFIX = '_optionlist', KENDO_UID_ATTR = kendo.attr('uid');\n kendo.toolbar = {};\n var components = {\n overflowAnchor: '
',\n overflowContainer: ''\n };\n kendo.toolbar.registerComponent = function (name, toolbar, overflow) {\n components[name] = {\n toolbar: toolbar,\n overflow: overflow\n };\n };\n var Item = kendo.Class.extend({\n addOverflowAttr: function () {\n this.element.attr(kendo.attr('overflow'), this.options.overflow || OVERFLOW_AUTO);\n },\n addUidAttr: function () {\n this.element.attr(KENDO_UID_ATTR, this.options.uid);\n },\n addIdAttr: function () {\n if (this.options.id) {\n this.element.attr('id', this.options.id);\n }\n },\n addOverflowIdAttr: function () {\n if (this.options.id) {\n this.element.attr('id', this.options.id + '_overflow');\n }\n },\n attributes: function () {\n if (this.options.attributes) {\n this.element.attr(this.options.attributes);\n }\n },\n show: function () {\n this.element.removeClass(STATE_HIDDEN).show();\n this.options.hidden = false;\n },\n hide: function () {\n this.element.addClass(STATE_HIDDEN).hide();\n if (this.overflow && this.overflowHidden) {\n this.overflowHidden();\n }\n this.options.hidden = true;\n },\n remove: function () {\n this.element.remove();\n },\n enable: function (isEnabled) {\n if (isEnabled === undefined) {\n isEnabled = true;\n }\n this.element.toggleClass(STATE_DISABLED, !isEnabled);\n this.options.enable = isEnabled;\n },\n twin: function () {\n var uid = this.element.attr(KENDO_UID_ATTR);\n if (this.overflow && this.options.splitContainerId) {\n return $('#' + this.options.splitContainerId).find('[' + KENDO_UID_ATTR + '=\\'' + uid + '\\']').data(this.options.type);\n } else if (this.overflow) {\n return this.toolbar.element.find('[' + KENDO_UID_ATTR + '=\\'' + uid + '\\']').data(this.options.type);\n } else if (this.toolbar.options.resizable) {\n return this.toolbar.popup.element.find('[' + KENDO_UID_ATTR + '=\\'' + uid + '\\']').data(this.options.type);\n }\n }\n });\n kendo.toolbar.Item = Item;\n var Button = Item.extend({\n init: function (options, toolbar) {\n var element = options.useButtonTag ? $('') : $('');\n this.element = element;\n this.options = options;\n this.toolbar = toolbar;\n this.attributes();\n if (options.primary) {\n element.addClass(PRIMARY);\n }\n if (options.togglable) {\n element.addClass(TOGGLE_BUTTON);\n this.toggle(options.selected);\n }\n if (options.url !== undefined && !options.useButtonTag) {\n element.attr('href', options.url);\n if (options.mobile) {\n element.attr(kendo.attr('role'), 'button');\n }\n }\n if (options.group) {\n element.attr(kendo.attr('group'), options.group);\n this.group = this.toolbar.addToGroup(this, options.group);\n }\n if (!options.togglable && options.click && isFunction(options.click)) {\n this.clickHandler = options.click;\n }\n if (options.togglable && options.toggle && isFunction(options.toggle)) {\n this.toggleHandler = options.toggle;\n }\n },\n toggle: function (state, propagate) {\n state = !!state;\n if (this.group && state) {\n this.group.select(this);\n } else if (!this.group) {\n this.select(state);\n }\n if (propagate && this.twin()) {\n this.twin().toggle(state);\n }\n },\n getParentGroup: function () {\n if (this.options.isChild) {\n return this.element.closest('.' + BUTTON_GROUP).data('buttonGroup');\n }\n },\n _addGraphics: function () {\n var element = this.element, icon = this.options.icon, spriteCssClass = this.options.spriteCssClass, imageUrl = this.options.imageUrl, isEmpty, span, img;\n if (spriteCssClass || imageUrl || icon) {\n isEmpty = true;\n element.contents().filter(function () {\n return !$(this).hasClass('k-sprite') && !$(this).hasClass(ICON) && !$(this).hasClass('k-image');\n }).each(function (idx, el) {\n if (el.nodeType == 1 || el.nodeType == 3 && $.trim(el.nodeValue).length > 0) {\n isEmpty = false;\n }\n });\n if (isEmpty) {\n element.addClass(BUTTON_ICON);\n } else {\n element.addClass(BUTTON_ICON_TEXT);\n }\n }\n if (icon) {\n span = element.children('span.' + ICON).first();\n if (!span[0]) {\n span = $('').prependTo(element);\n }\n span.addClass(ICON_PREFIX + icon);\n } else if (spriteCssClass) {\n span = element.children('span.k-sprite').first();\n if (!span[0]) {\n span = $('').prependTo(element);\n }\n span.addClass(spriteCssClass);\n } else if (imageUrl) {\n img = element.children('img.k-image').first();\n if (!img[0]) {\n img = $('\"icon\"').prependTo(element);\n }\n img.attr('src', imageUrl);\n }\n }\n });\n kendo.toolbar.Button = Button;\n var ToolBarButton = Button.extend({\n init: function (options, toolbar) {\n Button.fn.init.call(this, options, toolbar);\n var element = this.element;\n element.addClass(BUTTON);\n this.addIdAttr();\n if (options.align) {\n element.addClass('k-align-' + options.align);\n }\n if (options.showText != 'overflow' && options.text) {\n if (options.mobile) {\n element.html('' + options.text + '');\n } else {\n element.html(options.text);\n }\n }\n options.hasIcon = options.showIcon != 'overflow' && (options.icon || options.spriteCssClass || options.imageUrl);\n if (options.hasIcon) {\n this._addGraphics();\n }\n this.addUidAttr();\n this.addOverflowAttr();\n this.enable(options.enable);\n if (options.hidden) {\n this.hide();\n }\n this.element.data({\n type: 'button',\n button: this\n });\n },\n select: function (selected) {\n if (selected === undefined) {\n selected = false;\n }\n this.element.toggleClass(STATE_ACTIVE, selected);\n this.options.selected = selected;\n }\n });\n kendo.toolbar.ToolBarButton = ToolBarButton;\n var OverflowButton = Button.extend({\n init: function (options, toolbar) {\n this.overflow = true;\n Button.fn.init.call(this, $.extend({}, options), toolbar);\n var element = this.element;\n if (options.showText != 'toolbar' && options.text) {\n if (options.mobile) {\n element.html('' + options.text + '');\n } else {\n element.html('' + options.text + '');\n }\n }\n options.hasIcon = options.showIcon != 'toolbar' && (options.icon || options.spriteCssClass || options.imageUrl);\n if (options.hasIcon) {\n this._addGraphics();\n }\n if (!options.isChild) {\n this._wrap();\n }\n this.addOverflowIdAttr();\n this.attributes();\n this.addUidAttr();\n this.addOverflowAttr();\n this.enable(options.enable);\n element.addClass(OVERFLOW_BUTTON + ' ' + BUTTON);\n if (options.hidden) {\n this.hide();\n }\n if (options.togglable) {\n this.toggle(options.selected);\n }\n this.element.data({\n type: 'button',\n button: this\n });\n },\n _wrap: function () {\n this.element = this.element.wrap('
  • ').parent();\n },\n overflowHidden: function () {\n this.element.addClass(OVERFLOW_HIDDEN);\n },\n select: function (selected) {\n if (selected === undefined) {\n selected = false;\n }\n if (this.options.isChild) {\n this.element.toggleClass(STATE_ACTIVE, selected);\n } else {\n this.element.find('.k-button').toggleClass(STATE_ACTIVE, selected);\n }\n this.options.selected = selected;\n }\n });\n kendo.toolbar.OverflowButton = OverflowButton;\n kendo.toolbar.registerComponent('button', ToolBarButton, OverflowButton);\n var ButtonGroup = Item.extend({\n createButtons: function (buttonConstructor) {\n var options = this.options;\n var items = options.buttons || [];\n var item;\n for (var i = 0; i < items.length; i++) {\n if (!items[i].uid) {\n items[i].uid = kendo.guid();\n }\n item = new buttonConstructor($.extend({\n mobile: options.mobile,\n isChild: true,\n type: 'button'\n }, items[i]), this.toolbar);\n item.element.appendTo(this.element);\n }\n },\n refresh: function () {\n this.element.children().filter(':not(\\'.' + STATE_HIDDEN + '\\'):first').addClass(GROUP_START);\n this.element.children().filter(':not(\\'.' + STATE_HIDDEN + '\\'):last').addClass(GROUP_END);\n }\n });\n kendo.toolbar.ButtonGroup = ButtonGroup;\n var ToolBarButtonGroup = ButtonGroup.extend({\n init: function (options, toolbar) {\n var element = this.element = $('
    ');\n this.options = options;\n this.toolbar = toolbar;\n this.addIdAttr();\n if (options.align) {\n element.addClass('k-align-' + options.align);\n }\n this.createButtons(ToolBarButton);\n this.attributes();\n this.addUidAttr();\n this.addOverflowAttr();\n this.refresh();\n element.addClass(BUTTON_GROUP);\n this.element.data({\n type: 'buttonGroup',\n buttonGroup: this\n });\n }\n });\n kendo.toolbar.ToolBarButtonGroup = ToolBarButtonGroup;\n var OverflowButtonGroup = ButtonGroup.extend({\n init: function (options, toolbar) {\n var element = this.element = $('
  • ');\n this.options = options;\n this.toolbar = toolbar;\n this.overflow = true;\n this.addOverflowIdAttr();\n this.createButtons(OverflowButton);\n this.attributes();\n this.addUidAttr();\n this.addOverflowAttr();\n this.refresh();\n element.addClass((options.mobile ? '' : BUTTON_GROUP) + ' k-overflow-group');\n this.element.data({\n type: 'buttonGroup',\n buttonGroup: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(OVERFLOW_HIDDEN);\n }\n });\n kendo.toolbar.OverflowButtonGroup = OverflowButtonGroup;\n kendo.toolbar.registerComponent('buttonGroup', ToolBarButtonGroup, OverflowButtonGroup);\n var ToolBarSplitButton = Item.extend({\n init: function (options, toolbar) {\n var element = this.element = $('
    ');\n this.options = options;\n this.toolbar = toolbar;\n this.mainButton = new ToolBarButton($.extend({}, options, { hidden: false }), toolbar);\n this.arrowButton = $('');\n this.popupElement = $('');\n this.mainButton.element.removeAttr('href tabindex').appendTo(element);\n this.arrowButton.appendTo(element);\n this.popupElement.appendTo(element);\n if (options.align) {\n element.addClass('k-align-' + options.align);\n }\n if (!options.id) {\n options.id = options.uid;\n }\n element.attr('id', options.id + '_wrapper');\n this.addOverflowAttr();\n this.addUidAttr();\n this.createMenuButtons();\n this.createPopup();\n this._navigatable();\n this.mainButton.main = true;\n this.enable(options.enable);\n if (options.hidden) {\n this.hide();\n }\n element.data({\n type: 'splitButton',\n splitButton: this,\n kendoPopup: this.popup\n });\n },\n _navigatable: function () {\n var that = this;\n that.popupElement.on('keydown', '.' + BUTTON, function (e) {\n var li = $(e.target).parent();\n e.preventDefault();\n if (e.keyCode === keys.ESC || e.keyCode === keys.TAB || e.altKey && e.keyCode === keys.UP) {\n that.toggle();\n that.focus();\n } else if (e.keyCode === keys.DOWN) {\n findFocusableSibling(li, 'next').focus();\n } else if (e.keyCode === keys.UP) {\n findFocusableSibling(li, 'prev').focus();\n } else if (e.keyCode === keys.SPACEBAR || e.keyCode === keys.ENTER) {\n that.toolbar.userEvents.trigger('tap', { target: $(e.target) });\n } else if (e.keyCode === keys.HOME) {\n li.parent().find(':kendoFocusable').first().focus();\n } else if (e.keyCode === keys.END) {\n li.parent().find(':kendoFocusable').last().focus();\n }\n });\n },\n createMenuButtons: function () {\n var options = this.options;\n var items = options.menuButtons;\n var item;\n for (var i = 0; i < items.length; i++) {\n item = new ToolBarButton($.extend({\n mobile: options.mobile,\n type: 'button',\n click: options.click\n }, items[i]), this.toolbar);\n item.element.wrap('
  • ').parent().appendTo(this.popupElement);\n }\n },\n createPopup: function () {\n var that = this;\n var options = this.options;\n var element = this.element;\n this.popupElement.attr('id', options.id + OPTION_LIST_SUFFIX).attr(KENDO_UID_ATTR, options.rootUid);\n if (options.mobile) {\n this.popupElement = actionSheetWrap(this.popupElement);\n }\n this.popup = this.popupElement.kendoPopup({\n appendTo: options.mobile ? $(options.mobile).children('.km-pane') : null,\n anchor: element,\n isRtl: this.toolbar._isRtl,\n copyAnchorStyles: false,\n animation: options.animation,\n open: function (e) {\n var isDefaultPrevented = that.toolbar.trigger(OPEN, { target: element });\n if (isDefaultPrevented) {\n e.preventDefault();\n return;\n }\n that.adjustPopupWidth(e.sender);\n },\n activate: function () {\n this.element.find(':kendoFocusable').first().focus();\n },\n close: function (e) {\n var isDefaultPrevented = that.toolbar.trigger(CLOSE, { target: element });\n if (isDefaultPrevented) {\n e.preventDefault();\n }\n element.focus();\n }\n }).data('kendoPopup');\n this.popup.element.on(CLICK, 'a.k-button', preventClick);\n },\n adjustPopupWidth: function (popup) {\n var anchor = popup.options.anchor, computedWidth = outerWidth(anchor), width;\n kendo.wrap(popup.element).addClass('k-split-wrapper');\n if (popup.element.css('box-sizing') !== 'border-box') {\n width = computedWidth - (outerWidth(popup.element) - popup.element.width());\n } else {\n width = computedWidth;\n }\n popup.element.css({\n fontFamily: anchor.css('font-family'),\n 'min-width': width\n });\n },\n remove: function () {\n this.popup.element.off(CLICK, 'a.k-button');\n this.popup.destroy();\n this.element.remove();\n },\n toggle: function () {\n if (this.options.enable || this.popup.visible()) {\n this.popup.toggle();\n }\n },\n enable: function (isEnabled) {\n if (isEnabled === undefined) {\n isEnabled = true;\n }\n this.mainButton.enable(isEnabled);\n this.element.toggleClass(STATE_DISABLED, !isEnabled);\n this.options.enable = isEnabled;\n },\n focus: function () {\n this.element.focus();\n },\n hide: function () {\n if (this.popup) {\n this.popup.close();\n }\n this.element.addClass(STATE_HIDDEN).hide();\n this.options.hidden = true;\n },\n show: function () {\n this.element.removeClass(STATE_HIDDEN).hide();\n this.options.hidden = false;\n }\n });\n kendo.toolbar.ToolBarSplitButton = ToolBarSplitButton;\n var OverflowSplitButton = Item.extend({\n init: function (options, toolbar) {\n var element = this.element = $('
  • '), items = options.menuButtons, item, splitContainerId;\n this.options = options;\n this.toolbar = toolbar;\n this.overflow = true;\n splitContainerId = (options.id || options.uid) + OPTION_LIST_SUFFIX;\n this.mainButton = new OverflowButton($.extend({}, options));\n this.mainButton.element.appendTo(element);\n for (var i = 0; i < items.length; i++) {\n item = new OverflowButton($.extend({\n mobile: options.mobile,\n type: 'button',\n splitContainerId: splitContainerId\n }, items[i]), this.toolbar);\n item.element.appendTo(element);\n }\n this.addUidAttr();\n this.addOverflowAttr();\n this.mainButton.main = true;\n element.data({\n type: 'splitButton',\n splitButton: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(OVERFLOW_HIDDEN);\n }\n });\n kendo.toolbar.OverflowSplitButton = OverflowSplitButton;\n kendo.toolbar.registerComponent('splitButton', ToolBarSplitButton, OverflowSplitButton);\n var ToolBarSeparator = Item.extend({\n init: function (options, toolbar) {\n var element = this.element = $('
     
    ');\n this.element = element;\n this.options = options;\n this.toolbar = toolbar;\n this.attributes();\n this.addIdAttr();\n this.addUidAttr();\n this.addOverflowAttr();\n element.addClass(SEPARATOR);\n element.data({\n type: 'separator',\n separator: this\n });\n }\n });\n var OverflowSeparator = Item.extend({\n init: function (options, toolbar) {\n var element = this.element = $('
  •  
  • ');\n this.element = element;\n this.options = options;\n this.toolbar = toolbar;\n this.overflow = true;\n this.attributes();\n this.addUidAttr();\n this.addOverflowIdAttr();\n element.addClass(SEPARATOR);\n element.data({\n type: 'separator',\n separator: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(OVERFLOW_HIDDEN);\n }\n });\n kendo.toolbar.registerComponent('separator', ToolBarSeparator, OverflowSeparator);\n var TemplateItem = Item.extend({\n init: function (template, options, toolbar) {\n var element = isFunction(template) ? template(options) : template;\n if (!(element instanceof jQuery)) {\n element = $('
    ').html(element);\n } else {\n element = element.wrap('
    ').parent();\n }\n this.element = element;\n this.options = options;\n this.options.type = 'template';\n this.toolbar = toolbar;\n this.attributes();\n this.addUidAttr();\n this.addIdAttr();\n this.addOverflowAttr();\n element.data({\n type: 'template',\n template: this\n });\n }\n });\n kendo.toolbar.TemplateItem = TemplateItem;\n var OverflowTemplateItem = Item.extend({\n init: function (template, options, toolbar) {\n var element = isFunction(template) ? $(template(options)) : $(template);\n if (!(element instanceof jQuery)) {\n element = $('
  • ').html(element);\n } else {\n element = element.wrap('
  • ').parent();\n }\n this.element = element;\n this.options = options;\n this.options.type = 'template';\n this.toolbar = toolbar;\n this.overflow = true;\n this.attributes();\n this.addUidAttr();\n this.addOverflowIdAttr();\n this.addOverflowAttr();\n element.data({\n type: 'template',\n template: this\n });\n },\n overflowHidden: function () {\n this.element.addClass(OVERFLOW_HIDDEN);\n }\n });\n kendo.toolbar.OverflowTemplateItem = OverflowTemplateItem;\n function toggleActive(e) {\n if (!e.target.is('.k-toggle-button')) {\n e.target.toggleClass(STATE_ACTIVE, e.type == 'press');\n }\n }\n function actionSheetWrap(element) {\n element = $(element);\n return element.hasClass('km-actionsheet') ? element.closest('.km-popup-wrapper') : element.addClass('km-widget km-actionsheet').wrap('
    ').parent().wrap('
    ').parent();\n }\n function preventClick(e) {\n if ($(e.target).closest('a.k-button').length) {\n e.preventDefault();\n }\n }\n function findFocusableSibling(element, dir) {\n var getSibling = dir === 'next' ? $.fn.next : $.fn.prev;\n var getter = dir === 'next' ? $.fn.first : $.fn.last;\n var candidate = getSibling.call(element);\n if (candidate.is(':kendoFocusable') || !candidate.length) {\n return candidate;\n }\n if (candidate.find(':kendoFocusable').length) {\n return getter.call(candidate.find(':kendoFocusable'));\n }\n return findFocusableSibling(candidate, dir);\n }\n var Group = Class.extend({\n init: function (name) {\n this.name = name;\n this.buttons = [];\n },\n add: function (button) {\n this.buttons[this.buttons.length] = button;\n },\n remove: function (button) {\n var index = $.inArray(button, this.buttons);\n this.buttons.splice(index, 1);\n },\n select: function (button) {\n var tmp;\n for (var i = 0; i < this.buttons.length; i++) {\n tmp = this.buttons[i];\n tmp.select(false);\n }\n button.select(true);\n if (button.twin()) {\n button.twin().select(true);\n }\n }\n });\n var ToolBar = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n options = that.options;\n element = that.wrapper = that.element;\n element.addClass(TOOLBAR + ' k-widget');\n this.uid = kendo.guid();\n this._isRtl = kendo.support.isRtl(element);\n this._groups = {};\n element.attr(KENDO_UID_ATTR, this.uid);\n that.isMobile = typeof options.mobile === 'boolean' ? options.mobile : that.element.closest('.km-root')[0];\n that.animation = that.isMobile ? { open: { effects: 'fade' } } : {};\n if (that.isMobile) {\n element.addClass('km-widget');\n ICON = 'km-icon';\n ICON_PREFIX = 'km-';\n BUTTON = 'km-button';\n BUTTON_GROUP = 'km-buttongroup km-widget';\n STATE_ACTIVE = 'km-state-active';\n STATE_DISABLED = 'km-state-disabled';\n }\n if (options.resizable) {\n that._renderOverflow();\n element.addClass(RESIZABLE_TOOLBAR);\n that.overflowUserEvents = new kendo.UserEvents(that.element, {\n threshold: 5,\n allowSelection: true,\n filter: '.' + OVERFLOW_ANCHOR,\n tap: proxy(that._toggleOverflow, that)\n });\n that._resizeHandler = kendo.onResize(function () {\n that.resize();\n });\n } else {\n that.popup = { element: $([]) };\n }\n if (options.items && options.items.length) {\n for (var i = 0; i < options.items.length; i++) {\n that.add(options.items[i]);\n }\n if (options.resizable) {\n that._shrink(that.element.innerWidth());\n }\n }\n that.userEvents = new kendo.UserEvents(document, {\n threshold: 5,\n allowSelection: true,\n filter: '[' + KENDO_UID_ATTR + '=' + this.uid + '] a.' + BUTTON + ', ' + '[' + KENDO_UID_ATTR + '=' + this.uid + '] .' + OVERFLOW_BUTTON,\n tap: proxy(that._buttonClick, that),\n press: toggleActive,\n release: toggleActive\n });\n that.element.on(CLICK, 'a.k-button', preventClick);\n that._navigatable();\n if (options.resizable) {\n that.popup.element.on(CLICK, +'a.k-button', preventClick);\n }\n if (options.resizable) {\n this._toggleOverflowAnchor();\n }\n kendo.notify(that);\n },\n events: [\n CLICK,\n TOGGLE,\n OPEN,\n CLOSE,\n OVERFLOW_OPEN,\n OVERFLOW_CLOSE\n ],\n options: {\n name: 'ToolBar',\n items: [],\n resizable: true,\n mobile: null\n },\n addToGroup: function (button, groupName) {\n var group;\n if (!this._groups[groupName]) {\n group = this._groups[groupName] = new Group();\n } else {\n group = this._groups[groupName];\n }\n group.add(button);\n return group;\n },\n destroy: function () {\n var that = this;\n that.element.find('.' + SPLIT_BUTTON).each(function (idx, element) {\n $(element).data('kendoPopup').destroy();\n });\n that.element.off(CLICK, 'a.k-button');\n that.userEvents.destroy();\n if (that.options.resizable) {\n kendo.unbindResize(that._resizeHandler);\n that.overflowUserEvents.destroy();\n that.popup.element.off(CLICK, 'a.k-button');\n that.popup.destroy();\n }\n Widget.fn.destroy.call(that);\n },\n add: function (options) {\n var component = components[options.type], template = options.template, tool, that = this, itemClasses = that.isMobile ? '' : 'k-item k-state-default', overflowTemplate = options.overflowTemplate, overflowTool;\n $.extend(options, {\n uid: kendo.guid(),\n animation: that.animation,\n mobile: that.isMobile,\n rootUid: that.uid\n });\n if (options.menuButtons) {\n for (var i = 0; i < options.menuButtons.length; i++) {\n $.extend(options.menuButtons[i], { uid: kendo.guid() });\n }\n }\n if (template && !overflowTemplate) {\n options.overflow = OVERFLOW_NEVER;\n } else if (!options.overflow) {\n options.overflow = OVERFLOW_AUTO;\n }\n if (options.overflow !== OVERFLOW_NEVER && that.options.resizable) {\n if (overflowTemplate) {\n overflowTool = new OverflowTemplateItem(overflowTemplate, options, that);\n } else if (component) {\n overflowTool = new component.overflow(options, that);\n overflowTool.element.addClass(itemClasses);\n }\n if (overflowTool) {\n if (options.overflow === OVERFLOW_AUTO) {\n overflowTool.overflowHidden();\n }\n overflowTool.element.appendTo(that.popup.container);\n that.angular('compile', function () {\n return { elements: overflowTool.element.get() };\n });\n }\n }\n if (options.overflow !== OVERFLOW_ALWAYS) {\n if (template) {\n tool = new TemplateItem(template, options, that);\n } else if (component) {\n tool = new component.toolbar(options, that);\n }\n if (tool) {\n tool.element.appendTo(that.element);\n that.angular('compile', function () {\n return { elements: tool.element.get() };\n });\n }\n }\n },\n _getItem: function (candidate) {\n var element, toolbarItem, overflowItem, isResizable = this.options.resizable, type;\n element = this.element.find(candidate);\n if (!element.length) {\n element = $('.k-split-container[data-uid=' + this.uid + ']').find(candidate);\n }\n type = element.length ? element.data('type') : '';\n toolbarItem = element.data(type);\n if (toolbarItem) {\n if (toolbarItem.main) {\n element = element.parent('.' + SPLIT_BUTTON);\n type = 'splitButton';\n toolbarItem = element.data(type);\n }\n if (isResizable) {\n overflowItem = toolbarItem.twin();\n }\n } else if (isResizable) {\n element = this.popup.element.find(candidate);\n type = element.length ? element.data('type') : '';\n overflowItem = element.data(type);\n if (overflowItem && overflowItem.main) {\n element = element.parent('.' + SPLIT_BUTTON);\n type = 'splitButton';\n overflowItem = element.data(type);\n }\n }\n return {\n type: type,\n toolbar: toolbarItem,\n overflow: overflowItem\n };\n },\n remove: function (candidate) {\n var item = this._getItem(candidate);\n if (item.toolbar) {\n item.toolbar.remove();\n }\n if (item.overflow) {\n item.overflow.remove();\n }\n this.resize(true);\n },\n hide: function (candidate) {\n var item = this._getItem(candidate);\n if (item.toolbar) {\n if (item.toolbar.options.type === 'button' && item.toolbar.options.isChild) {\n item.toolbar.hide();\n item.toolbar.getParentGroup().refresh();\n } else if (!item.toolbar.options.hidden) {\n item.toolbar.hide();\n }\n }\n if (item.overflow) {\n if (item.overflow.options.type === 'button' && item.overflow.options.isChild) {\n item.overflow.hide();\n item.overflow.getParentGroup().refresh();\n } else if (!item.overflow.options.hidden) {\n item.overflow.hide();\n }\n }\n this.resize(true);\n },\n show: function (candidate) {\n var item = this._getItem(candidate);\n if (item.toolbar) {\n if (item.toolbar.options.type === 'button' && item.toolbar.options.isChild) {\n item.toolbar.show();\n item.toolbar.getParentGroup().refresh();\n } else if (item.toolbar.options.hidden) {\n item.toolbar.show();\n }\n }\n if (item.overflow) {\n if (item.overflow.options.type === 'button' && item.overflow.options.isChild) {\n item.toolbar.show();\n item.overflow.getParentGroup().refresh();\n } else if (item.overflow.options.hidden) {\n item.overflow.show();\n }\n }\n this.resize(true);\n },\n enable: function (element, enable) {\n var item = this._getItem(element);\n if (typeof enable == 'undefined') {\n enable = true;\n }\n if (item.toolbar) {\n item.toolbar.enable(enable);\n }\n if (item.overflow) {\n item.overflow.enable(enable);\n }\n },\n getSelectedFromGroup: function (groupName) {\n return this.element.find('.' + TOGGLE_BUTTON + '[data-group=\\'' + groupName + '\\']').filter('.' + STATE_ACTIVE);\n },\n toggle: function (button, checked) {\n var element = $(button), item = element.data('button');\n if (item.options.togglable) {\n if (checked === undefined) {\n checked = true;\n }\n item.toggle(checked, true);\n }\n },\n _renderOverflow: function () {\n var that = this, overflowContainer = components.overflowContainer, isRtl = that._isRtl, horizontalDirection = isRtl ? 'left' : 'right';\n that.overflowAnchor = $(components.overflowAnchor).addClass(BUTTON);\n that.element.append(that.overflowAnchor);\n if (that.isMobile) {\n that.overflowAnchor.append('');\n overflowContainer = actionSheetWrap(overflowContainer);\n } else {\n that.overflowAnchor.append('');\n }\n that.popup = new kendo.ui.Popup(overflowContainer, {\n origin: 'bottom ' + horizontalDirection,\n position: 'top ' + horizontalDirection,\n anchor: that.overflowAnchor,\n isRtl: isRtl,\n animation: that.animation,\n appendTo: that.isMobile ? $(that.isMobile).children('.km-pane') : null,\n copyAnchorStyles: false,\n open: function (e) {\n var wrapper = kendo.wrap(that.popup.element).addClass('k-overflow-wrapper');\n if (!that.isMobile) {\n wrapper.css('margin-left', (isRtl ? -1 : 1) * ((outerWidth(wrapper) - wrapper.width()) / 2 + 1));\n } else {\n that.popup.container.css('max-height', parseFloat($('.km-content:visible').innerHeight()) - 15 + 'px');\n }\n if (that.trigger(OVERFLOW_OPEN)) {\n e.preventDefault();\n }\n },\n activate: function () {\n this.element.find(':kendoFocusable').first().focus();\n },\n close: function (e) {\n if (that.trigger(OVERFLOW_CLOSE)) {\n e.preventDefault();\n }\n this.element.focus();\n }\n });\n that.popup.element.on('keydown', '.' + BUTTON, function (e) {\n var target = $(e.target), li = target.parent(), isComplexTool = li.is('.' + BUTTON_GROUP) || li.is('.' + SPLIT_BUTTON), element;\n e.preventDefault();\n if (e.keyCode === keys.ESC || e.keyCode === keys.TAB || e.altKey && e.keyCode === keys.UP) {\n that._toggleOverflow();\n that.overflowAnchor.focus();\n } else if (e.keyCode === keys.DOWN) {\n element = !isComplexTool || isComplexTool && target.is(':last-child') ? li : target;\n findFocusableSibling(element, 'next').focus();\n } else if (e.keyCode === keys.UP) {\n element = !isComplexTool || isComplexTool && target.is(':first-child') ? li : target;\n findFocusableSibling(element, 'prev').focus();\n } else if (e.keyCode === keys.SPACEBAR || e.keyCode === keys.ENTER) {\n that.userEvents.trigger('tap', { target: $(e.target) });\n that.overflowAnchor.focus();\n } else if (e.keyCode === keys.HOME) {\n li.parent().find(':kendoFocusable').first().focus();\n } else if (e.keyCode === keys.END) {\n li.parent().find(':kendoFocusable').last().focus();\n }\n });\n if (that.isMobile) {\n that.popup.container = that.popup.element.find('.' + OVERFLOW_CONTAINER);\n } else {\n that.popup.container = that.popup.element;\n }\n that.popup.container.attr(KENDO_UID_ATTR, this.uid);\n },\n _toggleOverflowAnchor: function () {\n var hasVisibleChildren = false;\n if (this.options.mobile) {\n hasVisibleChildren = this.popup.element.find('.' + OVERFLOW_CONTAINER).children(':not(.' + OVERFLOW_HIDDEN + ', .' + POPUP + ')').length > 0;\n } else {\n hasVisibleChildren = this.popup.element.children(':not(.' + OVERFLOW_HIDDEN + ', .' + POPUP + ')').length > 0;\n }\n if (hasVisibleChildren) {\n this.overflowAnchor.css({\n visibility: 'visible',\n width: ''\n });\n } else {\n this.overflowAnchor.css({\n visibility: 'hidden',\n width: '1px'\n });\n }\n },\n _buttonClick: function (e) {\n var that = this, popup, target, item, splitContainer, isSplitButtonArrow = e.target.closest('.' + SPLIT_BUTTON_ARROW).length, handler, eventData, urlTarget;\n e.preventDefault();\n if (isSplitButtonArrow) {\n that._toggle(e);\n return;\n }\n target = $(e.target).closest('.' + BUTTON, that.element);\n if (target.hasClass(OVERFLOW_ANCHOR)) {\n return;\n }\n item = target.data('button');\n if (!item && that.popup) {\n target = $(e.target).closest('.' + OVERFLOW_BUTTON, that.popup.container);\n item = target.parent('li').data('button');\n }\n if (!item || !item.options.enable) {\n return;\n }\n if (item.options.togglable) {\n handler = isFunction(item.toggleHandler) ? item.toggleHandler : null;\n item.toggle(!item.options.selected, true);\n eventData = {\n target: target,\n group: item.options.group,\n checked: item.options.selected,\n id: item.options.id,\n item: item\n };\n if (handler) {\n handler.call(that, eventData);\n }\n that.trigger(TOGGLE, eventData);\n } else {\n handler = isFunction(item.clickHandler) ? item.clickHandler : null;\n eventData = {\n sender: that,\n target: target,\n id: item.options.id,\n item: item\n };\n if (handler) {\n handler.call(that, eventData);\n }\n that.trigger(CLICK, eventData);\n }\n if (item.options.url) {\n if (item.options.attributes && item.options.attributes.target) {\n urlTarget = item.options.attributes.target;\n }\n window.open(item.options.url, urlTarget || '_self');\n }\n if (target.hasClass(OVERFLOW_BUTTON)) {\n that.popup.close();\n }\n splitContainer = target.closest('.k-split-container');\n if (splitContainer[0]) {\n popup = splitContainer.data('kendoPopup');\n (popup ? popup : splitContainer.parents('.km-popup-wrapper').data('kendoPopup')).close();\n }\n },\n _navigatable: function () {\n var that = this;\n that.element.attr('tabindex', 0).on('focusin', function (ev) {\n var target = $(ev.target);\n var element = $(this).find(':kendoFocusable:first');\n if (!target.is('.' + TOOLBAR) || element.length === 0) {\n return;\n }\n if (element.is('.' + OVERFLOW_ANCHOR)) {\n element = findFocusableSibling(element, 'next');\n }\n element[0].focus();\n }).on('keydown', proxy(that._keydown, that));\n },\n _keydown: function (e) {\n var target = $(e.target), keyCode = e.keyCode, items = this.element.children(':not(.k-separator):visible'), direction = this._isRtl ? -1 : 1;\n if (keyCode === keys.TAB) {\n var element = target.parentsUntil(this.element).last(), lastHasFocus = false, firstHasFocus = false;\n if (!element.length) {\n element = target;\n }\n if (element.is('.' + OVERFLOW_ANCHOR)) {\n if (e.shiftKey) {\n e.preventDefault();\n }\n if (items.last().is(':kendoFocusable')) {\n items.last().focus();\n } else {\n items.last().find(':kendoFocusable').last().focus();\n }\n }\n if (!e.shiftKey && items.index(element) === items.length - 1) {\n if (element.is('.' + BUTTON_GROUP)) {\n lastHasFocus = target.is(':last-child');\n } else {\n lastHasFocus = true;\n }\n }\n var isFirstTool = items.index(element) === items.not('.k-overflow-anchor').first().index();\n if (e.shiftKey && isFirstTool) {\n if (element.is('.' + BUTTON_GROUP)) {\n firstHasFocus = target.is(':first-child');\n } else {\n firstHasFocus = true;\n }\n }\n if (lastHasFocus && this.overflowAnchor && this.overflowAnchor.css('visibility') !== 'hidden') {\n e.preventDefault();\n this.overflowAnchor.focus();\n }\n if (firstHasFocus) {\n e.preventDefault();\n var prevFocusable = this._getPrevFocusable(this.wrapper);\n if (prevFocusable) {\n prevFocusable.focus();\n }\n }\n this._preventNextFocus = false;\n }\n if (e.altKey && keyCode === keys.DOWN) {\n var splitButton = $(document.activeElement).data('splitButton');\n var isOverflowAnchor = $(document.activeElement).is('.' + OVERFLOW_ANCHOR);\n if (splitButton) {\n splitButton.toggle();\n } else if (isOverflowAnchor) {\n this._toggleOverflow();\n }\n return;\n }\n if ((keyCode === keys.SPACEBAR || keyCode === keys.ENTER) && !target.is('input, checkbox')) {\n if (keyCode === keys.SPACEBAR) {\n e.preventDefault();\n }\n if (target.is('.' + SPLIT_BUTTON)) {\n target = target.children().first();\n this.userEvents.trigger('tap', { target: target });\n } else if (keyCode === keys.SPACEBAR) {\n this.userEvents.trigger('tap', { target: target });\n }\n return;\n }\n if (keyCode === keys.HOME) {\n if (target.is('.k-dropdown') || target.is('input')) {\n return;\n }\n if (this.overflowAnchor) {\n items.eq(1).focus();\n } else {\n items.first().focus();\n }\n e.preventDefault();\n } else if (keyCode === keys.END) {\n if (target.is('.k-dropdown') || target.is('input')) {\n return;\n }\n if (this.overflowAnchor && $(this.overflowAnchor).css('visibility') != 'hidden') {\n this.overflowAnchor.focus();\n } else {\n items.last().focus();\n }\n e.preventDefault();\n } else if (keyCode === keys.RIGHT && !this._preventNextFocus && !target.is('input, select, .k-dropdown, .k-colorpicker') && this._getNextElement(e.target, 1 * direction)) {\n this._getNextElement(e.target, 1 * direction).focus();\n e.preventDefault();\n } else if (keyCode === keys.LEFT && !this._preventNextFocus && !target.is('input, select, .k-dropdown, .k-colorpicker') && this._getNextElement(e.target, -1 * direction)) {\n this._getNextElement(e.target, -1 * direction).focus();\n e.preventDefault();\n }\n },\n _getNextElement: function (item, direction) {\n var items = this.element.children(':not(.k-separator):visible');\n var itemIndex = items.index(item) === -1 ? items.index(item.parentElement) : items.index(item);\n var startIndex = this.overflowAnchor ? 1 : 0;\n var directionNumber = direction;\n var searchIndex = direction === 1 ? items.length - 1 : startIndex;\n var index = direction === 1 ? startIndex : items.length - 1;\n var focusableItem = items[itemIndex + direction];\n this._preventNextFocus = false;\n if ($(item).closest('.' + BUTTON_GROUP).length && !$(item).is(direction === 1 ? ':last-child' : ':first-child')) {\n return $(item).closest('.' + BUTTON_GROUP).children()[$(item).closest('.' + BUTTON_GROUP).children().index(item) + direction];\n }\n if (this.overflowAnchor && item === this.overflowAnchor[0] && direction === -1) {\n focusableItem = items[items.length - 1];\n }\n if (itemIndex === searchIndex) {\n focusableItem = !this.overflowAnchor || this.overflowAnchor && $(this.overflowAnchor).css('visibility') === 'hidden' ? items[index] : this.overflowAnchor;\n }\n while (!$(focusableItem).is(':kendoFocusable')) {\n if (direction === -1 && $(focusableItem).closest('.' + BUTTON_GROUP).length) {\n focusableItem = $(focusableItem).children(':not(label, div)').last();\n } else {\n focusableItem = $(focusableItem).children(':not(label, div)').first();\n }\n if (!focusableItem.length) {\n directionNumber = directionNumber + direction;\n focusableItem = items[itemIndex + directionNumber];\n if (!focusableItem) {\n return this.overflowAnchor;\n }\n }\n this._preventNextFocus = $(focusableItem).closest('.' + BUTTON_GROUP).length ? false : true;\n }\n return focusableItem;\n },\n _getPrevFocusable: function (element) {\n if (element.is('html')) {\n return element;\n }\n var elementToFocus, prevElement, prevElements = element.prevAll();\n prevElements.each(function () {\n prevElement = $(this);\n if (prevElement.is(':kendoFocusable')) {\n elementToFocus = prevElement;\n return false;\n } else if (prevElement.find(':kendoFocusable').length > 0) {\n elementToFocus = prevElement.find(':kendoFocusable').last();\n return false;\n }\n });\n if (elementToFocus) {\n return elementToFocus;\n } else {\n return this._getPrevFocusable(element.parent());\n }\n },\n _toggle: function (e) {\n var splitButton = $(e.target).closest('.' + SPLIT_BUTTON).data('splitButton');\n e.preventDefault();\n if (!splitButton.options.enable) {\n return;\n }\n splitButton.toggle();\n },\n _toggleOverflow: function () {\n this.popup.toggle();\n },\n _resize: function (e) {\n var containerWidth = e.width;\n if (!this.options.resizable) {\n return;\n }\n this.popup.close();\n this._shrink(containerWidth);\n this._stretch(containerWidth);\n this._markVisibles();\n this._toggleOverflowAnchor();\n },\n _childrenWidth: function () {\n var childrenWidth = 0;\n this.element.children(':visible:not(\\'.' + STATE_HIDDEN + '\\')').each(function () {\n childrenWidth += outerWidth($(this), true);\n });\n return Math.ceil(childrenWidth);\n },\n _shrink: function (containerWidth) {\n var commandElement, visibleCommands;\n if (containerWidth < this._childrenWidth()) {\n visibleCommands = this.element.children(':visible:not([data-overflow=\\'never\\'], .' + OVERFLOW_ANCHOR + ')');\n for (var i = visibleCommands.length - 1; i >= 0; i--) {\n commandElement = visibleCommands.eq(i);\n if (containerWidth > this._childrenWidth()) {\n break;\n } else {\n this._hideItem(commandElement);\n }\n }\n }\n },\n _stretch: function (containerWidth) {\n var commandElement, hiddenCommands;\n if (containerWidth > this._childrenWidth()) {\n hiddenCommands = this.element.children(':hidden:not(\\'.' + STATE_HIDDEN + '\\')');\n for (var i = 0; i < hiddenCommands.length; i++) {\n commandElement = hiddenCommands.eq(i);\n if (containerWidth < this._childrenWidth() || !this._showItem(commandElement, containerWidth)) {\n break;\n }\n }\n }\n },\n _hideItem: function (item) {\n item.hide();\n if (this.popup) {\n this.popup.container.find('>li[data-uid=\\'' + item.data('uid') + '\\']').removeClass(OVERFLOW_HIDDEN);\n }\n },\n _showItem: function (item, containerWidth) {\n if (item.length && containerWidth > this._childrenWidth() + outerWidth(item, true)) {\n item.show();\n if (this.popup) {\n this.popup.container.find('>li[data-uid=\\'' + item.data('uid') + '\\']').addClass(OVERFLOW_HIDDEN);\n }\n return true;\n }\n return false;\n },\n _markVisibles: function () {\n var overflowItems = this.popup.container.children(), toolbarItems = this.element.children(':not(.k-overflow-anchor)'), visibleOverflowItems = overflowItems.filter(':not(.k-overflow-hidden)'), visibleToolbarItems = toolbarItems.filter(':visible');\n overflowItems.add(toolbarItems).removeClass(FIRST_TOOLBAR_VISIBLE + ' ' + LAST_TOOLBAR_VISIBLE);\n visibleOverflowItems.first().add(visibleToolbarItems.first()).addClass(FIRST_TOOLBAR_VISIBLE);\n visibleOverflowItems.last().add(visibleToolbarItems.last()).addClass(LAST_TOOLBAR_VISIBLE);\n }\n });\n kendo.ui.plugin(ToolBar);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}