@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 6.01 kB
JavaScript
module.exports=function(n){var i={};function r(t){if(i[t])return i[t].exports;var e=i[t]={exports:{},id:t,loaded:!1};return n[t].call(e.exports,e,e.exports,r),e.loaded=!0,e.exports}return r.m=n,r.c=i,r.p="",r(0)}({0:function(t,e,n){t.exports=n(1724)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},20:function(t,e){t.exports=require("../kendo.core")},1724:function(t,e,n){var i;n(3),n=[n(20)],void 0===(e="function"==typeof(i=function(){var t=kendo,o=t.Class.extend({init:function t(e,n,i,r){this.level=e;this.value=n;this.left=i;this.right=r}}),r=new function t(){this.left=this;this.right=this;this.level=0};function s(t){if(t.left.level===t.level){var e=t;t=t.left;e.left=t.right;t.right=e}return t}function u(t){if(t.right.right.level===t.level){var e=t;t=t.right;e.right=t.left;t.left=e;t.level+=1}return t}function n(t,e){if(t===r)return new o(1,e,r,r);else if(t.value.start>e.start)t.left=n(t.left,e);else t.right=n(t.right,e);return u(s(t))}function a(t,e){if(t===r)return t;var n=t.value.start-e.start;if(n===0)if(t.left!==r&&t.right!==r){var i=t.left;while(i.right!==r)i=i.right;t.value=i.value;t.left=a(t.left,t.value)}else if(t.left===r)t=t.right;else t=t.left;else if(n>0)t.left=a(t.left,e);else t.right=a(t.right,e);if(t.left.level<t.level-1||t.right.level<t.level-1){t.level-=1;if(t.right.level>t.level)t.right.level=t.level;t=s(t);t.right=s(t.right);t.right.right=s(t.right.right);t=u(t);t.right=u(t.right)}return t}var l=t.Class.extend({init:function t(e,n,i){this.start=e;this.end=n;this.value=i},intersects:function(t){return t.start<=this.end&&t.end>=this.start},clone:function(){return new l(this.start,this.end,this.value)}}),f=t.Class.extend({init:function t(){this.root=r},insert:function(t){this.root=n(this.root,t)},remove:function(t){this.root=a(this.root,t)},findrange:function(t){var e=this.root;while(e!=r)if(t<e.value.start)e=e.left;else if(t>e.value.end)e=e.right;else return e.value;return null},values:function(){var t=[];i(this.root,t);return t},intersecting:function(t,e){var n=[];h(this.root,new l(t,e),n);return n},map:function(t){var e=new f;v(e,this.root,t);return e},forEach:function(t){c(this.root,t)},clone:function(){return this.map(function(t){return t.clone()})},first:function(){var t=this.root;while(t.left!=r)t=t.left;return t},last:function(){var t=this.root;while(t.right!=r)t=t.right;return t}});function i(t,e){if(t===r)return;i(t.left,e);e.push(t.value);i(t.right,e)}function h(t,e,n){if(t===r)return;var i=t.value;if(e.start<i.start)h(t.left,e,n);if(i.intersects(e))n.push(i);if(e.end>i.end)h(t.right,e,n)}function v(t,e,n){if(e===r)return;v(t,e.left,n);t.insert(n(e.value));v(t,e.right,n)}function c(t,e){if(t===r)return;c(t.left,e);e(t.value);c(t.right,e)}var e=t.Class.extend({init:function t(e,n,i){if(n===undefined)this.tree=e;else{this.tree=new f;this.tree.insert(new l(e,n,i))}},values:function(){return this.tree.values()},map:function(t){return new e(this.tree.map(t))},forEach:function(t){this.tree.forEach(t)},intersecting:function(t,e){return this.tree.intersecting(t,e)},first:function(){return this.tree.first().value},last:function(){return this.tree.last().value},insert:function(t,e,n){return this.tree.insert(new l(t,e,n))},value:function(t,e,n){if(n===undefined){if(e===undefined)e=t;return this.intersecting(t,e)[0].value}var i=this.tree.intersecting(t-1,e+1);if(i.length){var r=i[0],s=i[i.length-1];if(r.end<t)if(r.value===n)t=r.start;else i.shift();if(s.start>e)if(s.value===n)e=s.end;else i.pop();for(var u=0,h=i.length;u<h;u++){var a=i[u];var l=a.value;var f=a.start;var o=a.end;this.tree.remove(a);if(f<t)if(l!==n)this.insert(f,t-1,l);else t=f;if(o>e)if(l!==n)this.insert(e+1,o,l);else e=o}}this.insert(t,e,n)},expandedValues:function(t,e){var n=this.intersecting(t,e);var i=[];var r=0;for(var s=t;s<=e;s++){if(n[r].end<s)r++;i.push({index:s-t,value:n[r].value})}return i},sortedIndices:function(t,e,r,s){var n=this.expandedValues(t,e);var i=function(t,e){if(t.value===e.value)return t.index-e.index;return r(t.value,e.value)};if(s)i=function(t,e){var n=s[t.index];var i=s[e.index];if(n.value===i.value)return r(t.value,e.value);return t.index-e.index};n.sort(i);return n},sort:function(t,e,n){if(this.intersecting(t,e).length===1)return;var i=this.expandedValues(t,e);for(var r=0,s=n.length;r<s;r++)this.value(r+t,r+t,i[n[r].index].value)},copy:function(t,e,n){var i=this.intersecting(t,e);var r=n;var s;for(var u=0,a=i.length;u<a;u++){var l=i[u].start;if(l<t)l=t;var f=i[u].end;if(f>e)f=e;s=r+(f-l);this.value(r,s,i[u].value);r=++s}},iterator:function(t,e){return new d(t,e,this.intersecting(t,e))},getState:function(){return this.tree.clone()},setState:function(t){this.tree=t.clone()},toJSON:function(){return this.values()},fromJSON:function(t){t.forEach(function(t){this.value(t.start,t.end,t.value)},this)}}),d=t.Class.extend({init:function(t,e,n){this.start=t;this.end=e;this.index=0;this.ranges=n},unique:function(){return this.ranges.map(function(t){return t.value})},at:function(t){while(this.ranges[this.index]&&this.ranges[this.index].end<t)this.index++;return this.ranges[this.index]&&this.ranges[this.index].value},forEach:function(t){for(var e=this.start;e<=this.end;e++)t(this.at(e),e);this.index=0}}),g=e.extend({init:function(t,e,n){this._defaultValue=n;this.tree=new f;this.range=new l(t,e,n)},intersecting:function(t,e){var n=this.tree.intersecting(t,e);var i=[];var r;if(!n.length)return[this.range];for(var s=0,u=n.length;s<u;s++){r=n[s];if(r.start>t)i.push(new l(t,r.start-1,this.range.value));i.push(r);t=r.end+1}if(r.end<e)i.push(new l(r.end+1,e,this.range.value));return i},insert:function(t,e,n){if(n==null)n=this._defaultValue;if(n!==this.range.value)this.tree.insert(new l(t,e,n))},lastRangeStart:function(){var t=this.tree.root;if(t===r)return this.range.start;while(t.right!==r)t=t.right;return t.value.end+1}});t.spreadsheet.RangeTree=f,t.spreadsheet.RangeList=e,t.spreadsheet.SparseRangeList=g,t.spreadsheet.ValueRange=l})?i.apply(e,n):i)||(t.exports=e)}});