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