{"version":3,"sources":["kendo.excel.js"],"names":["f","define","$","kendo","ExcelExporter","Class","extend","init","options","dataSource","data","transport","columns","this","_trimColumns","allColumns","map","_leafColumns","_prepareColumn","grep","column","hidden","DataSource","constructor","page","allPages","filter","pageSize","total","sort","group","aggregate","length","_data","_isServerGrouped","create","that","result","field","idx","concat","push","workbook","Deferred","proxy","d","fetch","then","sheets","_columns","rows","_rows","freezePane","_freezePane","_filter","resolve","view","promise","value","values","dataItem","get","each","text","groupHeaderTemplate","template","groupFooterTemplate","footerTemplate","filterable","depth","_depth","from","to","_dataRow","level","cells","li","title","dataCells","ci","_hierarchical","background","color","items","aggregates","colSpan","_dataRows","unshift","type","_footer","_cell","dataItems","i","apply","footer","Array","_isColumnVisible","_visibleColumns","_headerRow","row","groups","headers","cell","rowSpan","_prependHeaderRows","headerRows","index","_prepareHeaderRows","parentCell","parentRow","childRow","totalColSpan","_headerDepth","temp","max","colSplit","locked","rowSplit","hierarchy","width","parseInt","autoWidth","ExcelMixin","proto","events","excel","saveAsExcel","proxyURL","fileName","exporter","book","trigger","ooxml","Workbook","saveAs","dataURI","toDataURL","forceProxy","jQuery","amd","a1","a2","a3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,eACH,aACA,aACA,eACDD,IACL,WAsaE,MA1ZC,UAAUE,EAAGC,GACVA,EAAMC,cAAgBD,EAAME,MAAMC,QAC9BC,KAAM,SAAUC,GAAV,GAOEC,GAUIC,EAGIC,CAnBZH,GAAQI,QAAUC,KAAKC,aAAaN,EAAQI,aAC5CC,KAAKE,WAAab,EAAEc,IAAIH,KAAKI,aAAaT,EAAQI,aAAgBC,KAAKK,gBACvEL,KAAKD,QAAUV,EAAEiB,KAAKN,KAAKE,WAAY,SAAUK,GAC7C,OAAQA,EAAOC,SAEnBR,KAAKL,QAAUA,EACXC,EAAaD,EAAQC,WACrBA,YAAsBN,GAAMO,KAAKY,YACjCT,KAAKJ,WAAa,GAAIA,GAAWc,YAAYrB,EAAEI,UAAWG,EAAWD,SACjEgB,KAAMhB,EAAQiB,SAAW,EAAIhB,EAAWe,OACxCE,OAAQjB,EAAWiB,SACnBC,SAAUnB,EAAQiB,SAAWhB,EAAWmB,QAAUnB,EAAWkB,WAC7DE,KAAMpB,EAAWoB,OACjBC,MAAOrB,EAAWqB,QAClBC,UAAWtB,EAAWsB,eAEtBrB,EAAOD,EAAWC,OAClBA,EAAKsB,OAAS,IACdnB,KAAKJ,WAAWwB,MAAQvB,EACpBC,EAAYE,KAAKJ,WAAWE,UAC5BF,EAAWyB,oBAAsBvB,EAAUH,SAAWG,EAAUH,QAAQE,OACxEC,EAAUH,QAAQE,KAAO,QAIjCG,KAAKJ,WAAaN,EAAMO,KAAKY,WAAWa,OAAO1B,IAGvDK,aAAc,SAAUF,GACpB,GAAIwB,GAAOvB,IACX,OAAOX,GAAEiB,KAAKP,EAAS,SAAUQ,GAC7B,GAAIiB,KAAWjB,EAAOkB,KAItB,QAHKD,GAAUjB,EAAOR,UAClByB,EAASD,EAAKtB,aAAaM,EAAOR,SAASoB,OAAS,GAEjDK,KAGfpB,aAAc,SAAUL,GAAV,GAED2B,GADLF,IACJ,KAASE,EAAM,EAAGA,EAAM3B,EAAQoB,OAAQO,IAC/B3B,EAAQ2B,GAAK3B,QAIlByB,EAASA,EAAOG,OAAO3B,KAAKI,aAAaL,EAAQ2B,GAAK3B,UAHlDyB,EAAOI,KAAK7B,EAAQ2B,GAK5B,OAAOF,IAEXK,SAAU,WACN,MAAOxC,GAAEyC,SAASzC,EAAE0C,MAAM,SAAUC,GAChChC,KAAKJ,WAAWqC,QAAQC,KAAK7C,EAAE0C,MAAM,WACjC,GAAIF,IACAM,SACQpC,QAASC,KAAKoC,WACdC,KAAMrC,KAAKsC,QACXC,WAAYvC,KAAKwC,cACjB3B,OAAQb,KAAKyC,YAGzBT,GAAEU,QAAQb,EAAU7B,KAAKJ,WAAW+C,SACrC3C,QACJA,OAAO4C,WAEdvC,eAAgB,SAAUE,GAAV,GAIRsC,GAGAC,CANJ,IAAKvC,EAAOkB,MAgBZ,MAbIoB,GAAQ,SAAUE,GAClB,MAAOA,GAASC,IAAIzC,EAAOkB,QAE3BqB,EAAS,KACTvC,EAAOuC,SACPA,KACAzD,EAAE4D,KAAK1C,EAAOuC,OAAQ,WAClBA,EAAO9C,KAAK6C,OAAS7C,KAAKkD,OAE9BL,EAAQ,SAAUE,GACd,MAAOD,GAAOC,EAASC,IAAIzC,EAAOkB,UAGnCpC,EAAEI,UAAWc,GAChBsC,MAAOA,EACPC,OAAQA,EACRK,oBAAqB7D,EAAM8D,SAAS7C,EAAO4C,qBAAuB,0BAClEE,oBAAqB9C,EAAO8C,oBAAsB/D,EAAM8D,SAAS7C,EAAO8C,qBAAuB,KAC/FC,eAAgB/C,EAAO+C,eAAiBhE,EAAM8D,SAAS7C,EAAO+C,gBAAkB,QAGxFb,QAAS,WACL,IAAKzC,KAAKL,QAAQ4D,WACd,MAAO,KAEX,IAAIC,GAAQxD,KAAKyD,QACjB,QACIC,KAAMF,EACNG,GAAIH,EAAQxD,KAAKD,QAAQoB,OAAS,IAG1CyC,SAAU,SAAUb,EAAUc,EAAOL,GAA3B,GAIFM,GACKC,EAODxD,EAGAyD,EACAZ,EACAP,EACA5B,EAeAoB,EAOA4B,EACKC,CApCb,KAJIlE,KAAKmE,kBACLN,EAAQ7D,KAAKJ,WAAWiE,MAAMd,GAAY,GAE1Ce,KACKC,EAAK,EAAGA,EAAKF,EAAOE,IACzBD,EAAMC,IACFK,WAAY,UACZC,MAAO,OAGf,IAAIb,GAAST,EAASuB,MA2BlB,MA1BI/D,GAASlB,EAAEiB,KAAKN,KAAKE,WAAY,SAAUK,GAC3C,MAAOA,GAAOkB,OAASsB,EAAStB,QACjC,GACCuC,EAAQzD,GAAUA,EAAOyD,MAAQzD,EAAOyD,MAAQjB,EAAStB,MACzD2B,EAAW7C,EAASA,EAAO4C,oBAAsB,KACjDN,EAAQmB,EAAQ,KAAOjB,EAASF,MAChC5B,EAAQ5B,EAAEI,QACVuE,MAAOA,EACPvC,MAAOsB,EAAStB,MAChBoB,MAAOtC,GAAUA,EAAOuC,OAASvC,EAAOuC,OAAOC,EAASF,OAASE,EAASF,MAC1E0B,WAAYxB,EAASwB,YACtBxB,EAASwB,WAAWxB,EAAStB,QAC5B2B,IACAP,EAAQO,EAASnC,IAErB6C,EAAMlC,MACFiB,MAAOA,EACPuB,WAAY,UACZC,MAAO,OACPG,QAASxE,KAAKD,QAAQoB,OAASqC,EAAQK,IAEvCxB,EAAOrC,KAAKyE,UAAU1B,EAASuB,MAAOT,EAAQ,GAClDxB,EAAKqC,SACDC,KAAM,eACNb,MAAOA,IAEJzB,EAAKV,OAAO3B,KAAK4E,QAAQ7B,GAGhC,KADIkB,KACKC,EAAK,EAAGA,EAAKlE,KAAKD,QAAQoB,OAAQ+C,IACvCD,EAAUC,GAAMlE,KAAK6E,MAAM9B,EAAU/C,KAAKD,QAAQmE,GAKtD,OAHIlE,MAAKmE,kBACLF,EAAU,GAAGO,QAAUhB,EAAQK,EAAQ,KAGnCc,KAAM,OACNb,MAAOA,EAAMnC,OAAOsC,MAIpCQ,UAAW,SAAUK,EAAWjB,GAArB,GAGEkB,GAFLvB,EAAQxD,KAAKyD,SACbpB,IACJ,KAAS0C,EAAI,EAAGA,EAAID,EAAU3D,OAAQ4D,IAClC1C,EAAKT,KAAKoD,MAAM3C,EAAMrC,KAAK4D,SAASkB,EAAUC,GAAIlB,EAAOL,GAE7D,OAAOnB,IAEXuC,QAAS,SAAU7B,GAAV,GACDV,MACA4C,GAAS,EACTnB,EAAQzE,EAAEc,IAAIH,KAAKD,QAASV,EAAE0C,MAAM,SAAUxB,GAC9C,MAAIA,GAAO8C,qBACP4B,GAAS,GAELb,WAAY,UACZC,MAAO,OACPxB,MAAOtC,EAAO8C,oBAAoBhE,EAAEI,UAAWO,KAAKJ,WAAW2E,aAAcxB,EAASwB,WAAYxB,EAASwB,WAAWhE,EAAOkB,YAI7H2C,WAAY,UACZC,MAAO,SAGhBrE,MAYH,OAXIiF,IACA5C,EAAKT,MACD+C,KAAM,eACNb,MAAOzE,EAAEc,IAAQ+E,MAAMlF,KAAKJ,WAAWqB,QAAQE,QAAS,WACpD,OACIiD,WAAY,UACZC,MAAO,UAEZ1C,OAAOmC,KAGXzB,GAEX8C,iBAAkB,SAAU5E,GACxB,MAAOP,MAAKoF,iBAAiB7E,IAASY,OAAS,IAAMZ,EAAOkB,OAASlB,EAAOR,UAEhFqF,gBAAiB,SAAUrF,GACvB,GAAIwB,GAAOvB,IACX,OAAOX,GAAEiB,KAAKP,EAAS,SAAUQ,GAC7B,GAAIiB,IAAUjB,EAAOC,MAIrB,OAHIgB,IAAUjB,EAAOR,UACjByB,EAASD,EAAK6D,gBAAgB7E,EAAOR,SAASoB,OAAS,GAEpDK,KAGf6D,WAAY,SAAUC,EAAKC,GACvB,GAAIC,GAAUnG,EAAEc,IAAImF,EAAIxB,MAAO,SAAU2B,GACrC,OACIrB,WAAY,UACZC,MAAO,OACPxB,MAAO4C,EAAKzB,MACZQ,QAASiB,EAAKjB,QAAU,EAAIiB,EAAKjB,QAAU,EAC3CkB,QAASJ,EAAII,QAAU,IAAMD,EAAKjB,QAAUc,EAAII,QAAU,IAMlE,OAHI1F,MAAKmE,kBACLqB,EAAQ,GAAGhB,QAAUxE,KAAKyD,SAAW,IAGrCkB,KAAM,SACNb,MAAOzE,EAAEc,IAAQ+E,MAAMK,EAAOpE,QAAS,WACnC,OACIiD,WAAY,UACZC,MAAO,UAEZ1C,OAAO6D,KAGlBG,mBAAoB,SAAUtD,GAAV,GAQPX,GAPL6D,EAASvF,KAAKJ,WAAWqB,QACzB2E,IACIF,QAAS,EACT5B,SACA+B,MAAO,GAGf,KADA7F,KAAK8F,mBAAmBF,EAAY5F,KAAKL,QAAQI,SACxC2B,EAAMkE,EAAWzE,OAAS,EAAGO,GAAO,EAAGA,IAC5CW,EAAKqC,QAAQ1E,KAAKqF,WAAWO,EAAWlE,GAAM6D,KAGtDO,mBAAoB,SAAUzD,EAAMtC,EAASgG,EAAYC,GAArC,GAIZzF,GACAkF,EACK/D,EALL4D,EAAMU,GAAa3D,EAAKA,EAAKlB,OAAS,GACtC8E,EAAW5D,EAAKiD,EAAIO,MAAQ,GAC5BK,EAAe,CAGnB,KAASxE,EAAM,EAAGA,EAAM3B,EAAQoB,OAAQO,IACpCnB,EAASR,EAAQ2B,GACb1B,KAAKmF,iBAAiB5E,KACtBkF,GACIzB,MAAOzD,EAAOyD,OAASzD,EAAOkB,MAC9B+C,QAAS,GAEbc,EAAIxB,MAAMlC,KAAK6D,GACXlF,EAAOR,SAAWQ,EAAOR,QAAQoB,SAC5B8E,IACDA,GACIP,QAAS,EACT5B,SACA+B,MAAOxD,EAAKlB,QAEhBkB,EAAKT,KAAKqE,IAEdR,EAAKjB,QAAUxE,KAAKC,aAAaD,KAAKoF,gBAAgB7E,EAAOR,UAAUoB,OACvEnB,KAAK8F,mBAAmBzD,EAAM9B,EAAOR,QAAS0F,EAAMQ,GACpDC,GAAgBT,EAAKjB,QAAU,EAC/Bc,EAAII,QAAUrD,EAAKlB,OAASmE,EAAIO,OAIxCE,KACAA,EAAWvB,SAAW0B,IAG9B5D,MAAO,WAAA,GAKK2C,GACAnB,EALJyB,EAASvF,KAAKJ,WAAWqB,QACzBoB,EAAOrC,KAAKyE,UAAUzE,KAAKJ,WAAW+C,OAAQ,EAgClD,OA/BI3C,MAAKD,QAAQoB,SACbnB,KAAK2F,mBAAmBtD,GACpB4C,GAAS,EACTnB,EAAQzE,EAAEc,IAAIH,KAAKD,QAASV,EAAE0C,MAAM,SAAUxB,GAC9C,GAAIA,EAAO+C,eAAgB,CACvB2B,GAAS,CACT,IAAIV,GAAavE,KAAKJ,WAAW2E,YACjC,QACIH,WAAY,UACZC,MAAO,OACPxB,MAAOtC,EAAO+C,eAAejE,EAAEI,UAAW8E,EAAYA,EAAWhE,EAAOkB,UAG5E,OACI2C,WAAY,UACZC,MAAO,SAGhBrE,OACCiF,GACA5C,EAAKT,MACD+C,KAAM,SACNb,MAAOzE,EAAEc,IAAQ+E,MAAMK,EAAOpE,QAAS,WACnC,OACIiD,WAAY,UACZC,MAAO,UAEZ1C,OAAOmC,MAIfzB,GAEX8D,aAAc,SAAUpG,GAAV,GAGD2B,GAEG0E,EAJR5E,EAAS,EACT6E,EAAM,CACV,KAAS3E,EAAM,EAAGA,EAAM3B,EAAQoB,OAAQO,IAChC3B,EAAQ2B,GAAK3B,UACTqG,EAAOpG,KAAKmG,aAAapG,EAAQ2B,GAAK3B,SACtCqG,EAAOC,IACPA,EAAMD,GAIlB,OAAO5E,GAAS6E,GAEpB7D,YAAa,WAAA,GACLzC,GAAUC,KAAKoF,gBAAgBpF,KAAKL,QAAQI,aAC5CuG,EAAWtG,KAAKoF,gBAAgBpF,KAAKC,aAAaD,KAAKI,aAAaf,EAAEiB,KAAKP,EAAS,SAAUQ,GAC9F,MAAOA,GAAOgG,YACZpF,MACN,QACIqF,SAAUxG,KAAKmG,aAAapG,GAC5BuG,SAAUA,EAAWA,EAAWtG,KAAKJ,WAAWqB,QAAQE,OAAS,IAGzE0D,MAAO,SAAU9B,EAAUxC,GACvB,OAASsC,MAAOtC,EAAOsC,MAAME,KAEjCoB,cAAe,WACX,MAAOnE,MAAKL,QAAQ8G,WAAazG,KAAKJ,WAAWiE,OAErDJ,OAAQ,WAAA,GAGAd,GAAMoC,EAAGlB,EAFTjE,EAAaI,KAAKJ,WAClB4D,EAAQ,CAEZ,IAAIxD,KAAKmE,gBAAiB,CAEtB,IADAxB,EAAO/C,EAAW+C,OACboC,EAAI,EAAGA,EAAIpC,EAAKxB,OAAQ4D,IACzBlB,EAAQjE,EAAWiE,MAAMlB,EAAKoC,IAC1BlB,EAAQL,IACRA,EAAQK,EAGhBL,SAEAA,GAAQ5D,EAAWqB,QAAQE,MAE/B,OAAOqC,IAEXpB,SAAU,WAAA,GACFoB,GAAQxD,KAAKyD,SACb1D,EAAUV,EAAEc,IAAQ+E,MAAM1B,GAAQ,WAClC,OAASkD,MAAO,KAEpB,OAAO3G,GAAQ4B,OAAOtC,EAAEc,IAAIH,KAAKD,QAAS,SAAUQ,GAChD,OACImG,MAAOC,SAASpG,EAAOmG,MAAO,IAC9BE,WAAWrG,EAAOmG,aAKlCpH,EAAMuH,YACFpH,OAAQ,SAAUqH,GACdA,EAAMC,OAAOnF,KAAK,eAClBkF,EAAMnH,QAAQqH,MAAQ3H,EAAEI,OAAOqH,EAAMnH,QAAQqH,MAAOhH,KAAKL,SACzDmH,EAAMG,YAAcjH,KAAKiH,aAE7BtH,SACIuH,SAAU,GACVtG,UAAU,EACV2C,YAAY,EACZ4D,SAAU,eAEdF,YAAa,WAAA,GACLD,GAAQhH,KAAKL,QAAQqH,UACrBI,EAAW,GAAI9H,GAAMC,eACrBQ,QAASC,KAAKD,QACdH,WAAYI,KAAKJ,WACjBgB,SAAUoG,EAAMpG,SAChB2C,WAAYyD,EAAMzD,WAClBkD,UAAWO,EAAMP,WAErBW,GAASvF,WAAWK,KAAK7C,EAAE0C,MAAM,SAAUsF,EAAMxH,GAC7C,IAAKG,KAAKsH,QAAQ,eACVzF,SAAUwF,EACVxH,KAAMA,IACN,CACJ,GAAIgC,GAAW,GAAIvC,GAAMiI,MAAMC,SAASH,EACxC/H,GAAMmI,QACFC,QAAS7F,EAAS8F,YAClBR,SAAUE,EAAKF,UAAYH,EAAMG,SACjCD,SAAUF,EAAME,SAChBU,WAAYZ,EAAMY,eAG3B5H,UAGbV,MAAMuI,OAAQvI,OACTA,OACS,kBAAVF,SAAwBA,OAAO0I,IAAM1I,OAAS,SAAU2I,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.excel.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.excel', [\n 'kendo.core',\n 'kendo.data',\n 'kendo.ooxml'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'excel',\n name: 'Excel export',\n category: 'framework',\n advanced: true,\n mixin: true,\n depends: [\n 'data',\n 'ooxml'\n ]\n };\n (function ($, kendo) {\n kendo.ExcelExporter = kendo.Class.extend({\n init: function (options) {\n options.columns = this._trimColumns(options.columns || []);\n this.allColumns = $.map(this._leafColumns(options.columns || []), this._prepareColumn);\n this.columns = $.grep(this.allColumns, function (column) {\n return !column.hidden;\n });\n this.options = options;\n var dataSource = options.dataSource;\n if (dataSource instanceof kendo.data.DataSource) {\n this.dataSource = new dataSource.constructor($.extend({}, dataSource.options, {\n page: options.allPages ? 0 : dataSource.page(),\n filter: dataSource.filter(),\n pageSize: options.allPages ? dataSource.total() : dataSource.pageSize(),\n sort: dataSource.sort(),\n group: dataSource.group(),\n aggregate: dataSource.aggregate()\n }));\n var data = dataSource.data();\n if (data.length > 0) {\n this.dataSource._data = data;\n var transport = this.dataSource.transport;\n if (dataSource._isServerGrouped() && transport.options && transport.options.data) {\n transport.options.data = null;\n }\n }\n } else {\n this.dataSource = kendo.data.DataSource.create(dataSource);\n }\n },\n _trimColumns: function (columns) {\n var that = this;\n return $.grep(columns, function (column) {\n var result = !!column.field;\n if (!result && column.columns) {\n result = that._trimColumns(column.columns).length > 0;\n }\n return result;\n });\n },\n _leafColumns: function (columns) {\n var result = [];\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(this._leafColumns(columns[idx].columns));\n }\n return result;\n },\n workbook: function () {\n return $.Deferred($.proxy(function (d) {\n this.dataSource.fetch().then($.proxy(function () {\n var workbook = {\n sheets: [{\n columns: this._columns(),\n rows: this._rows(),\n freezePane: this._freezePane(),\n filter: this._filter()\n }]\n };\n d.resolve(workbook, this.dataSource.view());\n }, this));\n }, this)).promise();\n },\n _prepareColumn: function (column) {\n if (!column.field) {\n return;\n }\n var value = function (dataItem) {\n return dataItem.get(column.field);\n };\n var values = null;\n if (column.values) {\n values = {};\n $.each(column.values, function () {\n values[this.value] = this.text;\n });\n value = function (dataItem) {\n return values[dataItem.get(column.field)];\n };\n }\n return $.extend({}, column, {\n value: value,\n values: values,\n groupHeaderTemplate: kendo.template(column.groupHeaderTemplate || '#= title #: #= value #'),\n groupFooterTemplate: column.groupFooterTemplate ? kendo.template(column.groupFooterTemplate) : null,\n footerTemplate: column.footerTemplate ? kendo.template(column.footerTemplate) : null\n });\n },\n _filter: function () {\n if (!this.options.filterable) {\n return null;\n }\n var depth = this._depth();\n return {\n from: depth,\n to: depth + this.columns.length - 1\n };\n },\n _dataRow: function (dataItem, level, depth) {\n if (this._hierarchical()) {\n level = this.dataSource.level(dataItem) + 1;\n }\n var cells = [];\n for (var li = 0; li < level; li++) {\n cells[li] = {\n background: '#dfdfdf',\n color: '#333'\n };\n }\n if (depth && dataItem.items) {\n var column = $.grep(this.allColumns, function (column) {\n return column.field == dataItem.field;\n })[0];\n var title = column && column.title ? column.title : dataItem.field;\n var template = column ? column.groupHeaderTemplate : null;\n var value = title + ': ' + dataItem.value;\n var group = $.extend({\n title: title,\n field: dataItem.field,\n value: column && column.values ? column.values[dataItem.value] : dataItem.value,\n aggregates: dataItem.aggregates\n }, dataItem.aggregates[dataItem.field]);\n if (template) {\n value = template(group);\n }\n cells.push({\n value: value,\n background: '#dfdfdf',\n color: '#333',\n colSpan: this.columns.length + depth - level\n });\n var rows = this._dataRows(dataItem.items, level + 1);\n rows.unshift({\n type: 'group-header',\n cells: cells\n });\n return rows.concat(this._footer(dataItem));\n } else {\n var dataCells = [];\n for (var ci = 0; ci < this.columns.length; ci++) {\n dataCells[ci] = this._cell(dataItem, this.columns[ci]);\n }\n if (this._hierarchical()) {\n dataCells[0].colSpan = depth - level + 1;\n }\n return [{\n type: 'data',\n cells: cells.concat(dataCells)\n }];\n }\n },\n _dataRows: function (dataItems, level) {\n var depth = this._depth();\n var rows = [];\n for (var i = 0; i < dataItems.length; i++) {\n rows.push.apply(rows, this._dataRow(dataItems[i], level, depth));\n }\n return rows;\n },\n _footer: function (dataItem) {\n var rows = [];\n var footer = false;\n var cells = $.map(this.columns, $.proxy(function (column) {\n if (column.groupFooterTemplate) {\n footer = true;\n return {\n background: '#dfdfdf',\n color: '#333',\n value: column.groupFooterTemplate($.extend({}, this.dataSource.aggregates(), dataItem.aggregates, dataItem.aggregates[column.field]))\n };\n } else {\n return {\n background: '#dfdfdf',\n color: '#333'\n };\n }\n }, this));\n if (footer) {\n rows.push({\n type: 'group-footer',\n cells: $.map(new Array(this.dataSource.group().length), function () {\n return {\n background: '#dfdfdf',\n color: '#333'\n };\n }).concat(cells)\n });\n }\n return rows;\n },\n _isColumnVisible: function (column) {\n return this._visibleColumns([column]).length > 0 && (column.field || column.columns);\n },\n _visibleColumns: function (columns) {\n var that = this;\n return $.grep(columns, function (column) {\n var result = !column.hidden;\n if (result && column.columns) {\n result = that._visibleColumns(column.columns).length > 0;\n }\n return result;\n });\n },\n _headerRow: function (row, groups) {\n var headers = $.map(row.cells, function (cell) {\n return {\n background: '#7a7a7a',\n color: '#fff',\n value: cell.title,\n colSpan: cell.colSpan > 1 ? cell.colSpan : 1,\n rowSpan: row.rowSpan > 1 && !cell.colSpan ? row.rowSpan : 1\n };\n });\n if (this._hierarchical()) {\n headers[0].colSpan = this._depth() + 1;\n }\n return {\n type: 'header',\n cells: $.map(new Array(groups.length), function () {\n return {\n background: '#7a7a7a',\n color: '#fff'\n };\n }).concat(headers)\n };\n },\n _prependHeaderRows: function (rows) {\n var groups = this.dataSource.group();\n var headerRows = [{\n rowSpan: 1,\n cells: [],\n index: 0\n }];\n this._prepareHeaderRows(headerRows, this.options.columns);\n for (var idx = headerRows.length - 1; idx >= 0; idx--) {\n rows.unshift(this._headerRow(headerRows[idx], groups));\n }\n },\n _prepareHeaderRows: function (rows, columns, parentCell, parentRow) {\n var row = parentRow || rows[rows.length - 1];\n var childRow = rows[row.index + 1];\n var totalColSpan = 0;\n var column;\n var cell;\n for (var idx = 0; idx < columns.length; idx++) {\n column = columns[idx];\n if (this._isColumnVisible(column)) {\n cell = {\n title: column.title || column.field,\n colSpan: 0\n };\n row.cells.push(cell);\n if (column.columns && column.columns.length) {\n if (!childRow) {\n childRow = {\n rowSpan: 0,\n cells: [],\n index: rows.length\n };\n rows.push(childRow);\n }\n cell.colSpan = this._trimColumns(this._visibleColumns(column.columns)).length;\n this._prepareHeaderRows(rows, column.columns, cell, childRow);\n totalColSpan += cell.colSpan - 1;\n row.rowSpan = rows.length - row.index;\n }\n }\n }\n if (parentCell) {\n parentCell.colSpan += totalColSpan;\n }\n },\n _rows: function () {\n var groups = this.dataSource.group();\n var rows = this._dataRows(this.dataSource.view(), 0);\n if (this.columns.length) {\n this._prependHeaderRows(rows);\n var footer = false;\n var cells = $.map(this.columns, $.proxy(function (column) {\n if (column.footerTemplate) {\n footer = true;\n var aggregates = this.dataSource.aggregates();\n return {\n background: '#dfdfdf',\n color: '#333',\n value: column.footerTemplate($.extend({}, aggregates, aggregates[column.field]))\n };\n } else {\n return {\n background: '#dfdfdf',\n color: '#333'\n };\n }\n }, this));\n if (footer) {\n rows.push({\n type: 'footer',\n cells: $.map(new Array(groups.length), function () {\n return {\n background: '#dfdfdf',\n color: '#333'\n };\n }).concat(cells)\n });\n }\n }\n return rows;\n },\n _headerDepth: function (columns) {\n var result = 1;\n var max = 0;\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n var temp = this._headerDepth(columns[idx].columns);\n if (temp > max) {\n max = temp;\n }\n }\n }\n return result + max;\n },\n _freezePane: function () {\n var columns = this._visibleColumns(this.options.columns || []);\n var colSplit = this._visibleColumns(this._trimColumns(this._leafColumns($.grep(columns, function (column) {\n return column.locked;\n })))).length;\n return {\n rowSplit: this._headerDepth(columns),\n colSplit: colSplit ? colSplit + this.dataSource.group().length : 0\n };\n },\n _cell: function (dataItem, column) {\n return { value: column.value(dataItem) };\n },\n _hierarchical: function () {\n return this.options.hierarchy && this.dataSource.level;\n },\n _depth: function () {\n var dataSource = this.dataSource;\n var depth = 0;\n var view, i, level;\n if (this._hierarchical()) {\n view = dataSource.view();\n for (i = 0; i < view.length; i++) {\n level = dataSource.level(view[i]);\n if (level > depth) {\n depth = level;\n }\n }\n depth++;\n } else {\n depth = dataSource.group().length;\n }\n return depth;\n },\n _columns: function () {\n var depth = this._depth();\n var columns = $.map(new Array(depth), function () {\n return { width: 20 };\n });\n return columns.concat($.map(this.columns, function (column) {\n return {\n width: parseInt(column.width, 10),\n autoWidth: column.width ? false : true\n };\n }));\n }\n });\n kendo.ExcelMixin = {\n extend: function (proto) {\n proto.events.push('excelExport');\n proto.options.excel = $.extend(proto.options.excel, this.options);\n proto.saveAsExcel = this.saveAsExcel;\n },\n options: {\n proxyURL: '',\n allPages: false,\n filterable: false,\n fileName: 'Export.xlsx'\n },\n saveAsExcel: function () {\n var excel = this.options.excel || {};\n var exporter = new kendo.ExcelExporter({\n columns: this.columns,\n dataSource: this.dataSource,\n allPages: excel.allPages,\n filterable: excel.filterable,\n hierarchy: excel.hierarchy\n });\n exporter.workbook().then($.proxy(function (book, data) {\n if (!this.trigger('excelExport', {\n workbook: book,\n data: data\n })) {\n var workbook = new kendo.ooxml.Workbook(book);\n kendo.saveAs({\n dataURI: workbook.toDataURL(),\n fileName: book.fileName || excel.fileName,\n proxyURL: excel.proxyURL,\n forceProxy: excel.forceProxy\n });\n }\n }, this));\n }\n };\n }(kendo.jQuery, kendo));\n return kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}