UNPKG

@progress/kendo-ui

Version:

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

1 lines 4.4 kB
module.exports=function(n){var r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,i),t.loaded=!0,t.exports}return i.m=n,i.c=r,i.p="",i(0)}({0:function(e,t,n){e.exports=n(1731)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},5:function(e,t){e.exports=require("../kendo.data")},20:function(e,t){e.exports=require("../kendo.core")},1697:function(e,t){e.exports=require("./sheet")},1731:function(e,t,n){var r;n(3),n=[n(20),n(5),n(1697)],void 0===(t="function"==typeof(r=function(){var g=kendo,_=function(e){return e},e=g.Class.extend({init:function(e){this.options=g.jQuery.extend({},this.options,e);this.columns=this._normalizeColumns(this.options.columns);this._sheet();this._dataSource();this._header();this._boundRowsCount=0;this.dataSource.fetch()},_sheet:function(){this.sheet=this.options.sheet;this._sheetChangeHandler=this._sheetChange.bind(this);this._sheetDeleteRowHandler=this._sheetDeleteRow.bind(this);this._sheetInsertRowHandler=this._sheetInsertRow.bind(this);this.sheet.bind("change",this._sheetChangeHandler).bind("afterDeleteRow",this._sheetDeleteRowHandler).bind("afterInsertRow",this._sheetInsertRowHandler)},_sheetInsertRow:function(e){if(e.index!==undefined)this.dataSource.insert(Math.max(e.index-1,0),{})},_sheetDeleteRow:function(e){if(e.index!==undefined){var t=this.dataSource;var n=t.view()[e.index-1];if(n)t.remove(n)}},_header:function(){this.sheet.batch(function(){this.columns.forEach(function(e,t){this.sheet.range(0,t).value(e.title)}.bind(this))}.bind(this))},_sheetChange:function(e){if(e.insertRow||e.deleteRow)return;if(e.recalc&&e.ref&&e.isValue){var t=g.spreadsheet.UnionRef;var h=this.dataSource;var a=h.view();var d=this.columns;var u=[];var s=this.sheet;var n,c,r,l,o,i;var f=function(e){e=e.toRangeRef();var t;var n=0;for(var r=e.topLeft.row;r<=e.bottomRight.row;r++){t=a[r-1];if(!t){t=h.insert(r-1,{});a=h.view()}var i=0;for(var s=e.topLeft.col;s<=e.bottomRight.col&&s<d.length;s++){var o=u[l][n][i++];t.set(d[s].field,c[s](o))}n++}};if(h.reader.model)n=h.reader.model.fields;if(!d.length&&a.length)d=Object.keys(a[0].toJSON());c=d.map(function(e){var t=e.field;if(t&&n&&n[t]&&n[t].type=="date")return p;return _});this._skipRebind=true;r=s._grid.normalize(e.ref);if(!(r instanceof t))r=new t([r]);i=r.refs;i.forEach(function(e){u.push(s.range(e).values())});for(l=0;l<i.length;l++){o=i[l];o.forEach(f)}this._boundRowsCount=h.view().length;this._skipRebind=false}},_normalizeColumns:function(e){return e.map(function(e){var t=e.field||e;return{field:t,title:e.title||t}})},_dataSource:function(){var e=this.options;var t=e.dataSource;t=Array.isArray(t)?{data:t}:t;if(this.dataSource&&this._changeHandler)this.dataSource.unbind("change",this._changeHandler).unbind("progress",this._progressHandler).unbind("error",this._errorHandler);else{this._changeHandler=this._change.bind(this);this._progressHandler=this._requestStart.bind(this);this._errorHandler=this._error.bind(this)}this.dataSource=g.data.DataSource.create(t).bind("change",this._changeHandler).bind("progress",this._progressHandler).bind("error",this._errorHandler)},_error:function(){this._progress(false)},_requestStart:function(){this._progress(true)},_progress:function(e){this.sheet.trigger("progress",{toggle:e})},_change:function(){if(this._skipRebind)return;if(this.sheet.trigger("dataBinding"))return;var i=this.dataSource.view();var e=this.columns;if(!e.length&&i.length){this.columns=e=this._normalizeColumns(Object.keys(i[0].toJSON()));this._header()}var s=e.map(function(e){return g.getter(e.field)});this.sheet.batch(function(){var e=Math.max(i.length,this._boundRowsCount,this.sheet._grid.rowCount-1);for(var t=0;t<e;t++)for(var n=0;n<s.length;n++){var r=i[t]?s[n](i[t]):null;this.sheet.range(t+1,n).value(r)}}.bind(this));this._boundRowsCount=i.length;this._progress(false);this.sheet.trigger("dataBound")},destroy:function(){this.dataSource.unbind("change",this._changeHandler).unbind("progress",this._progressHandler).unbind("error",this._errorHandler);this.sheet.unbind("change",this._sheetChangeHandler).unbind("deleteRow",this._sheetDeleteRowHandler).unbind("insertRow",this._sheetInsertRowHandler)},options:{columns:[]}});function p(e){return e==null?null:g.spreadsheet.numberToDate(e)}g.spreadsheet.SheetDataSourceBinder=e})?r.apply(t,n):r)||(e.exports=t)}});