{"version":3,"file":"kendo.pivot.fieldmenu.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","ui","MENU","NS","Widget","FILTER_ITEM","ARIA_LABEL","PivotFieldMenuV2","extend","init","element","options","fn","call","this","_dataSource","_layout","notify","events","name","animation","expand","effects","duration","collapse","hide","reverse","filter","filterable","sortable","messages","apply","sortAscending","sortDescending","filterFields","include","clear","reset","operators","contains","doesnotcontain","startswith","endswith","eq","neq","destroy","menu","off","_applyProxy","_resetIncludes","treeView","wrapper","setDataSource","dataSource","_createTreeView","that","_includesCache","TreeView","autoBind","_treeViewDataSource","dataTextField","template","check","e","dataItem","sender","node","uniqueName","checkboxes","checkChildren","data","PivotDataSourceV2","create","MENUTEMPLATEV2","ns","target","orientation","showOn","closeOnClick","open","_menuOpen","bind","close","_closeMenu","copyAnchorStyles","_checkActiveProxy","_initFilterForm","_attachFilterHandlers","find","_clickHandler","_click","on","activeElement","_activeElement","_filterOperator","closest","hasClass","preventDefault","HierarchicalDataSource","schema","model","id","hasChildren","item","parseInt","childrenCardinality","transport","read","catalog","cube","restrictions","fetchOptions","get","nodes","cubeSchema","members","currentMember","_getFilterStorage","findFilters","member","length","checked","values","idx","filters","operator","indexOf","map","ftr","value","inArray","checkNodesLocal","success","catalogName","cubeName","command","memberUniqueName","replace","treeOp","levelUniqueName","connection","discover","then","checkNodes","_storeFilterForm","_filterStorage","_filterValue","val","_clearFilterStorage","currentTarget","next","_toggle","_sort","_applyIncludesProxy","_applyIncludes","_resetIncludesProxy","_includesHandler","newExpression","view","nonCheckedNodes","removeFilters","logic","nodeIds","push","field","includeLocalExpression","resultExpression","checkedNodes","rootChecked","existingExpression","splice","join","includeExpression","_preventRefresh","checkbox","prop","_checkboxChange","filterForm","filterProxy","_filter","DropDownList","popup","appendTo","document","body","_filterForm","_updateFilterAriaLabel","_reset","selectedOperator","selectedOperatorName","attr","convert","expression","toRemove","removeFilterByValue","_setFilterForm","filterOperator","select","_collapseItems","items","removeClass","addClass","nextAll","content","animations","shouldExpand","is","kendoStop","kendoAnimate","dir","expressions","sort","removeExpr","event","filterBox","schemaCube","prev","text","_hovered","last","memberType","toLowerCase","show","_oldCurrentmember","PivotFieldMenu","info","title","ok","cancel","MENUTEMPLATE","_select","_createWindow","_clearFilters","PivotDataSource","includeWindow","WINDOWTEMPLATE","_closeWindow","Window","visible","resizable","_windowOpen","schemaMembers","done","fail","error","dataBound","progress","not","kendoWindow","center","fields","type","parseFloat","Boolean","parseJSON","result","operatorInUse","isLocal","split","checkState","level","children","plugin","jQuery"],"sources":["kendo.pivot.fieldmenu.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.pivotgrid', 'kendo.menu', 'kendo.window', 'kendo.treeview', 'kendo.dropdownlist'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"pivot.fieldmenu\",\n name: \"PivotFieldMenu\",\n category: \"web\",\n description: \"The PivotFieldMenu widget allows the user to filter on fields displayed in PivotGrid\",\n depends: [ \"menu\", \"window\", \"treeview\", \"treeview.draganddrop\", \"dropdownlist\" ],\n advanced: true\n };\n\n\n (function($, undefined$1) {\n var kendo = window.kendo;\n var ui = kendo.ui;\n var MENU = \"kendoContextMenu\";\n var NS = \".kendoPivotFieldMenu\";\n var Widget = ui.Widget;\n var FILTER_ITEM = \"k-filter-item\";\n var ARIA_LABEL = \"aria-label\";\n\n var PivotFieldMenuV2 = Widget.extend({\n init: function(element, options) {\n Widget.fn.init.call(this, element, options);\n\n this._dataSource();\n\n this._layout();\n\n kendo.notify(this);\n },\n\n events: [],\n\n options: {\n name: \"PivotFieldMenuV2\",\n animation: {\n expand: {\n effects: \"expand:vertical\",\n duration: 200\n },\n collapse: {\n duration: 200,\n effects: \"expand:vertical\",\n hide: true,\n reverse: true\n }\n },\n filter: null,\n filterable: true,\n sortable: true,\n messages: {\n apply: \"Apply\",\n sortAscending: \"Sort Ascending\",\n sortDescending: \"Sort Descending\",\n filterFields: \"Fields Filter\",\n filter: \"Filter\",\n include: \"Include Fields...\",\n clear: \"Clear\",\n reset: \"Reset\",\n operators: {\n contains: \"Contains\",\n doesnotcontain: \"Does not contain\",\n startswith: \"Starts with\",\n endswith: \"Ends with\",\n eq: \"Is equal to\",\n neq: \"Is not equal to\"\n }\n }\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n if (this.menu) {\n this.menu.element.off(NS);\n this.menu.destroy();\n this.menu = null;\n this._applyProxy = this._resetIncludes = null;\n }\n\n if (this.treeView) {\n this.treeView.destroy();\n this.treeView = null;\n }\n\n this.wrapper = null;\n this.element = null;\n },\n\n setDataSource: function(dataSource) {\n this.options.dataSource = dataSource;\n\n this._dataSource();\n },\n\n _createTreeView: function(element) {\n var that = this;\n\n that._includesCache = {};\n\n that.treeView = new ui.TreeView(element, {\n autoBind: false,\n dataSource: that._treeViewDataSource(),\n dataTextField: \"caption\",\n template: \"#: data.item.caption || data.item.name #\",\n check: function(e) {\n /* The result can be observed in the DevTools(F12) console of the browser. */\n var dataItem = e.sender.dataItem(e.node);\n if (that._includesCache[dataItem.uniqueName]) {\n delete that._includesCache[dataItem.uniqueName];\n } else {\n that._includesCache[dataItem.uniqueName] = e.node;\n }\n },\n checkboxes: {\n checkChildren: true\n }\n });\n },\n\n _dataSource: function() {\n this.dataSource = kendo.data.PivotDataSourceV2.create(this.options.dataSource);\n },\n\n _layout: function() {\n var that = this;\n var options = that.options;\n\n that.wrapper = $(kendo.template(MENUTEMPLATEV2)({\n ns: kendo.ns,\n filterable: options.filterable,\n sortable: options.sortable,\n messages: options.messages\n }));\n\n that.menu = that.wrapper[MENU]({\n filter: options.filter,\n target: that.element,\n orientation: \"vertical\",\n showOn: \"click\",\n closeOnClick: false,\n open: this._menuOpen.bind(this),\n close: this._closeMenu.bind(this),\n copyAnchorStyles: false\n }).data(MENU);\n\n that.menu.element.off(\"blur.kendoMenu\", \"[tabindex]\", that.menu._checkActiveProxy);\n\n if (options.filterable) {\n that._initFilterForm();\n that._attachFilterHandlers();\n that._createTreeView(that.wrapper.find(\".k-treeview\"));\n }\n\n that._clickHandler = that._click.bind(that);\n that.wrapper.on(\"click\", \".k-item:not([role='treeitem'])\", that._clickHandler);\n },\n\n _closeMenu: function(e) {\n var that = this;\n var activeElement = $(kendo._activeElement());\n\n if (activeElement[0] === this._filterOperator.wrapper[0] || activeElement.closest(\".k-treeview\")[0] === that.treeView.wrapper[0] ||\n activeElement.hasClass(\"k-button-includes-reset\")) {\n e.preventDefault();\n }\n },\n\n _treeViewDataSource: function() {\n var that = this;\n\n return kendo.data.HierarchicalDataSource.create({\n schema: {\n model: {\n id: \"uniqueName\",\n hasChildren: function(item) {\n return parseInt(item.childrenCardinality, 10) > 0;\n }\n }\n },\n transport: {\n read: function(options) {\n var node = that.treeView.dataSource.get(options.data.uniqueName);\n var name = options.data.uniqueName;\n var nodes = [];\n var filter;\n var skipCheck;\n var catalog;\n var cube;\n var restrictions;\n var fetchOptions;\n\n if (that.dataSource.cubeSchema) {\n if (!name) {\n nodes = that.dataSource.cubeSchema.members(that.currentMember + \".[(ALL)]\");\n } else {\n nodes = that.dataSource.cubeSchema.members(that.currentMember);\n }\n\n filter = that.dataSource.filter();\n skipCheck = that._getFilterStorage(that.currentMember) && findFilters({ filter: filter, member: that.currentMember }).length == 1;\n\n if (skipCheck && !name) {\n nodes[0].checked = true;\n } else {\n checkNodesLocal(that.dataSource.filter(), that.currentMember, nodes);\n }\n options.success(nodes);\n } else {\n catalog = that.dataSource.transport.catalog();\n cube = that.dataSource.transport.cube();\n restrictions = {\n catalogName: catalog,\n cubeName: cube\n };\n fetchOptions = {\n command: 'schemaMembers'\n };\n\n if (!name) {\n restrictions.levelUniqueName = that.currentMember + \".[(ALL)]\";\n } else {\n restrictions.memberUniqueName = node.uniqueName.replace(/\\&/g, \"&\");\n restrictions.treeOp = 1;\n }\n\n fetchOptions.connection = {\n catalog: catalog,\n cube: cube\n };\n\n fetchOptions.restrictions = restrictions;\n that.dataSource.discover(fetchOptions).then(\n function(data) {\n if (!node || node.checked) {\n checkNodes(that.dataSource.filter(), that.currentMember, data);\n }\n\n options.success(data);\n });\n }\n }\n }\n });\n },\n\n _storeFilterForm: function(member) {\n var that = this;\n\n if (!that._filterStorage) {\n that._filterStorage = {};\n }\n\n that._filterStorage[member] = {\n value: that._filterValue.val(),\n operator: that._filterOperator.value()\n };\n },\n\n _getFilterStorage: function(member) {\n if (!this._filterStorage || !this._filterStorage[member]) {\n return null;\n }\n return this._filterStorage[member];\n },\n\n _clearFilterStorage: function(member) {\n this._filterStorage[member] = null;\n },\n\n _click: function(e) {\n var item = $(e.currentTarget);\n var next = item.next();\n if (item.hasClass(\"k-expander\")) {\n this._toggle(next, item);\n } else if (item.hasClass(\"k-columnmenu-item\") && item.find(\".k-i-sort-asc-sm\").length) {\n this._sort(\"asc\");\n } else if (item.hasClass(\"k-columnmenu-item\") && item.find(\".k-i-sort-desc-sm\").length) {\n this._sort(\"desc\");\n }\n },\n\n _attachFilterHandlers: function() {\n this._applyIncludesProxy = this._applyIncludes.bind(this);\n this._resetIncludesProxy = this._resetIncludes.bind(this);\n\n this.menu.element\n .on(\"click\" + NS, \".k-button-includes-reset\", this._resetIncludesProxy)\n .on(\"click\" + NS, \".k-button-includes-apply\", this._applyIncludesProxy);\n },\n\n _includesHandler: function(e) {\n e.preventDefault();\n if ($(e.target).hasClass(\"k-button-includes-reset\")) {\n this._resetIncludes();\n } else {\n this._applyIncludes();\n }\n },\n\n _applyIncludes: function(e) {\n e.preventDefault();\n var view = this.treeView.dataSource.view();\n var filter = this.dataSource.filter();\n var newExpression;\n if (this.dataSource.cubeSchema) {\n newExpression = includeLocalExpression(view, filter, this.currentMember);\n } else {\n newExpression = includeExpression(view, filter, this.currentMember);\n }\n this._includesCache = {};\n\n if (newExpression) {\n this.dataSource._preventRefresh = true;\n this.dataSource.filter(newExpression);\n this.menu.close();\n }\n },\n\n _resetIncludes: function(e) {\n e.preventDefault();\n\n var that = this;\n var checkbox;\n\n for (var item in that._includesCache) {\n checkbox = $(that._includesCache[item]).find(\".k-checkbox\");\n checkbox.prop(\"checked\", !checkbox.prop(\"checked\"));\n that.treeView._checkboxChange({ target: checkbox });\n delete that._includesCache[item];\n }\n },\n\n _initFilterForm: function() {\n var filterForm = this.menu.element.find(\".kendo-grid-filter-menu-container\");\n var filterProxy = this._filter.bind(this);\n\n this._filterOperator = new kendo.ui.DropDownList(filterForm.find(\"select\"), { popup: { appendTo: document.body } });\n this._filterValue = filterForm.find(\"input.k-input-inner\");\n this._filterForm = filterForm;\n this._updateFilterAriaLabel();\n\n filterForm\n .on(\"click\" + NS, \".k-button-filter\", filterProxy)\n .on(\"click\" + NS, \".k-button-filter-clear\", this._reset.bind(this));\n },\n\n _updateFilterAriaLabel: function() {\n var selectedOperator = this._filterOperator.value();\n var selectedOperatorName = this.options.messages.operators[selectedOperator];\n\n this._filterForm.find(\"select\").attr(ARIA_LABEL, selectedOperatorName);\n },\n\n _filter: function(e) {\n var that = this;\n var value = convert(that._filterValue.val(), that.dataSource, that.currentMember);\n var filter = that.dataSource.filter();\n\n e.preventDefault();\n\n if (value === \"\") {\n that.menu.close();\n return;\n }\n\n var expression = {\n field: that.currentMember,\n operator: that._filterOperator.value(),\n value: value\n };\n if (filter) {\n removeFilterByValue(filter, that._getFilterStorage(that.currentMember));\n } else {\n filter = { logic: 'and', filters: [] };\n }\n\n that._storeFilterForm(that.currentMember);\n filter.filters.push(expression);\n\n that.dataSource._preventRefresh = true;\n that.dataSource.filter(filter);\n that.menu.close();\n },\n\n _reset: function(e) {\n var that = this;\n var filter = that.dataSource.filter();\n removeFilters(filter, that.currentMember);\n\n e.preventDefault();\n\n if (!filter.filters[0]) {\n filter = {};\n }\n\n that.dataSource._preventRefresh = true;\n that.dataSource.filter(filter);\n that._clearFilterStorage(that.currentMember);\n that._setFilterForm(null);\n that.menu.close();\n },\n\n _setFilterForm: function(expression) {\n var filterOperator = this._filterOperator;\n var operator = \"\";\n var value = \"\";\n\n if (expression) {\n operator = expression.operator;\n value = expression.value;\n }\n\n filterOperator.value(operator);\n if (!filterOperator.value()) {\n filterOperator.select(0);\n }\n\n this._filterValue.val(value);\n },\n\n _collapseItems: function(items) {\n items.find(\".k-expander-indicator\").removeClass(\"k-i-arrow-chevron-down\")\n .addClass(\"k-i-arrow-chevron-up\");\n\n items.nextAll().hide();\n },\n\n _toggle: function(content, item) {\n var that = this;\n var animations = that.options.animation;\n var shouldExpand = content.is(\":visible\");\n var animation = !shouldExpand ? animations.expand : animations.collapse;\n\n if (!shouldExpand) {\n\n item.find(\".k-expander-indicator\").removeClass(\"k-i-arrow-chevron-down\")\n .addClass(\"k-i-arrow-chevron-up\");\n } else {\n item.find(\".k-expander-indicator\").removeClass(\"k-i-arrow-chevron-up\")\n .addClass(\"k-i-arrow-chevron-down\");\n }\n\n content\n .kendoStop(true, true)\n .kendoAnimate(animation);\n\n },\n\n _sort: function(dir) {\n var field = this.currentMember;\n var expressions = (this.dataSource.sort() || []);\n\n expressions = removeExpr(expressions, field);\n expressions.push({\n field: field,\n dir: dir\n });\n\n this.dataSource._preventRefresh = true;\n this.dataSource.sort(expressions);\n this.menu.close();\n },\n\n _menuOpen: function(e) {\n if (!e.event) {\n return;\n }\n\n var that = this;\n var schemaCube = that.dataSource.cubeSchema;\n var filterBox;\n that.currentMember = $(e.event.target).prev().text();\n that.menu.popup._hovered = true;\n\n if (that.options.filterable) {\n that._setFilterForm(that._getFilterStorage(that.currentMember));\n filterBox = that.wrapper.find(\".k-columnmenu-item-wrapper\").last();\n if (schemaCube && schemaCube.memberType(that.currentMember).toLowerCase() !== \"string\") {\n filterBox.hide();\n } else {\n filterBox.show();\n }\n if (that.currentMember !== that._oldCurrentmember) {\n if (that._oldCurrentmember) {\n that._collapseItems(that.menu.element.find(\".k-item.k-expander\"));\n }\n that._oldCurrentmember = that.currentMember;\n that._includesCache = {};\n this.treeView.dataSource.read();\n }\n }\n },\n });\n\n var PivotFieldMenu = Widget.extend({\n init: function(element, options) {\n Widget.fn.init.call(this, element, options);\n\n this._dataSource();\n\n this._layout();\n\n kendo.notify(this);\n },\n\n events: [],\n\n options: {\n name: \"PivotFieldMenu\",\n filter: null,\n filterable: true,\n sortable: true,\n messages: {\n info: \"Show items with value that:\",\n sortAscending: \"Sort Ascending\",\n sortDescending: \"Sort Descending\",\n filterFields: \"Fields Filter\",\n filter: \"Filter\",\n include: \"Include Fields...\",\n title: \"Fields to include\",\n clear: \"Clear\",\n ok: \"OK\",\n cancel: \"Cancel\",\n operators: {\n contains: \"Contains\",\n doesnotcontain: \"Does not contain\",\n startswith: \"Starts with\",\n endswith: \"Ends with\",\n eq: \"Is equal to\",\n neq: \"Is not equal to\"\n }\n }\n },\n\n _layout: function() {\n var options = this.options;\n\n this.wrapper = $(kendo.template(MENUTEMPLATE)({\n ns: kendo.ns,\n filterable: options.filterable,\n sortable: options.sortable,\n messages: options.messages\n }));\n\n this.menu = this.wrapper[MENU]({\n filter: options.filter,\n target: this.element,\n orientation: \"vertical\",\n showOn: \"click\",\n closeOnClick: false,\n open: this._menuOpen.bind(this),\n select: this._select.bind(this),\n copyAnchorStyles: false\n }).data(MENU);\n\n this._createWindow();\n\n if (options.filterable) {\n this._initFilterForm();\n }\n },\n\n _initFilterForm: function() {\n var filterForm = this.menu.element.find(\".\" + FILTER_ITEM);\n var filterProxy = this._filter.bind(this);\n\n this._filterOperator = new kendo.ui.DropDownList(filterForm.find(\"select\"));\n this._filterValue = filterForm.find(\"input.k-input-inner\");\n this._updateFilterAriaLabel();\n\n filterForm\n .on(\"submit\" + NS, filterProxy)\n .on(\"click\" + NS, \".k-button-filter\", filterProxy)\n .on(\"click\" + NS, \".k-button-clear\", this._reset.bind(this));\n },\n\n _setFilterForm: function(expression) {\n var filterOperator = this._filterOperator;\n var operator = \"\";\n var value = \"\";\n\n if (expression) {\n operator = expression.operator;\n value = expression.value;\n }\n\n filterOperator.value(operator);\n if (!filterOperator.value()) {\n filterOperator.select(0);\n }\n\n this._filterValue.val(value);\n },\n\n _clearFilters: function(member) {\n var filter = this.dataSource.filter() || {};\n var expressions;\n var idx = 0;\n var length;\n\n filter.filters = filter.filters || [];\n expressions = findFilters({ filter: filter, member: member });\n\n for (length = expressions.length; idx < length; idx++) {\n filter.filters.splice(filter.filters.indexOf(expressions[idx]), 1);\n }\n\n return filter;\n },\n\n _filter: function(e) {\n var that = this;\n var value = convert(that._filterValue.val(), that.dataSource, that.currentMember);\n\n e.preventDefault();\n\n if (value === \"\") {\n that.menu.close();\n return;\n }\n\n var expression = {\n field: that.currentMember,\n operator: that._filterOperator.value(),\n value: value\n };\n var filter = that._clearFilters(that.currentMember);\n\n filter.filters.push(expression);\n\n that.dataSource.filter(filter);\n that.menu.close();\n },\n\n _updateFilterAriaLabel: function() {\n var filterForm = this.menu.element.find(\".\" + FILTER_ITEM);\n var selectedOperator = this._filterOperator.value();\n var selectedOperatorName = this.options.messages.operators[selectedOperator];\n\n filterForm.find(\"select\").attr(ARIA_LABEL, selectedOperatorName);\n },\n\n _reset: function(e) {\n var that = this;\n var filter = that._clearFilters(that.currentMember);\n\n e.preventDefault();\n\n if (!filter.filters[0]) {\n filter = {};\n }\n\n that.dataSource.filter(filter);\n that._setFilterForm(null);\n that.menu.close();\n },\n\n _sort: function(dir) {\n var field = this.currentMember;\n var expressions = (this.dataSource.sort() || []);\n\n expressions = removeExpr(expressions, field);\n expressions.push({\n field: field,\n dir: dir\n });\n\n this.dataSource.sort(expressions);\n this.menu.close();\n },\n\n setDataSource: function(dataSource) {\n this.options.dataSource = dataSource;\n\n this._dataSource();\n },\n\n _dataSource: function() {\n this.dataSource = kendo.data.PivotDataSource.create(this.options.dataSource);\n },\n\n _createWindow: function() {\n var messages = this.options.messages;\n\n this.includeWindow = $(kendo.template(WINDOWTEMPLATE)({\n messages: messages\n }))\n .on(\"click\" + NS, \".k-button-ok\", this._applyIncludes.bind(this))\n .on(\"click\" + NS, \".k-button-cancel\", this._closeWindow.bind(this));\n\n this.includeWindow = new ui.Window(this.includeWindow, {\n title: messages.title,\n visible: false,\n resizable: false,\n open: this._windowOpen.bind(this)\n });\n },\n\n _applyIncludes: function(e) {\n var checkedNodes = [];\n var resultExpression;\n var view = this.treeView.dataSource.view();\n var rootChecked = view[0].checked;\n var filter = this.dataSource.filter();\n var existingExpression = findFilters({ filter: filter, member: this.currentMember, operator: \"in\" })[0];\n\n nodeIds(view, checkedNodes, true);\n\n if (existingExpression) {\n if (rootChecked) {\n filter.filters.splice(filter.filters.indexOf(existingExpression), 1);\n if (!filter.filters.length) {\n filter = {};\n }\n } else {\n existingExpression.value = checkedNodes.join(\",\");\n }\n\n resultExpression = filter;\n }\n\n if (checkedNodes.length) {\n if (!resultExpression && !rootChecked) {\n resultExpression = {\n field: this.currentMember,\n operator: \"in\",\n value: checkedNodes.join(\",\")\n };\n\n if (filter) {\n filter.filters.push(resultExpression);\n resultExpression = filter;\n }\n }\n }\n\n if (resultExpression) {\n this.dataSource.filter(resultExpression);\n }\n\n this._closeWindow(e);\n },\n\n _closeWindow: function(e) {\n e.preventDefault();\n\n this.includeWindow.close();\n },\n\n _treeViewDataSource: function() {\n var that = this;\n\n return kendo.data.HierarchicalDataSource.create({\n schema: {\n model: {\n id: \"uniqueName\",\n hasChildren: function(item) {\n return parseInt(item.childrenCardinality, 10) > 0;\n }\n }\n },\n transport: {\n read: function(options) {\n var restrictions = {};\n var node = that.treeView.dataSource.get(options.data.uniqueName);\n var name = options.data.uniqueName;\n\n if (!name) {\n restrictions.levelUniqueName = that.currentMember + \".[(ALL)]\";\n } else {\n restrictions.memberUniqueName = node.uniqueName.replace(/\\&/g, \"&\");\n restrictions.treeOp = 1;\n }\n\n that.dataSource\n .schemaMembers(restrictions)\n .done(function(data) {\n checkNodes(that.dataSource.filter(), that.currentMember, data);\n\n options.success(data);\n })\n .fail(options.error);\n }\n }\n });\n },\n\n _createTreeView: function(element) {\n var that = this;\n\n that.treeView = new ui.TreeView(element, {\n autoBind: false,\n dataSource: that._treeViewDataSource(),\n dataTextField: \"caption\",\n template: \"#: data.item.caption || data.item.name #\",\n checkboxes: {\n checkChildren: true\n },\n dataBound: function() {\n ui.progress(that.includeWindow.element, false);\n }\n });\n },\n\n _menuOpen: function(e) {\n if (!e.event) {\n return;\n }\n\n var attr = kendo.attr(\"name\");\n\n this.currentMember = $(e.event.target).closest(\"[\" + attr + \"]\").attr(attr);\n\n if (this.options.filterable) {\n this._setFilterForm(findFilters({ filter: this.dataSource.filter(), member: this.currentMember })[0]);\n }\n },\n\n _select: function(e) {\n var item = $(e.item);\n\n $(\".k-pivot-filter-window\").not(this.includeWindow.element).kendoWindow(\"close\");\n\n if (item.hasClass(\"k-include-item\")) {\n this.includeWindow.center().open();\n } else if (item.hasClass(\"k-sort-asc\")) {\n this._sort(\"asc\");\n } else if (item.hasClass(\"k-sort-desc\")) {\n this._sort(\"desc\");\n } else if (item.hasClass(FILTER_ITEM)) {\n this._updateFilterAriaLabel();\n }\n },\n\n _windowOpen: function() {\n if (!this.treeView) {\n this._createTreeView(this.includeWindow.element.find(\".k-treeview\"));\n }\n\n ui.progress(this.includeWindow.element, true);\n this.treeView.dataSource.read();\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n if (this.menu) {\n this.menu.destroy();\n this.menu = null;\n }\n\n if (this.treeView) {\n this.treeView.destroy();\n this.treeView = null;\n }\n\n if (this.includeWindow) {\n this.includeWindow.destroy();\n this.includeWindow = null;\n }\n\n this.wrapper = null;\n this.element = null;\n }\n });\n\n function convert(value, dataSource, currentMember) {\n var schema = dataSource.options.schema;\n var field = ((schema.model || {}).fields || {})[currentMember];\n\n if (field) {\n if (field.type === \"number\") {\n value = parseFloat(value);\n } else if (field.type === \"boolean\") {\n value = Boolean($.parseJSON(value));\n }\n }\n\n return value;\n }\n\n function removeExpr(expressions, name) {\n var result = [];\n\n for (var idx = 0, length = expressions.length; idx < length; idx++) {\n if (expressions[idx].field !== name) {\n result.push(expressions[idx]);\n }\n }\n\n return result;\n }\n\n function removeFilterByValue(filter, toRemove) {\n if (!toRemove) {\n return;\n }\n\n filter = filter.filters;\n\n var idx = 0;\n var length = filter.length;\n\n for (idx = length - 1; idx >= 0; idx--) {\n if (filter[idx].value === toRemove.value && filter[idx].operator === toRemove.operator) {\n filter.splice(idx, 1);\n }\n }\n }\n\n function removeFilters(filter, member, operator) {\n if (!filter) {\n return;\n }\n\n filter = filter.filters;\n\n var idx = 0;\n var length = filter.length;\n var filterOperator;\n\n for (idx = length - 1; idx >= 0; idx--) {\n filterOperator = filter[idx].operator;\n\n if ((operator ? filterOperator === operator : true) && filter[idx].field === member) {\n filter.splice(idx, 1);\n }\n }\n }\n\n function findFilters(options) {\n if (!options.filter) {\n return [];\n }\n\n var filter = options.filter.filters;\n var idx = 0;\n var result = [];\n var length = filter.length;\n var filterOperator;\n var operatorInUse = options.isLocal ? \"neq\" : \"in\";\n\n for ( ; idx < length; idx++) {\n filterOperator = filter[idx].operator;\n\n if (((!options.operator && filterOperator !== operatorInUse) || (filterOperator === options.operator)) && filter[idx].field === options.member) {\n result.push(filter[idx]);\n }\n }\n\n return result;\n }\n\n function checkNodesLocal(filter, member, nodes) {\n var values, idx = 0, length = nodes.length;\n var filters = findFilters({ filter: filter, member: member, operator: \"neq\" });\n\n if (nodes[0].name.indexOf(\"[(ALL)]\") >= 0) {\n nodes[0].checked = !filters.length;\n return;\n }\n\n if (!filters.length) {\n for (; idx < length; idx++) {\n nodes[idx].checked = true;\n }\n } else {\n values = filters.map(function(ftr) { return ftr.value; });\n for (; idx < length; idx++) {\n nodes[idx].checked = $.inArray(nodes[idx].uniqueName, values) < 0;\n }\n }\n }\n\n function checkNodes(filter, member, nodes) {\n var values, idx = 0, length = nodes.length;\n filter = findFilters({ filter: filter, member: member, operator: \"in\" })[0];\n\n if (!filter) {\n for (; idx < length; idx++) {\n nodes[idx].checked = true;\n }\n } else {\n values = filter.value.split(\",\");\n for (; idx < length; idx++) {\n nodes[idx].checked = $.inArray(nodes[idx].uniqueName, values) >= 0;\n }\n }\n }\n\n function nodeIds(nodes, checkedNodes, checkState) {\n var idx, length = nodes.length;\n\n for (idx = 0; idx < length; idx++) {\n if (nodes[idx].checked === checkState && nodes[idx].level() !== 0) {\n checkedNodes.push(nodes[idx].uniqueName);\n }\n\n if (nodes[idx].hasChildren) {\n nodeIds(nodes[idx].children.view(), checkedNodes, checkState);\n }\n }\n }\n\n function includeLocalExpression(view, filter, currentMember) {\n var nonCheckedNodes = [];\n removeFilters(filter, currentMember, \"neq\");\n\n if (!filter) {\n filter = { logic: 'and', filters: [] };\n }\n nodeIds(view, nonCheckedNodes, false);\n\n if (nonCheckedNodes.length) {\n for (var idx = 0; idx < nonCheckedNodes.length; idx++) {\n filter.filters.push({\n field: currentMember,\n operator: \"neq\",\n value: nonCheckedNodes[idx]\n });\n }\n }\n\n return filter ? filter : null;\n }\n\n function includeExpression(view, filter, currentMember) {\n var checkedNodes = [];\n var resultExpression;\n var rootChecked = view[0].checked;\n var existingExpression = findFilters({ filter: filter, member: currentMember, operator: \"in\" })[0];\n\n nodeIds(view, checkedNodes, true);\n\n if (existingExpression) {\n if (rootChecked) {\n filter.filters.splice(filter.filters.indexOf(existingExpression), 1);\n if (!filter.filters.length) {\n filter = {};\n }\n } else {\n existingExpression.value = checkedNodes.join(\",\");\n }\n\n resultExpression = filter;\n }\n\n if (checkedNodes.length) {\n if (!resultExpression && !rootChecked) {\n resultExpression = {\n field: currentMember,\n operator: \"in\",\n value: checkedNodes.join(\",\")\n };\n\n if (filter) {\n filter.filters.push(resultExpression);\n resultExpression = filter;\n }\n }\n }\n\n return resultExpression ? resultExpression : null;\n }\n\n var LABELMENUTEMPLATE =\n '