vislite 1.2.0-alpha.1 → 1.2.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG +257 -250
  2. package/README.md +165 -166
  3. package/lib/Buffer/index.es.js +1 -1
  4. package/lib/Buffer/index.es.min.js +1 -1
  5. package/lib/Canvas/index.es.js +17 -8
  6. package/lib/Canvas/index.es.min.js +2 -2
  7. package/lib/Cardinal/index.es.js +1 -1
  8. package/lib/Cardinal/index.es.min.js +1 -1
  9. package/lib/Eoap/index.es.js +1 -1
  10. package/lib/Eoap/index.es.min.js +1 -1
  11. package/lib/Hermite/index.es.js +1 -1
  12. package/lib/Hermite/index.es.min.js +1 -1
  13. package/lib/Matrix4/index.es.js +1 -1
  14. package/lib/Matrix4/index.es.min.js +1 -1
  15. package/lib/Mercator/index.es.js +1 -1
  16. package/lib/Mercator/index.es.min.js +1 -1
  17. package/lib/RawCanvas/index.es.js +12 -3
  18. package/lib/RawCanvas/index.es.min.js +2 -2
  19. package/lib/SVG/index.es.js +1 -1
  20. package/lib/SVG/index.es.min.js +1 -1
  21. package/lib/Shader/index.es.js +1 -1
  22. package/lib/Shader/index.es.min.js +1 -1
  23. package/lib/Texture/index.es.js +1 -1
  24. package/lib/Texture/index.es.min.js +1 -1
  25. package/lib/TreeLayout/index.es.js +6 -6
  26. package/lib/TreeLayout/index.es.min.js +1 -1
  27. package/lib/animation/index.es.js +1 -1
  28. package/lib/animation/index.es.min.js +1 -1
  29. package/lib/assemble/index.es.d.ts +3 -0
  30. package/lib/assemble/index.es.js +23 -0
  31. package/lib/assemble/index.es.min.d.ts +3 -0
  32. package/lib/assemble/index.es.min.js +5 -0
  33. package/lib/getLoopColors/index.es.js +1 -1
  34. package/lib/getLoopColors/index.es.min.js +1 -1
  35. package/lib/getWebGLContext/index.es.js +1 -1
  36. package/lib/getWebGLContext/index.es.min.js +1 -1
  37. package/lib/index.umd.js +60 -12
  38. package/lib/index.umd.min.js +2 -2
  39. package/lib/initOption/index.es.d.ts +3 -0
  40. package/lib/initOption/index.es.js +12 -0
  41. package/lib/initOption/index.es.min.d.ts +3 -0
  42. package/lib/initOption/index.es.min.js +5 -0
  43. package/lib/mergeOption/index.es.d.ts +3 -0
  44. package/lib/mergeOption/index.es.js +42 -0
  45. package/lib/mergeOption/index.es.min.d.ts +3 -0
  46. package/lib/mergeOption/index.es.min.js +5 -0
  47. package/lib/move/index.es.js +1 -1
  48. package/lib/move/index.es.min.js +1 -1
  49. package/lib/rotate/index.es.js +1 -1
  50. package/lib/rotate/index.es.min.js +1 -1
  51. package/lib/ruler/index.es.js +1 -1
  52. package/lib/ruler/index.es.min.js +1 -1
  53. package/lib/scale/index.es.js +1 -1
  54. package/lib/scale/index.es.min.js +1 -1
  55. package/lib/throttle/index.es.js +5 -5
  56. package/lib/throttle/index.es.min.js +1 -1
  57. package/miniprogram/ui-canvas/index.js +115 -115
  58. package/package/assemble/index.ts +3 -0
  59. package/package/index.ts +11 -1
  60. package/package/initOption/index.ts +3 -0
  61. package/package/mergeOption/index.ts +3 -0
  62. package/package.json +1 -1
  63. package/src/Canvas.ts +84 -84
  64. package/src/animation.ts +98 -98
  65. package/src/common/canvas/gradient.ts +32 -24
  66. package/src/common/canvas/index.ts +182 -177
  67. package/src/common/option.ts +30 -0
  68. package/src/common/tree/index.ts +2 -2
  69. package/src/common/type.ts +27 -0
  70. package/src/layout/TreeLayout.ts +2 -2
  71. package/src/throttle.ts +2 -2
  72. package/types/Canvas.d.ts +10 -1
  73. package/types/assemble.d.ts +6 -0
  74. package/types/index.d.ts +161 -146
  75. package/types/option.d.ts +13 -0
  76. package/types/uni-canvas.d.ts +4 -0
  77. package/src/common/mergeOption.ts +0 -7
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * RawCanvas of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * RawCanvas of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  /******************************************************************************
@@ -558,13 +558,13 @@ function assemble (begin, end, step, count) {
558
558
  };
559
559
  }
560
560
 
561
- var enhanceGradient = function (gradient) {
561
+ var enhanceGradient = function (gradient, calcStop) {
562
562
  var enhanceGradient = {
563
563
  "value": function () {
564
564
  return gradient;
565
565
  },
566
566
  "setColor": function (stop, color) {
567
- gradient.addColorStop(stop, color);
567
+ gradient.addColorStop(calcStop ? calcStop(stop) : stop, color);
568
568
  return enhanceGradient;
569
569
  }
570
570
  };
@@ -577,6 +577,12 @@ var linearGradient = function (painter, x0, y0, x1, y1) {
577
577
  var radialGradient = function (painter, cx, cy, r) {
578
578
  var gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r);
579
579
  return enhanceGradient(gradient);
580
+ };
581
+ var conicGradient = function (painter, cx, cy, startDeg, deg) {
582
+ var gradient = painter.createConicGradient(startDeg, cx, cy);
583
+ return enhanceGradient(gradient, deg ? function (stop) {
584
+ return deg / (Math.PI * 2) * stop;
585
+ } : undefined);
580
586
  };
581
587
 
582
588
  var Canvas = (function (_super) {
@@ -685,6 +691,9 @@ var Canvas = (function (_super) {
685
691
  Canvas.prototype.createRadialGradient = function (cx, cy, r) {
686
692
  return radialGradient(this.painter, cx, cy, r);
687
693
  };
694
+ Canvas.prototype.createConicGradient = function (cx, cy, beginDeg, deg) {
695
+ return conicGradient(this.painter, cx, cy, beginDeg, deg);
696
+ };
688
697
  Canvas.prototype.getColor = function (x, y) {
689
698
  x *= this.__scaleSize;
690
699
  y *= this.__scaleSize;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * RawCanvas of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * RawCanvas of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
- var t=function(i,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])},t(i,e)};"function"==typeof SuppressedError&&SuppressedError;var i=function(t,i,e,n,r){var o=Math.cos(e),s=Math.sin(e);return[+((n-t)*o-(r-i)*s+t).toFixed(7),+((n-t)*s+(r-i)*o+i).toFixed(7)]};var e=function(t,i,e,n,r){return t.beginPath(),t.translate(e,n),t.rotate(r),t.font=i.fontStyle+" "+i.fontWeight+" "+i.fontSize+"px "+i.fontFamily,t},n=function(t,e,n,r,o,s,_,h){if(o>s){var a=o;o=s,s=a}return _%=2*Math.PI,h>=1.999999*Math.PI||h<=1.999999*-Math.PI?h=2*Math.PI:h%=2*Math.PI,function(t,e,n,r,o,s,_){e<0&&(t+=e,e*=-1);var h,a=[];h=i(0,0,t,o,0),a[0]=h[0],a[1]=h[1],h=i(0,0,e,h[0],h[1]),a[2]=h[0],a[3]=h[1],h=i(0,0,t,s,0),a[4]=h[0],a[5]=h[1],h=i(0,0,e,h[0],h[1]),a[6]=h[0],a[7]=h[1],_(t,t+e,a[0]+n,a[1]+r,a[4]+n,a[5]+r,a[2]+n,a[3]+r,a[6]+n,a[7]+r,.5*(s-o))}(_,h,n,r,o,s,(function(i,_,h,a,l,p,u,f,g,c,y){y<0&&(y=-y),t.beginPath(),t.moveTo(h,a),t.arc(n,r,o,i,_,!1),"round"==e.arcEndCap?t.arc(.5*(u+g),.5*(f+c),y,_-Math.PI,_,!0):"-round"==e.arcEndCap?t.arc(.5*(u+g),.5*(f+c),y,_-Math.PI,_,!1):t.lineTo(g,c),t.arc(n,r,s,_,i,!0),"round"==e.arcStartCap?t.arc(.5*(h+l),.5*(a+p),y,i,i-Math.PI,!0):"-round"==e.arcStartCap?t.arc(.5*(h+l),.5*(a+p),y,i,i-Math.PI,!1):t.lineTo(h,a)})),"butt"==e.arcStartCap&&t.closePath(),t},r=function(t,i,e,n){return t.beginPath(),t.moveTo(i+n,e),t.arc(i,e,n,0,2*Math.PI),t},o=function(t,i,e,n,r){return t.beginPath(),t.rect(i,e,n,r),t};function s(t,i,e,n,r){for(var o=0,s="",_=0;_<i.length;_++)t.measureText(s+i[_]).width>e||/\n$/.test(s)?(r(s,((o+=1)-.5)*n),s=i[_]):_==i.length-1?(o+=1,r(s+i[_],(o-.5)*n)):s+=i[_];return o*n}var _=function(){function t(t,i,e,n,r){void 0===i&&(i={}),void 0===n&&(n=!1),this.__region=null,this.__onlyRegion=!1,this.__onlyView=!1,this.__specialConfig={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt"},this.__initConfig={fillStyle:"black",strokeStyle:"black",lineWidth:1,textAlign:"left",textBaseline:"middle",lineDash:[],shadowBlur:0,shadowColor:"black"},this.painter=t.getContext("2d",i),this.__region=e,this.__isPainter=n,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,i){if(this.__region&&!this.__onlyView&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,i),this.__isPainter&&this.__onlyRegion)return this;if("lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(i);else if(t in this.__specialConfig)"fontSize"==t&&(i=Math.round(i)),this.__specialConfig[t]=i;else{if(!(t in this.__initConfig))throw new Error("Illegal configuration item of painter : "+t+" !");this.painter[t]=i}return this},t.prototype.fillText=function(t,i,n,r){return void 0===r&&(r=0),this.__region&&!this.__onlyView&&this.__region.fillText(t,i,n,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),e(this.painter,this.__specialConfig,i,n,r).fillText(t,0,0),this.painter.restore()),this},t.prototype.strokeText=function(t,i,n,r){return void 0===r&&(r=0),this.__region&&!this.__onlyView&&this.__region.strokeText(t,i,n,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),e(this.painter,this.__specialConfig,i,n,r).strokeText(t,0,0),this.painter.restore()),this},t.prototype.fullText=function(t,i,n,r){return void 0===r&&(r=0),this.__region&&!this.__onlyView&&this.__region.fullText(t,i,n,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),e(this.painter,this.__specialConfig,i,n,r),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore()),this},t.prototype.fillTexts=function(t,i,n,r,o,_){var h=this;void 0===o&&(o=1.2),void 0===_&&(_=0);var a=0;if(this.__region&&!this.__onlyView&&(a=this.__region.fillTexts(t,i,n,r,o)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),e(this.painter,this.__specialConfig,i,n,_);var l=s(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i)}));return this.painter.restore(),l},t.prototype.strokeTexts=function(t,i,n,r,o,_){var h=this;void 0===o&&(o=1.2),void 0===_&&(_=0);var a=0;if(this.__region&&!this.__onlyView&&(a=this.__region.fillTexts(t,i,n,r,o)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),e(this.painter,this.__specialConfig,i,n,_);var l=s(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.fullTexts=function(t,i,n,r,o,_){var h=this;void 0===o&&(o=1.2),void 0===_&&(_=0);var a=0;if(this.__region&&!this.__onlyView&&(a=this.__region.fillTexts(t,i,n,r,o)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),e(this.painter,this.__specialConfig,i,n,_);var l=s(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i),h.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.beginPath=function(){return this.__region&&!this.__onlyView&&this.__region.beginPath(),this.__isPainter&&this.__onlyRegion||this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&!this.__onlyView&&this.__region.closePath(),this.__isPainter&&this.__onlyRegion||this.painter.closePath(),this},t.prototype.moveTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.moveTo(t,i),this.__isPainter&&this.__onlyRegion||this.painter.moveTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.lineTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.lineTo(t,i),this.__isPainter&&this.__onlyRegion||this.painter.lineTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.arc=function(t,i,e,n,r){return this.__region&&!this.__onlyView&&this.__region.arc(t,i,e,n,r),this.__isPainter&&this.__onlyRegion||this.painter.arc(t,i,e,n,n+r,r<0),this},t.prototype.fill=function(){return this.__region&&!this.__onlyView&&this.__region.fill(),this.__isPainter&&this.__onlyRegion||this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&!this.__onlyView&&this.__region.stroke(),this.__isPainter&&this.__onlyRegion||this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&!this.__onlyView&&this.__region.full(),this.__isPainter&&this.__onlyRegion||(this.painter.fill(),this.painter.stroke()),this},t.prototype.save=function(){return this.__region&&!this.__onlyView&&this.__region.save(),this.__isPainter&&this.__onlyRegion||this.painter.save(),this},t.prototype.restore=function(){return this.__region&&!this.__onlyView&&this.__region.restore(),this.__isPainter&&this.__onlyRegion||this.painter.restore(),this},t.prototype.clip=function(){return this.__region&&!this.__onlyView&&this.__region.clip(),this.__isPainter&&this.__onlyRegion||this.painter.clip(),this},t.prototype.quadraticCurveTo=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.quadraticCurveTo(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.quadraticCurveTo(t,i,e,n),this},t.prototype.bezierCurveTo=function(t,i,e,n,r,o){return this.__region&&!this.__onlyView&&this.__region.bezierCurveTo(t,i,e,n,r,o),this.__isPainter&&this.__onlyRegion||this.painter.bezierCurveTo(t,i,e,n,r,o),this},t.prototype.clearRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.clearRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.clearRect(t,i,e,n),this},t.prototype.fillArc=function(t,i,e,r,o,s){return this.__region&&!this.__onlyView&&this.__region.fillArc(t,i,e,r,o,s),this.__isPainter&&this.__onlyRegion||n(this.painter,this.__specialConfig,t,i,e,r,o,s).fill(),this},t.prototype.strokeArc=function(t,i,e,r,o,s){return this.__region&&!this.__onlyView&&this.__region.strokeArc(t,i,e,r,o,s),this.__isPainter&&this.__onlyRegion||n(this.painter,this.__specialConfig,t,i,e,r,o,s).stroke(),this},t.prototype.fullArc=function(t,i,e,r,o,s){return this.__region&&!this.__onlyView&&this.__region.fullArc(t,i,e,r,o,s),this.__isPainter&&this.__onlyRegion||(n(this.painter,this.__specialConfig,t,i,e,r,o,s),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fillCircle(t,i,e),this.__isPainter&&this.__onlyRegion||r(this.painter,t,i,e).fill(),this},t.prototype.strokeCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.strokeCircle(t,i,e),this.__isPainter&&this.__onlyRegion||r(this.painter,t,i,e).stroke(),this},t.prototype.fullCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fullCircle(t,i,e),this.__isPainter&&this.__onlyRegion||(r(this.painter,t,i,e),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fillRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||o(this.painter,t,i,e,n).fill(),this},t.prototype.strokeRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.strokeRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||o(this.painter,t,i,e,n).stroke(),this},t.prototype.fullRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fullRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||(o(this.painter,t,i,e,n),this.painter.fill(),this.painter.stroke()),this},t.prototype.draw=function(){return Promise.resolve()},t.prototype.drawImage=function(t,i,e,n,r,o){var s=this;return void 0===o&&(o=!1),new Promise((function(_){if(s.__region&&!s.__onlyView&&s.__region.fillRect(i,e,n,r),s.__isPainter&&s.__onlyRegion)_({});else if("string"!=typeof t||o)s.painter.drawImage(t,0,0,n,r,i,e,n,r),_({});else{var h=new Image;h.onload=function(){s.painter.drawImage(h,0,0,h.width,h.height,i,e,n,r),_({})},h.src=t}}))},t.prototype.install=function(t){var i=this,e=function(e){if(e in n)throw new Error("VISLite Canvas:Method already exists and cannot be overwritten.");n[e]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var o=t[e].apply(i,n);return null!=o?o:i}},n=this;for(var r in t)e(r);return this},t}();var h=function(t){var i={value:function(){return t},setColor:function(e,n){return t.addColorStop(e,n),i}};return i},a=function(i){function n(t,e,n,r){void 0===n&&(n={}),void 0===r&&(r=1);var o=i.call(this,t,n,e?new _(e,{willReadFrequently:!0}):void 0,!0,r)||this;return o.name="Canvas",o.__regionList={},o.__regionAssemble=function(t,i,e,n){for(var r=[],o=0;o<n;o++)r[o]=t;return function(){for(var o=0;o<n;o++){if(r[o]+e<i){r[o]=+(r[o]+e).toFixed(7);break}o<n-1&&(r[o]=t)}return r}}(0,255,10,3),o.__scaleSize=r,o.setRegion(""),o}return function(i,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=i}t(i,e),i.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(n,i),n.prototype.config=function(t){for(var i in t)this.useConfig(i,t[i]);return this},n.prototype.onlyRegion=function(t){return this.__onlyRegion=t,this},n.prototype.onlyView=function(t){return this.__onlyView=t,this},n.prototype.setRegion=function(t){if(this.__region)if(t){if(null==this.__regionList[t]){var i=this.__regionAssemble();this.__regionList[t]="rgb("+i[0]+","+i[1]+","+i[2]+")"}this.__region.useConfig("fillStyle",this.__regionList[t])&&this.__region.useConfig("strokeStyle",this.__regionList[t])}else this.__region.useConfig("fillStyle","#000000")&&this.__region.useConfig("strokeStyle","#000000");return this},n.prototype.getRegion=function(t,i){var e=this;return new Promise((function(n){var r=e.__region?e.__region.painter.getImageData(t-.5,i-.5,1,1):{data:[0,0,0,0]},o=r.data,s=function(){if(e.__region)for(var t in e.__regionList)if("rgb("+o[0]+","+o[1]+","+o[2]+")"==e.__regionList[t]){n(t);break}n("")};o?s():r.then((function(t){o=t,s()}))}))},n.prototype.textWidth=function(t){this.painter.save(),e(this.painter,this.__specialConfig,0,0,0);var i=this.painter.measureText(t+"").width;return this.painter.restore(),i},n.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region?this.__region.painter:null:this.painter},n.prototype.getInfo=function(){return{width:this.painter.canvas.width/this.__scaleSize,height:this.painter.canvas.height/this.__scaleSize}},n.prototype.createLinearGradient=function(t,i,e,n){return function(t,i,e,n,r){var o=t.createLinearGradient(i,e,n,r);return h(o)}(this.painter,t,i,e,n)},n.prototype.createRadialGradient=function(t,i,e){return function(t,i,e,n){var r=t.createRadialGradient(i,e,0,i,e,n);return h(r)}(this.painter,t,i,e)},n.prototype.getColor=function(t,i){t*=this.__scaleSize,i*=this.__scaleSize;var e=this.painter.getImageData(t-.5,i-.5,1,1).data;return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},n}(_);export{a as default};
5
+ var t=function(i,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])},t(i,e)};"function"==typeof SuppressedError&&SuppressedError;var i=function(t,i,e,n,r){var o=Math.cos(e),s=Math.sin(e);return[+((n-t)*o-(r-i)*s+t).toFixed(7),+((n-t)*s+(r-i)*o+i).toFixed(7)]};var e=function(t,i,e,n,r){return t.beginPath(),t.translate(e,n),t.rotate(r),t.font=i.fontStyle+" "+i.fontWeight+" "+i.fontSize+"px "+i.fontFamily,t},n=function(t,e,n,r,o,s,_,h){if(o>s){var a=o;o=s,s=a}return _%=2*Math.PI,h>=1.999999*Math.PI||h<=1.999999*-Math.PI?h=2*Math.PI:h%=2*Math.PI,function(t,e,n,r,o,s,_){e<0&&(t+=e,e*=-1);var h,a=[];h=i(0,0,t,o,0),a[0]=h[0],a[1]=h[1],h=i(0,0,e,h[0],h[1]),a[2]=h[0],a[3]=h[1],h=i(0,0,t,s,0),a[4]=h[0],a[5]=h[1],h=i(0,0,e,h[0],h[1]),a[6]=h[0],a[7]=h[1],_(t,t+e,a[0]+n,a[1]+r,a[4]+n,a[5]+r,a[2]+n,a[3]+r,a[6]+n,a[7]+r,.5*(s-o))}(_,h,n,r,o,s,(function(i,_,h,a,l,p,u,f,c,g,y){y<0&&(y=-y),t.beginPath(),t.moveTo(h,a),t.arc(n,r,o,i,_,!1),"round"==e.arcEndCap?t.arc(.5*(u+c),.5*(f+g),y,_-Math.PI,_,!0):"-round"==e.arcEndCap?t.arc(.5*(u+c),.5*(f+g),y,_-Math.PI,_,!1):t.lineTo(c,g),t.arc(n,r,s,_,i,!0),"round"==e.arcStartCap?t.arc(.5*(h+l),.5*(a+p),y,i,i-Math.PI,!0):"-round"==e.arcStartCap?t.arc(.5*(h+l),.5*(a+p),y,i,i-Math.PI,!1):t.lineTo(h,a)})),"butt"==e.arcStartCap&&t.closePath(),t},r=function(t,i,e,n){return t.beginPath(),t.moveTo(i+n,e),t.arc(i,e,n,0,2*Math.PI),t},o=function(t,i,e,n,r){return t.beginPath(),t.rect(i,e,n,r),t};function s(t,i,e,n,r){for(var o=0,s="",_=0;_<i.length;_++)t.measureText(s+i[_]).width>e||/\n$/.test(s)?(r(s,((o+=1)-.5)*n),s=i[_]):_==i.length-1?(o+=1,r(s+i[_],(o-.5)*n)):s+=i[_];return o*n}var _=function(){function t(t,i,e,n,r){void 0===i&&(i={}),void 0===n&&(n=!1),this.__region=null,this.__onlyRegion=!1,this.__onlyView=!1,this.__specialConfig={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt"},this.__initConfig={fillStyle:"black",strokeStyle:"black",lineWidth:1,textAlign:"left",textBaseline:"middle",lineDash:[],shadowBlur:0,shadowColor:"black"},this.painter=t.getContext("2d",i),this.__region=e,this.__isPainter=n,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,i){if(this.__region&&!this.__onlyView&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,i),this.__isPainter&&this.__onlyRegion)return this;if("lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(i);else if(t in this.__specialConfig)"fontSize"==t&&(i=Math.round(i)),this.__specialConfig[t]=i;else{if(!(t in this.__initConfig))throw new Error("Illegal configuration item of painter : "+t+" !");this.painter[t]=i}return this},t.prototype.fillText=function(t,i,n,r){return void 0===r&&(r=0),this.__region&&!this.__onlyView&&this.__region.fillText(t,i,n,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),e(this.painter,this.__specialConfig,i,n,r).fillText(t,0,0),this.painter.restore()),this},t.prototype.strokeText=function(t,i,n,r){return void 0===r&&(r=0),this.__region&&!this.__onlyView&&this.__region.strokeText(t,i,n,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),e(this.painter,this.__specialConfig,i,n,r).strokeText(t,0,0),this.painter.restore()),this},t.prototype.fullText=function(t,i,n,r){return void 0===r&&(r=0),this.__region&&!this.__onlyView&&this.__region.fullText(t,i,n,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),e(this.painter,this.__specialConfig,i,n,r),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore()),this},t.prototype.fillTexts=function(t,i,n,r,o,_){var h=this;void 0===o&&(o=1.2),void 0===_&&(_=0);var a=0;if(this.__region&&!this.__onlyView&&(a=this.__region.fillTexts(t,i,n,r,o)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),e(this.painter,this.__specialConfig,i,n,_);var l=s(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i)}));return this.painter.restore(),l},t.prototype.strokeTexts=function(t,i,n,r,o,_){var h=this;void 0===o&&(o=1.2),void 0===_&&(_=0);var a=0;if(this.__region&&!this.__onlyView&&(a=this.__region.fillTexts(t,i,n,r,o)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),e(this.painter,this.__specialConfig,i,n,_);var l=s(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.fullTexts=function(t,i,n,r,o,_){var h=this;void 0===o&&(o=1.2),void 0===_&&(_=0);var a=0;if(this.__region&&!this.__onlyView&&(a=this.__region.fillTexts(t,i,n,r,o)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),e(this.painter,this.__specialConfig,i,n,_);var l=s(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i),h.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.beginPath=function(){return this.__region&&!this.__onlyView&&this.__region.beginPath(),this.__isPainter&&this.__onlyRegion||this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&!this.__onlyView&&this.__region.closePath(),this.__isPainter&&this.__onlyRegion||this.painter.closePath(),this},t.prototype.moveTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.moveTo(t,i),this.__isPainter&&this.__onlyRegion||this.painter.moveTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.lineTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.lineTo(t,i),this.__isPainter&&this.__onlyRegion||this.painter.lineTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.arc=function(t,i,e,n,r){return this.__region&&!this.__onlyView&&this.__region.arc(t,i,e,n,r),this.__isPainter&&this.__onlyRegion||this.painter.arc(t,i,e,n,n+r,r<0),this},t.prototype.fill=function(){return this.__region&&!this.__onlyView&&this.__region.fill(),this.__isPainter&&this.__onlyRegion||this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&!this.__onlyView&&this.__region.stroke(),this.__isPainter&&this.__onlyRegion||this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&!this.__onlyView&&this.__region.full(),this.__isPainter&&this.__onlyRegion||(this.painter.fill(),this.painter.stroke()),this},t.prototype.save=function(){return this.__region&&!this.__onlyView&&this.__region.save(),this.__isPainter&&this.__onlyRegion||this.painter.save(),this},t.prototype.restore=function(){return this.__region&&!this.__onlyView&&this.__region.restore(),this.__isPainter&&this.__onlyRegion||this.painter.restore(),this},t.prototype.clip=function(){return this.__region&&!this.__onlyView&&this.__region.clip(),this.__isPainter&&this.__onlyRegion||this.painter.clip(),this},t.prototype.quadraticCurveTo=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.quadraticCurveTo(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.quadraticCurveTo(t,i,e,n),this},t.prototype.bezierCurveTo=function(t,i,e,n,r,o){return this.__region&&!this.__onlyView&&this.__region.bezierCurveTo(t,i,e,n,r,o),this.__isPainter&&this.__onlyRegion||this.painter.bezierCurveTo(t,i,e,n,r,o),this},t.prototype.clearRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.clearRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.clearRect(t,i,e,n),this},t.prototype.fillArc=function(t,i,e,r,o,s){return this.__region&&!this.__onlyView&&this.__region.fillArc(t,i,e,r,o,s),this.__isPainter&&this.__onlyRegion||n(this.painter,this.__specialConfig,t,i,e,r,o,s).fill(),this},t.prototype.strokeArc=function(t,i,e,r,o,s){return this.__region&&!this.__onlyView&&this.__region.strokeArc(t,i,e,r,o,s),this.__isPainter&&this.__onlyRegion||n(this.painter,this.__specialConfig,t,i,e,r,o,s).stroke(),this},t.prototype.fullArc=function(t,i,e,r,o,s){return this.__region&&!this.__onlyView&&this.__region.fullArc(t,i,e,r,o,s),this.__isPainter&&this.__onlyRegion||(n(this.painter,this.__specialConfig,t,i,e,r,o,s),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fillCircle(t,i,e),this.__isPainter&&this.__onlyRegion||r(this.painter,t,i,e).fill(),this},t.prototype.strokeCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.strokeCircle(t,i,e),this.__isPainter&&this.__onlyRegion||r(this.painter,t,i,e).stroke(),this},t.prototype.fullCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fullCircle(t,i,e),this.__isPainter&&this.__onlyRegion||(r(this.painter,t,i,e),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fillRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||o(this.painter,t,i,e,n).fill(),this},t.prototype.strokeRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.strokeRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||o(this.painter,t,i,e,n).stroke(),this},t.prototype.fullRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fullRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||(o(this.painter,t,i,e,n),this.painter.fill(),this.painter.stroke()),this},t.prototype.draw=function(){return Promise.resolve()},t.prototype.drawImage=function(t,i,e,n,r,o){var s=this;return void 0===o&&(o=!1),new Promise((function(_){if(s.__region&&!s.__onlyView&&s.__region.fillRect(i,e,n,r),s.__isPainter&&s.__onlyRegion)_({});else if("string"!=typeof t||o)s.painter.drawImage(t,0,0,n,r,i,e,n,r),_({});else{var h=new Image;h.onload=function(){s.painter.drawImage(h,0,0,h.width,h.height,i,e,n,r),_({})},h.src=t}}))},t.prototype.install=function(t){var i=this,e=function(e){if(e in n)throw new Error("VISLite Canvas:Method already exists and cannot be overwritten.");n[e]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var o=t[e].apply(i,n);return null!=o?o:i}},n=this;for(var r in t)e(r);return this},t}();var h=function(t,i){var e={value:function(){return t},setColor:function(n,r){return t.addColorStop(i?i(n):n,r),e}};return e},a=function(i){function n(t,e,n,r){void 0===n&&(n={}),void 0===r&&(r=1);var o=i.call(this,t,n,e?new _(e,{willReadFrequently:!0}):void 0,!0,r)||this;return o.name="Canvas",o.__regionList={},o.__regionAssemble=function(t,i,e,n){for(var r=[],o=0;o<n;o++)r[o]=t;return function(){for(var o=0;o<n;o++){if(r[o]+e<i){r[o]=+(r[o]+e).toFixed(7);break}o<n-1&&(r[o]=t)}return r}}(0,255,10,3),o.__scaleSize=r,o.setRegion(""),o}return function(i,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=i}t(i,e),i.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(n,i),n.prototype.config=function(t){for(var i in t)this.useConfig(i,t[i]);return this},n.prototype.onlyRegion=function(t){return this.__onlyRegion=t,this},n.prototype.onlyView=function(t){return this.__onlyView=t,this},n.prototype.setRegion=function(t){if(this.__region)if(t){if(null==this.__regionList[t]){var i=this.__regionAssemble();this.__regionList[t]="rgb("+i[0]+","+i[1]+","+i[2]+")"}this.__region.useConfig("fillStyle",this.__regionList[t])&&this.__region.useConfig("strokeStyle",this.__regionList[t])}else this.__region.useConfig("fillStyle","#000000")&&this.__region.useConfig("strokeStyle","#000000");return this},n.prototype.getRegion=function(t,i){var e=this;return new Promise((function(n){var r=e.__region?e.__region.painter.getImageData(t-.5,i-.5,1,1):{data:[0,0,0,0]},o=r.data,s=function(){if(e.__region)for(var t in e.__regionList)if("rgb("+o[0]+","+o[1]+","+o[2]+")"==e.__regionList[t]){n(t);break}n("")};o?s():r.then((function(t){o=t,s()}))}))},n.prototype.textWidth=function(t){this.painter.save(),e(this.painter,this.__specialConfig,0,0,0);var i=this.painter.measureText(t+"").width;return this.painter.restore(),i},n.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region?this.__region.painter:null:this.painter},n.prototype.getInfo=function(){return{width:this.painter.canvas.width/this.__scaleSize,height:this.painter.canvas.height/this.__scaleSize}},n.prototype.createLinearGradient=function(t,i,e,n){return function(t,i,e,n,r){var o=t.createLinearGradient(i,e,n,r);return h(o)}(this.painter,t,i,e,n)},n.prototype.createRadialGradient=function(t,i,e){return function(t,i,e,n){var r=t.createRadialGradient(i,e,0,i,e,n);return h(r)}(this.painter,t,i,e)},n.prototype.createConicGradient=function(t,i,e,n){return function(t,i,e,n,r){var o=t.createConicGradient(n,i,e);return h(o,r?function(t){return r/(2*Math.PI)*t}:void 0)}(this.painter,t,i,e,n)},n.prototype.getColor=function(t,i){t*=this.__scaleSize,i*=this.__scaleSize;var e=this.painter.getImageData(t-.5,i-.5,1,1).data;return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},n}(_);export{a as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * SVG of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * SVG of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  /******************************************************************************
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * SVG of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * SVG of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},t(e,i)};"function"==typeof SuppressedError&&SuppressedError;var e=["href","title","show","type","role","actuate"];function i(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}var n=function(t,i,n){e.indexOf(i)>-1?t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:"+i,n+""):t.setAttribute(i,n+"")},r=n;function o(t,e){n(t,"stroke",e.strokeStyle),n(t,"fill",e.fillStyle),n(t,"stroke-dasharray",e.lineDash.join(","))}function s(t,e){n(t,"fill",e.fillStyle)}function u(t,e){n(t,"stroke",e.strokeStyle),n(t,"fill","none"),n(t,"stroke-dasharray",e.lineDash.join(","))}var h=function(t,e,i,n,r){var o=Math.cos(i),s=Math.sin(i);return[+((n-t)*o-(r-e)*s+t).toFixed(7),+((n-t)*s+(r-e)*o+e).toFixed(7)]};var _=function(t){var e=t.getElementsByTagName("defs");if(e.length<=0){var n=i("defs");return t.appendChild(n),n}return e[0]},a=function(t,e,i,n,o){if("text"!==t.nodeName.toLowerCase())throw new Error("Need a <text> !");r(t,"dy",{top:.5*e.fontSize,middle:0,bottom:.5*-e.fontSize}[e.textBaseline]),function(t,e){for(var i in e)t.style[i]=e[i]}(t,{"text-anchor":{left:"start",right:"end",center:"middle"}[e.textAlign],"dominant-baseline":"central","font-size":e.fontSize+"px","font-family":e.fontFamily}),r(t,"x",i),r(t,"y",n),"number"==typeof o&&r(t,"transform","rotate("+(o%=360)+","+i+","+n+")")},c=function(t,e,i,n){if("circle"!==t.nodeName.toLowerCase())throw new Error("Need a <circle> !");r(t,"cx",e),r(t,"cy",i),r(t,"r",n)},l=function(t,e){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");r(t,"d",e)},f=function(t,e,i,n,o){if("rect"!==t.nodeName.toLowerCase())throw new Error("Need a <rect> !");o<0&&(i-=o*=-1),n<0&&(e-=n*=-1),r(t,"x",e),r(t,"y",i),r(t,"width",n),r(t,"height",o)},p=function(t,e,i,n,o,s,u,_){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");if(u=u/180*Math.PI,_=_/180*Math.PI,u%=2*Math.PI,o>s){var a=o;o=s,s=a}_>=1.999999*Math.PI||_<=1.999999*-Math.PI?_=1.999999*Math.PI:_%=2*Math.PI,function(t,e,i,n,r,o,s){e<0&&(t+=e,e*=-1);var u,_=[];u=h(0,0,t,r,0),_[0]=u[0],_[1]=u[1],u=h(0,0,e,u[0],u[1]),_[2]=u[0],_[3]=u[1],u=h(0,0,t,o,0),_[4]=u[0],_[5]=u[1],u=h(0,0,e,u[0],u[1]),_[6]=u[0],_[7]=u[1],s(t,t+e,_[0]+i,_[1]+n,_[4]+i,_[5]+n,_[2]+i,_[3]+n,_[6]+i,_[7]+n,.5*(o-r))}(u,_,i,n,o,s,(function(i,n,u,h,_,a,c,l,f,p,d){var y=n-i>Math.PI?1:0,E="M"+u+" "+h;d<0&&(d=-d),E+="A"+o+" "+o+" 0 "+y+" 1 "+c+" "+l,"round"==e.arcEndCap?E+="A"+d+" "+d+" 0 1 0 "+f+" "+p:"-round"==e.arcEndCap?E+="A"+d+" "+d+" 0 1 1 "+f+" "+p:E+="L"+f+" "+p,E+="A"+s+" "+s+" 0 "+y+" 0 "+_+" "+a,"round"==e.arcStartCap?E+="A"+d+" "+d+" 0 1 0 "+u+" "+h:"-round"==e.arcStartCap?E+="A"+d+" "+d+" 0 1 1 "+u+" "+h:E+="L"+u+" "+h,"butt"==e.arcStartCap&&(E+="Z"),r(t,"d",E)}))};function d(t,e,i,n,r){var o=Math.cos(i),s=Math.sin(i);return[(n-t)*o-(r-e)*s+t,(n-t)*s+(r-e)*o+e]}var y=function(t,e){var n={value:function(){return"url(#"+e+")"},setColor:function(e,o){var s=i("stop");return t.appendChild(s),r(s,"offset",100*e+"%"),r(s,"style","stop-color:"+o+";"),n}};return n},E=function(){function t(t){this.name="SVG",this.__config={fillStyle:"#000",strokeStyle:"#000",lineWidth:1,textAlign:"left",textBaseline:"middle",fontSize:16,fontFamily:"sans-serif",arcStartCap:"butt",arcEndCap:"butt",lineDash:[]},this.__path="",this.__currentPosition=[],this.__svg=t}return t.prototype.config=function(t){if("object"!=typeof t)return this.__config[t];for(var e in t)this.__config[e]=t[e];return this},t.prototype.useEl=function(t){return this.__useEl=t,this},t.prototype.getEl=function(){return this.__useEl},t.prototype.appendEl=function(t,e){return e=e||this.__svg,"string"==typeof t&&(t=i(t)),e.appendChild(t),this.__useEl=t,this},t.prototype.appendBoard=function(t,e){var i=t;if("string"==typeof t&&(i={text:"text",path:"path",arc:"path",circle:"circle",rect:"rect"}[t]||""),""==i)throw new Error("Unsupported drawing method:"+t);return this.appendEl(i,e)},t.prototype.remove=function(){if(!this.__useEl)throw new Error("Currently, no node can be deleted.");return this.__useEl.parentNode.removeChild(this.__useEl),this},t.prototype.attr=function(t){if(!this.__useEl)throw new Error("Currently, no node can be modified or viewed.");if("object"!=typeof t)return function(t,i){return e.indexOf(i)>-1&&(i="xlink:"+i),t.getAttribute(i)}(this.__useEl,t);for(var i in t)r(this.__useEl,i,t[i]);return this},t.prototype.fillText=function(t,e,i,n){return void 0===n&&(n=0),a(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,s(this.__useEl,this.__config),this},t.prototype.strokeText=function(t,e,i,n){return void 0===n&&(n=0),a(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,u(this.__useEl,this.__config),this},t.prototype.fullText=function(t,e,i,n){return void 0===n&&(n=0),a(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,o(this.__useEl,this.__config),this},t.prototype.fillArc=function(t,e,i,n,r,o){return p(this.__useEl,this.__config,t,e,i,n,r,o),s(this.__useEl,this.__config),this},t.prototype.strokeArc=function(t,e,i,n,r,o){return p(this.__useEl,this.__config,t,e,i,n,r,o),u(this.__useEl,this.__config),this},t.prototype.fullArc=function(t,e,i,n,r,s){return p(this.__useEl,this.__config,t,e,i,n,r,s),o(this.__useEl,this.__config),this},t.prototype.fillCircle=function(t,e,i){return c(this.__useEl,t,e,i),s(this.__useEl,this.__config),this},t.prototype.strokeCircle=function(t,e,i){return c(this.__useEl,t,e,i),u(this.__useEl,this.__config),this},t.prototype.fullCircle=function(t,e,i){return c(this.__useEl,t,e,i),o(this.__useEl,this.__config),this},t.prototype.fillRect=function(t,e,i,n){return f(this.__useEl,t,e,i,n),s(this.__useEl,this.__config),this},t.prototype.strokeRect=function(t,e,i,n){return f(this.__useEl,t,e,i,n),u(this.__useEl,this.__config),this},t.prototype.fullRect=function(t,e,i,n){return f(this.__useEl,t,e,i,n),o(this.__useEl,this.__config),this},t.prototype.beginPath=function(){return this.__currentPosition=[],this.__path="",this},t.prototype.closePath=function(){return this.__path+="Z",this},t.prototype.moveTo=function(t,e){return this.__currentPosition=[t,e],this.__path+="M"+t+" "+e,this},t.prototype.lineTo=function(t,e){return this.__currentPosition=[t,e],this.__path+=(""==this.__path?"M":"L")+t+" "+e,this},t.prototype.fill=function(){return l(this.__useEl,this.__path),s(this.__useEl,this.__config),this},t.prototype.stroke=function(){return l(this.__useEl,this.__path),u(this.__useEl,this.__config),this},t.prototype.full=function(){return l(this.__useEl,this.__path),o(this.__useEl,this.__config),this},t.prototype.arc=function(t,e,i,n,r){var o=d(t,e,n/180*Math.PI,t+i,e),s=d(t,e,(n+r)/180*Math.PI,t+i,e);return""==this.__path?this.__path+="M"+o[0]+","+o[1]:o[0]==this.__currentPosition[0]&&o[1]==this.__currentPosition[1]||(this.__path+="L"+o[0]+","+o[1]),this.__path+="A"+i+","+i+" 0 "+(r>180||r<-180?1:0)+","+(r>0?1:0)+" "+s[0]+","+s[1],this},t.prototype.quadraticCurveTo=function(t,e,i,n){return this.__path+="Q"+t+" "+e+","+i+" "+n,this},t.prototype.bezierCurveTo=function(t,e,i,n,r,o){return this.__path+="C"+t+" "+e+","+i+" "+n+","+r+" "+o,this},t.prototype.bind=function(t,e){return this.__useEl.addEventListener(t,(function(t){e.call(this,t,this)}),!1),this},t.prototype.createLinearGradient=function(t,e,n,o){return function(t,e,n,o,s){var u=_(t),h="vislite-lg-"+(new Date).valueOf()+"-"+Math.random(),a=i("linearGradient");return u.appendChild(a),r(a,"id",h),r(a,"x1",e+"%"),r(a,"y1",n+"%"),r(a,"x2",o+"%"),r(a,"y2",s+"%"),y(a,h)}(this.__svg,t,e,n,o)},t.prototype.createRadialGradient=function(t,e,n){return function(t,e,n,o){var s=_(t),u="vislite-rg-"+(new Date).valueOf()+"-"+Math.random(),h=i("radialGradient");return s.appendChild(h),r(h,"id",u),r(h,"cx",e+"%"),r(h,"cy",n+"%"),r(h,"r",o+"%"),y(h,u)}(this.__svg,t,e,n)},t}(),g=function(e){function i(t){if(!t)throw new Error("VISLite SVG:The mount point requires an HTMLElement type but encountered null.");var i=t.clientWidth,n=t.clientHeight,r=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.appendChild(r),r.setAttribute("width",i+""),r.setAttribute("height",n+""),r.setAttribute("viewBox","0 0 "+i+" "+n),e.call(this,r)||this}return function(e,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}(i,e),i}(E);export{g as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Shader of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * Shader of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var loadShader = function (painter, type, source) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Shader of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * Shader of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var r=function(r,e,t){var a=r.createShader(e);if(null==a)throw new Error("Unable to create shader!");if(r.shaderSource(a,t),r.compileShader(a),!r.getShaderParameter(a,r.COMPILE_STATUS))throw new Error("Failed to compile shader:"+r.getShaderInfoLog(a));return a},e=function(){function e(r){this.__painter=r}return e.prototype.use=function(){return this.__painter.useProgram(this.program),this},e.prototype.compile=function(e,t){return this.program=function(e,t,a){var o=r(e,e.VERTEX_SHADER,t),n=r(e,e.FRAGMENT_SHADER,a),i=e.createProgram();if(e.attachShader(i,o),e.attachShader(i,n),e.linkProgram(i),!e.getProgramParameter(i,e.LINK_STATUS))throw new Error("Failed to link program: "+e.getProgramInfoLog(i));return i}(this.__painter,e,t),this},e}();export{e as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Texture of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * Texture of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var initTexture = function (painter, type, unit) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Texture of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * Texture of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var _=function(){function _(_,t,e){void 0===e&&(e=0),this.__painter=_,this.__type={"2d":_.TEXTURE_2D,cube:_.TEXTURE_CUBE_MAP}[t],this.__texture=function(_,t,e){var E=_.createTexture();return _.activeTexture(_["TEXTURE"+e]),_.bindTexture(t,E),E}(_,this.__type,e),_.texParameteri(this.__type,_.TEXTURE_MIN_FILTER,_.NEAREST),_.texParameteri(this.__type,_.TEXTURE_MAG_FILTER,_.NEAREST),_.texParameteri(this.__type,_.TEXTURE_WRAP_S,_.CLAMP_TO_EDGE),_.texParameteri(this.__type,_.TEXTURE_WRAP_T,_.CLAMP_TO_EDGE)}return _.prototype.useImage=function(_){return function(_,t,e,E,T,i){_.texImage2D(t,e,E,E,T,i)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,_),this},_.prototype.useCube=function(_,t,e){return function(_,t,e,E,T,i,r,n,a){for(var u,p=[_.TEXTURE_CUBE_MAP_POSITIVE_X,_.TEXTURE_CUBE_MAP_NEGATIVE_X,_.TEXTURE_CUBE_MAP_POSITIVE_Y,_.TEXTURE_CUBE_MAP_NEGATIVE_Y,_.TEXTURE_CUBE_MAP_POSITIVE_Z,_.TEXTURE_CUBE_MAP_NEGATIVE_Z],s=0;s<p.length;s++)i[s]&&(u=p[s],_.texImage2D(u,e,E,r,n,0,E,T,null),_.bindTexture(t,a),_.texImage2D(u,e,E,E,T,i[s]));_.generateMipmap(t)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,_,t,e,this.__texture),this},_}();export{_ as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * TreeLayout of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * TreeLayout of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  /******************************************************************************
@@ -160,9 +160,9 @@ function toPlainTree (initTree, config, noOpens) {
160
160
  }
161
161
  }
162
162
 
163
- function mergeOption (option, defaultOption) {
164
- for (var key in option) {
165
- defaultOption[key] = option[key];
163
+ function initOption(setOption, defaultOption) {
164
+ for (var key in setOption) {
165
+ defaultOption[key] = setOption[key];
166
166
  }
167
167
  return defaultOption;
168
168
  }
@@ -171,7 +171,7 @@ var Tree = (function () {
171
171
  function Tree(config) {
172
172
  if (config === void 0) { config = {}; }
173
173
  this.name = 'Tree';
174
- this.__config = mergeOption(config, {
174
+ this.__config = initOption(config, {
175
175
  root: function (initTree) { return initTree; },
176
176
  children: function (parentTree) { return parentTree.children; },
177
177
  id: function (treedata) { return treedata.name; }
@@ -286,7 +286,7 @@ var TreeLayout = (function (_super) {
286
286
  return _this;
287
287
  }
288
288
  TreeLayout.prototype.setOption = function (option) {
289
- mergeOption(option, this.__option);
289
+ initOption(option, this.__option);
290
290
  return this;
291
291
  };
292
292
  TreeLayout.prototype.use = function (initTree, noOpens) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * TreeLayout of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * TreeLayout of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var t=function(o,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,o){t.__proto__=o}||function(t,o){for(var e in o)Object.prototype.hasOwnProperty.call(o,e)&&(t[e]=o[e])},t(o,e)};"function"==typeof SuppressedError&&SuppressedError;function o(t,o){for(var e in t)o[e]=t[e];return o}var e,n=function(){function t(t){void 0===t&&(t={}),this.name="Tree",this.__config=o(t,{root:function(t){return t},children:function(t){return t.children},id:function(t){return t.name}})}return t.prototype.use=function(t,o){return void 0===o&&(o={}),function(t,o,e){var n=function(t,o){var e,n,i={},r=o.root(t);e=n=o.id(r),i[e]={data:r,pid:null,id:e,isOpen:!0,show:!0,children:[]};var p=1;return function n(r,s){var _=o.children(r,t);p+=_?_.length:0;for(var h=0;_&&h<_.length;h++)e=o.id(_[h]),i[s].children.push(e),i[e]={data:_[h],pid:s,id:e,isOpen:!0,show:!0,children:[]},n(_[h],e)}(r,e),{rid:n,value:i,num:p}}(t,o),i=n.value,r=n.rid;if(1==n.num)return i[r].left=.5,i[r].top=.5,i[r].show=!0,{deep:1,node:i,root:r,size:1};var p=[],s=0,_=0;for(var h in e[r]?(i[r].left=.5,i[r].top=.5,i[r].show=!0,s=1):function t(o,n){n>_&&(_=n);var r=0;if(!e[o.id])for(r=0;r<o.children.length;r++)t(i[o.children[r]],n+1);if(i[o.id].left=n+.5,0==r?(null==p[n]&&(p[n]=-.5),null==p[n-1]&&(p[n-1]=-.5),i[o.id].top=p[n]+1,p[n]+1+.5*(i[o.pid].children.length-1)-1<p[n-1]&&(i[o.id].top=p[n-1]+1-.5*(i[o.pid].children.length-1))):i[o.id].top=.5*(i[o.children[0]].top+i[o.children[r-1]].top),i[o.id].top<=p[n])var h=p[n]+1-i[o.id].top((function t(o,e){i[o].top+=h,p[e]<i[o].top&&(p[e]=i[o].top);for(var n=0;n<i[o].children.length;n++)t(i[o].children[n],e+1)}))(o.id,n);p[n]=i[o.id].top,i[o.id].top+.5>s&&(s=i[o.id].top+.5)}(i[r],0),e)e[h]&&(i[h].isOpen=!1,function t(o,e,n){for(var r=0;r<i[o].children.length;r++)i[i[o].children[r]].left=e,i[i[o].children[r]].top=n,i[i[o].children[r]].show=!1,t(i[o].children[r],e,n)}(h,i[h].left,i[h].top));return{node:i,root:r,size:s,deep:_+1}}(t,this.__config,o)},t}(),i=[];function r(t,o,e,n,i){var r=Math.cos(e),p=Math.sin(e);return[(n-t)*r-(i-o)*p+t,(n-t)*p+(i-o)*r+o]}var p=function(n){function p(){var t=null!==n&&n.apply(this,arguments)||this;return t.name="TreeLayout",t.__option={offsetX:0,offsetY:0,duration:500,type:"plain",direction:"LR",x:100,y:100,width:100,height:100,radius:100},t.__noOpens={},t}return function(o,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=o}t(o,e),o.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(p,n),p.prototype.setOption=function(t){return o(t,this.__option),this},p.prototype.use=function(t,o){void 0===o&&(o={});var e=n.prototype.use.call(this,t,o);if(0!=this.__option.offsetX||0!=this.__option.offsetY)for(var i in e.node)if(!e.node[i].show){var p=0,s=i;do{s=e.node[s].pid,p++}while(!e.node[s].show);e.node[i].left+=this.__option.offsetX*p,e.node[i].top+=this.__option.offsetY*p}if("rect"==this.__option.type){if("LR"==this.__option.direction||"RL"==this.__option.direction){var _=this.__option.height/e.size,h=this.__option.width/(e.deep-1),d=this.__option.y-.5*this.__option.height,f="LR"==this.__option.direction?1:-1;for(var i in e.node)1==e.deep?(e.node[i].left=this.__option.x+.5*this.__option.width*f,e.node[i].top=this.__option.y):(e.node[i].left=this.__option.x+(e.node[i].left-.5)*h*f,e.node[i].top=e.node[i].top*_+d)}else if("TB"==this.__option.direction||"BT"==this.__option.direction){_=this.__option.width/e.size,h=this.__option.height/(e.deep-1),d=this.__option.x-.5*this.__option.width,f="TB"==this.__option.direction?1:-1;for(var i in e.node)if(1==e.deep)e.node[i].left=this.__option.x,e.node[i].top=this.__option.y+.5*this.__option.height*f;else{var l=e.node[i].left;e.node[i].left=e.node[i].top*_+d,e.node[i].top=this.__option.y+(l-.5)*h*f}}}else if("circle"==this.__option.type){var u=this.__option.x,c=this.__option.y,a=2*Math.PI/e.size,v=this.__option.radius/(e.deep-1);for(var i in e.node)if(.5==e.node[i].left)e.node[i].left=u,e.node[i].top=c;else{var y=r(u,c,a*e.node[i].top,u+(e.node[i].left-.5)*v,c);e.node[i].left=y[0],e.node[i].top=y[1]}}return e},p.prototype.bind=function(t,o,e){return void 0===e&&(e={}),this.__rback=o,this.__oralTree=t,this.__noOpens=e,this.__preTree=this.use(this.__oralTree,this.__noOpens),this.__rback(this.__preTree),this},p.prototype.unbind=function(){return this.__rback=function(){return null},this.__oralTree=null,this.__preTree=null,this.__noOpens={},this},p.prototype.doUpdate=function(){var t=this,o=this.use(this.__oralTree,this.__noOpens),n=JSON.parse(JSON.stringify(o));!function(t,o,n){void 0===o&&(o=400),void 0===n&&(n=function(){});var r={timer:function(t,o,e){if(!t)throw new Error("Tick is required!");var n=(new Date).valueOf()+"_"+(1e3*Math.random()).toFixed(0);return i.push({id:n,createTime:new Date,tick:t,duration:o,callback:e}),r.start(),n},start:function(){e||(e=setInterval(r.tick,13))},tick:function(){var t,o,e,n,p,s,_,h=i;for((i=[]).length=0,o=0;o<h.length;o++)t=(p=h[o]).createTime,e=p.tick,s=p.duration,n=p.callback,e(_=(_=(+(new Date).valueOf()-t.valueOf())/s)>1?1:_),_<1&&p.id?i.push(p):n(_);i.length<=0&&r.stop()},stop:function(){e&&(clearInterval(e),e=null)}},p=r.timer((function(o){t(o)}),o,n)}((function(e){if(t.__preTree)for(var i in n.node)(o.node[i].show||t.__preTree.node[i].show)&&(n.node[i].show=!0,n.node[i].left=t.__preTree.node[i].left+(o.node[i].left-t.__preTree.node[i].left)*e,n.node[i].top=t.__preTree.node[i].top+(o.node[i].top-t.__preTree.node[i].top)*e);t.__rback(n)}),this.__option.duration,(function(){t.__preTree=o,t.__rback(t.__preTree)}))},p.prototype.closeNode=function(t){return this.__preTree?(this.__noOpens[t]=!0,this.doUpdate(),this):this},p.prototype.openNode=function(t){return this.__preTree?(this.__noOpens[t]=!1,this.doUpdate(),this):this},p.prototype.toggleNode=function(t){return this.__preTree?(this.__noOpens[t]=!this.__noOpens[t],this.doUpdate(),this):this},p}(n);export{p as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * animation of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * animation of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var $timers = [];
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * animation of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * animation of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var t,e=[];function i(i,n,r){void 0===n&&(n=400),void 0===r&&(r=function(){});var a={timer:function(t,i,n){if(!t)throw new Error("Tick is required!");var r=(new Date).valueOf()+"_"+(1e3*Math.random()).toFixed(0);return e.push({id:r,createTime:new Date,tick:t,duration:i,callback:n}),a.start(),r},start:function(){t||(t=setInterval(a.tick,13))},tick:function(){var t,i,n,r,o,u,c,f=e;for((e=[]).length=0,i=0;i<f.length;i++)t=(o=f[i]).createTime,n=o.tick,u=o.duration,r=o.callback,n(c=(c=(+(new Date).valueOf()-t.valueOf())/u)>1?1:c),c<1&&o.id?e.push(o):r(c);e.length<=0&&a.stop()},stop:function(){t&&(clearInterval(t),t=null)}},o=a.timer((function(t){i(t)}),n,r);return function(){var t;for(t in e)if(e[t].id==o)return void(e[t].id=void 0)}}export{i as default};
@@ -0,0 +1,3 @@
1
+ import { assemble } from "../../types/index"
2
+
3
+ export default assemble
@@ -0,0 +1,23 @@
1
+ /*!
2
+ * assemble of VISLite JavaScript Library v1.2.0-alpha.3
3
+ * git+https://github.com/oi-contrib/VISLite.git
4
+ */
5
+ function assemble (begin, end, step, count) {
6
+ var val = [];
7
+ for (var index = 0; index < count; index++)
8
+ val[index] = begin;
9
+ return function () {
10
+ for (var i = 0; i < count; i++) {
11
+ if (val[i] + step < end) {
12
+ val[i] = +(val[i] + step).toFixed(7);
13
+ break;
14
+ }
15
+ else if (i < count - 1) {
16
+ val[i] = begin;
17
+ }
18
+ }
19
+ return val;
20
+ };
21
+ }
22
+
23
+ export { assemble as default };
@@ -0,0 +1,3 @@
1
+ import { assemble } from "../../types/index"
2
+
3
+ export default assemble
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * assemble of VISLite JavaScript Library v1.2.0-alpha.3
3
+ * git+https://github.com/oi-contrib/VISLite.git
4
+ */
5
+ function r(r,t,e,f){for(var n=[],o=0;o<f;o++)n[o]=r;return function(){for(var o=0;o<f;o++){if(n[o]+e<t){n[o]=+(n[o]+e).toFixed(7);break}o<f-1&&(n[o]=r)}return n}}export{r as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * getLoopColors of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * getLoopColors of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function getLoopColors (num, alpha) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * getLoopColors of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * getLoopColors of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function r(r,a){void 0===a&&(a=1);var g=["rgba(84,112,198,"+a+")","rgba(145,204,117,"+a+")","rgba(250,200,88,"+a+")","rgba(238,102,102,"+a+")","rgba(115,192,222,"+a+")","rgba(59,162,114,"+a+")","rgba(252,132,82,"+a+")","rgba(154,96,180,"+a+")","rgba(234,124,204,"+a+")"],t=[];if(r<=g.length)return g;if(r%g.length==0)for(var e=0;e<r/g.length;e++)t=t.concat(g);else{for(var n=1;n<r/g.length;n++)t=t.concat(g);if(r%g.length==1)t=t.concat(g[4]);else for(var o=0;o<r%g.length;o++)t=t.concat(g[o])}return t}export{r as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * getWebGLContext of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * getWebGLContext of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  function getWebGLContext (canvas, scale, opts, mode) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * getWebGLContext of VISLite JavaScript Library v1.2.0-alpha.1
2
+ * getWebGLContext of VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  var e=function(e,t,i){if(void 0===t&&(t=1),!e)throw new Error("VISLite getWebGLContext:The mount point requires an HTMLElement type but encountered null.");var n,r=e.clientWidth,a=e.clientHeight,o=e;return o._vislite_canvas_?n=o._vislite_canvas_:(n=document.createElement("canvas"),e.appendChild(n),o._vislite_canvas_=n,e.setAttribute("vislite","WebGL")),n.style.width=r+"px",n.setAttribute("width",r+""),n.style.height=a+"px",n.setAttribute("height",a+""),function(e,t,i,n){void 0===i&&(i={}),void 0===n&&(n="scaleToFill");for(var r=["experimental-webgl","webkit-3d","moz-webgl"],a=e.getContext("webgl",i),o=0;o<r.length;o++){try{a=e.getContext(r[o],i)}catch(e){}if(a)break}if(!a)throw new Error("Non canvas or browser does not support webgl.");var l=a.canvas.width,s=a.canvas.height,c=t,v=t;"aspectFit"==n?l>s?c*=s/l:s>l&&(v*=l/s):"aspectFill"==n&&(l>s?v*=l/s:s>l&&(c*=s/l));var h=l*c,u=s*v;return a.viewport(.5*(l-h),.5*(s-u),h,u),a.depthFunc(a.LEQUAL),a.enable(a.DEPTH_TEST),a}(n,t,{},i)};export{e as default};
package/lib/index.umd.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * VISLite JavaScript Library v1.2.0-alpha.1
2
+ * VISLite JavaScript Library v1.2.0-alpha.3
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  (function (global, factory) {
@@ -1494,13 +1494,13 @@
1494
1494
  };
1495
1495
  }
1496
1496
 
1497
- var enhanceGradient = function (gradient) {
1497
+ var enhanceGradient = function (gradient, calcStop) {
1498
1498
  var enhanceGradient = {
1499
1499
  "value": function () {
1500
1500
  return gradient;
1501
1501
  },
1502
1502
  "setColor": function (stop, color) {
1503
- gradient.addColorStop(stop, color);
1503
+ gradient.addColorStop(calcStop ? calcStop(stop) : stop, color);
1504
1504
  return enhanceGradient;
1505
1505
  }
1506
1506
  };
@@ -1513,6 +1513,12 @@
1513
1513
  var radialGradient = function (painter, cx, cy, r) {
1514
1514
  var gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r);
1515
1515
  return enhanceGradient(gradient);
1516
+ };
1517
+ var conicGradient = function (painter, cx, cy, startDeg, deg) {
1518
+ var gradient = painter.createConicGradient(startDeg, cx, cy);
1519
+ return enhanceGradient(gradient, deg ? function (stop) {
1520
+ return deg / (Math.PI * 2) * stop;
1521
+ } : undefined);
1516
1522
  };
1517
1523
 
1518
1524
  var Canvas$1 = (function (_super) {
@@ -1621,6 +1627,9 @@
1621
1627
  Canvas.prototype.createRadialGradient = function (cx, cy, r) {
1622
1628
  return radialGradient(this.painter, cx, cy, r);
1623
1629
  };
1630
+ Canvas.prototype.createConicGradient = function (cx, cy, beginDeg, deg) {
1631
+ return conicGradient(this.painter, cx, cy, beginDeg, deg);
1632
+ };
1624
1633
  Canvas.prototype.getColor = function (x, y) {
1625
1634
  x *= this.__scaleSize;
1626
1635
  y *= this.__scaleSize;
@@ -1638,11 +1647,47 @@
1638
1647
  return Canvas;
1639
1648
  }(Painter));
1640
1649
 
1641
- function mergeOption (option, defaultOption) {
1642
- for (var key in option) {
1643
- defaultOption[key] = option[key];
1650
+ var toString = Object.prototype.toString;
1651
+ function getType(value) {
1652
+ if (value == null) {
1653
+ return value === undefined ? '[object Undefined]' : '[object Null]';
1654
+ }
1655
+ return toString.call(value);
1656
+ }
1657
+ function isPlainObject(value) {
1658
+ if (value === null || typeof value !== 'object' || getType(value) != '[object Object]') {
1659
+ return false;
1660
+ }
1661
+ if (Object.getPrototypeOf(value) === null) {
1662
+ return true;
1663
+ }
1664
+ var proto = value;
1665
+ while (Object.getPrototypeOf(proto) !== null) {
1666
+ proto = Object.getPrototypeOf(proto);
1667
+ }
1668
+ return Object.getPrototypeOf(value) === proto;
1669
+ }
1670
+
1671
+ function initOption(setOption, defaultOption) {
1672
+ for (var key in setOption) {
1673
+ defaultOption[key] = setOption[key];
1644
1674
  }
1645
1675
  return defaultOption;
1676
+ }
1677
+ function mergeOption(oldOption, newOption) {
1678
+ (function doit(oldOption, newOption) {
1679
+ for (var key in newOption) {
1680
+ var value = newOption[key];
1681
+ if (isPlainObject(value)) {
1682
+ if (!oldOption[key])
1683
+ oldOption[key] = {};
1684
+ doit(oldOption[key], newOption[key]);
1685
+ }
1686
+ else {
1687
+ oldOption[key] = value;
1688
+ }
1689
+ }
1690
+ })(oldOption, newOption);
1646
1691
  }
1647
1692
 
1648
1693
  var Canvas = (function (_super) {
@@ -1655,7 +1700,7 @@
1655
1700
  if (!el) {
1656
1701
  throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");
1657
1702
  }
1658
- option = mergeOption(option, {
1703
+ option = initOption(option, {
1659
1704
  region: true,
1660
1705
  willReadFrequently: false
1661
1706
  });
@@ -1704,7 +1749,7 @@
1704
1749
  var _this = this;
1705
1750
  this.__el.addEventListener(eventName, function (event) {
1706
1751
  _this.getRegion(event.offsetX, event.offsetY).then(function (regionName) {
1707
- callback(regionName);
1752
+ callback(regionName, event.offsetX, event.offsetY);
1708
1753
  });
1709
1754
  });
1710
1755
  return this;
@@ -1959,7 +2004,7 @@
1959
2004
 
1960
2005
  function throttle (callback, option) {
1961
2006
  if (option === void 0) { option = {}; }
1962
- option = mergeOption(option, {
2007
+ option = initOption(option, {
1963
2008
  time: 200,
1964
2009
  keep: false,
1965
2010
  opportunity: "end"
@@ -2127,7 +2172,7 @@
2127
2172
  function Tree(config) {
2128
2173
  if (config === void 0) { config = {}; }
2129
2174
  this.name = 'Tree';
2130
- this.__config = mergeOption(config, {
2175
+ this.__config = initOption(config, {
2131
2176
  root: function (initTree) { return initTree; },
2132
2177
  children: function (parentTree) { return parentTree.children; },
2133
2178
  id: function (treedata) { return treedata.name; }
@@ -2161,7 +2206,7 @@
2161
2206
  return _this;
2162
2207
  }
2163
2208
  TreeLayout.prototype.setOption = function (option) {
2164
- mergeOption(option, this.__option);
2209
+ initOption(option, this.__option);
2165
2210
  return this;
2166
2211
  };
2167
2212
  TreeLayout.prototype.use = function (initTree, noOpens) {
@@ -2313,7 +2358,10 @@
2313
2358
  Eoap: Eoap,
2314
2359
  Mercator: Mercator,
2315
2360
  throttle: throttle,
2316
- TreeLayout: TreeLayout
2361
+ assemble: assemble,
2362
+ TreeLayout: TreeLayout,
2363
+ initOption: initOption,
2364
+ mergeOption: mergeOption
2317
2365
  };
2318
2366
 
2319
2367
  return index;