{"version":3,"file":"kendo.pivot.configurator.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","ui","Widget","common","pivotgrid","fetchDiscover","configuratorReducer","PIVOT_CONFIGURATOR_ACTION","ns","SETTINGS_TEMPLATE","template","CONTENT_TEMPLATE","ACTIONS_TEMPLATE","SETTING_CONTAINER_TEMPLATE","addKPI","data","found","idx","length","type","splice","caption","defaultHierarchy","name","uniqueName","kpiNode","node","normalizeKPIs","settingTargetFromNode","target","closest","PivotConfiguratorV2","extend","init","element","options","fn","call","this","addClass","_dataSource","_layout","refresh","height","notify","events","orientation","filterable","sortable","messages","title","cancelButtonText","applyButtonText","measures","columns","rows","setDataSource","dataSource","that","_refreshHandler","unbind","_errorHandler","_progressHandler","_error","bind","_requestStart","PivotDataSourceV2","create","horizontal","panel","append","appendTo","formClass","find","each","index","elm","html","renderChipList","_fields","cancelText","applyText","_targets","on","_actions","e","preventDefault","currentTarget","_applyState","read","_cancelChanges","treeView","first","last","targetItemTemplate","renderChip","fillMode","themeColor","rounded","removable","removeIcon","_createTarget","connectWith","empty","setting","PivotSettingTargetV2","hint","clone","remove","item","wrapper","id","attr","dataItem","getByUid","checked","container","kendoTreeView","checkboxes","checkChildren","dataTextField","autoBind","check","sender","action","toggleSelection","payload","state","columnAxes","_state","rowAxes","measureAxes","result","cubeSchema","restoreMeasure","items","_checkMembers","trigger","_redraw","_treeViewDataSource","off","_clickHandler","HierarchicalDataSource","schema","model","hasChildren","local","transport","fields","dsMeasures","catalog","cube","fetchOptions","url","members","concat","isEmptyObject","dimensions","success","connection","restrictions","catalogName","cubeName","command","then","newFields","get","_getKPIOptions","buildKPImeasures","_loadFieldsCommand","newData","hash","field","dimensionUniqueName","hierarchyUniqueName","_progress","toggle","progress","destroy","fetch","plugin","PivotConfigurator","outerHeight","measuresLabel","columnsLabel","rowsLabel","fieldsLabel","PivotDataSource","kpi","schemaDimensions","done","cubeBuilder","fail","error","schemaKPIs","schemaMeasures","schemaLevels","schemaHierarchies","form","dragAndDrop","dragstart","sourceNode","aggregator","measure","drag","status","dropTarget","validate","setStatusClass","drop","push","add","icons","PivotSettingTarget","emptyTemplate","columnsContainer","icon","rowsContainer","measuresContainer","fieldMenu","_toggleHover","toggleClass","_resize","_cube","_catalog","kpiMeasure","value","goal","trend","cssProperties","registerPrefix","registerValues","prop","values","roundedValues","jQuery"],"sources":["kendo.pivot.configurator.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.dom', 'kendo.html.chip', 'kendo.html.chiplist', 'kendo.pivot.common'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"pivot.configurator\",\n name: \"PivotConfigurator\",\n category: \"web\",\n depends: [ \"dropdownlist\", \"treeview\", \"treeview.draganddrop\", \"pivot.fieldmenu\", \"html.chip\", \"html.chiplist\", \"pivot.common\" ],\n hidden: true\n };\n\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Widget = ui.Widget,\n common = window.kendo.pivotgrid.common,\n fetchDiscover = common.fetchDiscover,\n configuratorReducer = common.configuratorReducer,\n PIVOT_CONFIGURATOR_ACTION = common.PIVOT_CONFIGURATOR_ACTION,\n ns = \".kendoPivotConfigurator\",\n HOVER_EVENTS = \"mouseenter\" + ns + \" mouseleave\" + ns,\n SETTINGS_TEMPLATE = kendo.template('
' +\n '
#:title#
' +\n '
'),\n CONTENT_TEMPLATE = kendo.template('
' +\n '
' +\n '#if (horizontal) {#
#}#' +\n '
' +\n '' +\n '
' +\n '
' +\n '
' +\n '
' +\n '#if (horizontal) {#
#}#' +\n '
' +\n '' +\n '
' +\n '
' +\n '
' +\n '' +\n '
' +\n '
' +\n '#if (horizontal) {#
#}#' +\n '
' +\n '' +\n '
' +\n '
' +\n '#if (horizontal) {#
#}#' +\n '
' +\n '
'),\n TARGET_ITEM_TEMPLATE = '' +\n '#:name#' +\n '#if (menuenabled) {# #}#' +\n '',\n ACTIONS_TEMPLATE = kendo.template(\n '
' +\n '' +\n '' +\n '
'),\n SETTING_CONTAINER_TEMPLATE = kendo.template('
${name}
');\n\n function addKPI(data) {\n var found;\n var idx = 0;\n var length = data.length;\n\n for (; idx < length; idx++) {\n if (data[idx].type == 2) {\n found = true;\n break;\n }\n }\n\n if (found) {\n data.splice(idx + 1, 0, {\n caption: \"KPIs\",\n defaultHierarchy: \"[KPIs]\",\n name: \"KPIs\",\n uniqueName: \"[KPIs]\"\n });\n }\n }\n\n function kpiNode(node) {\n return {\n name: node.uniqueName,\n type: node.type\n };\n }\n\n function normalizeKPIs(data) {\n for (var idx = 0, length = data.length; idx < length; idx++) {\n data[idx].uniqueName = data[idx].name;\n data[idx].type = \"kpi\";\n }\n\n return data;\n }\n\n function settingTargetFromNode(node) {\n var target = $(node).closest(\".k-pivot-setting\");\n\n if (target.length) {\n return target.data(\"kendoPivotSettingTarget\");\n }\n return null;\n }\n\n var PivotConfiguratorV2 = Widget.extend({\n init: function(element, options) {\n Widget.fn.init.call(this, element, options);\n\n this.element.addClass(\"k-widget k-pivotgrid-configurator k-pos-relative\");\n\n this._dataSource();\n\n this._layout();\n\n this.refresh();\n\n if (options.height) {\n this.element.height(options.height);\n }\n\n kendo.notify(this);\n },\n\n events: [],\n\n options: {\n name: \"PivotConfiguratorV2\",\n orientation: \"vertical\",\n filterable: false,\n sortable: false,\n messages: {\n title: \"Settings\",\n cancelButtonText: \"Cancel\",\n applyButtonText: \"Apply\",\n measures: \"Select some fields to begin setup\",\n columns: \"Select some fields to begin setup\",\n rows: \"Select some fields to begin setup\"\n }\n },\n\n setDataSource: function(dataSource) {\n this.options.dataSource = dataSource;\n\n this._dataSource();\n\n if (this.measures) {\n this.measures.setDataSource(dataSource);\n }\n\n if (this.rows) {\n this.rows.setDataSource(dataSource);\n }\n\n if (this.columns) {\n this.columns.setDataSource(dataSource);\n }\n\n this.refresh();\n },\n\n _dataSource: function() {\n var that = this;\n\n if (that.dataSource && that._refreshHandler) {\n that.dataSource.unbind(\"change\", that._refreshHandler)\n .unbind(\"error\", that._errorHandler)\n .unbind(\"progress\", that._progressHandler);\n } else {\n that._errorHandler = that._error.bind(that);\n that._refreshHandler = that.refresh.bind(that);\n that._progressHandler = that._requestStart.bind(that);\n }\n\n that.dataSource = kendo.data.PivotDataSourceV2.create(that.options.dataSource);\n that.dataSource.bind(\"change\", that._refreshHandler)\n .bind(\"error\", that._errorHandler)\n .bind(\"progress\", that._progressHandler);\n },\n\n _layout: function() {\n\n var that = this;\n var options = that.options;\n var messages = options.messages;\n var horizontal = options.orientation == \"horizontal\";\n\n var panel = $(\"
\");\n\n panel.addClass(horizontal ? \"k-pivotgrid-configurator-horizontal\" : \"k-pivotgrid-configurator-vertical\");\n\n that.element.append(panel);\n\n that.panel = panel;\n\n $(SETTINGS_TEMPLATE({ title: this.options.messages.title })).appendTo(that.panel);\n\n $(CONTENT_TEMPLATE({ formClass: horizontal ? \"k-form k-form-horizontal\" : \"k-form\", filterable: options.filterable, horizontal: horizontal }))\n .appendTo(that.panel).find(\".k-chip-list\")\n .each(function(index, elm) {\n kendo.html.renderChipList(elm, $.extend({}, options));\n });\n\n that._fields();\n $(ACTIONS_TEMPLATE({ cancelText: messages.cancelButtonText, applyText: messages.applyButtonText })).appendTo(that.panel);\n that._targets();\n\n that.element.on(\"click\" + ns, \".k-pivotgrid-configurator-actions > button\", that._actions.bind(that));\n },\n\n _actions: function(e) {\n e.preventDefault();\n\n var target = $(e.currentTarget);\n if (target.index()) {\n this.columns._applyState();\n this.rows._applyState();\n this.measures._applyState();\n this.dataSource.read();\n } else {\n this.columns._cancelChanges();\n this.rows._cancelChanges();\n this.measures._cancelChanges();\n this.treeView.dataSource.read();\n }\n },\n\n _targets: function() {\n var that = this;\n var columns = that.panel.find(\".k-column-fields\").first();\n var rows = that.panel.find(\".k-row-fields\");\n var measures = that.panel.find(\".k-chip-list\").last();\n var options = this.options;\n\n var targetItemTemplate = kendo.html.renderChip(TARGET_ITEM_TEMPLATE, $.extend({}, options, {\n fillMode: \"solid\",\n themeColor: \"base\",\n rounded: \"full\",\n removable: true,\n removeIcon: \"close-circle\"\n }));\n\n this.columns = this._createTarget(columns, {\n filterable: options.filterable,\n sortable: options.sortable,\n template: targetItemTemplate,\n connectWith: rows,\n messages: {\n empty: options.messages.columns\n }\n });\n\n this.rows = this._createTarget(rows, {\n filterable: options.filterable,\n sortable: options.sortable,\n template: targetItemTemplate,\n setting: \"rows\",\n connectWith: columns,\n messages: {\n empty: this.options.messages.rows\n }\n });\n\n this.measures = this._createTarget(measures, {\n setting: \"measures\",\n template: targetItemTemplate,\n messages: {\n empty: options.messages.measures\n }\n });\n },\n\n _createTarget: function(element, options) {\n var that = this;\n return new kendo.ui.PivotSettingTargetV2(element, $.extend({\n dataSource: this.dataSource,\n hint: function(element) {\n return element.clone();\n },\n remove: function(e) {\n var item = that.treeView.wrapper\n .find(\"[data-name='\" + e.name + \"']\")\n .closest(\"li\");\n var id = item.attr(kendo.attr(\"uid\"));\n var dataItem = that.treeView.dataSource.getByUid(id);\n\n if (dataItem) {\n dataItem.checked = false;\n item.find(\"input\").attr(\"checked\", false);\n }\n },\n template: options.template\n }, options));\n },\n\n _fields: function() {\n var that = this;\n var container = that.element.find(\".k-fields-list-wrapper\");\n\n this.treeView = $(\"
\").appendTo(container)\n .kendoTreeView({\n checkboxes: {\n checkChildren: true,\n template: '#if ((item.hasChildren || item.aggregator || item.local) && item.uniqueName !== \"[KPIs]\" && item.uniqueName !== \"[Measures]\" && item.uniqueName !== \"Measures\") {# #}#'\n },\n dataTextField: \"caption\",\n autoBind: false,\n check: function(e) {\n var dataItem = e.sender.dataItem(e.node);\n var action = {\n type: PIVOT_CONFIGURATOR_ACTION.toggleSelection,\n payload: dataItem\n };\n var state = {\n columnAxes: that.columns._state(),\n rowAxes: that.rows._state(),\n measureAxes: that.measures._state()\n };\n var result = configuratorReducer(state, action);\n\n if (that.dataSource.cubeSchema && result.measureAxes && result.measureAxes.length &&\n result.measureAxes.length > state.measureAxes.length) {\n that.dataSource.cubeSchema.restoreMeasure(result.measureAxes, dataItem);\n }\n\n if (dataItem.defaultHierarchy && dataItem.items && dataItem.items.length) {\n that._checkMembers([{ name: dataItem.defaultHierarchy }], dataItem.items);\n dataItem.items.trigger(\"change\");\n }\n\n if (result.columnAxes) {\n that.columns._state(result.columnAxes);\n that.columns._redraw();\n }\n if (result.rowAxes) {\n that.rows._state(result.rowAxes);\n that.rows._redraw();\n }\n if (result.measureAxes) {\n that.measures._state(result.measureAxes);\n that.measures._redraw();\n }\n },\n dataSource: this._treeViewDataSource()\n })\n .data(\"kendoTreeView\");\n\n this.treeView.wrapper.off(\"click\", this.treeView._clickHandler);\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 if (that.dataSource.cubeSchema && item.uniqueName !== \"Measures\") {\n item.local = true;\n return false;\n }\n return !(\"hierarchyUniqueName\" in item) && !(\"aggregator\" in item);\n }\n }\n },\n transport: {\n read: function(options) {\n var node;\n var transport = that.dataSource.transport;\n var catalog = transport.catalog();\n var cube = transport.cube();\n var fetchOptions = {\n url: transport.options.read\n };\n var columns = that.columns._state();\n var rows = that.rows._state();\n var measures = that.measures._state();\n var members = columns.concat(rows).concat(measures);\n var fields;\n var dsMeasures;\n var fetchOpts;\n\n if ($.isEmptyObject(options.data)) {\n if (that.dataSource.cubeSchema) {\n fields = that.dataSource.cubeSchema.dimensions();\n that._checkMembers(members, fields);\n options.success(fields);\n } else {\n fetchOpts = {\n connection: {\n catalog: catalog,\n cube: cube\n },\n restrictions: {\n catalogName: catalog,\n cubeName: cube\n },\n command: 'schemaDimensions'\n };\n\n fetchDiscover(fetchOptions, fetchOpts)\n .then(function(newFields) {\n that._checkMembers(members, newFields);\n addKPI(newFields);\n options.success(newFields);\n });\n }\n } else {\n //Hack to get the actual node as the HierarchicalDataSource does not support passing it\n node = that.treeView.dataSource.get(options.data.uniqueName);\n\n if (that.dataSource.cubeSchema) {\n dsMeasures = that.dataSource.measures();\n that._checkMembers(members, dsMeasures);\n options.success(dsMeasures);\n } else {\n if (node.uniqueName === \"[KPIs]\") {\n fetchDiscover(fetchOptions, that._getKPIOptions(catalog, cube))\n .then(function(newFields) {\n options.success(normalizeKPIs(newFields));\n });\n } else if (node.type == \"kpi\") {\n options.success(buildKPImeasures(node));\n } else {\n fetchDiscover(fetchOptions ,that._loadFieldsCommand(node, catalog, cube))\n .then(function(newFields) {\n that._checkMembers(members, newFields);\n options.success(newFields);\n });\n }\n }\n }\n }\n }\n });\n },\n\n _checkMembers: function(members, newData) {\n var hash = {};\n var index = 0;\n\n for (index = 0; index < members.length; index++) {\n hash[members[index].name] = true;\n }\n\n for (index = 0; index < newData.length; index++) {\n if (hash[newData[index].uniqueName]) {\n newData[index].checked = true;\n }\n }\n },\n\n _getKPIOptions: function(catalog, cube) {\n return {\n connection: {\n catalog: catalog,\n cube: cube\n },\n restrictions: {\n catalogName: catalog,\n cubeName: cube\n },\n command: 'schemaKPIs'\n };\n },\n\n _loadFieldsCommand: function(field, catalog, cube) {\n var command;\n var dimensionUniqueName;\n var hierarchyUniqueName;\n\n if (field.type === 2) {\n command = 'schemaMeasures';\n } else if (field.dimensionUniqueName) {\n command = 'schemaLevels';\n hierarchyUniqueName = field.uniqueName;\n } else {\n command = 'schemaHierarchies';\n dimensionUniqueName = field.uniqueName;\n }\n\n var options = {\n connection: {\n catalog: catalog,\n cube: cube\n },\n restrictions: {\n catalogName: catalog,\n cubeName: cube,\n hierarchyUniqueName: hierarchyUniqueName,\n dimensionUniqueName: dimensionUniqueName\n },\n command: command\n };\n\n return options;\n },\n\n _progress: function(toggle) {\n kendo.ui.progress(this.element, toggle);\n },\n\n _error: function() {\n this._progress(false);\n },\n\n _requestStart: function() {\n this._progress(true);\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n this.dataSource.unbind(\"change\", this._refreshHandler);\n\n this.element.off(ns);\n\n this.rows.destroy();\n this.columns.destroy();\n this.measures.destroy();\n this.treeView.destroy();\n\n this.element = null;\n this._refreshHandler = null;\n },\n\n refresh: function() {\n if (this.treeView) {\n this.treeView.dataSource.fetch();\n }\n\n this._progress(false);\n }\n\n });\n\n ui.plugin(PivotConfiguratorV2);\n\n var PivotConfigurator = Widget.extend({\n init: function(element, options) {\n Widget.fn.init.call(this, element, options);\n\n this.element.addClass(\"k-pivotgrid-configurator-panel kendo-jquery\");\n\n if (this.options.height) {\n this.element.outerHeight(this.options.height);\n }\n\n this._dataSource();\n\n this._layout();\n\n this.refresh();\n\n kendo.notify(this);\n },\n\n events: [],\n\n options: {\n name: \"PivotConfigurator\",\n filterable: false,\n sortable: false,\n messages: {\n measures: \"Drop Data Fields Here\",\n columns: \"Drop Column Fields Here\",\n rows: \"Drop Rows Fields Here\",\n measuresLabel: \"Measures\",\n columnsLabel: \"Columns\",\n rowsLabel: \"Rows\",\n fieldsLabel: \"Fields\"\n }\n },\n\n _dataSource: function() {\n var that = this;\n\n if (that.dataSource && that._refreshHandler) {\n that.dataSource.unbind(\"change\", that._refreshHandler)\n .unbind(\"error\", that._errorHandler)\n .unbind(\"progress\", that._progressHandler);\n } else {\n that._errorHandler = that._error.bind(that);\n that._refreshHandler = that.refresh.bind(that);\n that._progressHandler = that._requestStart.bind(that);\n }\n\n that.dataSource = kendo.data.PivotDataSource.create(that.options.dataSource);\n that.dataSource.bind(\"change\", that._refreshHandler)\n .bind(\"error\", that._errorHandler)\n .bind(\"progress\", that._progressHandler);\n },\n\n setDataSource: function(dataSource) {\n this.options.dataSource = dataSource;\n\n this._dataSource();\n\n if (this.measures) {\n this.measures.setDataSource(dataSource);\n }\n\n if (this.rows) {\n this.rows.setDataSource(dataSource);\n }\n\n if (this.columns) {\n this.columns.setDataSource(dataSource);\n }\n\n this.refresh();\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 !(\"hierarchyUniqueName\" in item) && !(\"aggregator\" in item);\n }\n }\n },\n transport: {\n read: function(options) {\n var promise;\n var node;\n var kpi;\n\n if ($.isEmptyObject(options.data)) {\n promise = that.dataSource.schemaDimensions();\n\n promise.done(function(data) {\n if (!that.dataSource.cubeBuilder) {\n addKPI(data);\n }\n options.success(data);\n })\n .fail(options.error);\n } else {\n //Hack to get the actual node as the HierarchicalDataSource does not support passing it\n node = that.treeView.dataSource.get(options.data.uniqueName);\n\n if (node.uniqueName === \"[KPIs]\") {\n kpi = true;\n promise = that.dataSource.schemaKPIs();\n promise.done(function(data) {\n options.success(normalizeKPIs(data));\n })\n .fail(options.error);\n } else if (node.type == \"kpi\") {\n kpi = true;\n options.success(buildKPImeasures(node));\n }\n\n if (!kpi) {\n if (node.type == 2) { //measure\n promise = that.dataSource.schemaMeasures();\n } else if (node.dimensionUniqueName) { // hierarchy\n promise = that.dataSource.schemaLevels(options.data.uniqueName);\n } else { // dimension\n promise = that.dataSource.schemaHierarchies(options.data.uniqueName);\n }\n\n promise.done(options.success)\n .fail(options.error);\n }\n }\n }\n }\n });\n },\n\n _progress: function(toggle) {\n kendo.ui.progress(this.element, toggle);\n },\n\n _error: function() {\n this._progress(false);\n },\n\n _requestStart: function() {\n this._progress(true);\n },\n\n _layout: function() {\n $('
').appendTo(this.element);\n this.form = this.element.find('.k-pivotgrid-configurator-content');\n\n this._fields();\n this._targets();\n },\n\n _fields: function() {\n var container = $('
' + this.options.messages.fieldsLabel + '
').appendTo(this.form);\n\n var template = '# if (item.type == 2 || item.uniqueName == \"[KPIs]\") { #' +\n '' +\n '# } else if (item.type && item.type !== \"kpi\") { #' +\n '' +\n '# } #' +\n '#: item.caption || item.name #';\n\n this.treeView = $(\"
\").appendTo(container.find('.k-fields-list-wrapper'))\n .kendoTreeView({\n template: template,\n dataTextField: \"caption\",\n dragAndDrop: true,\n autoBind: false,\n dataSource: this._treeViewDataSource(),\n dragstart: function(e) {\n var dataItem = this.dataItem(e.sourceNode);\n\n if ((!dataItem.hasChildren && !dataItem.aggregator && !dataItem.measure) || (dataItem.type == 2) || dataItem.uniqueName === \"[KPIs]\") {\n e.preventDefault();\n }\n },\n drag: function(e) {\n var status = \"k-i-cancel\";\n var setting = settingTargetFromNode(e.dropTarget);\n\n if (setting && setting.validate(this.dataItem(e.sourceNode))) {\n status = \"k-i-plus\";\n }\n\n e.setStatusClass(status);\n },\n drop: function(e) {\n e.preventDefault();\n\n var setting = settingTargetFromNode(e.dropTarget);\n var node = this.dataItem(e.sourceNode);\n var idx, length, measures;\n var name;\n\n if (setting && setting.validate(node)) {\n name = node.defaultHierarchy || node.uniqueName;\n\n if (node.type === \"kpi\") {\n measures = buildKPImeasures(node);\n length = measures.length;\n name = [];\n\n for (idx = 0; idx < length; idx++) {\n name.push(kpiNode(measures[idx]));\n }\n } else if (node.kpi) {\n name = [kpiNode(node)];\n }\n\n setting.add(name);\n }\n }\n })\n .data(\"kendoTreeView\");\n },\n\n _createTarget: function(element, options) {\n var template = '';\n var sortable = options.sortable;\n var icons = '';\n\n if (sortable) {\n icons += '#if (data.sortIcon) {#';\n icons += '';\n icons += '#}#';\n }\n\n if (options.filterable || sortable) {\n icons += '';\n }\n\n icons += '';\n\n template = ''\n + ''\n + ''\n + '${data.name}'\n + ''\n + '' + icons + ''\n + '';\n\n return new kendo.ui.PivotSettingTarget(element, $.extend({\n dataSource: this.dataSource,\n template: template,\n emptyTemplate: '${data}'\n }, options));\n },\n\n _targets: function() {\n var container = $('
').appendTo(this.form);\n\n var columnsContainer = $(SETTING_CONTAINER_TEMPLATE({ name: this.options.messages.columnsLabel, icon: \"k-i-columns\" })).appendTo(container);\n var columns = $('
').appendTo(columnsContainer.find('.k-pivotgrid-target-wrap'));\n\n var rowsContainer = $(SETTING_CONTAINER_TEMPLATE({ name: this.options.messages.rowsLabel, icon: \"k-i-rows\" })).appendTo(container);\n var rows = $('
').appendTo(rowsContainer.find('.k-pivotgrid-target-wrap'));\n\n var measuresContainer = $(SETTING_CONTAINER_TEMPLATE({ name: this.options.messages.measuresLabel, icon: \"k-i-sum\" })).appendTo(container);\n var measures = $('
').appendTo(measuresContainer.find('.k-pivotgrid-target-wrap'));\n\n var options = this.options;\n\n this.columns = this._createTarget(columns, {\n filterable: options.filterable,\n sortable: options.sortable,\n connectWith: rows,\n messages: {\n empty: options.messages.columns,\n fieldMenu: options.messages.fieldMenu\n }\n });\n\n this.rows = this._createTarget(rows, {\n filterable: options.filterable,\n sortable: options.sortable,\n setting: \"rows\",\n connectWith: columns,\n messages: {\n empty: this.options.messages.rows,\n fieldMenu: this.options.messages.fieldMenu\n }\n });\n\n this.measures = this._createTarget(measures, {\n setting: \"measures\",\n messages: {\n empty: options.messages.measures\n }\n });\n\n columns\n .add(rows)\n .add(measures)\n .on(HOVER_EVENTS, \".k-item:not(.k-empty)\", this._toggleHover);\n },\n\n _toggleHover: function(e) {\n $(e.currentTarget).toggleClass(\"k-hover\", e.type === \"mouseenter\");\n },\n\n _resize: function() {\n var element = this.element;\n var height = this.options.height;\n\n if (!height) {\n return;\n }\n\n element.outerHeight(height);\n },\n\n refresh: function() {\n var dataSource = this.dataSource;\n\n if (dataSource.cubeBuilder || this._cube !== dataSource.cube() || this._catalog !== dataSource.catalog()) {\n this.treeView.dataSource.fetch();\n }\n\n this._catalog = this.dataSource.catalog();\n this._cube = this.dataSource.cube();\n\n this._resize();\n\n this._progress(false);\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n this.dataSource.unbind(\"change\", this._refreshHandler);\n\n this.form.find(\".k-pivot-setting\").off(ns);\n\n this.rows.destroy();\n this.columns.destroy();\n this.measures.destroy();\n this.treeView.destroy();\n\n this.element = null;\n this._refreshHandler = null;\n }\n });\n\n function kpiMeasure(name, measure, type) {\n return {\n hierarchyUniqueName: name,\n uniqueName: measure,\n caption: measure,\n measure: measure,\n name: measure,\n type: type,\n kpi: true\n };\n }\n\n function buildKPImeasures(node) {\n var name = node.name;\n return [\n kpiMeasure(name, node.value, \"value\"),\n kpiMeasure(name, node.goal, \"goal\"),\n kpiMeasure(name, node.status, \"status\"),\n kpiMeasure(name, node.trend, \"trend\")\n ];\n }\n\n kendo.cssProperties.registerPrefix(\"HTMLChip\", \"k-chip-\");\n\n kendo.cssProperties.registerValues(\"HTMLChip\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n ui.plugin(PivotConfigurator);\n\n })(window.kendo.jQuery);\n\n}));\n"]}