{"version":3,"file":"kendo.bottomnavigation.min.js","names":["factory","define","amd","$","kendo","ui","Widget","extend","template","keys","isPlainObject","isEmptyObject","NS","PREFIX","DOT","SELECT","isString","bottomNavigationStyles","templates","BottomNavigation","window","jQuery","value","item","widget","navIcon","icon","text","itemFlow","vertical","horizontal","selected","disabled","border","shadow","focus","anchor","init","element","options","that","this","fn","call","_updateCssClasses","_items","_bindEvents","name","positionMode","items","themeColor","fill","events","destroy","off","_tabindex","target","TABINDEX","cachedTabIndex","attr","ns","tabindex","removeAttr","isNaN","styles","removeClass","index","className","indexOf","addClass","getValidCssClass","toggleClass","_itemFlow","orientation","orientationStyles","_toggleClassGroup","group","key","i","length","_renderItem","append","elm","itemTemplate","isLink","url","enabled","cssClass","attributes","data","iconClass","encoded","htmlEncode","clickProxy","_click","bind","keydownProxy","_keydown","on","ev","closest","is","preventDefault","_triggerSelect","trigger","originalEvent","select","keyCode","ENTER","SPACEBAR","_isItem","find","children","state","selectedItem","filter","enable","eq","itemById","id","add","before","method","targetElement","remove","showText","toggle","setOptions","empty","plugin"],"sources":["kendo.bottomnavigation.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"bottomnavigation\",\n name: \"BottomNavigation\",\n category: \"web\",\n description: \"The BottomNavigation widget is a navigation element that allows movement between primary destinations in an app.\",\n depends: [ \"core\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Widget = ui.Widget,\n extend = $.extend,\n template = kendo.template,\n keys = kendo.keys,\n isPlainObject = $.isPlainObject,\n isEmptyObject = $.isEmptyObject,\n\n NS = \".kendoBottomNavigation\",\n PREFIX = \"k-bottom-nav-\",\n K_POS = \"k-pos-\",\n DOT = \".\",\n\n SELECT = \"select\";\n\n var isString = function(value) {\n return typeof value === \"string\";\n };\n\n var bottomNavigationStyles = {\n widget: \"k-bottom-nav\",\n item: \"k-bottom-nav-item\",\n navIcon: \"k-bottom-nav-item-icon\",\n icon: \"k-icon\",\n text: \"k-bottom-nav-item-text\",\n itemFlow: {\n vertical: \"k-bottom-nav-item-flow-vertical\",\n horizontal: \"k-bottom-nav-item-flow-horizontal\"\n },\n selected: \"k-selected\",\n disabled: \"k-disabled\",\n border: \"k-bottom-nav-border\",\n shadow: \"k-bottom-nav-shadow\",\n focus: \"k-focus\"\n };\n\n var templates = {\n item: template(\"\"),\n anchor: template(\"\"),\n text: template(\"#=text#\"),\n icon: template(\"\")\n };\n\n var BottomNavigation = Widget.extend({\n init: function(element, options) {\n var that = this;\n options = options || {};\n Widget.fn.init.call(that, element, options);\n\n that.element = $(element);\n\n that._updateCssClasses();\n that._items();\n that._bindEvents();\n },\n\n options: {\n name: \"BottomNavigation\",\n positionMode: \"fixed\",\n items: [],\n themeColor: \"primary\",\n itemFlow: \"vertical\",\n fill: \"flat\",\n shadow: false,\n border: true,\n template: null\n },\n\n events: [\n SELECT\n ],\n\n destroy: function() {\n var that = this;\n\n that.element.off(NS);\n\n Widget.fn.destroy.call(this);\n },\n\n _tabindex: function(target) {\n var that = this,\n element = that.element,\n TABINDEX = \"tabindex\",\n cachedTabIndex = element.attr(\"data-\" + kendo.ns + TABINDEX),\n tabindex = target.attr(TABINDEX) || element.attr(TABINDEX) || cachedTabIndex;\n\n if (!cachedTabIndex) {\n element.removeAttr(TABINDEX);\n element.attr(\"data-\" + kendo.ns + TABINDEX, tabindex);\n }\n\n target.attr(TABINDEX, !isNaN(tabindex) ? tabindex : 0);\n },\n\n _updateCssClasses: function() {\n var that = this,\n options = that.options,\n styles = bottomNavigationStyles;\n\n // Remove all class names\n that.element.removeClass(function(index, className) {\n if (className.indexOf('k-') === 0) {\n that.element.removeClass(className);\n }\n });\n\n that.element.addClass(styles.widget);\n that.element.addClass(kendo.getValidCssClass(PREFIX, \"themeColor\", options.themeColor));\n that.element.addClass(kendo.getValidCssClass(PREFIX, \"fill\", options.fill));\n that.element.addClass(kendo.getValidCssClass(K_POS, \"positionMode\", options.positionMode));\n that.element.toggleClass(styles.border, options.border);\n that.element.toggleClass(styles.shadow, options.shadow);\n that._itemFlow(options.itemFlow);\n },\n\n _itemFlow: function(orientation) {\n var that = this,\n orientationStyles = bottomNavigationStyles.itemFlow;\n\n that._toggleClassGroup(that.element, orientation, orientationStyles);\n },\n\n _toggleClassGroup: function(element, value, group) {\n if (isString(group[value])) {\n for (var key in group) {\n element.removeClass(group[key]);\n }\n\n element.addClass(group[value]);\n }\n },\n\n _items: function() {\n var that = this,\n options = that.options,\n items = options.items,\n item;\n\n for (var i = 0; i < items.length; i++) {\n item = that._renderItem(items[i]);\n that.element.append(item);\n }\n },\n\n _renderItem: function(item) {\n var that = this,\n itemTemplate = item.template || that.options.template,\n isLink = item.url && isString(item.url),\n elm, icon;\n\n elm = $(isLink ? template(templates.anchor)(item) : template(templates.item)(item));\n\n elm.toggleClass(bottomNavigationStyles.selected, item.selected === true)\n .toggleClass(bottomNavigationStyles.disabled, item.enabled === false)\n .addClass(item.cssClass)\n .attr(extend({}, item.attributes, {\n \"aria-disabled\": item.enabled === false\n }))\n .data(item.data);\n\n that._tabindex(elm);\n\n if (!elm.attr(\"role\") && !isLink) {\n elm.attr(\"role\", \"link\");\n }\n\n if (itemTemplate) {\n elm.append(template(itemTemplate)(item));\n return elm;\n }\n\n item = extend({}, {\n icon: \"\"\n }, item);\n\n icon = $(templates.icon(item)).addClass(item.iconClass);\n\n elm.append(icon);\n\n if (item.text) {\n item.text = item.encoded === false ? item.text : kendo.htmlEncode(item.text);\n elm.append($(templates.text(item)));\n }\n\n return elm;\n },\n\n _bindEvents: function() {\n var that = this,\n clickProxy = that._click.bind(that),\n keydownProxy = that._keydown.bind(that);\n\n that.element.on(\"click\" + NS, DOT + bottomNavigationStyles.item, clickProxy)\n .on(\"keydown\" + NS, DOT + bottomNavigationStyles.item, keydownProxy);\n },\n\n _click: function(ev) {\n var that = this,\n item = $(ev.target).closest(DOT + bottomNavigationStyles.item);\n\n if (item.is(DOT + bottomNavigationStyles.disabled)) {\n ev.preventDefault();\n return;\n }\n\n that._triggerSelect(item, ev);\n },\n\n _triggerSelect: function(item, ev) {\n var that = this;\n\n if (item.is(DOT + bottomNavigationStyles.disabled)) {\n return;\n }\n\n if (that.trigger(SELECT, { originalEvent: ev, item: item, data: item.data() })) {\n return;\n }\n\n that.select(item);\n },\n\n _keydown: function(ev) {\n var that = this,\n target = $(ev.target),\n key = ev.keyCode;\n\n if (key === keys.ENTER || key === keys.SPACEBAR) {\n if (that._isItem(target)) {\n that._triggerSelect(target, ev);\n\n if (key === keys.SPACEBAR) {\n ev.preventDefault();\n }\n }\n }\n },\n\n _isItem: function(item) {\n var that = this;\n\n item = $(item);\n\n return item.is(DOT + bottomNavigationStyles.item) && !!that.element.find(item).length;\n },\n\n items: function() {\n var that = this;\n\n return that.element.children();\n },\n\n select: function(item, state) {\n var that = this,\n selectedItem = that.items().filter(DOT + bottomNavigationStyles.selected);\n\n if (!item) {\n return selectedItem;\n }\n\n state = state !== false;\n\n if (that._isItem(item)) {\n selectedItem.removeClass(bottomNavigationStyles.selected);\n $(item).toggleClass(bottomNavigationStyles.selected, state);\n }\n },\n\n enable: function(item, state) {\n var that = this;\n\n state = state === false;\n\n if (item && that._isItem(item)) {\n $(item).toggleClass(bottomNavigationStyles.disabled, state);\n $(item).attr(\"aria-disabled\", state);\n }\n },\n\n item: function(index) {\n var that = this;\n\n if (isNaN(index)) {\n return null;\n }\n\n return that.items().eq(index);\n },\n\n itemById: function(id) {\n var that = this;\n\n return that.element.find(\"#\" + id);\n },\n\n add: function(item, before) {\n var that = this,\n method = \"append\",\n targetElement = that.element;\n\n if (before && that._isItem(before)) {\n method = \"before\";\n targetElement = $(before);\n }\n\n if (item && isPlainObject(item) && !isEmptyObject(item)) {\n targetElement[method](that._renderItem(item));\n }\n },\n\n remove: function(item) {\n var that = this;\n\n if (item && that._isItem(item)) {\n item.remove();\n }\n },\n\n showText: function(toggle) {\n var that = this,\n textItems = that.items().find(DOT + bottomNavigationStyles.text);\n\n toggle = toggle !== false;\n\n textItems.toggle(toggle);\n },\n\n setOptions: function(options) {\n var that = this;\n\n Widget.fn.setOptions.call(this, options);\n that._updateCssClasses();\n\n if (\"items\" in options || \"template\" in options) {\n that.element.empty();\n that._items();\n }\n }\n });\n\n ui.plugin(BottomNavigation);\n })(window.kendo.jQuery);\n\n}));\n"]}