/*! * * Spread.Sheets Library 10.0.1 * * Copyright(c) GrapeCity, Inc. All rights reserved. * * Licensed under the SpreadJS Commercial License. * spread.sales@grapecity.com * http://spread.grapecity.com/spreadjs/eula/ * * */ var GC=GC||{};GC.Spread=GC.Spread||{},GC.Spread.Sheets=GC.Spread.Sheets||{},GC.Spread.Sheets.Outlines=function(a){var b={};function c(d){if(b[d])return b[d].exports;var e=b[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,c),e.loaded=!0,e.exports}return c.m=a,c.c=b,c.p="/assets/",c(0)}([function(a,b,c){c(1);var b=c(4);b.SR={},b.SR.en=c(5),a.exports=b},function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q=c(2),r=c(3),s=r.Commands,t=s.ActionBase,u=r.GC$,v="outlineColumn",w="removeColumnOutline",x="expandColumnOutline",y="expandColumnOutlineForLevel",z="outlineRow",A="removeRowOutline",B="expandRowOutline",C="expandRowOutlineForLevel",D=q.j.Fa;function E(a){var b=a.kj;return a.ML?b.rowOutlines:b.columnOutlines}function F(a){var b,c,d,e,f,g=this,h=!1;return(a?g.canExecute():g.canUndo())&&(b=g.kj,c=g.VQ.index,d=g.VQ.count,e=E(g),b&&e&&!D(c)&&!D(d)&&(f=a?e.group:e.ungroupRange,g.Lz(b,!0),f.call(e,c,d),g.Mz(b,!0),h=!0)),h}d=function(a){u.inherit(b,a);function b(b,c,d){var e=this;a.call(e),e.kj=b,e.VQ=c,e.ML=d}var c={execute:function(){return F.call(this,!0)},undo:function(){return F.call(this,!1)}};return u.extend(b.prototype,c),b}(t),e=function(a){u.inherit(b,a);function b(b,c){a.call(this,b,c,!1)}return b}(d),f=function(a){u.inherit(b,a);function b(b,c){a.call(this,b,c,!0)}return b}(d),g=function(a){u.inherit(b,a);function b(b,c,d){var e=this;a.call(e),e.kj=b,e.VQ=c,e.ML=d}var c={execute:function(){var a,b,c,d=this,e=d.kj,f=!1;return d.canExecute()&&(a=d.VQ.index,b=d.VQ.count,c=E(d),e&&c&&!D(a)&&!D(b)&&((c.getLevel(a)>=0||c.getLevel(a+b-1)>=0)&&(d.Lz(e,!0),c.ungroupRange(a,b),d.Mz(e,!0)),f=!0)),f},undo:function(){var a,b,c,d=this,e=!1,f=d.kj;return d.canUndo()&&(a=d.VQ.index,b=d.VQ.count,c=E(d),f&&c&&!D(a)&&!D(b)&&(d.Lz(f,!0),c.group(a,b),d.Mz(f,!0),e=!0)),e}};return u.extend(b.prototype,c),b}(t),h=function(a){u.inherit(b,a);function b(b,c){a.call(this,b,c,!1)}return b}(g),i=function(a){u.inherit(b,a);function b(b,c){a.call(this,b,c,!0)}return b}(g);function G(a,b,c,d,e){var f=0,g;for(g=b;g<=c&&g=d?d-1:b}function I(a,b,c,d,e){if(be)return e;for(var f=b;f<=e;f++)if(c.call(a,f))return f;return-1}function J(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q=this,r=q.kj,s=c.index,t=b?r.getRowCount():r.getColumnCount(),u=void 0;s<0||s>=t||(d=E(q),e=1===d.direction(),f=b?r.frozenRowCount():r.frozenColumnCount(),g=b?r.getRowHeight:r.getColumnWidth,h=b?r.getViewportTopRow:r.getViewportLeftColumn,i=b?r.getViewportHeight:r.getViewportWidth,j=h.call(r,1),n=d.find(e?s-1:s+1,c.level),n&&(o=e?n.start:s,p=e?s:n.end,e?(a?o=s:ok&&(j=H(r,j,l-k,t,g)),m=I(r,j,g,f,t-1)):(a?p=s:p>=t&&(p=t-1),ok&&(j=H(r,j,l-k,t,g),m=I(r,j,g,f,t-1)))),b&&m!==u?(r.lq=m,r.os()):b||m===u||(r.qq=m,r.qs())))}function K(a){var b,c,d,e,f,g=this,h=!1;return(a?g.canExecute():g.canUndo())&&(b=g.kj,c=g.VQ,d=E(g),e=c.collapsed,f=c.index,!b||!d||D(e)||D(f)||D(c.level)||(g.Lz(b,!0),a||(e=!e),d.setCollapsed(f,e),J.call(g,e,g.ML,c),g.Mz(b,!0),h=!0)),h}j=function(a){u.inherit(b,a);function b(b,c,d){var e=this;a.call(e),e.kj=b,e.VQ=c,e.ML=d}var c={execute:function(){return K.call(this,!0)},undo:function(){return K.call(this,!1)}};return u.extend(b.prototype,c),b}(t),k=function(a){u.inherit(b,a);function b(b,c){a.call(this,b,c,!1)}return b}(j),l=function(a){u.inherit(b,a);function b(b,c){a.call(this,b,c,!0)}return b}(j),m=function(a){u.inherit(b,a);function b(b,c,d){var e=this;a.call(e),e.kj=b,e.VQ=c,e.ML=d}var c={execute:function(){var a,b,c,d=this,e=d.kj,f=!1;if(d.canExecute()&&(b=d.VQ.level,c=E(d),e&&c&&!D(b))){for(d.Lz(e,!0),d.saveState(),a=0;a=0&&(a.width=f*(g+2)+e,a.rowMaxLevel=g)),h.showColumnOutline()&&c&&!c.iT()&&(g=c.getMaxLevel(),g>=0&&(a.height=f*(g+2)+e,a.colMaxLevel=g)),h.TL=a)},showRowOutline:z("showRowOutline",!0,function(){this.$p()}),showColumnOutline:z("showColumnOutline",!0,function(){this.$p()})};p.extend(i.Worksheet.prototype,I),d={init:function(){var a=this;a.rowOutlines=new g(a.getRowCount()),a.columnOutlines=new g(a.getColumnCount()),a.rowOutlines.groupChangeHandler=function(b){b&&b.indexes&&a.recalcRows&&a.recalcRows(b.indexes),a.au()},a.columnOutlines.groupChangeHandler=function(){a.bu()},a.Wr.push(a.rowOutlines),a.Zr.push(a.columnOutlines)},dispose:function(){var a=this;p(a.Ws()).unbind("mousedown.group")},setHost:function(a){if(a){var b=this;a.bind("mousedown.group",function(a){var c,d=b.Vs(),e=O.call(b,a.pageX-d.left,a.pageY-d.top);e&&(c=e.what,c===F||c===D?b.rowOutlines.UL(b,e):c!==G&&c!==E||b.columnOutlines.UL(b,e))})}},onLayoutChanged:function(a){var b=this,c=a.changeType,d=a.row,e=a.rowCount,f=a.col,g=a.colCount,h=a.sheetArea,i=b.rowOutlines,j=b.columnOutlines;"addRows"===c?T(i,d,e):"deleteRows"===c?U(i,d,e):"addColumns"===c?T(j,f,g):"deleteColumns"===c?U(j,f,g):"invalidateLayout"===c?b.TL=l:"setColumnCount"===c?3!==h&&1!==h||j.VL(g):"setRowCount"===c&&(3!==h&&2!==h||i.VL(e))},paint:function(a){var b=a.ctx,c=a.clipRect,d=this,e=d.rowOutlines,f=d.columnOutlines;e&&e.jp(d,b,c,!0),f&&f.jp(d,b,c,!1)},fromJson:function(a){if(a){var b=this,c,d=a.showRowRangeGroup,e=a.showColumnRangeGroup,f=x(d)?d:a.showRowOutline,g=x(e)?e:a.showColumnOutline;y(f)||b.showRowOutline(f),y(g)||b.showColumnOutline(g),c=a.rowRangeGroup||a.rowOutlines,c&&b.rowOutlines.fromJSON(c),c=a.colRangeGroup||a.columnOutlines,c&&b.columnOutlines.fromJSON(c)}},toJson:function(a){var b,c=this,d=c.rowOutlines,e=c.columnOutlines,f=c.showRowOutline();f!==!0&&(a.showRowOutline=f),b=c.showColumnOutline(),b!==!0&&(a.showColumnOutline=b),a.rowOutlines=d?d.toJSON():m,a.columnOutlines=e?e.toJSON():m}},i.Worksheet.$n(A,d),e={init:function(){j.SL(this.commandManager())}},i.Workbook.$n(A,e);function J(a,b){a.Wq(i.Events.RangeGroupStateChanging,b)}function K(a,b){a.Wq(i.Events.RangeGroupStateChanged,b)}function L(a,b){var c,d,e,f;a.isEditing&&a.isEditing()||(c=b.info.index,d=b.what===D,e=d?"expandRowOutlineForLevel":"expandColumnOutlineForLevel",f=N(a,d,-1,c,!0),J(a,f),f&&f.cancel===!1&&(a.wu().execute({cmd:e,sheetName:a.name(),level:c}),K(a,N(a,d,-1,c,!1))))}function M(a,b){var c,d,e,f,g,h,i=b.what===F;S(i,a)&&(c=b.info,d=c.index,e=d,f=c.level,h=i?"expandRowOutline":"expandColumnOutline",1===c.lineDirection?d--:d++,g=N(a,i,d,f,!0),J(a,g),g&&g.cancel===!1&&(a.wu().execute({cmd:h,sheetName:a.name(),index:e,level:f,collapsed:c.isExpanded}),K(a,N(a,i,d,f,!1))))}function N(a,b,c,d,e){var f={sheet:a,sheetName:a.Cj,isRowGroup:b,index:c,level:d};return e&&(f.cancel=!1),f}function O(a,b){var c,d,e,f,g=this,h=g.Gt(),i=h.width,j=h.height;return i||j?(c=g.am(),d=new s(h.x,h.y,i,c.height),e=new s(h.x,h.y,c.width,j),d.contains(a,b)||e.contains(a,b)?(f=P(g,a,b,h.rowMaxLevel,!0),f||(f=P(g,a,b,h.colMaxLevel,!1)),f||{what:"empty",info:l}):l):l}function P(a,b,c,d,e){var f,g,h=new ea(a,e,d),i=h.WL(b,c,e);if(i)return{what:e?D:E,info:i};for(f=Q(a,e,d),g=0;g<=2;g++)if(i=f[g].XL(b,c,e))return{what:e?F:G,info:i};return l}function Q(a,b,c){var d=[new da(a,b,0,c),new da(a,b,1,c),new da(a,b,2,c)],e;for(e=0;e<=2;e++)d[e].YL();return d}function R(a,b){var c=b?a.width:a.height;return n(0,(c-2*this.PADDING)/(this.ZL+2))}function S(a,b){return a?b.rowOutlines:b.columnOutlines}k.OutlineDirection={backward:0,forward:1},k.OutlineState={expanded:0,collapsed:1},f=function(){function a(a,b,c,d){var e=this;e.children=[],e.parent=l,e.model=a,e.start=b,e.end=c,e.level=d}return a.prototype={state:function(a){var b=this,c=b.model;return arguments.length?void(c&&c.expand(b.level,0===a)):c?c.getState(b):0},contains:function(a){return this.start<=a&&a<=this.end},addChild:function(a){a&&(this.children.push(a),a.parent=this)}},a}(),k.OutlineInfo=f;function T(a,b,c){var d,e,f,g;if(c>0){for(d=a.items,g=[b,0],e=0;e0&&(f=d[b-1]))for(e=0;e0&&(a.items.splice(b,c),Z(a))}function V(a,b,c){var d=l,e=a.items,g,h,i;for(h=b;hc&&(i=V(a,h,c+1),h=i.index,d.addChild(i.g)),h>d.end&&(d.end=h),!a.isGroupEnd(h,c)));h++);return{g:d,index:h}}function W(a,b){return b>=-1&&b-1&&e.level--;$(c)},ungroup:function(){var a=this,b=w(a.items);a.items=Array(b),$(a),a.wz=!0},expand:function(a,b){if(a<-1)throw Error(H().Exp_InvalidLevel);var c=this,d=c.items,e,f;for(e in d)d[e]&&(f=c.find(e,a),f&&c.expandGroup(f,b))},expandGroup:function(a,b){if(!a)throw Error(H().Exp_GroupInfoIsNull);var c=this,d=c.direction(),e=-1;0===d?e=a.start-1:1===d&&(e=a.end+1),c.setCollapsed(e,!b)},Xr:function(a){return!W(this,a)||!this.isCollapsed(a)},isCollapsed:function(a){var b=this.items[a];return b&&b.viewCollapsed&&b.level>-1},find:function(a,b){var c=this,d=c.$L,e=l;return d&&(b===-1?e=d:(ba(c,a),e=X(d,a,b))),e},getLevel:function(a){var b=this.items[a];return b?b.level:-1},getCollapsed:function(a){var b=this.items[a];return!!b&&!!b.collapsed},B4:function(a,b,c,d){var e,f;for(e=b;e<=c;e++)f=a[e],f||(f=a[e]=new ca,f.level=-1),f.viewCollapsed=d},setCollapsed:function(a,b){var c,d,e,f,g,h,i=this,j=!1,k=i.items;if(a<0?(c=i.head,c||(c=i.head=new ca)):a-1){c=!0;break}d=d.parent}if(!c)for(k.B4(l,o.start,o.end,!1),f=[o],g=0;g>=0;)if(h=f[g--],e=m?h.end+1:h.start-1,l[e]&&l[e].collapsed&&l[e].level!==-1)k.B4(l,h.start,h.end,!0);else for(i=h.children,j=0;i&&ja&&(a=c))}),a},cB:function(a,b,c,d){if(!(c<=0||a===b)){a<0&&(a=0),b<0&&(b=0);for(var e=this,f=[],g=e.items,h=u(g,a-1),i;h>=0&&h=0&&g0)for(h in f)f.hasOwnProperty(h)&&(this.items[c+h]=f[h]);e&&v(a.items,b,d)},refresh:function(){this.wz||$(this)},VL:function(a){var b,c,d=this,e=d.items,f=w(e),g=a-f;if(g<0)e.splice(a,-g);else if(b=e[f-1])for(c=0;c-1&&e.addChild(b);return e},isGroupEnd:function(a,b){var c,d,e,f,g,h,i=this,j=i.items,k=a+1;return!W(i,k)||(!(c=j[k])||(d=c.level,e=j[a].level,f=!1,d=0&&h=0&&i){for(j=0;j=w(c));j++)d.info.collapsed&&k.push(d),c[h+j]=new ca(i);b.wz=!1}}),y(e)||b.direction(e),f&&(b.head=f),g&&(b.tail=g),Z(b),l=0;l=0&&a===b.count+b.index&&c.level===b.info.level&&c.collapsed===b.info.collapsed?g[i].count++:g[++i]={index:a,count:1,info:{level:c.level,collapsed:c.collapsed}});return d={itemsData:g,direction:f.direction(),head:f.head,tail:f.tail},e={},q(d,function(a,b){Y(a,b)||(e[a]=b)}),p.isEmptyObject(e)?m:e}},a}(),k.Outline=g;function ca(a){return{level:a?a.level:0,collapsed:!!a&&a.collapsed,viewCollapsed:!!a&&a.viewCollapsed}}function da(a,b,c,d){var e=this;e.PADDING=2,e.LINE_SIZE=2,e.START_LINE_SIZE=6,e.bM=[],e.cM=[],e.dM=[],e.kj=a,e.ML=b,e.eM=c,e.ZL=x(d)?d:S(b,a).getMaxLevel()}da.prototype={YL:function(){var a,b=this;b.ZL!==-1&&(a=b.fM(0,b.ML),q(a,function(a,c){b.gM(c)}))},gM:function(a){var b,c,d,e,f,g,h,i,j,k,m,p,r,s,t,u,v,x,y=this,z=y.kj,A=y.ML,B=S(A,z).direction(),C=1===B,D=0===B,E=y.hM(!0,A),F=y.hM(!1,A),G=a.start,H=a.end,I=a.level;if(C?b=H+1:D&&(b=G-1),0===a.state()){if(c=!0,d=a.parent,d&&(D&&G===d.start||C&&H===d.end)&&(c=!1),c&&y.iM(!0,I,b,E,F,B),G<=F&&H>=E){for(e=n(E,G),f=o(F,H),c&&(g={start:e,end:f,level:I,startLine:l},(C&&e===G||D&&f===H)&&(g.startLine=!0),y.bM.push(g)),j=[],k=a.children,h=e;h<=f;h++)j.push(!1);for(q(k,function(a,b){var c=b.start,d=b.end,f;if(1===b.state())for(i=c;i<=d;i++)j[i-e]=!0;C?f=d+1:D&&(f=d-1),j[f-e]=!0,y.gM(b)}),m=!0,h=0;h=d&&c<=e&&(g.index=c,g.lineDirection=f,this.dM.push(g))},jM:function(a){var b=this,c=b.kj,d=b.eM;return b.ML?c.Gr(d).findRow(a):c.Hr(d).findCol(a)},aM:function(a){var b,c,d,e,f,g,h,i=this;i.ZL!==-1&&(b=i.kj.Gt(),c=i.ML,d=R.call(i,b,c),d&&(e=i.START_LINE_SIZE,f=i.PADDING,g=i.LINE_SIZE,h=n(0,(d-e)/2)+f,a.save(),a.fillStyle=r(B).color,i.kM(a,i.cM,c,b,d,h,g),i.lM(a,i.bM,c,b,d,h,g,e),i.mM(a,i.dM,c,b,d,h,g,f),a.beginPath(),a.restore()))},kM:function(a,b,c,d,e,f,g){var h,i,j=this;q(b,function(b,k){var l,m,o=j.jM(k.index);o&&(l=c?o.y:o.x,m=(c?o.height:o.width)-g,m>=0&&(h=l+n(0,m/2),i=k.level*e+f,c?h=[i,i=h][0]+.5:i+=.5,a.fillRect(d.x+h,d.y+i,g,g)))})},lM:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,p,q,r,s,t,u,v=this,x=v.kj,y=S(c,x).direction();for(i=0;i=k);(m||p)&&(!m&&p?m=p:m&&!p&&(p=m),q=c?m.y:m.x,r=j.level*e+f,s=c?g:n(0,p.x+p.width-m.x),t=c?n(0,p.y+p.height-m.y):g,1===y&&(q+=1),c?q=[r,r=q][0]+.5:r+=.5,a.fillRect(d.x+q,d.y+r,s,t),j.startLine&&(u=o(h,e-g),u>0&&(0===y&&(c?r=r+t-g:q=q+s-g),c&&r>=m.y&&r=m.x&&q0&&(s=c?k.y:k.x,t=j.level*e+f,A=0===j.lineDirection,D=c?g:m,E=c?m:g,c?(s=[t,t=s][0],A&&(t+=m+v,E=z-m)):A&&(s+=m+u,D=z-m),a.fillRect(d.x+s+x,d.y+t+y,D,E))))},nM:function(a,b,c,d,e,f){b||a.fillRect(c+e/2-1,d+4,2,f-8),a.fillRect(c+4,d+f/2-1,e-8,2)},fM:function(a,b){var c,d,e,f=this,g=f.kj,h=[],i=-1,j=-1,k=S(b,g),l=b?g.Gr:g.Hr,m=l.call(g,f.eM),p=w(m);for(p&&(d=m[0],e=m[p-1],i=n(0,(b?d.row:d.col)-1),j=b?o(g.getRowCount(),e.row+2):o(g.getColumnCount(),e.col+2));i=0)))for(y=0;y=0)for(p=n(0,g+o/2),q=j.PADDING,d&&(p=[q,q=p][0]),s=0;s