UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 9.04 kB
module.exports=function(r){var o={};function n(e){if(o[e])return o[e].exports;var t=o[e]={exports:{},id:e,loaded:!1};return r[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}return n.m=r,n.c=o,n.p="",n(0)}({0:function(e,t,r){e.exports=r(1029)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},20:function(e,t){e.exports=require("../kendo.core")},1029:function(e,t,r){var o;r(3),r=[r(20)],void 0===(t="function"==typeof(o=function(){var c=window.kendo.jQuery,o=(window.kendo.excel=window.kendo.excel||{},kendo.getter),t=c.map,r={compile:function(e){return e}},n=kendo.Class.extend({});function l(e){return e.title+": "+e.value}function a(e,t){var r=[];for(var o=0;o<e;o++)r.push(t(o));return r}function d(e){return e.id}n.register=function(e){r=e},n.compile=function(e){return r.compile(e)};var e=kendo.Class.extend({init:function(e){e.columns=this._trimColumns(e.columns||[]);this.allColumns=t(this._leafColumns(e.columns||[]),this._prepareColumn);this.columns=this._visibleColumns(this.allColumns);this.options=e;this.data=e.data||[];this.aggregates=e.aggregates||{};this.groups=[].concat(e.groups||[]);this.hasGroups=this.groups.length>0;this.hierarchy=e.hierarchy;this.hasGroupHeaderColumn=this.columns.some(function(e){return e.groupHeaderColumnTemplate});this.collapsible=this.options.collapsible},workbook:function(){var e={sheets:[{columns:this._columns(),rows:this.hierarchy?this._hierarchyRows():this._rows(),freezePane:this._freezePane(),filter:this._filter()}]};return e},_trimColumns:function(e){var r=this;return e.filter(function(e){var t=Boolean(e.field);if(!t&&e.columns)t=r._trimColumns(e.columns).length>0;return t})},_leafColumns:function(e){var t=this;var r=[];for(var o=0;o<e.length;o++)if(!e[o].columns)r.push(e[o]);else r=r.concat(t._leafColumns(e[o].columns));return r},_prepareColumn:function(t){if(!t.field)return null;var e=function(e){return o(t.field,true)(e)};var r=null;if(t.values){r={};t.values.forEach(function(e){r[e.value]=e.text});e=function(e){return r[o(t.field,true)(e)]}}return c.extend({},t,{value:e,values:r,groupHeaderTemplate:t.groupHeaderTemplate?n.compile(t.groupHeaderTemplate):l,groupHeaderColumnTemplate:t.groupHeaderColumnTemplate?n.compile(t.groupHeaderColumnTemplate):null,groupFooterTemplate:t.groupFooterTemplate?n.compile(t.groupFooterTemplate):null,footerTemplate:t.footerTemplate?n.compile(t.footerTemplate):null})},_filter:function(){if(!this.options.filterable)return null;var e=this._depth();return{from:e,to:e+this.columns.length-1}},_createPaddingCells:function(e){var t=this;return a(e,function(){return c.extend({background:"#dfdfdf",color:"#333"},t.options.paddingCellOptions)})},_dataRow:function(e,t,r){var o=this;var n=this._createPaddingCells(t);if(this.hasGroups&&r&&e.items){n=n.concat(this._groupHeaderCells(e,t,r));var l=this._dataRows(e.items,t+1);l.unshift({type:"group-header",cells:n,level:this.collapsible?t:null});return l.concat(this._footer(e,t))}var a=[];for(var i=0;i<this.columns.length;i++)a[i]=o._cell(e,o.columns[i]);if(this.hierarchy)a[0].colSpan=r-t+1;return[{type:"data",cells:n.concat(a),level:this.collapsible?t:null}]},_groupHeaderCells:function(r,e,t){var o=[];var n=this.allColumns.filter(function(e){return e.field===r.field})[0]||{};var l=n&&n.title?n.title:r.field;var a=n?n.groupHeaderTemplate||n.groupHeaderColumnTemplate:null;var i=c.extend({title:l,field:r.field,value:n&&n.values?n.values[r.value]:r.value,aggregates:r.aggregates,items:r.items},r.aggregates[r.field]);var s=a?a(i):l+": "+r.value;o.push(c.extend({value:s,background:"#dfdfdf",color:"#333",colSpan:(this.hasGroupHeaderColumn?1:this.columns.length)+t-e},n.groupHeaderCellOptions));if(this.hasGroupHeaderColumn)this.columns.forEach(function(e,t){if(t>0)o.push(c.extend({background:"#dfdfdf",color:"#333",value:e.groupHeaderColumnTemplate?e.groupHeaderColumnTemplate(c.extend({group:i},i,r.aggregates[e.field])):undefined},e.groupHeaderCellOptions))});return o},_dataRows:function(e,t){var r=this;var o=this._depth();var n=[];for(var l=0;l<e.length;l++)n.push.apply(n,r._dataRow(e[l],t,o));return n},_hierarchyRows:function(){var e=this;var t=this._depth();var r=this.data;var h=this.hierarchy.itemLevel;var c=this.hierarchy.itemId||d;var o=this._hasFooterTemplate();var n=[];var l=[];var a=0;var p;if(!o)this.collapsible=false;for(var i=0;i<r.length;i++){var s=r[i];var u=h(s,i);if(o){if(u>a)l.push({id:p,level:a});else if(u<a)n.push.apply(n,e._hierarchyFooterRows(l,u,t));a=u;p=c(s,i)}n.push.apply(n,e._dataRow(s,u+1,t))}if(o){n.push.apply(n,this._hierarchyFooterRows(l,0,t));var f=r.length?this.aggregates[r[0].parentId]:{};n.push(this._hierarchyFooter(f,0,t))}this._prependHeaderRows(n);return n},_hierarchyFooterRows:function(e,t,r){var o=this;var n=[];while(e.length&&e[e.length-1].level>=t){var l=e.pop();n.push(o._hierarchyFooter(o.aggregates[l.id],l.level+1,r))}return n},_hasFooterTemplate:function(){var e=this.columns;for(var t=0;t<e.length;t++)if(e[t].footerTemplate)return true},_hierarchyFooter:function(n,l,a){var e=this.columns.map(function(e,t){var r=t?1:a-l+1;if(e.footerTemplate){var o=(n||{})[e.field];return c.extend({background:"#dfdfdf",color:"#333",colSpan:r,value:e.footerTemplate(c.extend({aggregates:n},o))},e.footerCellOptions)}return c.extend({background:"#dfdfdf",color:"#333",colSpan:r},e.footerCellOptions)});return{type:"footer",cells:this._createPaddingCells(l).concat(e),level:this.collapsible?l:null}},_footer:function(r,e){var t=[];var o=this.columns.some(function(e){return e.groupFooterTemplate});var n,l;if(o){l={group:{items:r.items,field:r.field,value:r.value}};n={};Object.keys(r.aggregates).forEach(function(e){n[e]=c.extend({},r.aggregates[e],l)})}var a=this.columns.map(function(e){if(e.groupFooterTemplate){var t=c.extend({},n,r.aggregates[e.field],l);return c.extend({background:"#dfdfdf",color:"#333",value:e.groupFooterTemplate(t)},e.groupFooterCellOptions)}return c.extend({background:"#dfdfdf",color:"#333"},e.groupFooterCellOptions)});if(o)t.push({type:"group-footer",cells:this._createPaddingCells(this.groups.length).concat(a),level:this.collapsible?e:null});return t},_isColumnVisible:function(e){return this._visibleColumns([e]).length>0&&(e.field||e.columns)},_visibleColumns:function(e){var l=this;return e.filter(function(e){var t=e.exportable;if(typeof t==="object")t=e.exportable.excel;var r=!e.hidden&&t!==false;var o=e.hidden&&t===true;var n=r||o;if(n&&e.columns)n=l._visibleColumns(e.columns).length>0;return n})},_headerRow:function(t,e){var r=this;var o=t.cells.map(function(e){return c.extend(e,{colSpan:e.colSpan>1?e.colSpan:1,rowSpan:t.rowSpan>1&&!e.colSpan?t.rowSpan:1})});if(this.hierarchy&&o[0].firstCell)o[0].colSpan+=this._depth();return{type:"header",cells:a(e.length,function(){return c.extend({background:"#7a7a7a",color:"#fff"},r.options.headerPaddingCellOptions)}).concat(o)}},_prependHeaderRows:function(e){var t=this;var r=this.groups;var o=[{rowSpan:1,cells:[],index:0}];this._prepareHeaderRows(o,this.options.columns);for(var n=o.length-1;n>=0;n--)e.unshift(t._headerRow(o[n],r))},_prepareHeaderRows:function(e,t,r,h){var o=this;var n=h||e[e.length-1];var l=e[n.index+1];var a=0;for(var i=0;i<t.length;i++){var s=t[i];if(o._isColumnVisible(s)){var u=c.extend({background:"#7a7a7a",color:"#fff",value:s.title||s.field,colSpan:0,firstCell:i===0&&(!r||r.firstCell)},s.headerCellOptions);n.cells.push(u);if(s.columns&&s.columns.length){if(!l){l={rowSpan:0,cells:[],index:e.length};e.push(l)}u.colSpan=o._trimColumns(o._visibleColumns(s.columns)).length;o._prepareHeaderRows(e,s.columns,u,l);a+=u.colSpan-1;n.rowSpan=e.length-n.index}}}if(r)r.colSpan+=a},_rows:function(){var t=this;var e=this._dataRows(this.data,0);if(this.columns.length){this._prependHeaderRows(e);var r=false;var o=this.columns.map(function(e){if(e.footerTemplate){r=true;return c.extend({background:"#dfdfdf",color:"#333",value:e.footerTemplate(c.extend({},t.aggregates,t.aggregates[e.field]))},e.footerCellOptions)}return c.extend({background:"#dfdfdf",color:"#333"},e.footerCellOptions)});if(r)e.push({type:"footer",cells:this._createPaddingCells(this.groups.length).concat(o)})}return e},_headerDepth:function(e){var t=this;var r=1;var o=0;for(var n=0;n<e.length;n++)if(e[n].columns){var l=t._headerDepth(e[n].columns);if(l>o)o=l}return r+o},_freezePane:function(){var e=this._visibleColumns(this.options.columns||[]);var t=this._visibleColumns(this._trimColumns(this._leafColumns(e.filter(function(e){return e.locked})))).length;return{rowSplit:this._headerDepth(e),colSplit:t?t+this.groups.length:0}},_cell:function(e,t){return c.extend({value:t.value(e)},t.cellOptions)},_depth:function(){var e=0;if(this.hierarchy)e=this.hierarchy.depth;else e=this.groups.length;return e},_columns:function(){var e=this._depth();var t=a(e,function(){return{width:20}});return t.concat(this.columns.map(function(e){return{width:parseInt(e.width,10),autoWidth:e.width?false:true}}))}});kendo.deepExtend(kendo.excel,{ExcelExporter:e,TemplateService:n})})?o.apply(t,r):o)||(e.exports=t)}});