{"version":3,"file":"kendo.columnmenu.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendocolumnmenu","js","this","$","undefined$1","kendo","window","encode","htmlEncode","ui","extend","grep","map","inArray","Comparer","data","ACTIVE","ASC","DESC","CHANGE","INIT","OPEN","SELECT","STICK","UNSTICK","POPUP","MENU","EXPANSIONPANEL","NS","Widget","trim","text","replace","columnsGroupFilterHandler","column","columns","indexOf","title","field","leafColumns","result","idx","length","concat","push","ColumnMenu","init","element","options","columnHeader","that","componentType","fn","call","owner","dataSource","attr","closest","appendTo","find","link","_createLink","wrapper","_refreshHandler","refresh","bind","_init","pane","_isMobile","_createMobileMenu","_createMenu","_muteAngularRebind","_angularItems","_sort","_columns","_filter","_lockColumns","_reorderColumns","_stickyColumns","_groupColumn","trigger","container","events","name","messages","sortAscending","sortDescending","filter","columnVisibility","clear","cancel","done","settings","lock","unlock","stick","unstick","setColumnPosition","apply","reset","buttonTitle","movePrev","moveNext","groupColumn","ungroupColumn","sortable","filterable","animations","left","encodeTitles","flattenMenuCols","menuTemplate","menuElement","_ownerColumns","_hasGroups","_groupColumns","_flattenMenuCols","_syncMenuCols","_isModernComponentType","template","modernTemplate","uid","guid","ns","showColumns","hasLockableColumns","hasStickableColumns","omitWrapAttribute","reorderable","groupable","applyStylesFromKendoAttributes","empty","append","popup","anchor","copyAnchorStyles","open","_open","activate","_activate","deactivate","_deactivate","close","e","menu","_closing","sender","closeCallback","addClass","_createExpanders","children","orientation","closeOnClick","_updateMenuItems","appendTarget","format","icon","on","_click","expanderOptions","expanded","headerClass","useBareTemplate","menuCols","ownerCols","ownerCol","menuColsFields","col","i","cols","groupHeader","nest","currGroup","filterHandler","group","groupColumns","groups","html","mobileTemplate","hasGroups","view","state","MobileMenu","columnMenu","stopPropagation","viewElement","preventDefault","_applyChanges","_cancelChanges","_updateLockedColumns","_updateStickyColumns","_updateReorderColumns","_updateGroupColumns","initialSort","action","angular","elements","_originalObject","destroy","filterMenu","unbind","_updateColumnsMenuHandler","_updateColumnsLockedStateHandler","off","purge","is","navigate","toggle","_setMenuItemsVisibility","sort","_updateDataIndexes","_reorderMenuItems","_eachRenderedMenuItem","index","renderedListElement","matchesMedia","hide","show","renderedList","insertAfter","eq","prepend","insertElementAt","first","mappedColumns","x","each","callback","duplicateColumnIndex","fieldValue","currentColumn","columnElements","attrName","attrValue","_getRenderedList","renderedListElements","_getRenderedListElements","oldOccurances","checkBoxes","signature","columCheckbox","indexAttr","fieldAttr","columnDict","j","parseInt","oldColumnOccurrences","columnOccurrence","JSON","stringify","columnOccurrences","add","instance","menuitem","not","target","keyCode","keys","ENTER","click","ESC","widgetInstance","hasClass","visible","getKendoPopup","omitSort","menuColumns","originalField","hidden","locked","headerAttributes","id","create","dir","_sortHandler","item","_getSortItemsContainer","removeClass","_sortDataSource","parents","parent","compare","allowUnsort","mode","splice","_updateColumnsMenu","_updateColumnsLockedState","_applyColumnVisibility","input","colIdx","uidAttr","showColumn","hideColumn","checkbox","checkboxes","columnsInMenu","omitCheckState","current","checked","lockedAttr","columnIndexMap","columnsCount","visibleFields","prop","visibleDataFields","lockedCount","nonLockedCount","columnsNotInMenu","hiddenColumnsNotInMenu","switchWidget","enable","check","arr","key","len","toHash","widget","multi","checkSource","appendToElement","values","change","cycleForm","_lockableHandler","lockColumn","unlockColumn","_reorderHandler","_moveColumn","_groupHandler","_handleSpaceKey","_stickableHandler","stickColumn","unstickColumn","notLockable","lockable","lockItem","removeAttr","unlockItem","sticky","stickable","stickItem","unstickItem","elementIndex","numberOfSiblings","prevItem","nextItem","groupEl","ungroupEl","_canDrag","descriptor","_filterExist","filters","found","COLUMNS_PARTIAL_MODERN","ref","join","renderButton","themeColor","LOCK_STICK_COLUMNS_PARTIAL_MODERN","LOCKABLE_COLUMNS_PARTIAL_MODERN","STICKABLE_COLUMNS_PARTIAL_MODERN","REORDERABLE_COLUMNS_PARTIAL_MODERN","SORTABLE_PARTIAL_MODERN","GROUPABLE_PARTIAL_MODERN","COLUMNS_PARTIAL_CLASSIC","LOCK_STICK_COLUMNS_PARTIAL_CLASSIC","LOCKABLE_COLUMNS_PARTIAL_CLASSIC","STICKABLE_COLUMNS_PARTIAL_CLASSIC","REORDERABLE_COLUMNS_PARTIAL_CLASSIC","SORTABLE_PARTIAL_CLASSIC","FILTERABLE_PARTIAL_CLASSIC","hasLockStickMove","GROUPABLE_PARTIAL_CLASSIC","COLUMNS_PARTIAL_MOBILE","SORTABLE_PARTIAL_MOBILE","LOCKABLE_COLUMNS_PARTIAL_MOBILE","STICKABLE_COLUMNS_PARTIAL_MOBILE","REORDERABLE_COLUMNS_PARTIAL_MOBILE","FILTERABLE_PARTIAL_MOBILE","GROPABLE_PARTIAL_MOBILE","_createCheckBoxes","currentTarget","_updateSelectedItems","el","otherItem","otherItemId","force","selectedItems","hasOwnProperty","kendoSwitch","unchecked","_destroyCheckBoxes","plugin","jQuery"],"sources":["kendo.columnmenu.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.popup.js'), require('kendo.filtermenu.js'), require('kendo.menu.js'), require('kendo.expansionpanel.js'), require('kendo.html.button.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.popup', 'kendo.filtermenu', 'kendo.menu', 'kendo.expansionpanel', 'kendo.html.button', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendocolumnmenu = global.kendocolumnmenu || {}, global.kendocolumnmenu.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"columnmenu\",\n name: \"Column Menu\",\n category: \"framework\",\n depends: [ \"popup\", \"filtermenu\", \"menu\", 'expansionpanel', 'html.button', \"icons\" ],\n advanced: true\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n encode = kendo.htmlEncode,\n ui = kendo.ui,\n extend = $.extend,\n grep = $.grep,\n encode = kendo.htmlEncode,\n map = $.map,\n inArray = $.inArray,\n Comparer = kendo.data.Comparer,\n ACTIVE = \"k-selected\",\n ASC = \"asc\",\n DESC = \"desc\",\n CHANGE = \"change\",\n INIT = \"init\",\n OPEN = \"open\",\n SELECT = \"select\",\n STICK = \"stick\",\n UNSTICK = \"unstick\",\n POPUP = \"kendoPopup\",\n FILTERMENU = \"kendoFilterMenu\",\n MENU = \"kendoMenu\",\n EXPANSIONPANEL = \"kendoExpansionPanel\",\n NS = \".kendoColumnMenu\",\n COLUMN_HEADER_SELECTOR = \".k-table-th\",\n Widget = ui.Widget;\n\n function trim(text) {\n return kendo.trim(text).replace(/ /gi, \"\");\n }\n\n function toHash(arr, key) {\n var result = {};\n var idx, len, current;\n for (idx = 0, len = arr.length; idx < len; idx ++) {\n current = arr[idx];\n result[current[key]] = current;\n }\n return result;\n }\n\n function columnsGroupFilterHandler(column) {\n return this.columns.indexOf(column.title) >= 0 || this.columns.indexOf(column.field) >= 0;\n }\n\n function leafColumns(columns) {\n var result = [];\n\n for (var idx = 0; idx < columns.length; idx++) {\n if (!columns[idx].columns) {\n result.push(columns[idx]);\n continue;\n }\n result = result.concat(leafColumns(columns[idx].columns));\n }\n\n return result;\n }\n\n function attrEquals(attrName, attrValue) {\n return \"[\" + kendo.attr(attrName) + \"='\" + (attrValue || \"\").replace(/'/g, \"\\\"\") + \"']\";\n }\n\n function insertElementAt(index, element, container) {\n if (index > 0) {\n element.insertAfter(container.children().eq(index - 1));\n } else {\n container.prepend(element);\n }\n }\n\n function columnOccurrences(columns) {\n var columnDict = {};\n var signature;\n\n for (var i = 0; i < columns.length; i++) {\n signature = JSON.stringify(columns[i]);\n\n if (columnDict[signature]) {\n columnDict[signature].push(i);\n } else {\n columnDict[signature] = [i];\n }\n }\n\n return columnDict;\n }\n\n function oldColumnOccurrences(renderedListElements, checkBoxes) {\n var indexAttr = kendo.attr(\"index\");\n var fieldAttr = kendo.attr(\"field\");\n var columnDict = {};\n var signature;\n var columCheckbox;\n var index;\n var field;\n var title;\n\n for (var j = 0; j < renderedListElements.length; j++) {\n columCheckbox = checkBoxes.eq(j);\n index = parseInt(columCheckbox.attr(indexAttr), 10);\n field = columCheckbox.attr(fieldAttr);\n title = columCheckbox.attr(\"title\");\n signature = field ? field : title;\n\n if (columnDict[signature]) {\n columnDict[signature].push(index);\n } else {\n columnDict[signature] = [index];\n }\n }\n\n return columnDict;\n }\n\n var ColumnMenu = Widget.extend({\n init: function(element, options) {\n var that = this,\n columnHeader;\n\n options = options || {};\n options.componentType = options.componentType || \"classic\";\n Widget.fn.init.call(that, element, options);\n\n element = that.element;\n options = that.options;\n that.owner = options.owner;\n that.dataSource = options.dataSource;\n\n that.field = element.attr(kendo.attr(\"field\"));\n that.title = element.attr(kendo.attr(\"title\"));\n\n columnHeader = $(element.closest(COLUMN_HEADER_SELECTOR));\n if (columnHeader.length) {\n that.appendTo = columnHeader.find(options.appendTo);\n } else {\n that.appendTo = $(options.appendTo);\n }\n\n that.link = that._createLink();\n\n that.wrapper = $('
');\n\n that._refreshHandler = that.refresh.bind(that);\n\n that.dataSource.bind(CHANGE, that._refreshHandler);\n },\n\n _init: function() {\n var that = this;\n\n that.pane = that.options.pane;\n if (that.pane) {\n that._isMobile = true;\n }\n\n if (that._isMobile) {\n that._createMobileMenu();\n } else {\n that._createMenu();\n }\n\n that.owner._muteAngularRebind(function() {\n that._angularItems(\"compile\");\n });\n\n that._sort();\n\n that._columns();\n\n that._filter();\n\n that._lockColumns();\n\n that._reorderColumns();\n\n that._stickyColumns();\n\n that._groupColumn();\n\n that.trigger(INIT, { field: that.field, container: that.wrapper });\n },\n\n events: [ INIT, OPEN, \"sort\", \"filtering\", STICK, UNSTICK ],\n\n options: {\n name: \"ColumnMenu\",\n messages: {\n sortAscending: \"Sort Ascending\",\n sortDescending: \"Sort Descending\",\n filter: \"Filter\",\n column: \"Column\",\n columns: \"Columns\",\n columnVisibility: \"Column Visibility\",\n clear: \"Clear\",\n cancel: \"Cancel\",\n done: \"Done\",\n settings: \"Edit Column Settings\",\n lock: \"Lock Column\",\n unlock: \"Unlock Column\",\n stick: \"Stick Column\",\n unstick: \"Unstick Column\",\n setColumnPosition: \"Set Column Position\",\n apply: \"Apply\",\n reset: \"Reset\",\n buttonTitle: \"{0} edit column settings\",\n movePrev: \"Move previous\",\n moveNext: \"Move next\",\n groupColumn: \"Group column\",\n ungroupColumn: \"Ungroup column\"\n },\n filter: \"\",\n columns: true,\n sortable: true,\n filterable: true,\n animations: {\n left: \"slide\"\n },\n encodeTitles: false,\n componentType: \"classic\",\n appendTo: null\n },\n\n _createMenu: function() {\n var that = this,\n options = that.options,\n columns = that._ownerColumns(),\n flattenMenuCols,\n menuTemplate,\n menuElement;\n\n if (that._hasGroups()) {\n columns = that._groupColumns(columns);\n flattenMenuCols = that._flattenMenuCols(columns);\n if (flattenMenuCols.length !== that.owner.columns.length) {\n that._syncMenuCols(flattenMenuCols, that.owner.columns);\n }\n }\n\n if (that._isModernComponentType()) {\n menuTemplate = kendo.template(modernTemplate);\n } else {\n menuTemplate = kendo.template(template);\n }\n\n menuElement = $(menuTemplate({\n uid: kendo.guid(),\n ns: kendo.ns,\n messages: options.messages,\n sortable: options.sortable,\n filterable: options.filterable,\n columns: columns,\n showColumns: options.columns,\n hasLockableColumns: options.hasLockableColumns,\n hasStickableColumns: options.hasStickableColumns,\n encodeTitles: options.encodeTitles,\n omitWrapAttribute: kendo.attr(\"omit-wrap\"),\n reorderable: options.reorderable,\n groupable: options.groupable\n }));\n\n kendo.applyStylesFromKendoAttributes(menuElement, [\"display\"]);\n that.wrapper.empty().append(menuElement);\n\n that.popup = that.wrapper[POPUP]({\n anchor: that.link,\n copyAnchorStyles: false,\n open: that._open.bind(that),\n activate: that._activate.bind(that),\n deactivate: that._deactivate.bind(that),\n close: function(e) {\n if (that.menu) {\n that.menu._closing = e.sender.element;\n }\n if (that.options.closeCallback) {\n that.options.closeCallback(that.element);\n }\n }\n }).data(POPUP);\n\n if (that._isModernComponentType()) {\n that.popup.element.addClass(\"k-grid-columnmenu-popup\");\n that._createExpanders();\n } else {\n that.menu = that.wrapper.children()[MENU]({\n orientation: \"vertical\",\n closeOnClick: false,\n open: function() {\n that._updateMenuItems();\n }\n }).data(MENU);\n }\n },\n\n _createLink: function() {\n var that = this,\n element = that.element,\n appendTarget = that.appendTo.length ? element.find(that.appendTo) : element,\n link = element.find(\".k-grid-column-menu\"),\n title = encode(kendo.format(that.options.messages.buttonTitle, that.title || that.field));\n\n if (!link[0]) {\n element.addClass(\"k-filterable\");\n\n link = appendTarget\n .append('' + kendo.ui.icon(\"more-vertical\") + '')\n .find(\".k-grid-column-menu\");\n }\n\n link.attr(\"tabindex\", -1)\n .on(\"click\" + NS, that._click.bind(that));\n\n return link;\n },\n\n _createExpanders: function() {\n var that = this;\n var options = that.options;\n var expanderOptions = {\n expanded: false,\n headerClass: \"k-columnmenu-item\",\n useBareTemplate: true\n };\n\n that.wrapper.find(\".k-columns-item\")[EXPANSIONPANEL]($.extend(true, {}, expanderOptions,{\n title: kendo.ui.icon(\"columns\") + '' + encode(options.messages.columns) + ''\n }));\n that.wrapper.find(\".k-column-menu-filter\")[EXPANSIONPANEL]($.extend(true, {}, expanderOptions,{\n title: kendo.ui.icon(\"filter\") + '' + encode(options.messages.filter) + ''\n }));\n that.wrapper.find(\".k-column-menu-position\")[EXPANSIONPANEL]($.extend(true, {}, expanderOptions,{\n title: kendo.ui.icon(\"set-column-position\") + '' + encode(options.messages.setColumnPosition) + ''\n }));\n },\n\n _syncMenuCols: function(menuCols, ownerCols) {\n var length = ownerCols.length;\n var ownerCol;\n var menuColsFields = menuCols.map(function(col) {\n return col.field;\n });\n\n for (var i = 0; i < length; i++) {\n ownerCol = ownerCols[i];\n if (menuColsFields.indexOf(ownerCol.field) < 0) {\n ownerCol.menu = false;\n }\n }\n },\n\n _flattenMenuCols: function(cols) {\n var result = [];\n var length = cols.length;\n\n for (var i = 0; i < length; i++) {\n if (cols[i].columns) {\n result = result.concat(this._flattenMenuCols(cols[i].columns));\n } else if (!cols[i].groupHeader) {\n result.push(cols[i]);\n }\n }\n return result;\n },\n\n _groupColumns: function(columns, nest) {\n var result = [];\n var groups = this.options.columns.groups;\n var length = groups.length;\n var i;\n var currGroup;\n var filterHandler;\n var group;\n var groupColumns;\n\n for (i = 0; i < length; i++) {\n currGroup = groups[i];\n filterHandler = columnsGroupFilterHandler.bind(currGroup);\n group = { title: currGroup.title, groupHeader: true };\n groupColumns = columns.filter(filterHandler);\n result.push(group);\n\n if (nest) {\n group.columns = groupColumns;\n } else {\n result = result.concat(groupColumns);\n }\n }\n\n return result;\n },\n\n _hasGroups: function() {\n return this.options.columns && this.options.columns.groups && this.options.columns.groups.length;\n },\n\n _isModernComponentType: function() {\n return this.options.componentType === 'modern' && !this._isMobile;\n },\n\n _deactivate: function() {\n if (this.menu) {\n this.menu._closing = false;\n }\n },\n\n _createMobileMenu: function() {\n var that = this,\n options = that.options,\n columns = that._ownerColumns(),\n groups,\n flattenMenuCols;\n\n if (that._hasGroups()) {\n groups = that._groupColumns(columns, true);\n flattenMenuCols = that._flattenMenuCols(groups);\n if (flattenMenuCols.length !== that.owner.columns.length) {\n that._syncMenuCols(flattenMenuCols, that.owner.columns);\n }\n }\n\n var html = kendo.template(mobileTemplate)({\n ns: kendo.ns,\n field: that.field,\n title: that.title || that.field,\n messages: options.messages,\n sortable: options.sortable,\n filterable: options.filterable,\n columns: columns,\n showColumns: options.columns,\n hasLockableColumns: options.hasLockableColumns,\n hasStickableColumns: options.hasStickableColumns,\n hasGroups: that._hasGroups(),\n groups: groups,\n reorderable: options.reorderable,\n groupable: options.groupable\n });\n\n that.view = that.pane.append(html);\n that.view.state = { columns: {} };\n\n that.wrapper = that.view.element.find(\".k-column-menu\");\n\n that.menu = new MobileMenu(that.wrapper.children(), {\n pane: that.pane,\n columnMenu: that\n });\n\n // The toggle animation of the switches should not propagate to the view\n that.menu.element.on(\"transitionend\" + NS, function(e) {\n e.stopPropagation();\n });\n\n var viewElement = that.view.wrapper && that.view.wrapper[0] ? that.view.wrapper : that.view.element;\n\n viewElement.on(\"click\", \".k-header-done\", function(e) {\n e.preventDefault();\n\n that.menu._applyChanges();\n that.menu._cancelChanges(false);\n that.close();\n });\n\n viewElement.on(\"click\", \".k-header-cancel\", function(e) {\n e.preventDefault();\n\n that.menu._cancelChanges(true);\n that.close();\n });\n\n that.view.bind(\"showStart\", function() {\n var view = that.view || { columns: {} };\n\n if (that.options.hasLockableColumns) {\n that._updateLockedColumns();\n }\n\n if (that.options.hasStickableColumns) {\n that._updateStickyColumns();\n }\n\n if (that.options.reorderable) {\n that._updateReorderColumns();\n }\n\n if (that.options.groupable) {\n that._updateGroupColumns();\n }\n\n if (view.element.find(\".k-sort-asc.k-selected\").length) {\n view.state.initialSort = \"asc\";\n } else if (view.element.find(\".k-sort-desc.k-selected\").length) {\n view.state.initialSort = \"desc\";\n }\n });\n },\n\n _angularItems: function(action) {\n var that = this;\n that.angular(action, function() {\n var items = that.wrapper.find(\".k-columns-item input[\" + kendo.attr(\"field\") + \"]\").map(function() {\n return $(this).closest(\"li\");\n });\n var data = map(that._ownerColumns(), function(col) {\n return { column: col._originalObject };\n });\n return {\n elements: items,\n data: data\n };\n });\n },\n\n destroy: function() {\n var that = this;\n\n that._angularItems(\"cleanup\");\n\n Widget.fn.destroy.call(that);\n\n if (that.filterMenu) {\n that.filterMenu.destroy();\n }\n\n if (that._refreshHandler) {\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n }\n\n if (that.options.columns && that.owner) {\n if (that._updateColumnsMenuHandler) {\n that.owner.unbind(\"columnShow\", that._updateColumnsMenuHandler);\n that.owner.unbind(\"columnHide\", that._updateColumnsMenuHandler);\n }\n\n if (that._updateColumnsLockedStateHandler) {\n that.owner.unbind(\"columnLock\", that._updateColumnsLockedStateHandler);\n that.owner.unbind(\"columnUnlock\", that._updateColumnsLockedStateHandler);\n }\n }\n\n if (that.menu) {\n that.menu.element.off(NS);\n that.menu.destroy();\n }\n\n that.wrapper.off(NS);\n\n if (that.popup) {\n that.popup.destroy();\n }\n\n if (that.view) {\n that.view.purge();\n }\n\n that.link.off(NS);\n that.owner = null;\n that.wrapper = null;\n that.element = null;\n },\n\n close: function() {\n if (this.menu) {\n this.menu.close();\n }\n if (this.popup) {\n this.popup.close();\n this.popup.element.off(\"keydown\" + NS);\n }\n },\n\n _click: function(e) {\n var that = this;\n\n e.preventDefault();\n e.stopPropagation();\n\n var options = this.options;\n\n if (options.filter && this.element.is(!options.filter)) {\n return;\n }\n\n if (!this.popup && !this.pane) {\n this._init();\n } else {\n that._updateMenuItems();\n }\n\n if (this._isMobile) {\n this.pane.navigate(this.view, this.options.animations.left);\n } else {\n this.popup.toggle();\n }\n },\n\n _updateMenuItems: function() {\n var that = this;\n if (that.options.columns) {\n that._setMenuItemsVisibility();\n if (!that.options.columns.sort && !that.options.columns.groups) {\n that._reorderMenuItems();\n } else {\n that._updateDataIndexes();\n }\n }\n },\n\n _setMenuItemsVisibility: function() {\n var that = this;\n\n that._eachRenderedMenuItem(function(index, column, renderedListElement) {\n if (column.matchesMedia === false) {\n renderedListElement.hide();\n } else {\n renderedListElement.show();\n }\n });\n },\n\n _reorderMenuItems: function() {\n var that = this;\n\n that._eachRenderedMenuItem(function(index, column, renderedListElement, renderedList) {\n if (renderedListElement[0] && renderedListElement.index() !== index) {\n insertElementAt(index, renderedListElement, renderedList);\n }\n });\n that._updateDataIndexes();\n },\n\n _updateDataIndexes: function() {\n var that = this;\n var renderedList = that._isMobile && that.view ?\n $(that.view.element).find(\".k-columns-item\").children(\"ul\") :\n $(that.wrapper).find(\".k-menu-group\").first(),\n mappedColumns = that._ownerColumns(true).map(function(x) {\n return x.title || x.field;\n });\n\n renderedList.find(\"span.\" + (this._isMobile ? \"k-listgroup-form-field-wrapper\" : \"k-menu-link\") +\n \" input\").each(function(i) {\n var columns;\n var index;\n if (that.options.columns.sort) {\n columns = that._ownerColumns();\n index = mappedColumns.indexOf(columns[i].title);\n $(this).attr(kendo.attr(\"index\"), index);\n } else {\n $(this).attr(kendo.attr(\"index\"), i);\n }\n });\n },\n\n _eachRenderedMenuItem: function(callback) {\n var that = this;\n var renderedListElement;\n var duplicateColumnIndex;\n var fieldValue;\n var currentColumn;\n var columns = grep(leafColumns(that.owner.columns), function(col) {\n var result = true,\n title = trim(col.title || \"\");\n\n if (col.menu === false || (!col.field && !title.length)) {\n result = false;\n }\n\n return result;\n }).map(function(col) {\n return {\n field: col.field,\n title: col.title,\n matchesMedia: col.matchesMedia\n };\n });\n var renderedList = that._getRenderedList();\n var renderedListElements = that._getRenderedListElements(renderedList);\n var oldOccurances = oldColumnOccurrences(renderedListElements, renderedList.find(\"input[type=checkbox]\"));\n var columnOccurrence = columnOccurrences(columns);\n var columnElements;\n\n for (var i = 0; i < columns.length; i++) {\n currentColumn = columns[i];\n fieldValue = currentColumn.field ? currentColumn.field : currentColumn.title;\n duplicateColumnIndex = $.inArray(i, columnOccurrence[JSON.stringify(currentColumn)]);\n columnElements = $();\n\n for (var idx = 0; idx < oldOccurances[fieldValue].length; idx++) {\n columnElements = columnElements.add(renderedListElements.eq(oldOccurances[fieldValue][idx]));\n }\n renderedListElement = columnElements.find(attrEquals(\"field\", fieldValue)).closest(that._isModernComponentType() ? \"label\" : \"li\").eq(duplicateColumnIndex);\n callback(i, currentColumn, renderedListElement, renderedList);\n }\n },\n\n _getRenderedList: function() {\n var that = this;\n\n if (that._isModernComponentType()) {\n return $(that.wrapper).find('.k-columns-item');\n } else {\n return that._isMobile && that.view ?\n $(that.view.element).find(\".k-columns-item\").children(\"ul\") :\n $(that.wrapper).find(\".k-menu-group\").first();\n }\n },\n\n _getRenderedListElements: function(renderedList) {\n var that = this;\n\n if (that._isModernComponentType()) {\n return renderedList.find('label');\n } else {\n return renderedList.find(\"span.\" + (this._isMobile ? \"k-listgroup-form-field-wrapper\" : \"k-menu-link\"));\n }\n },\n\n _open: function() {\n var that = this,\n instance, menuitem;\n\n $(\".k-column-menu\").not(that.wrapper).each(function() {\n $(this).data(POPUP).close();\n });\n that.popup.element.off(\"keydown\" + NS).on(\"keydown\" + NS, function(e) {\n var target = $(e.target);\n\n if (that._isModernComponentType() && e.keyCode === kendo.keys.ENTER) {\n target.click();\n }\n if (e.keyCode == kendo.keys.ESC) {\n instance = kendo.widgetInstance(target.find(\"select\"));\n\n if (target.hasClass(\"k-picker\") &&\n instance &&\n instance.popup.visible()) {\n e.stopPropagation();\n return;\n }\n\n menuitem = target.closest(\".k-popup\").closest(\".k-menu-item\");\n\n if (menuitem.length > 0) {\n menuitem.addClass(\"k-focus\");\n\n if (that.menu) {\n that.menu.element.trigger(\"focus\");\n } else {\n that.popup.element.find('[tabindex=0]').eq(0).trigger(\"focus\");\n }\n }\n\n target.closest(\".k-popup\").getKendoPopup().close();\n }\n });\n\n if (that.options.hasLockableColumns) {\n that._updateLockedColumns();\n }\n\n if (that.options.hasStickableColumns) {\n that._updateStickyColumns();\n }\n\n if (that.options.reorderable) {\n that._updateReorderColumns();\n }\n\n if (that.options.groupable) {\n that._updateGroupColumns();\n }\n },\n\n _activate: function() {\n if (this.menu) {\n this.menu.element.trigger(\"focus\");\n } else {\n this.popup.element.find('[tabindex=0]').eq(0).trigger(\"focus\");\n }\n\n this.trigger(OPEN, { field: this.field, container: this.wrapper });\n },\n\n _ownerColumns: function(omitSort) {\n var columns = leafColumns(this.owner.columns),\n menuColumns = grep(columns, function(col) {\n var result = true,\n title = trim(col.title || \"\");\n\n if (col.menu === false || (!col.field && !title.length)) {\n result = false;\n }\n\n return result;\n }),\n result,\n sort = this.options.columns.sort;\n\n result = map(menuColumns, function(col) {\n return {\n originalField: col.field,\n field: col.field || col.title,\n title: col.title || col.field,\n hidden: col.hidden,\n matchesMedia: col.matchesMedia,\n index: inArray(col, columns),\n locked: !!col.locked,\n _originalObject: col,\n uid: col.headerAttributes.id\n };\n });\n\n if (sort && !omitSort) {\n result.sort(Comparer.create({ field: \"title\", dir: sort }));\n }\n\n return result;\n },\n\n _sort: function() {\n var that = this;\n\n if (that.options.sortable) {\n that.refresh();\n\n if (that._isModernComponentType()) {\n that.wrapper.on(\"click\" + NS, \".k-sort-asc, .k-sort-desc\", that._sortHandler.bind(that));\n } else {\n that.menu.bind(SELECT, that._sortHandler.bind(that));\n }\n }\n },\n\n _sortHandler: function(e) {\n var that = this,\n item = e.item ? $(e.item) : $(e.target),\n dir;\n\n if (item.hasClass(\"k-sort-asc\")) {\n dir = ASC;\n } else if (item.hasClass(\"k-sort-desc\")) {\n dir = DESC;\n }\n\n if (!dir) {\n return;\n }\n\n that._getSortItemsContainer(item).find(\".k-sort-\" + (dir == ASC ? DESC : ASC)).removeClass(ACTIVE);\n\n that._sortDataSource(item, dir);\n\n if (!that._isMobile) {\n that.close();\n }\n },\n\n _getSortItemsContainer: function(item) {\n return this._isModernComponentType() ? item.parents('.k-columnmenu-item-wrapper').first() : item.parent();\n },\n\n _sortDataSource: function(item, dir) {\n var that = this,\n sortable = that.options.sortable,\n compare = sortable.compare === null ? undefined$1 : sortable.compare,\n dataSource = that.dataSource,\n idx,\n length,\n sort = dataSource.sort() || [];\n\n var removeClass = item.hasClass(ACTIVE) && sortable && sortable.allowUnsort !== false;\n\n dir = !removeClass ? dir : undefined$1;\n\n if (that.trigger(\"sort\", { sort: { field: that.field, dir: dir, compare: compare } })) {\n return;\n }\n\n if (removeClass) {\n item.removeClass(ACTIVE);\n } else {\n item.addClass(ACTIVE);\n }\n\n if (sortable.mode === \"multiple\") {\n for (idx = 0, length = sort.length; idx < length; idx++) {\n if (sort[idx].field === that.field) {\n sort.splice(idx, 1);\n break;\n }\n }\n sort.push({ field: that.field, dir: dir, compare: compare });\n } else {\n sort = [ { field: that.field, dir: dir, compare: compare } ];\n }\n\n dataSource.sort(sort);\n },\n\n _columns: function() {\n var that = this;\n\n if (that.options.columns) {\n\n that._updateColumnsMenu();\n\n that._updateColumnsMenuHandler = that._updateColumnsMenu.bind(that);\n\n that.owner.bind([\"columnHide\", \"columnShow\"], that._updateColumnsMenuHandler);\n\n that._updateColumnsLockedStateHandler = that._updateColumnsLockedState.bind(that);\n\n that.owner.bind([\"columnUnlock\", \"columnLock\" ], that._updateColumnsLockedStateHandler);\n\n if (that._isModernComponentType()) {\n that.wrapper.on(\"click\" + NS, '.k-columns-item .k-button:not(.k-button-solid-primary)', function() {\n that._updateColumnsMenu();\n });\n that.wrapper.on(\"click\" + NS, '.k-columns-item .k-button.k-button-solid-primary', that._applyColumnVisibility.bind(that));\n that.wrapper.on(\"click\" + NS, '.k-columns-item .k-checkbox', function() {\n that._updateColumnsMenu(true);\n });\n } else {\n that.menu.bind(SELECT, function(e) {\n var item = $(e.item),\n input,\n column,\n uidAttr = kendo.attr(\"uid\"),\n colIdx = 0,\n columns = grep(leafColumns(that.owner.columns), function(col) {\n var result = true,\n title = trim(col.title || \"\");\n\n if (col.menu === false || (!col.field && !title.length)) {\n result = false;\n }\n\n return result;\n });\n\n if (that._isMobile) {\n e.preventDefault();\n }\n\n if (!item.parent().closest(\"li.k-columns-item\")[0]) {\n return;\n }\n\n input = item.find(\":checkbox\");\n if (input.attr(\"disabled\")) {\n return;\n }\n\n colIdx = columns.map(function(col) {\n return col.headerAttributes.id;\n }).indexOf(input.attr(uidAttr));\n column = columns[colIdx];\n\n if (column.hidden === true) {\n that.owner.showColumn(column);\n } else {\n that.owner.hideColumn(column);\n }\n });\n }\n }\n },\n\n _applyColumnVisibility: function() {\n var that = this;\n var fieldAttr = kendo.attr(\"field\");\n var uidAttr = kendo.attr(\"uid\");\n var checkboxes = that.wrapper.find(\".k-columns-item input[\" + fieldAttr + \"]\");\n var columnsInMenu = grep(leafColumns(this.owner.columns), function(col) {\n var result = true,\n title = trim(col.title || \"\");\n\n if (col.menu === false || (!col.field && !title.length)) {\n result = false;\n }\n\n return result;\n });\n var length = checkboxes.length;\n var idx;\n var colIdx;\n var checkbox;\n var column;\n\n that.owner.unbind(\"columnShow\", that._updateColumnsMenuHandler);\n that.owner.unbind(\"columnHide\", that._updateColumnsMenuHandler);\n\n for (idx = 0; idx < length; idx++) {\n checkbox = $(checkboxes[idx]);\n colIdx = columnsInMenu.map(function(col) {\n return col.headerAttributes.id;\n }).indexOf(checkbox.attr(uidAttr));\n column = columnsInMenu[colIdx];\n\n if (checkbox.is(\":checked\") && column.hidden) {\n that.owner.showColumn(column);\n } else if (checkbox.is(\":not(:checked)\") && !column.hidden) {\n that.owner.hideColumn(column);\n }\n }\n that.popup.close();\n that.owner.bind([\"columnHide\", \"columnShow\"], that._updateColumnsMenuHandler);\n },\n\n _updateColumnsMenu: function(omitCheckState) {\n var idx, length, current, checked, locked, that = this;\n var fieldAttr = kendo.attr(\"field\"),\n lockedAttr = kendo.attr(\"locked\"),\n uidAttr = kendo.attr(\"uid\"),\n columnIndexMap = {},\n columnsCount = 0,\n colIdx = 0;\n omitCheckState = omitCheckState === true;\n var columnsInMenu = grep(leafColumns(this.owner.columns), function(col, idx) {\n var result = true,\n title = trim(col.title || \"\");\n\n if (col.menu === false || (!col.field && !title.length)) {\n result = false;\n }\n\n if (result) {\n columnIndexMap[idx] = columnsCount;\n columnsCount++;\n }\n\n return result;\n }),\n visibleFields = grep(this._ownerColumns(), function(field) {\n if (omitCheckState) {\n return that.wrapper.find(\"[role='menuitemcheckbox'] [\" + uidAttr + \"='\" + field.uid + \"']\").prop('checked');\n }\n return !field.hidden && field.matchesMedia !== false;\n }),\n visibleDataFields = grep(visibleFields, function(field) {\n return field.originalField;\n }),\n lockedCount = grep(visibleDataFields, function(col) {\n return col.locked === true;\n }).length,\n nonLockedCount = grep(visibleDataFields, function(col) {\n return col.locked !== true;\n }).length,\n columnsNotInMenu = grep(this.owner.columns, function(col) {\n return col.menu === false;\n }),\n hiddenColumnsNotInMenu = grep(columnsNotInMenu, function(col) {\n return col.hidden;\n });\n\n this.wrapper.find(\"[role='menuitemcheckbox']\").attr(\"aria-checked\", false);\n\n var checkboxes = this.wrapper\n .find(\".k-columns-item input[\" + fieldAttr + \"]\")\n .prop(\"disabled\", false);\n\n if (!omitCheckState) {\n checkboxes.prop(\"checked\", false);\n }\n\n var switchWidget;\n\n for (idx = 0, length = checkboxes.length; idx < length; idx ++) {\n current = checkboxes.eq(idx);\n locked = current.attr(lockedAttr) === \"true\";\n checked = false;\n switchWidget = current.data(\"kendoSwitch\");\n colIdx = columnsInMenu.map(function(col) {\n return col.headerAttributes.id;\n }).indexOf(current.attr(uidAttr));\n\n checked = omitCheckState ? current.prop('checked') : !columnsInMenu[colIdx].hidden && columnsInMenu[colIdx].matchesMedia !== false;\n current.prop(\"checked\", checked);\n\n if (switchWidget) {\n switchWidget.enable(true);\n switchWidget.check(checked);\n }\n\n current.closest(\"[role='menuitemcheckbox']\").attr(\"aria-checked\", checked);\n\n if (checked) {\n if (lockedCount == 1 && locked) {\n current.prop(\"disabled\", true);\n\n if (switchWidget) {\n switchWidget.enable(false);\n }\n }\n\n if ((columnsNotInMenu.length === 0 || (columnsNotInMenu.length === hiddenColumnsNotInMenu.length)) && nonLockedCount == 1 && !locked) {\n current.prop(\"disabled\", true);\n\n if (switchWidget) {\n switchWidget.enable(false);\n }\n }\n }\n }\n },\n\n _updateColumnsLockedState: function() {\n var idx, length, current, column;\n var fieldAttr = kendo.attr(\"field\");\n var lockedAttr = kendo.attr(\"locked\");\n var columns = toHash(this._ownerColumns(), \"field\");\n var checkboxes = this.wrapper\n .find(\".k-columns-item input[type=checkbox]\");\n\n for (idx = 0, length = checkboxes.length; idx < length; idx ++ ) {\n current = checkboxes.eq(idx);\n column = columns[current.attr(fieldAttr)];\n if (column) {\n current.attr(lockedAttr, column.locked);\n }\n }\n\n this._updateColumnsMenu();\n },\n\n _filter: function() {\n var that = this,\n widget = FILTERMENU,\n options = that.options;\n\n if (options.filterable !== false) {\n\n if (options.filterable.multi) {\n widget = \"kendoFilterMultiCheck\";\n if (options.filterable.dataSource) {\n options.filterable.checkSource = options.filterable.dataSource;\n delete options.filterable.dataSource;\n }\n }\n that.filterMenu = that.wrapper.find(\".k-filterable\")[widget](\n extend(true, {}, {\n appendToElement: true,\n dataSource: options.dataSource,\n values: options.values,\n field: that.field,\n title: that.title,\n change: function(e) {\n if (that.trigger(\"filtering\", { filter: e.filter, field: e.field })) {\n e.preventDefault();\n }\n },\n componentType: that.options.componentType,\n cycleForm: !that._isModernComponentType()\n },\n options.filterable)\n ).data(widget);\n\n if (that._isMobile) {\n that.menu.bind(SELECT, function(e) {\n var item = $(e.item);\n\n if (item.hasClass(\"k-filter-item\")) {\n that.pane.navigate(that.filterMenu.view, that.options.animations.left);\n }\n });\n }\n }\n },\n\n _lockColumns: function() {\n var that = this;\n\n if (that._isModernComponentType()) {\n that.wrapper.on(\"click\" + NS, \".k-lock, .k-unlock\", that._lockableHandler.bind(that));\n } else {\n that.menu.bind(SELECT, that._lockableHandler.bind(that));\n }\n },\n\n _lockableHandler: function(e) {\n var that = this;\n var item = e.item ? $(e.item) : $(e.target);\n\n if (item.hasClass(\"k-lock\")) {\n that.owner.lockColumn(that.field);\n if (!that._isMobile) {\n that.close();\n }\n } else if (item.hasClass(\"k-unlock\")) {\n that.owner.unlockColumn(that.field);\n if (!that._isMobile) {\n that.close();\n }\n }\n },\n\n _reorderColumns: function() {\n var that = this;\n\n if (that._isModernComponentType()) {\n that.wrapper.on(\"click\" + NS, \".k-move-prev, .k-move-next\", that._reorderHandler.bind(that));\n } else {\n that.menu.bind(SELECT, that._reorderHandler.bind(that));\n }\n },\n\n _reorderHandler: function(e) {\n var that = this;\n var item = e.item ? $(e.item) : $(e.target);\n\n if (item.hasClass(\"k-move-prev\")) {\n that.owner._moveColumn(that.element, true);\n if (!that._isMobile) {\n that.close();\n }\n } else if (item.hasClass(\"k-move-next\")) {\n that.owner._moveColumn(that.element, false);\n if (!that._isMobile) {\n that.close();\n }\n }\n },\n\n _groupColumn: function() {\n var that = this;\n\n if (that._isModernComponentType()) {\n that.wrapper.on(\"click\" + NS, \".k-group, .k-ungroup\", that._groupHandler.bind(that));\n } else {\n that.menu.bind(SELECT, that._groupHandler.bind(that));\n }\n },\n\n _groupHandler: function(e) {\n var that = this,\n item = e.item ? $(e.item) : $(e.target);\n\n if (item.hasClass(\"k-group\") || item.hasClass(\"k-ungroup\")) {\n that.owner._handleSpaceKey(that.element, true);\n\n if (!that._isMobile) {\n that.close();\n }\n }\n },\n\n _stickyColumns: function() {\n var that = this;\n\n if (that._isModernComponentType()) {\n that.wrapper.on(\"click\" + NS, \".k-stick, .k-unstick\", that._stickableHandler.bind(that));\n } else {\n that.menu.bind(SELECT, that._stickableHandler.bind(that));\n }\n },\n\n _stickableHandler: function(e) {\n var that = this;\n var item = e.item ? $(e.item) : $(e.target);\n var field = that.field;\n var columns = that.owner.columns;\n var column = grep(columns, function(column) {\n return column.field == field || column.title == field;\n })[0];\n\n if (item.hasClass(\"k-stick\")) {\n that.owner.stickColumn(that.field);\n that.trigger(STICK, { column: column });\n if (!that._isMobile) {\n that.close();\n }\n } else if (item.hasClass(\"k-unstick\")) {\n that.owner.unstickColumn(that.field);\n that.trigger(UNSTICK, { column: column });\n if (!that._isMobile) {\n that.close();\n }\n }\n },\n\n _updateLockedColumns: function() {\n var field = this.field;\n var columns = this.owner.columns;\n var column = grep(columns, function(column) {\n return column.field == field || column.title == field;\n })[0];\n\n if (!column) {\n return;\n }\n\n var locked = column.locked === true;\n var length = grep(columns, function(column) {\n return !column.hidden && ((column.locked && locked) || (!column.locked && !locked));\n }).length;\n var notLockable = column.lockable === false;\n\n var lockItem = this.wrapper.find(\".k-lock\").removeClass(\"k-disabled\").removeAttr(\"aria-disabled\");\n var unlockItem = this.wrapper.find(\".k-unlock\").removeClass(\"k-disabled\").removeAttr(\"aria-disabled\");\n\n if (locked || length == 1 || notLockable) {\n lockItem.addClass(\"k-disabled\").attr(\"aria-disabled\", \"true\");\n }\n\n if (!locked || length == 1 || notLockable) {\n unlockItem.addClass(\"k-disabled\").attr(\"aria-disabled\", \"true\");\n }\n\n this._updateColumnsLockedState();\n },\n\n _updateStickyColumns: function() {\n var field = this.field;\n var columns = this.owner.columns;\n var column = grep(columns, function(column) {\n return column.field == field || column.title == field;\n })[0];\n\n if (!column) {\n return;\n }\n\n var sticky = column.sticky === true;\n var stickable = column.stickable === true;\n var locked = column.locked === true;\n var length = grep(columns, function(column) {\n return !column.hidden && ((column.locked && locked) || (!column.locked && !locked));\n }).length;\n\n var stickItem = this.wrapper.find(\".k-stick\").removeClass(\"k-disabled\").removeAttr(\"aria-disabled\");\n var unstickItem = this.wrapper.find(\".k-unstick\").removeClass(\"k-disabled\").removeAttr(\"aria-disabled\");\n\n if (sticky || !stickable || (locked && length === 1)) {\n stickItem.addClass(\"k-disabled\").attr(\"aria-disabled\", \"true\");\n }\n\n if (!sticky || !stickable) {\n unstickItem.addClass(\"k-disabled\").attr(\"aria-disabled\", \"true\");\n }\n },\n\n _updateReorderColumns: function() {\n var element = this.element,\n elementIndex = element.index(),\n numberOfSiblings = element.parent().children().length;\n\n var prevItem = this.wrapper.find(\".k-move-prev\").removeClass(\"k-disabled\").removeAttr(\"aria-disabled\");\n var nextItem = this.wrapper.find(\".k-move-next\").removeClass(\"k-disabled\").removeAttr(\"aria-disabled\");\n\n if (this.element.index() === 0) {\n prevItem.addClass(\"k-disabled\").attr(\"aria-disabled\", \"true\");\n }\n\n if (elementIndex + 1 === numberOfSiblings) {\n nextItem.addClass(\"k-disabled\").attr(\"aria-disabled\", \"true\");\n }\n },\n\n _updateGroupColumns: function() {\n var element = this.element,\n wrapper = this.wrapper,\n groupEl = wrapper.find(\".k-group\"),\n ungroupEl = wrapper.find(\".k-ungroup\");\n\n if (this.owner.groupable._canDrag(element)) {\n groupEl.removeClass(\"k-hidden\");\n ungroupEl.addClass(\"k-hidden\");\n } else {\n groupEl.addClass(\"k-hidden\");\n ungroupEl.removeClass(\"k-hidden\");\n }\n },\n\n refresh: function() {\n var that = this,\n sort = that.options.dataSource.sort() || [],\n descriptor,\n field = that.field,\n idx,\n length;\n\n that.wrapper.find(\".k-sort-asc, .k-sort-desc\").removeClass(ACTIVE);\n\n for (idx = 0, length = sort.length; idx < length; idx++) {\n descriptor = sort[idx];\n\n if (field == descriptor.field) {\n that.wrapper.find(\".k-sort-\" + descriptor.dir).addClass(ACTIVE);\n }\n }\n\n that.link[that._filterExist(that.dataSource.filter()) ? \"addClass\" : \"removeClass\"](\"k-active\");\n },\n\n _filterExist: function(filters) {\n var found = false;\n var filter;\n\n if (!filters) {\n return;\n }\n\n filters = filters.filters;\n\n for (var idx = 0, length = filters.length; idx < length; idx++) {\n filter = filters[idx];\n\n if (filter.field == this.field) {\n found = true;\n } else if (filter.filters) {\n found = found || this._filterExist(filter);\n }\n }\n\n return found;\n }\n });\n\n /* ------------------------- MODERN TEMPLATE ------------------------- */\n\n function modernColumnsTemplateIterator(columns, encodeTitles, ns) {\n return columns.map(function (column) {\n if (column.groupHeader) {\n return (\"\" + (column.title) + \"\");\n } else {\n return (\"\");\n }\n }).join(\"\");\n }\n\n var SORTABLE_PARTIAL_MODERN = function (ref) {\n var messages = ref.messages;\n\n return (\"
\" + (kendo.ui.icon(\"sort-asc-small\")) + (encode(messages.sortAscending)) + \"
\" + (kendo.ui.icon(\"sort-desc-small\")) + (encode(messages.sortDescending)) + \"
\");\n };\n\n var COLUMNS_PARTIAL_MODERN = function (ref) {\n var columns = ref.columns;\n var messages = ref.messages;\n var encodeTitles = ref.encodeTitles;\n var ns = ref.ns;\n\n return \"
\" + (modernColumnsTemplateIterator(columns, encodeTitles, ns)) + \"
\" +\n kendo.html.renderButton((\"\"), { themeColor: \"primary\", icon: \"check\" }) +\n kendo.html.renderButton((\"\"), { icon: \"undo\" }) +\n \"
\";\n };\n\n var GROUPABLE_PARTIAL_MODERN = function (ref) {\n var messages = ref.messages;\n\n return (\"
\" + (kendo.ui.icon(\"group\")) + (encode(messages.groupColumn)) + \"
\\n
\" + (kendo.ui.icon(\"ungroup\")) + (encode(messages.ungroupColumn)) + \"
\");\n };\n\n var LOCKABLE_COLUMNS_PARTIAL_MODERN = function (ref) {\n var messages = ref.messages;\n\n return (\"
\" + (kendo.ui.icon(\"lock\")) + (encode(messages.lock)) + \"
\" + (kendo.ui.icon(\"unlock\")) + (encode(messages.unlock)) + \"
\");\n };\n\n var STICKABLE_COLUMNS_PARTIAL_MODERN = function (ref) {\n var messages = ref.messages;\n\n return (\"
\" + (kendo.ui.icon(\"stick\")) + (encode(messages.stick)) + \"
\" + (kendo.ui.icon(\"unstick\")) + (encode(messages.unstick)) + \"
\");\n };\n\n var REORDERABLE_COLUMNS_PARTIAL_MODERN = function (ref) {\n var messages = ref.messages;\n\n return (\"
\" + (kendo.ui.icon(\"caret-alt-left\")) + (encode(messages.movePrev)) + \"
\" + (kendo.ui.icon(\"caret-alt-right\")) + (encode(messages.moveNext)) + \"
\");\n };\n\n var LOCK_STICK_COLUMNS_PARTIAL_MODERN = function (ref) {\n var hasLockableColumns = ref.hasLockableColumns;\n var hasStickableColumns = ref.hasStickableColumns;\n var messages = ref.messages;\n var reorderable = ref.reorderable;\n\n return (\"
\" + (hasLockableColumns ? LOCKABLE_COLUMNS_PARTIAL_MODERN({ messages: messages }) : '') + \"\" + (hasStickableColumns ? STICKABLE_COLUMNS_PARTIAL_MODERN({ messages: messages }) : '') + \"\" + (reorderable ? REORDERABLE_COLUMNS_PARTIAL_MODERN({ messages: messages }) : '') + \"
\");\n };\n\n var modernTemplate = function (ref) {\n var sortable = ref.sortable;\n var filterable = ref.filterable;\n var showColumns = ref.showColumns;\n var messages = ref.messages;\n var columns = ref.columns;\n var hasLockableColumns = ref.hasLockableColumns;\n var hasStickableColumns = ref.hasStickableColumns;\n var encodeTitles = ref.encodeTitles;\n var ns = ref.ns;\n var reorderable = ref.reorderable;\n var groupable = ref.groupable;\n\n return (\"\" + (sortable ? SORTABLE_PARTIAL_MODERN({ messages: messages }) : '') + \"\" + (showColumns ? COLUMNS_PARTIAL_MODERN({ columns: columns, messages: messages, encodeTitles: encodeTitles, ns: ns }) : '') + \"\" + (filterable ? '
' : '') + \"\" + (groupable ? GROUPABLE_PARTIAL_MODERN({ messages: messages }) : '') + \"\" + (hasLockableColumns || hasStickableColumns || reorderable ? LOCK_STICK_COLUMNS_PARTIAL_MODERN({ hasLockableColumns: hasLockableColumns, hasStickableColumns: hasStickableColumns, messages: messages, reorderable: reorderable }) : ''));\n };\n\n /* ------------------------- CLASSIC TEMPLATE ------------------------- */\n\n function classicColumnsTemplateIterator(columns, encodeTitles, ns, omitWrapAttribute) {\n return columns.map(function (column) {\n if (column.groupHeader) {\n return (\"
  • \" + (column.title) + \"
  • \");\n } else {\n return (\"
  • \" + (encodeTitles ? encode(column.title) : column.title) + \"
  • \");\n }\n }).join(\"\");\n }\n\n var SORTABLE_PARTIAL_CLASSIC = function (ref) {\n var messages = ref.messages;\n var showColumns = ref.showColumns;\n var filterable = ref.filterable;\n\n return (\"
  • \" + (kendo.ui.icon(\"sort-asc-small\")) + \"\" + (encode(messages.sortAscending)) + \"
  • \" + (kendo.ui.icon(\"sort-desc-small\")) + \"\" + (encode(messages.sortDescending)) + \"
  • \" + (showColumns || filterable ? '
  • ' : ''));\n };\n\n var COLUMNS_PARTIAL_CLASSIC = function (ref) {\n var columns = ref.columns;\n var messages = ref.messages;\n var encodeTitles = ref.encodeTitles;\n var ns = ref.ns;\n var omitWrapAttribute = ref.omitWrapAttribute;\n var filterable = ref.filterable;\n var hasLockableColumns = ref.hasLockableColumns;\n var hasStickableColumns = ref.hasStickableColumns;\n\n return (\"
  • \" + (kendo.ui.icon(\"columns\")) + \"\" + (encode(messages.columns)) + \"
  • \" + (filterable || hasLockableColumns || hasStickableColumns ? '
  • ' : ''));\n };\n\n var FILTERABLE_PARTIAL_CLASSIC = function (ref) {\n var messages = ref.messages;\n var hasLockableColumns = ref.hasLockableColumns;\n var hasStickableColumns = ref.hasStickableColumns;\n var reorderable = ref.reorderable;\n\n return (\"
  • \" + (kendo.ui.icon(\"filter\")) + \"\" + (encode(messages.filter)) + \"
  • \" + (hasLockableColumns || hasStickableColumns || reorderable ? '
  • ' : ''));\n };\n\n var GROUPABLE_PARTIAL_CLASSIC = function (ref) {\n var messages = ref.messages;\n var hasLockStickMove = ref.hasLockStickMove;\n\n return (\"
  • \" + (kendo.ui.icon(\"group\")) + \"\" + (encode(messages.groupColumn)) + \"
  • \" + (kendo.ui.icon(\"ungroup\")) + \"\" + (encode(messages.ungroupColumn)) + \"
  • \" + (hasLockStickMove ? '
  • ' : ''));\n };\n\n var LOCKABLE_COLUMNS_PARTIAL_CLASSIC = function (ref) {\n var messages = ref.messages;\n var hasStickableColumns = ref.hasStickableColumns;\n\n return (\"
  • \" + (kendo.ui.icon(\"lock\")) + \"\" + (encode(messages.lock)) + \"
  • \" + (kendo.ui.icon(\"unlock\")) + \"\" + (encode(messages.unlock)) + \"
  • \" + (hasStickableColumns ? '
  • ' : ''));\n };\n\n var STICKABLE_COLUMNS_PARTIAL_CLASSIC = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"stick\")) + \"\" + (encode(messages.stick)) + \"
  • \" + (kendo.ui.icon(\"unstick\")) + \"\" + (encode(messages.unstick)) + \"
  • \");\n };\n\n var REORDERABLE_COLUMNS_PARTIAL_CLASSIC = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"caret-alt-left\")) + \"\" + (encode(messages.movePrev)) + \"
  • \" + (kendo.ui.icon(\"caret-alt-right\")) + \"\" + (encode(messages.moveNext)) + \"
  • \");\n };\n\n var LOCK_STICK_COLUMNS_PARTIAL_CLASSIC = function (ref) {\n var messages = ref.messages;\n var hasLockableColumns = ref.hasLockableColumns;\n var hasStickableColumns = ref.hasStickableColumns;\n var reorderable = ref.reorderable;\n\n return (\"
  • \" + (kendo.ui.icon(\"set-column-position\")) + \"\" + (encode(messages.setColumnPosition)) + \"
  • \");\n };\n\n var template = function (ref) {\n var uid = ref.uid;\n var sortable = ref.sortable;\n var filterable = ref.filterable;\n var showColumns = ref.showColumns;\n var messages = ref.messages;\n var columns = ref.columns;\n var hasLockableColumns = ref.hasLockableColumns;\n var hasStickableColumns = ref.hasStickableColumns;\n var encodeTitles = ref.encodeTitles;\n var ns = ref.ns;\n var omitWrapAttribute = ref.omitWrapAttribute;\n var reorderable = ref.reorderable;\n var groupable = ref.groupable;\n\n return (\"\");\n };\n\n /* ------------------------- MOBILE TEMPLATE ------------------------- */\n\n function mobileColumnsTemplateIterator(columns, groups, ns, hasGroups) {\n var result = \"\";\n\n if (hasGroups) {\n for (var i = 0; i < groups.length; i++) {\n result += \"\" + (encode(groups[i].title)) + \"\";\n }\n } else {\n result += \"\";\n }\n\n return result;\n }\n\n var SORTABLE_PARTIAL_MOBILE = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"sort-asc-small\")) + \"\" + (encode(messages.sortAscending)) + \"
  • \" + (kendo.ui.icon(\"sort-desc-small\")) + \"\" + (encode(messages.sortDescending)) + \"
  • \");\n };\n\n var LOCKABLE_COLUMNS_PARTIAL_MOBILE = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"lock\")) + \"\" + (encode(messages.lock)) + \"
  • \" + (kendo.ui.icon(\"unlock\")) + \"\" + (encode(messages.unlock)) + \"
  • \");\n };\n\n var STICKABLE_COLUMNS_PARTIAL_MOBILE = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"stick\")) + \"\" + (encode(messages.stick)) + \"
  • \" + (kendo.ui.icon(\"unstick\")) + \"\" + (encode(messages.unstick)) + \"
  • \");\n };\n\n var REORDERABLE_COLUMNS_PARTIAL_MOBILE = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"caret-alt-left\")) + \"\" + (encode(messages.movePrev)) + \"
  • \" + (kendo.ui.icon(\"caret-alt-right\")) + \"\" + (encode(messages.moveNext)) + \"
  • \");\n };\n\n var FILTERABLE_PARTIAL_MOBILE = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"filter\")) + \"\" + (encode(messages.filter)) + \"\" + (kendo.ui.icon(\"chevron-right\")) + \"
  • \");\n };\n\n var GROPABLE_PARTIAL_MOBILE = function (ref) {\n var messages = ref.messages;\n\n return (\"
  • \" + (kendo.ui.icon(\"group\")) + \"\" + (encode(messages.groupColumn)) + \"
  • \" + (kendo.ui.icon(\"ungroup\")) + \"\" + (encode(messages.ungroupColumn)) + \"
  • \");\n };\n\n var COLUMNS_PARTIAL_MOBILE = function (ref) {\n var messages = ref.messages;\n var hasGroups = ref.hasGroups;\n var columns = ref.columns;\n var groups = ref.groups;\n var ns = ref.ns;\n\n return (\"
  • \" + (messages.columnVisibility) + \"\" + (mobileColumnsTemplateIterator(columns, groups, ns, hasGroups)) + \"
  • \");\n };\n\n var mobileTemplate = function (ref) {\n var messages = ref.messages;\n var title = ref.title;\n var sortable = ref.sortable;\n var filterable = ref.filterable;\n var showColumns = ref.showColumns;\n var hasLockableColumns = ref.hasLockableColumns;\n var hasStickableColumns = ref.hasStickableColumns;\n var hasGroups = ref.hasGroups;\n var columns = ref.columns;\n var groups = ref.groups;\n var ns = ref.ns;\n var reorderable = ref.reorderable;\n var groupable = ref.groupable;\n\n return (\"
    • \" + (encode(messages.column)) + \": \" + title + \"
        \" + (sortable ? SORTABLE_PARTIAL_MOBILE({ messages: messages }) : '') + \"\" + (hasLockableColumns ? LOCKABLE_COLUMNS_PARTIAL_MOBILE({ messages: messages }) : '') + \"\" + (hasStickableColumns ? STICKABLE_COLUMNS_PARTIAL_MOBILE({ messages: messages }) : '') + \"\" + (reorderable ? REORDERABLE_COLUMNS_PARTIAL_MOBILE({ messages: messages }) : '') + \"\" + (filterable ? FILTERABLE_PARTIAL_MOBILE({ messages: messages }) : '') + \"\" + (groupable ? GROPABLE_PARTIAL_MOBILE({ messages: messages }) : '') + \"
    • \" + (showColumns ? COLUMNS_PARTIAL_MOBILE({ messages: messages, hasGroups: hasGroups, columns: columns, groups: groups, ns: ns }) : '') + \"
      • \" + (encode(messages.clear)) + \"
    \");\n };\n\n var MobileMenu = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that._createCheckBoxes();\n\n that.element.on(\"click\" + NS, \"li.k-item:not(.k-separator):not(.k-disabled):not(:has(.k-switch))\", \"_click\");\n },\n\n events: [ SELECT ],\n\n _click: function(e) {\n var that = this;\n\n if (!$(e.target).is(\"[type=checkbox]\")) {\n e.preventDefault();\n }\n\n if ($(e.target).hasClass(\"k-clear\")) {\n that._cancelChanges(true);\n\n return;\n }\n\n if ($(e.target).hasClass(\"k-filterable\")) {\n that._cancelChanges(true);\n that.trigger(SELECT, { item: e.currentTarget });\n\n return;\n }\n\n that._updateSelectedItems(e.currentTarget);\n },\n\n _updateSelectedItems: function(el) {\n var that = this;\n var item = $(el);\n var state = that.options.columnMenu.view.state || { columns: {} };\n var id = item.prop(\"id\");\n\n if (item.hasClass(\"k-filter-item\")) {\n return;\n }\n\n if (state[id]) {\n state[id] = false;\n } else {\n state[id] = true;\n }\n\n if (item.hasClass(\"k-sort-asc\") || item.hasClass(\"k-sort-desc\")) {\n var dir;\n var otherItem;\n var otherItemId;\n\n if (item.hasClass(\"k-sort-asc\")) {\n dir = \"asc\";\n otherItem = that.element.find(\".k-sort-desc\");\n } else {\n dir = \"desc\";\n otherItem = that.element.find(\".k-sort-asc\");\n }\n\n otherItemId = otherItem.prop(\"id\");\n\n if (dir === state.initialSort && !item.hasClass(\"k-selected\")) {\n state[id] = false;\n }\n\n if (state[otherItemId]) {\n state[otherItemId] = false;\n }\n\n otherItem.removeClass(ACTIVE);\n }\n\n if (item.hasClass(ACTIVE)) {\n item.removeClass(ACTIVE);\n } else {\n item.addClass(ACTIVE);\n }\n },\n\n _cancelChanges: function(force) {\n var that = this;\n var menu = that.options.columnMenu;\n var view = menu.view;\n var state = view.state || { columns: {} };\n var columns = state.columns;\n\n that.element.find(\".\" + ACTIVE).removeClass(ACTIVE);\n menu.refresh();\n\n if (force) {\n var selectedItems = [];\n\n for (var key in columns) {\n if (columns.hasOwnProperty(key)) {\n if (columns[key] === true) {\n var item = view.element.find(\"#\" + key);\n\n selectedItems.push(item[0]);\n }\n }\n }\n // In order to use the columns hide/show validation,\n // triggering the Select event must be done backwards\n for (var i = selectedItems.length - 1; i >= 0; i--) {\n that.trigger(SELECT, { item: selectedItems[i] });\n }\n\n if (menu.options.hasLockableColumns) {\n menu._updateLockedColumns();\n }\n\n if (menu.options.hasStickableColumns) {\n menu._updateStickyColumns();\n }\n\n if (menu.options.reorderable) {\n menu._updateReorderColumns();\n }\n\n if (menu.options.groupable) {\n menu._updateGroupColumns();\n }\n }\n\n that.options.columnMenu.view.state = { columns: {} };\n },\n\n _applyChanges: function() {\n var that = this;\n var view = that.options.columnMenu.view;\n var state = view.state || { columns: {} };\n\n for (var key in state) {\n if (state.hasOwnProperty(key)) {\n if (key !== \"initialSort\" && key !== \"columns\" && state[key] === true) {\n var item = view.element.find(\"#\" + key);\n\n if (item.hasClass(ACTIVE)) {\n item.removeClass(ACTIVE);\n } else {\n item.addClass(ACTIVE);\n }\n\n that.trigger(SELECT, { item: item[0] });\n }\n }\n }\n },\n\n _createCheckBoxes: function() {\n var that = this;\n\n that.element.find(\".k-columns-item\").find(\"[type='checkbox']\").kendoSwitch({\n messages: {\n checked: \"\",\n unchecked: \"\"\n },\n change: function(e) {\n var item = e.sender.element.closest(\".k-item\");\n var state = that.options.columnMenu.view.state || { columns: {} };\n var id = item.prop(\"id\");\n\n if (state.columns[id]) {\n state.columns[id] = false;\n } else {\n state.columns[id] = true;\n }\n\n that.trigger(SELECT, { item: item });\n }\n });\n },\n\n _destroyCheckBoxes: function() {\n var that = this;\n var elements = that.element.find(\".k-columns-item\").find(\"[type='checkbox']\");\n var switchWidget;\n\n for (var i = 0; i < elements.length; i++) {\n switchWidget = elements.eq(i).data(\"kendoSwitch\");\n\n if (switchWidget) {\n switchWidget.destroy();\n }\n }\n },\n\n close: function() {\n this.options.pane.navigate(\"\");\n },\n\n destroy: function() {\n var that = this;\n\n Widget.fn.destroy.call(that);\n\n that.element.off(NS);\n that._destroyCheckBoxes();\n }\n });\n\n ui.plugin(ColumnMenu);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}